public CompositeHoldingRegisterVariable(ModbusControllerConnection connection, HoldingRegisterAddress address, ushort sizeInWords) { _connection = connection; _address = address; _sizeInWords = sizeInWords; }
public HoldingRegisterVariable(ModbusControllerConnection connection, HoldingRegisterAddress address) { _connection = connection; _address = address; }
public static Message CreateReadHoldingRegistersCommand(SlaveAddress slaveAddress, HoldingRegisterAddress firstRegister, ushort numberOfRegisters) { var data = new List <byte>(); WriteSlaveAddress(data, slaveAddress); WriteFunctionCode(data, FunctionCode.ReadHoldingRegisters); WriteHoldingRegisterAddress(data, firstRegister); WriteBigEndianUInt16(data, numberOfRegisters); return(CreateFromRaw(data)); }
public static Message CreatePresetSingleRegisterCommand(SlaveAddress slaveAddress, HoldingRegisterAddress register, ushort desiredValue) { var data = new List <byte>(); WriteSlaveAddress(data, slaveAddress); WriteFunctionCode(data, FunctionCode.PresetSingleRegister); WriteHoldingRegisterAddress(data, register); WriteBigEndianUInt16(data, desiredValue); return(CreateFromRaw(data)); }
private static void WriteHoldingRegisterAddress(List <byte> buffer, HoldingRegisterAddress address) { WriteBigEndianUInt16(buffer, address.WireValue); }
public static Message CreatePresetMultipleRegistersCommand(SlaveAddress slaveAddress, HoldingRegisterAddress firstRegister, ushort[] desiredValues) { if (desiredValues == null) { throw new ArgumentNullException(); } if (desiredValues.Length == 0) { throw new ArgumentException("Must write at least one register."); } if (desiredValues.Length > MaxUShortArrayLength) { throw new ArgumentException("Too many registers."); } var data = new List <byte>(); WriteSlaveAddress(data, slaveAddress); WriteFunctionCode(data, FunctionCode.PresetMultipleRegisters); WriteHoldingRegisterAddress(data, firstRegister); WriteBigEndianUInt16(data, (ushort)desiredValues.Length); WriteLengthPrefixedUShortArray(data, desiredValues); return(CreateFromRaw(data)); }
internal void WriteHoldingRegister(HoldingRegisterAddress register, ushort value) { _master.WriteSingleRegister(_slaveRaw, register.WireValue, value); }
internal void WriteHoldingRegisters(HoldingRegisterAddress firstRegister, ushort[] values) { _master.WriteMultipleRegisters(_slaveRaw, firstRegister.WireValue, values); }
internal ushort[] ReadHoldingRegisters(HoldingRegisterAddress firstRegister, ushort numberOfRegisters) { return(_master.ReadHoldingRegisters(_slaveRaw, firstRegister.WireValue, numberOfRegisters)); }