Skip to content

Commit b97659d

Browse files
committed
Fix examples, Merge #431
1 parent 3fb83cc commit b97659d

File tree

4 files changed

+20
-16
lines changed

4 files changed

+20
-16
lines changed

examples/common/asyncio_server.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,25 +113,25 @@ async def run_server():
113113
# ----------------------------------------------------------------------- #
114114
# Tcp:
115115
# immediately start serving:
116-
# server = await StartTcpServer(context, identity=identity, address=("0.0.0.0", 5020),
117-
# allow_reuse_address=True)
116+
await StartTcpServer(context, identity=identity, address=("0.0.0.0", 5020), allow_reuse_address=True,
117+
defer_start=False)
118118

119119
# deferred start:
120120
# server = await StartTcpServer(context, identity=identity, address=("0.0.0.0", 5020),
121-
# allow_reuse_address=True, defer_start=True)
122-
123-
# asyncio.get_event_loop().call_later(20, lambda : server.)
121+
# allow_reuse_address=True, defer_start=True)
122+
#
123+
# asyncio.get_event_loop().call_later(20, lambda : server.serve_forever)
124124
# await server.serve_forever()
125125

126126
# TCP with different framer
127127
# StartTcpServer(context, identity=identity,
128128
# framer=ModbusRtuFramer, address=("0.0.0.0", 5020))
129129

130130
# Udp:
131-
server = await StartUdpServer(context, identity=identity, address=("0.0.0.0", 5020),
132-
allow_reuse_address=True, defer_start=True)
133-
#
134-
await server.serve_forever()
131+
# server = await StartUdpServer(context, identity=identity, address=("0.0.0.0", 5020),
132+
# allow_reuse_address=True, defer_start=True)
133+
# #
134+
# await server.serve_forever()
135135

136136
# !!! SERIAL SERVER NOT IMPLEMENTED !!!
137137
# Ascii:

examples/common/synchronous_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
# --------------------------------------------------------------------------- #
1717
# import the various server implementations
1818
# --------------------------------------------------------------------------- #
19-
# from pymodbus.client.sync import ModbusTcpClient as ModbusClient
19+
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
2020
# from pymodbus.client.sync import ModbusUdpClient as ModbusClient
21-
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
21+
# from pymodbus.client.sync import ModbusSerialClient as ModbusClient
2222

2323
# --------------------------------------------------------------------------- #
2424
# configure the client logging

pymodbus/client/sync.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -262,26 +262,29 @@ def _recv(self, size):
262262
else:
263263
recv_size = size
264264

265-
data = b''
265+
data = []
266+
data_length = 0
266267
time_ = time.time()
267268
end = time_ + timeout
268269
while recv_size > 0:
269270
ready = select.select([self.socket], [], [], end - time_)
270271
if ready[0]:
271-
data += self.socket.recv(recv_size)
272+
recv_data = self.socket.recv(recv_size)
273+
data.append(recv_data)
274+
data_length += len(recv_data)
272275
time_ = time.time()
273276

274277
# If size isn't specified continue to read until timeout expires.
275278
if size:
276-
recv_size = size - len(data)
279+
recv_size = size - data_length
277280

278281
# Timeout is reduced also if some data has been received in order
279282
# to avoid infinite loops when there isn't an expected response
280283
# size and the slave sends noisy data continuosly.
281284
if time_ > end:
282285
break
283286

284-
return data
287+
return b"".join(data)
285288

286289
def is_socket_open(self):
287290
return True if self.socket is not None else False

pymodbus/server/asyncio.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,11 +535,12 @@ def __init__(self, context, framer=None, identity=None, **kwargs): # pragma: no
535535
"""
536536
raise NotImplementedException
537537

538+
538539
# --------------------------------------------------------------------------- #
539540
# Creation Factories
540541
# --------------------------------------------------------------------------- #
541542
async def StartTcpServer(context=None, identity=None, address=None,
542-
custom_functions=[], defer_start=True, **kwargs):
543+
custom_functions=[], defer_start=True, **kwargs):
543544
""" A factory to start and run a tcp modbus server
544545
545546
:param context: The ModbusServerContext datastore

0 commit comments

Comments
 (0)