Esempio n. 1
0
 public CompositeHoldingRegisterVariable(ModbusControllerConnection connection, HoldingRegisterAddress address, ushort sizeInWords)
 {
     _connection  = connection;
     _address     = address;
     _sizeInWords = sizeInWords;
 }
Esempio n. 2
0
 public HoldingRegisterVariable(ModbusControllerConnection connection, HoldingRegisterAddress address)
 {
     _connection = connection;
     _address    = address;
 }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
 private static void WriteHoldingRegisterAddress(List <byte> buffer, HoldingRegisterAddress address)
 {
     WriteBigEndianUInt16(buffer, address.WireValue);
 }
Esempio n. 6
0
        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));
 }