forked from sfera-labs/exo-sense-py-modbus
-
Notifications
You must be signed in to change notification settings - Fork 54
Open
Description
Description
modbus little endian
Hi,
Your library works perfectly! But I have a device that uses the "little endian byteorder".
How to add :
if lsb_first:
formatcode = "<" # Little-endian
else:
formatcode = ">" # Big-endian
I think I'd have to add a constant for decoding
def read_holding_registers(starting_address: int, quantity: int) -> bytes:
"""
Create Modbus Protocol Data Unit for reading holding registers.
:param starting_address: The starting address
:type starting_address: int
:param quantity: Quantity of coils
:type quantity: int
:returns: Packed Modbus message
:rtype: bytes
"""
if not (1 <= quantity <= 125):
raise ValueError('Invalid number of holding registers')
return struct.pack('>BHH',
Const.READ_HOLDING_REGISTERS,
starting_address,
quantity)
I'd like to do it but I'm not sure of my abilities !
Thank you
Reproduction steps
juste a question
MicroPython version
v1.20
MicroPython board
ESP32
MicroPython Modbus version
v2.3.7Relevant log output
"User code
"Additional informations
"
Metadata
Metadata
Assignees
Labels
No labels