1
0
mirror of https://github.com/JoelBender/modpypes synced 2025-10-26 21:49:19 +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' __author__ = 'Joel Bender'
__email__ = 'joel@carrickbender.com' __email__ = 'joel@carrickbender.com'
__version__ = '0.2.6' __version__ = '0.2.7'
from . import pdu from . import pdu
from . import app from . import app

View File

@ -115,10 +115,10 @@ class ConsoleClient(ConsoleCmd):
req = ReadCoilsRequest(register - 1, rcount) req = ReadCoilsRequest(register - 1, rcount)
elif registerType == 1: elif registerType == 1:
# discrete inputs # discrete inputs
req = ReadDiscreteInputsRequest(register - 1, 1) req = ReadDiscreteInputsRequest(register - 1, rcount)
elif registerType == 3: elif registerType == 3:
# input register # input register
req = ReadInputRegistersRequest(register - 1, 1) req = ReadInputRegistersRequest(register - 1, rcount)
elif registerType == 4: elif registerType == 4:
# holding register # holding register
req = ReadMultipleRegistersRequest(register - 1, rcount) req = ReadMultipleRegistersRequest(register - 1, rcount)
@ -163,6 +163,13 @@ class ConsoleClient(ConsoleCmd):
elif isinstance(resp, ReadInputRegistersResponse): elif isinstance(resp, ReadInputRegistersResponse):
print(" ::= " + str(resp.registers)) 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): elif isinstance(resp, ReadMultipleRegistersResponse):
print(" ::= " + str(resp.registers)) print(" ::= " + str(resp.registers))