16
16
from pymodbus .logging import Log
17
17
from pymodbus .pdu import ModbusRequest , ModbusResponse
18
18
from pymodbus .transaction import SyncModbusTransactionManager
19
- from pymodbus .transport import CommParams
19
+ from pymodbus .transport import CommParams , CommType
20
20
from pymodbus .utilities import ModbusTransactionState
21
21
22
22
@@ -37,6 +37,7 @@ class ModbusBaseClient(ModbusClientMixin[Awaitable[ModbusResponse]]):
37
37
:param reconnect_delay_max: Maximum delay in seconds.milliseconds before reconnecting.
38
38
:param on_connect_callback: Will be called when connected/disconnected (bool parameter)
39
39
:param no_resend_on_retry: Do not resend request when retrying due to missing response.
40
+ :param comm_type: Type of communication (set by interface class)
40
41
:param kwargs: Experimental parameters.
41
42
42
43
.. tip::
@@ -49,7 +50,7 @@ class ModbusBaseClient(ModbusClientMixin[Awaitable[ModbusResponse]]):
49
50
**Application methods, common to all clients**:
50
51
"""
51
52
52
- def __init__ (
53
+ def __init__ ( # pylint: disable=too-many-arguments
53
54
self ,
54
55
framer : FramerType ,
55
56
timeout : float = 3 ,
@@ -59,16 +60,18 @@ def __init__(
59
60
reconnect_delay_max : float = 300 ,
60
61
on_connect_callback : Callable [[bool ], None ] | None = None ,
61
62
no_resend_on_retry : bool = False ,
63
+ comm_type : CommType | None = None ,
64
+ source_address : tuple [str , int ] | None = None ,
62
65
** kwargs : Any ,
63
66
) -> None :
64
67
"""Initialize a client instance."""
65
68
ModbusClientMixin .__init__ (self ) # type: ignore[arg-type]
66
69
self .ctx = ModbusClientProtocol (
67
70
framer ,
68
71
CommParams (
69
- comm_type = kwargs . get ( "CommType" ) ,
72
+ comm_type = comm_type ,
70
73
comm_name = "comm" ,
71
- source_address = kwargs . get ( " source_address" , None ) ,
74
+ source_address = source_address ,
72
75
reconnect_delay = reconnect_delay ,
73
76
reconnect_delay_max = reconnect_delay_max ,
74
77
timeout_connect = timeout ,
@@ -238,6 +241,7 @@ class ModbusBaseSyncClient(ModbusClientMixin[ModbusResponse]):
238
241
:param reconnect_delay: Minimum delay in seconds.milliseconds before reconnecting.
239
242
:param reconnect_delay_max: Maximum delay in seconds.milliseconds before reconnecting.
240
243
:param no_resend_on_retry: Do not resend request when retrying due to missing response.
244
+ :param source_address: source address of client
241
245
:param kwargs: Experimental parameters.
242
246
243
247
.. tip::
@@ -260,7 +264,7 @@ class _params:
260
264
reconnect_delay : int | None = None
261
265
source_address : tuple [str , int ] | None = None
262
266
263
- def __init__ (
267
+ def __init__ ( # pylint: disable=too-many-arguments
264
268
self ,
265
269
framer : FramerType ,
266
270
timeout : float = 3 ,
@@ -270,14 +274,16 @@ def __init__(
270
274
reconnect_delay : float = 0.1 ,
271
275
reconnect_delay_max : float = 300.0 ,
272
276
no_resend_on_retry : bool = False ,
277
+ comm_type : CommType | None = None ,
278
+ source_address : tuple [str , int ] | None = None ,
273
279
** kwargs : Any ,
274
280
) -> None :
275
281
"""Initialize a client instance."""
276
282
ModbusClientMixin .__init__ (self ) # type: ignore[arg-type]
277
283
self .comm_params = CommParams (
278
- comm_type = kwargs . get ( "CommType" ) ,
284
+ comm_type = comm_type ,
279
285
comm_name = "comm" ,
280
- source_address = kwargs . get ( " source_address" , None ) ,
286
+ source_address = source_address ,
281
287
reconnect_delay = reconnect_delay ,
282
288
reconnect_delay_max = reconnect_delay_max ,
283
289
timeout_connect = timeout ,
0 commit comments