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]); }
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; }
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]); }
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); }
/// <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)); }
/// <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()); }
public void ValidateWriteSingleCoilResponse(byte[] readBytes, IModbusMessage request) { WriteSingleCoilRequestResponse response = (WriteSingleCoilRequestResponse)Transport.CreateResponse <WriteSingleCoilRequestResponse>(readBytes); Transport.ValidateResponse(request, response); }
public byte[] BuildWriteSingleCoilCommand(byte slaveAddress, ushort coilAddress, bool value, out IModbusMessage request) { request = new WriteSingleCoilRequestResponse(slaveAddress, coilAddress, value); return(Transport.BuildMessageFrame(request)); }