Skip to content

Commit bc3e9d9

Browse files
committed
pymodbus compatability
1 parent 243d4d0 commit bc3e9d9

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

classes/transports/modbus_rtu.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import logging
22
from classes.protocol_settings import Registry_Type, protocol_settings
33

4+
import inspect
5+
6+
47
try:
58
from pymodbus.client.sync import ModbusSerialClient
69
except ImportError:
@@ -38,10 +41,19 @@ def __init__(self, settings : SectionProxy, protocolSettings : protocol_settings
3841
address : int = settings.getint("address", 0)
3942
self.addresses = [address]
4043

41-
self.client = ModbusSerialClient(method='rtu', port=self.port,
42-
baudrate=int(self.baudrate),
43-
stopbits=1, parity='N', bytesize=8, timeout=2
44-
)
44+
# Get the signature of the __init__ method
45+
init_signature = inspect.signature(ModbusSerialClient.__init__)
46+
47+
if 'method' in init_signature.parameters:
48+
self.client = ModbusSerialClient(method='rtu', port=self.port,
49+
baudrate=int(self.baudrate),
50+
stopbits=1, parity='N', bytesize=8, timeout=2
51+
)
52+
else:
53+
self.client = ModbusSerialClient(port=self.port,
54+
baudrate=int(self.baudrate),
55+
stopbits=1, parity='N', bytesize=8, timeout=2
56+
)
4557

4658
def read_registers(self, start, count=1, registry_type : Registry_Type = Registry_Type.INPUT, **kwargs):
4759

0 commit comments

Comments
 (0)