Class StaticDataMapModbusConnection

All Implemented Interfaces:
Closeable, AutoCloseable, ModbusConnection

public class StaticDataMapModbusConnection extends StaticDataMapReadonlyModbusConnection
ModbusConnection for reading/writing static data.

This class can be useful in tests working with Modbus connections.

Since:
2.16
Version:
2.0
Author:
matt
  • Constructor Details

    • StaticDataMapModbusConnection

      public StaticDataMapModbusConnection(net.solarnetwork.util.IntShortMap data)
      Constructor.
      Parameters:
      data - the starting data
  • Method Details

    • writeWords

      public void writeWords(ModbusWriteFunction function, int address, int[] values)
      Description copied from interface: ModbusConnection
      Write unsigned 16-bit word values to 16-bit Modbus registers.

      All the elements in values will be truncated to 16-bits and then stored in Modbus registers.

      Specified by:
      writeWords in interface ModbusConnection
      Overrides:
      writeWords in class ModbusConnectionSupport
      Parameters:
      function - the Modbus function code to use
      address - the 0-based Modbus register address to start writing to
      values - the unsigned 16-bit values to write
    • writeString

      public void writeString(ModbusWriteFunction function, int address, String value, Charset charset)
      Description copied from interface: ModbusConnection
      Write a string as raw byte values to registers.
      Specified by:
      writeString in interface ModbusConnection
      Overrides:
      writeString in class ModbusConnectionSupport
      Parameters:
      function - the Modbus function code to use
      address - the 0-based Modbus register address to start writing to
      value - the string value to write
      charset - the character set to interpret the bytes as
    • writeWords

      public void writeWords(ModbusWriteFunction function, int address, short[] values)
      Description copied from interface: ModbusConnection
      Write 16-bit word values to 16-bit Modbus registers.
      Specified by:
      writeWords in interface ModbusConnection
      Overrides:
      writeWords in class ModbusConnectionSupport
      Parameters:
      function - the Modbus function code to use
      address - the 0-based Modbus register address to start writing to
      values - the 16-bit values to write
    • writeDiscreetValues

      public void writeDiscreetValues(int[] addresses, BitSet bits)
      Description copied from interface: ModbusConnection
      Write values of a set of "coil" type registers, via a BitSet.

      This uses a Modbus function code 5 request, once for each address in addresses. Each address at index i corresponds to the value of bit at index i. Thus bits 0 to addresses.length - 1 are used.

      This method is required but deprecated to preserve backwards compatibility.

      Specified by:
      writeDiscreetValues in interface ModbusConnection
      Overrides:
      writeDiscreetValues in class ModbusConnectionSupport
      Parameters:
      addresses - the Modbus register addresses to start writing to
      bits - the bits to write, each index corresponding to an index in addresses
    • writeBytes

      public void writeBytes(ModbusWriteFunction function, int address, byte[] values)
      Description copied from interface: ModbusConnection
      Write raw byte values to registers.
      Specified by:
      writeBytes in interface ModbusConnection
      Overrides:
      writeBytes in class ModbusConnectionSupport
      Parameters:
      function - the Modbus function code to use
      address - the 0-based Modbus register address to start writing to; values.length * 2 16-bit registers will be written
      values - the byte values to write