1
0
mirror of https://github.com/JoelBender/modpypes synced 2025-10-19 22:08:20 +08:00

pass along the register count for reading input registers and decode the results like holding registers

This commit is contained in:
Joel Bender 2017-03-31 15:26:20 -04:00
parent a413d5f5c9
commit 901471c9fc
2 changed files with 10 additions and 3 deletions

View File

@ -2,7 +2,7 @@
__author__ = 'Joel Bender'
__email__ = 'joel@carrickbender.com'
__version__ = '0.2.6'
__version__ = '0.2.7'
from . import pdu
from . import app

View File

@ -115,10 +115,10 @@ class ConsoleClient(ConsoleCmd):
req = ReadCoilsRequest(register - 1, rcount)
elif registerType == 1:
# discrete inputs
req = ReadDiscreteInputsRequest(register - 1, 1)
req = ReadDiscreteInputsRequest(register - 1, rcount)
elif registerType == 3:
# input register
req = ReadInputRegistersRequest(register - 1, 1)
req = ReadInputRegistersRequest(register - 1, rcount)
elif registerType == 4:
# holding register
req = ReadMultipleRegistersRequest(register - 1, rcount)
@ -163,6 +163,13 @@ class ConsoleClient(ConsoleCmd):
elif isinstance(resp, ReadInputRegistersResponse):
print(" ::= " + str(resp.registers))
for dtype, codec in ModbusStruct.items():
try:
value = codec.unpack(resp.registers)
print(" " + dtype + " ::= " + str(value))
except Exception as err:
if _debug: ConsoleClient._debug("unpack exception %r: %r", codec, err)
elif isinstance(resp, ReadMultipleRegistersResponse):
print(" ::= " + str(resp.registers))