示例#1
0
        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 });
        }
示例#2
0
        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());
        }