1616from pymodbus .logging import Log
1717from pymodbus .pdu import ModbusRequest , ModbusResponse
1818from pymodbus .transaction import SyncModbusTransactionManager
19- from pymodbus .transport import CommParams
19+ from pymodbus .transport import CommParams , CommType
2020from pymodbus .utilities import ModbusTransactionState
2121
2222
@@ -37,6 +37,7 @@ class ModbusBaseClient(ModbusClientMixin[Awaitable[ModbusResponse]]):
3737 :param reconnect_delay_max: Maximum delay in seconds.milliseconds before reconnecting.
3838 :param on_connect_callback: Will be called when connected/disconnected (bool parameter)
3939 :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)
4041 :param kwargs: Experimental parameters.
4142
4243 .. tip::
@@ -49,7 +50,7 @@ class ModbusBaseClient(ModbusClientMixin[Awaitable[ModbusResponse]]):
4950 **Application methods, common to all clients**:
5051 """
5152
52- def __init__ (
53+ def __init__ ( # pylint: disable=too-many-arguments
5354 self ,
5455 framer : FramerType ,
5556 timeout : float = 3 ,
@@ -59,16 +60,18 @@ def __init__(
5960 reconnect_delay_max : float = 300 ,
6061 on_connect_callback : Callable [[bool ], None ] | None = None ,
6162 no_resend_on_retry : bool = False ,
63+ comm_type : CommType | None = None ,
64+ source_address : tuple [str , int ] | None = None ,
6265 ** kwargs : Any ,
6366 ) -> None :
6467 """Initialize a client instance."""
6568 ModbusClientMixin .__init__ (self ) # type: ignore[arg-type]
6669 self .ctx = ModbusClientProtocol (
6770 framer ,
6871 CommParams (
69- comm_type = kwargs . get ( "CommType" ) ,
72+ comm_type = comm_type ,
7073 comm_name = "comm" ,
71- source_address = kwargs . get ( " source_address" , None ) ,
74+ source_address = source_address ,
7275 reconnect_delay = reconnect_delay ,
7376 reconnect_delay_max = reconnect_delay_max ,
7477 timeout_connect = timeout ,
@@ -238,6 +241,7 @@ class ModbusBaseSyncClient(ModbusClientMixin[ModbusResponse]):
238241 :param reconnect_delay: Minimum delay in seconds.milliseconds before reconnecting.
239242 :param reconnect_delay_max: Maximum delay in seconds.milliseconds before reconnecting.
240243 :param no_resend_on_retry: Do not resend request when retrying due to missing response.
244+ :param source_address: source address of client
241245 :param kwargs: Experimental parameters.
242246
243247 .. tip::
@@ -260,7 +264,7 @@ class _params:
260264 reconnect_delay : int | None = None
261265 source_address : tuple [str , int ] | None = None
262266
263- def __init__ (
267+ def __init__ ( # pylint: disable=too-many-arguments
264268 self ,
265269 framer : FramerType ,
266270 timeout : float = 3 ,
@@ -270,14 +274,16 @@ def __init__(
270274 reconnect_delay : float = 0.1 ,
271275 reconnect_delay_max : float = 300.0 ,
272276 no_resend_on_retry : bool = False ,
277+ comm_type : CommType | None = None ,
278+ source_address : tuple [str , int ] | None = None ,
273279 ** kwargs : Any ,
274280 ) -> None :
275281 """Initialize a client instance."""
276282 ModbusClientMixin .__init__ (self ) # type: ignore[arg-type]
277283 self .comm_params = CommParams (
278- comm_type = kwargs . get ( "CommType" ) ,
284+ comm_type = comm_type ,
279285 comm_name = "comm" ,
280- source_address = kwargs . get ( " source_address" , None ) ,
286+ source_address = source_address ,
281287 reconnect_delay = reconnect_delay ,
282288 reconnect_delay_max = reconnect_delay_max ,
283289 timeout_connect = timeout ,
0 commit comments