public void WriteMultipCoils_MakeSureWeDoNotWriteRemainder() { // 0, false initialized data store var dataStore = DataStoreFactory.CreateDefaultDataStore(); var request = new WriteMultipleCoilsRequest(1, 0, new DiscreteCollection(Enumerable.Repeat(true, 8).ToArray())) { NumberOfPoints = 2 }; ModbusSlave.WriteMultipleCoils(request, dataStore, dataStore.CoilDiscretes); Assert.Equal(Enumerable.ToArray <bool>(dataStore.CoilDiscretes.Slice(1, 8)), new[] { true, true, false, false, false, false, false, false }); }
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.Equal(new bool[] { val, val, val, val, val, val, val, val, val, val }, _testDataStore.CoilDiscretes.Slice(startAddress + 1, numberOfPoints).ToArray()); }