public void NewWriteSingleCoilRequestResponse()
 {
     WriteSingleCoilRequestResponse request = new WriteSingleCoilRequestResponse(11, 5, true);
     Assert.AreEqual(11, request.SlaveAddress);
     Assert.AreEqual(5, request.StartAddress);
     Assert.AreEqual(1, request.Data.Count);
     Assert.AreEqual(Modbus.CoilOn, request.Data[0]);
 }
Ejemplo n.º 2
0
        internal static WriteSingleCoilRequestResponse WriteSingleCoil(WriteSingleCoilRequestResponse request,
            DataStore dataStore, ModbusDataCollection<bool> dataSource)
        {
            DataStore.WriteData(dataStore, new DiscreteCollection(request.Data[0] == Modbus.CoilOn), dataSource,
                request.StartAddress, dataStore.SyncRoot);

            return request;
        }
Ejemplo n.º 3
0
		public void WriteSingleCoil()
		{			
			ushort addressToWrite = 35;
			bool valueToWrite = !_testDataStore.CoilDiscretes[addressToWrite + 1];
			WriteSingleCoilRequestResponse expectedResponse = new WriteSingleCoilRequestResponse(1, addressToWrite, valueToWrite);
			WriteSingleCoilRequestResponse response = ModbusSlave.WriteSingleCoil(new WriteSingleCoilRequestResponse(1, addressToWrite, valueToWrite), _testDataStore, _testDataStore.CoilDiscretes);
			AssertModbusMessagePropertiesAreEqual(expectedResponse, response);
			Assert.AreEqual(valueToWrite, _testDataStore.CoilDiscretes[addressToWrite + 1]);
		}
Ejemplo n.º 4
0
        internal static WriteSingleCoilRequestResponse WriteSingleCoil(
            WriteSingleCoilRequestResponse request,
            DataStore dataStore,
            ModbusDataCollection <bool> dataSource)
        {
            DataStore.WriteData(
                dataStore,
                new DiscreteCollection(request.Data[0] == Modbus.CoilOn),
                dataSource,
                request.StartAddress,
                dataStore.SyncRoot);

            return(request);
        }
Ejemplo n.º 5
0
        /// <summary>
        ///    Asynchronously writes a single coil value.
        /// </summary>
        /// <param name="slaveAddress">Address of the device to write to.</param>
        /// <param name="coilAddress">Address to write value to.</param>
        /// <param name="value">Value to write.</param>
        /// <returns>A task that represents the asynchronous write operation.</returns>
        public Task WriteSingleCoilAsync(byte slaveAddress, ushort coilAddress, bool value)
        {
            var request = new WriteSingleCoilRequestResponse(slaveAddress, coilAddress, value);

            return(PerformWriteRequestAsync <WriteSingleCoilRequestResponse>(request));
        }
Ejemplo n.º 6
0
        /// <summary>
        ///    Writes a single coil value.
        /// </summary>
        /// <param name="slaveAddress">Address of the device to write to.</param>
        /// <param name="coilAddress">Address to write value to.</param>
        /// <param name="value">Value to write.</param>
        public void WriteSingleCoil(byte slaveAddress, ushort coilAddress, bool value)
        {
            var request = new WriteSingleCoilRequestResponse(slaveAddress, coilAddress, value);

            Transport.UnicastMessage <WriteSingleCoilRequestResponse>(request);
        }
 public void CreateModbusMessageWriteSingleCoilRequestResponse()
 {
     WriteSingleCoilRequestResponse request =
         ModbusMessageFactory.CreateModbusMessage<WriteSingleCoilRequestResponse>(new byte[]
         {17, Modbus.WriteSingleCoil, 0, 172, byte.MaxValue, 0});
     WriteSingleCoilRequestResponse expectedRequest = new WriteSingleCoilRequestResponse(17, 172, true);
     AssertModbusMessagePropertiesAreEqual(expectedRequest, request);
     Assert.AreEqual(expectedRequest.StartAddress, request.StartAddress);
     Assert.AreEqual(expectedRequest.Data.NetworkBytes, request.Data.NetworkBytes);
 }
        public void ToString_True()
        {
            var request = new WriteSingleCoilRequestResponse(11, 5, true);

            Assert.AreEqual("Write single coil 1 at address 5.", request.ToString());
        }
        public void CreateModbusMessageWriteSingleCoilRequestResponseWithInvalidFrameSize()
        {
            WriteSingleCoilRequestResponse request = ModbusMessageFactory.CreateModbusMessage <WriteSingleCoilRequestResponse>(new byte[] { 11, Modbus.WriteSingleCoil, 0, 105, byte.MaxValue });

            Assert.Fail();
        }
        public void ToString_False()
        {
            var request = new WriteSingleCoilRequestResponse(11, 5, false);

            Assert.Equal("Write single coil 0 at address 5.", request.ToString());
        }
        public void ToString_False()
        {
            var request = new WriteSingleCoilRequestResponse(11, 5, false);

            Assert.AreEqual("Write single coil 0 at address 5.", request.ToString());
        }
        public void ToString_True()
        {
            var request = new WriteSingleCoilRequestResponse(11, 5, true);

            Assert.Equal("Write single coil 1 at address 5.", request.ToString());
        }
Ejemplo n.º 13
0
        public void ValidateWriteSingleCoilResponse(byte[] readBytes, IModbusMessage request)
        {
            WriteSingleCoilRequestResponse response = (WriteSingleCoilRequestResponse)Transport.CreateResponse <WriteSingleCoilRequestResponse>(readBytes);

            Transport.ValidateResponse(request, response);
        }
Ejemplo n.º 14
0
 public byte[] BuildWriteSingleCoilCommand(byte slaveAddress, ushort coilAddress, bool value, out IModbusMessage request)
 {
     request = new WriteSingleCoilRequestResponse(slaveAddress, coilAddress, value);
     return(Transport.BuildMessageFrame(request));
 }