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).
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static final record
Nested classes/interfaces inherited from class io.openems.edge.bridge.modbus.api.task.AbstractWriteTask
AbstractWriteTask.Single<REQUEST extends com.ghgande.j2mod.modbus.msg.ModbusRequest,
RESPONSE extends com.ghgande.j2mod.modbus.msg.ModbusResponse, ELEMENT extends ModbusElement> Nested classes/interfaces inherited from interface io.openems.edge.bridge.modbus.api.task.Task
Task.ExecuteState
-
Field Summary
Fields inherited from class io.openems.edge.bridge.modbus.api.task.AbstractTask
elements, length, name, responseClazz, startAddress
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionexecute
(AbstractModbusBridge bridge) Executes the tasks - i.e.protected static List
<FC16WriteRegistersTask.MergedWriteRegisters> mergeWriteRegisters
(ModbusElement[] elements, Consumer<String> logWarn) Combine WriteRegisters without holes in between.protected String
payloadToString
(com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest request) 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).protected String
toLogMessage
(LogVerbosity logVerbosity, com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest request, com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse response, Exception exception) Methods inherited from class io.openems.edge.bridge.modbus.api.task.AbstractWriteTask
getPriority, payloadToString
Methods inherited from class io.openems.edge.bridge.modbus.api.task.AbstractTask
deactivate, debug, executeRequest, getElements, getLength, getLogVerbosity, getParent, getStartAddress, logError, logInfo, logRequest, setParent, toLogMessage, toLogMessage, toLogMessage
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.openems.edge.bridge.modbus.api.task.Task
deactivate, getElements, getLength, getParent, getStartAddress, setParent
-
Constructor Details
-
FC16WriteRegistersTask
-
-
Method Details
-
execute
Description copied from class:AbstractTask
Executes the tasks - i.e. sends the query of a ReadTask or writes a WriteTask.- Specified by:
execute
in interfaceTask
- Specified by:
execute
in classAbstractTask<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
- theModbusElement
slogWarn
-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 classAbstractTask<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 classAbstractTask<com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersRequest,
com.ghgande.j2mod.modbus.msg.WriteMultipleRegistersResponse>
-