Skip to content

Commit 1738be2

Browse files
authored
Reconect_delay == 0, do not reconnect. (#1795)
1 parent ced082d commit 1738be2

File tree

7 files changed

+7
-22
lines changed

7 files changed

+7
-22
lines changed

pymodbus/client/base.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,6 @@ def __init__( # pylint: disable=too-many-arguments
112112
self.params.close_comm_on_error = bool(close_comm_on_error)
113113
self.params.strict = bool(strict)
114114
self.params.broadcast_enable = bool(broadcast_enable)
115-
self.params.reconnect_delay = int(reconnect_delay)
116-
self.reconnect_delay_max = int(reconnect_delay_max)
117115
self.on_reconnect_callback = on_reconnect_callback
118116
self.retry_on_empty: int = 0
119117
self.no_resend_on_retry = no_resend_on_retry
@@ -124,7 +122,6 @@ def __init__( # pylint: disable=too-many-arguments
124122
self.transaction = DictTransactionManager(
125123
self, retries=retries, retry_on_empty=retry_on_empty, **kwargs
126124
)
127-
self.reconnect_delay = self.params.reconnect_delay
128125
self.reconnect_delay_current = self.params.reconnect_delay
129126
self.use_udp = False
130127
self.state = ModbusTransactionState.IDLE

pymodbus/client/serial.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,7 @@ def connected(self):
7575

7676
async def connect(self) -> bool:
7777
"""Connect Async client."""
78-
# if reconnect_delay_current was set to 0 by close(), we need to set it back again
79-
# so this instance will work
8078
self.reset_delay()
81-
82-
# force reconnect if required:
8379
Log.debug("Connecting to {}.", self.comm_params.host)
8480
return await self.transport_connect()
8581

pymodbus/client/tcp.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,7 @@ def __init__(
6060

6161
async def connect(self) -> bool:
6262
"""Initiate connection to start client."""
63-
64-
# if reconnect_delay_current was set to 0 by close(), we need to set it back again
65-
# so this instance will work
6663
self.reset_delay()
67-
68-
# force reconnect if required:
6964
Log.debug(
7065
"Connecting to {}:{}.",
7166
self.comm_params.host,

pymodbus/client/tls.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,7 @@ def __init__(
6767

6868
async def connect(self) -> bool:
6969
"""Initiate connection to start client."""
70-
71-
# if reconnect_delay_current was set to 0 by close(), we need to set it back again
72-
# so this instance will work
7370
self.reset_delay()
74-
75-
# force reconnect if required:
7671
Log.debug(
7772
"Connecting to {}:{}.",
7873
self.comm_params.host,

pymodbus/client/udp.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,7 @@ async def connect(self) -> bool:
6666
6767
:meta private:
6868
"""
69-
# if reconnect_delay_current was set to 0 by close(), we need to set it back again
70-
# so this instance will work
7169
self.reset_delay()
72-
73-
# force reconnect if required:
7470
Log.debug(
7571
"Connecting to {}:{}.",
7672
self.comm_params.host,

pymodbus/transport/transport.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,11 @@ def connection_lost(self, reason: Exception):
298298
return
299299
Log.debug("Connection lost {} due to {}", self.comm_params.comm_name, reason)
300300
self.transport_close(intern=True)
301-
if not self.is_server and not self.listener:
301+
if (
302+
not self.is_server
303+
and not self.listener
304+
and self.comm_params.reconnect_delay
305+
):
302306
self.reconnect_task = asyncio.create_task(self.do_reconnect())
303307
self.callback_disconnected(reason)
304308

test/sub_transport/test_comm.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ async def test_connected(self, client, server, use_comm_type):
136136
)
137137
async def test_connected_multiple(self, client, server):
138138
"""Test connection and data exchange."""
139+
client.comm_params.reconnect_delay = 0.0
139140
assert await server.transport_listen()
140141
assert await client.transport_connect()
141142
await asyncio.sleep(0.5)
@@ -174,6 +175,7 @@ async def test_connected_multiple(self, client, server):
174175
assert server2_connected.recv_buffer == test2_data + test_data
175176
client2.transport_close()
176177
server.transport_close()
178+
await asyncio.sleep(0.5)
177179
assert not server.active_connections
178180

179181

0 commit comments

Comments
 (0)