public void CreateWriteMultipleCoilsResponse()
 {
     WriteMultipleCoilsResponse response = new WriteMultipleCoilsResponse(17, 19, 45);
     Assert.Equal(Modbus.WriteMultipleCoils, response.FunctionCode);
     Assert.Equal(17, response.SlaveAddress);
     Assert.Equal(19, response.StartAddress);
     Assert.Equal(45, response.NumberOfPoints);
 }
		public void WriteMultipleCoils()
		{
			ushort startAddress = 35;
			ushort numberOfPoints = 10;
			bool val = !_testDataStore.CoilDiscretes[startAddress + 1];
			WriteMultipleCoilsResponse expectedResponse = new WriteMultipleCoilsResponse(1, startAddress, numberOfPoints);
			WriteMultipleCoilsResponse response = ModbusSlave.WriteMultipleCoils(new WriteMultipleCoilsRequest(1, startAddress, new DiscreteCollection(val, val, val, val, val, val, val, val, val, val)), _testDataStore, _testDataStore.CoilDiscretes);
			AssertModbusMessagePropertiesAreEqual(expectedResponse, response);
			Assert.AreEqual(new bool[] { val, val, val, val, val, val, val, val, val, val }, _testDataStore.CoilDiscretes.Slice(startAddress + 1, numberOfPoints).ToArray());
		}
 public void CreateModbusMessageWriteMultipleCoilsResponse()
 {
     WriteMultipleCoilsResponse response =
         ModbusMessageFactory.CreateModbusMessage<WriteMultipleCoilsResponse>(new byte[]
         {17, Modbus.WriteMultipleCoils, 0, 19, 0, 10});
     WriteMultipleCoilsResponse expectedResponse = new WriteMultipleCoilsResponse(17, 19, 10);
     AssertModbusMessagePropertiesAreEqual(expectedResponse, response);
     Assert.AreEqual(expectedResponse.StartAddress, response.StartAddress);
     Assert.AreEqual(expectedResponse.NumberOfPoints, response.NumberOfPoints);
 }
        public void ToString_Test()
        {
            var response = new WriteMultipleCoilsResponse(1, 2, 3);

            Assert.Equal("Wrote 3 coils starting at address 2.", response.ToString());
        }
 public void CreateWriteMultipleCoilsResponseMaxSize()
 {
     WriteMultipleCoilsResponse response = new WriteMultipleCoilsResponse(1, 2,
         Modbus.MaximumDiscreteRequestResponseSize);
     Assert.Equal(Modbus.MaximumDiscreteRequestResponseSize, response.NumberOfPoints);
 }
        internal static WriteMultipleCoilsResponse WriteMultipleCoils(WriteMultipleCoilsRequest request, ModbusDataCollection<bool> dataSource)
        {
            DataStore.WriteData(request.Data, dataSource, request.StartAddress);
            WriteMultipleCoilsResponse response = new WriteMultipleCoilsResponse(request.SlaveAddress, request.StartAddress, request.NumberOfPoints);

            return response;
        }
        internal static WriteMultipleCoilsResponse WriteMultipleCoils(WriteMultipleCoilsRequest request, DataStore dataStore, ModbusDataCollection<bool> dataSource)
        {
            DataStore.WriteData(dataStore, CollectionUtility.Slice(request.Data, 0, request.NumberOfPoints), dataSource, request.StartAddress, dataStore.SyncRoot);
            WriteMultipleCoilsResponse response = new WriteMultipleCoilsResponse(request.SlaveAddress, request.StartAddress, request.NumberOfPoints);

            return response;
        }