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; }