internal static WriteSingleRegisterRequestResponse WriteSingleRegister( WriteSingleRegisterRequestResponse request, DataStore dataStore, ModbusDataCollection <ushort> dataSource) { DataStore.WriteData(dataStore, request.Data, dataSource, request.StartAddress, dataStore.SyncRoot); return(request); }
/// <summary> /// Write a single holding register. /// </summary> /// <param name="slaveAddress">Address of the device to write to.</param> /// <param name="registerAddress">Address to write.</param> /// <param name="value">Value to write.</param> public void WriteSingleRegister(byte slaveAddress, ushort registerAddress, ushort value) { WriteSingleRegisterRequestResponse request = new WriteSingleRegisterRequestResponse(slaveAddress, registerAddress, value); Transport.UnicastMessage <WriteSingleRegisterRequestResponse>(request); }
public void NewWriteSingleRegisterRequestResponse() { WriteSingleRegisterRequestResponse message = new WriteSingleRegisterRequestResponse(12, 5, 1200); Assert.AreEqual(12, message.SlaveAddress); Assert.AreEqual(5, message.StartAddress); Assert.AreEqual(1, message.Data.Count); Assert.AreEqual(1200, message.Data[0]); }
public void CreateModbusMessageWriteSingleRegisterRequestResponseWithInvalidFrameSize() { WriteSingleRegisterRequestResponse request = ModbusMessageFactory.CreateModbusMessage <WriteSingleRegisterRequestResponse>(new byte[] { 11, Modbus.WriteSingleRegister, 0, 1, 0 }); Assert.Fail(); }
public void NewWriteSingleRegisterRequestResponse() { WriteSingleRegisterRequestResponse message = new WriteSingleRegisterRequestResponse(12, 5, 1200); Assert.Equal(12, message.SlaveAddress); Assert.Equal(5, message.StartAddress); Assert.Equal(1, message.Data.Count); Assert.Equal(1200, message.Data[0]); }
public byte[] BuildWriteSingleRegisterCommand(byte slaveAddress, ushort registerAddress, ushort value, out IModbusMessage request) { request = new WriteSingleRegisterRequestResponse( slaveAddress, registerAddress, value); return(Transport.BuildMessageFrame(request)); }
/// <summary> /// Asynchronously writes a single holding register. /// </summary> /// <param name="slaveAddress">Address of the device to write to.</param> /// <param name="registerAddress">Address to write.</param> /// <param name="value">Value to write.</param> /// <returns>A task that represents the asynchronous write operation.</returns> public Task WriteSingleRegisterAsync(byte slaveAddress, ushort registerAddress, ushort value) { var request = new WriteSingleRegisterRequestResponse( slaveAddress, registerAddress, value); return(PerformWriteRequestAsync <WriteSingleRegisterRequestResponse>(request)); }
public byte[] BuildWriteMessage(byte slaveAddress, ushort registerAddress, ushort value) { var request = new WriteSingleRegisterRequestResponse( slaveAddress, registerAddress, value); return(Transport.BuildMessageFrame(request)); }
public void CreateModbusMessageWriteSingleRegisterRequestResponse() { WriteSingleRegisterRequestResponse request = ModbusMessageFactory.CreateModbusMessage <WriteSingleRegisterRequestResponse>(new byte[] { 17, Modbus.WriteSingleRegister, 0, 1, 0, 3 }); WriteSingleRegisterRequestResponse expectedRequest = new WriteSingleRegisterRequestResponse(17, 1, 3); AssertModbusMessagePropertiesAreEqual(expectedRequest, request); Assert.AreEqual(expectedRequest.StartAddress, request.StartAddress); Assert.AreEqual(expectedRequest.Data.NetworkBytes, request.Data.NetworkBytes); }
public void ApplyRequest_VerifyModbusRequestReceivedEventIsFired() { bool eventFired = false; ModbusSlave slave = ModbusSerialSlave.CreateAscii(1, new SerialPort()); WriteSingleRegisterRequestResponse request = new WriteSingleRegisterRequestResponse(1, 1, 1); slave.ModbusSlaveRequestReceived += (obj, args) => { eventFired = true; Assert.AreEqual(request, args.Message); }; slave.ApplyRequest(request); Assert.IsTrue(eventFired); }
public void WriteSingleRegister() { ushort startAddress = 35; ushort value = 45; Assert.AreNotEqual(value, _testDataStore.HoldingRegisters[startAddress - 1]); WriteSingleRegisterRequestResponse expectedResponse = new WriteSingleRegisterRequestResponse(1, startAddress, value); WriteSingleRegisterRequestResponse response = ModbusSlave.WriteSingleRegister(new WriteSingleRegisterRequestResponse(1, startAddress, value), _testDataStore, _testDataStore.HoldingRegisters); AssertModbusMessagePropertiesAreEqual(expectedResponse, response); }
public void CreateModbusMessageWriteSingleRegisterRequestResponse() { WriteSingleRegisterRequestResponse request = ModbusMessageFactory.CreateModbusMessage<WriteSingleRegisterRequestResponse>(new byte[] {17, Modbus.WriteSingleRegister, 0, 1, 0, 3}); WriteSingleRegisterRequestResponse expectedRequest = new WriteSingleRegisterRequestResponse(17, 1, 3); AssertModbusMessagePropertiesAreEqual(expectedRequest, request); Assert.AreEqual(expectedRequest.StartAddress, request.StartAddress); Assert.AreEqual(expectedRequest.Data.NetworkBytes, request.Data.NetworkBytes); }
public void ValidateWriteSingleRegisterResponse(byte[] readBytes, IModbusMessage request) { WriteSingleRegisterRequestResponse response = (WriteSingleRegisterRequestResponse)Transport.CreateResponse <WriteSingleRegisterRequestResponse>(readBytes); Transport.ValidateResponse(request, response); }
public void ToStringOverride() { WriteSingleRegisterRequestResponse message = new WriteSingleRegisterRequestResponse(12, 5, 1200); Assert.Equal("Write single holding register 1200 at address 5.", message.ToString()); }
public void ToStringOverride() { WriteSingleRegisterRequestResponse message = new WriteSingleRegisterRequestResponse(12, 5, 1200); Assert.AreEqual("Write single holding register 1200 at address 5.", message.ToString()); }
internal static WriteSingleRegisterRequestResponse WriteSingleRegister(WriteSingleRegisterRequestResponse request, ModbusDataCollection<ushort> dataSource) { DataStore.WriteData(request.Data, dataSource, request.StartAddress); return request; }