Class FC16WriteRegistersTask

java.lang.Object
io.openems.edge.bridge.modbus.api.task.AbstractTask<com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest,com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse>
io.openems.edge.bridge.modbus.api.task.AbstractWriteTask<com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest,com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse>
io.openems.edge.bridge.modbus.api.task.FC16WriteRegistersTask
All Implemented Interfaces:
Task, WriteTask, ManagedTask

public class FC16WriteRegistersTask extends AbstractWriteTask<com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest,com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse>
Implements a Write Holding Registers Task, using Modbus function code 16 (http://www.simplymodbus.ca/FC16.htm).
  • Constructor Details

    • FC16WriteRegistersTask

      public FC16WriteRegistersTask(int startAddress, ModbusElement... elements)
  • Method Details

    • execute

      public Task.ExecuteState execute(AbstractModbusBridge bridge)
      Description copied from class: AbstractTask
      Executes the tasks - i.e. sends the query of a ReadTask or writes a WriteTask.
      Specified by:
      execute in interface Task
      Specified by:
      execute in class AbstractTask<com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest,com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse>
      Parameters:
      bridge - the Modbus-Bridge
      Returns:
      the number of executed Sub-Tasks
    • mergeWriteRegisters

      protected static List<FC16WriteRegistersTask.MergedWriteRegisters> mergeWriteRegisters(ModbusElement[] elements, Consumer<String> logWarn)
      Combine WriteRegisters without holes in between.
      Parameters:
      elements - the ModbusElements
      logWarn - Consumer to log a warning
      Returns:
      a list of CombinedWriteRegisters
    • payloadToString

      protected String payloadToString(com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest request)
      Description copied from class: AbstractTask
      Converts the actual payload of the REQUEST to a human readable format suitable for logs; without header data (like Unit-ID, function code, checksum, etc).
      Specified by:
      payloadToString in class AbstractTask<com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest,com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse>
      Parameters:
      request - the request
      Returns:
      a string
    • toLogMessage

      protected String toLogMessage(LogVerbosity logVerbosity, com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest request, com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse response, Exception exception)
      Overrides:
      toLogMessage in class AbstractTask<com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest,com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse>