Skip to content

Commit 81df5b1

Browse files
committed
2nd try.
1 parent 7334db8 commit 81df5b1

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

pymodbus/framer/rtu_framer.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ def resetFrame(self):
113113
end of the message (python just doesn't have the resolution to
114114
check for millisecond delays).
115115
"""
116-
# x = self._buffer
116+
x = self._buffer
117117
super().resetFrame()
118-
# self._buffer = x
118+
self._buffer = x
119119

120120
def isFrameReady(self):
121121
"""Check if we should continue decode logic.
@@ -247,6 +247,7 @@ def sendPacket(self, message):
247247
:param message: Message to be sent over the bus
248248
:return:
249249
"""
250+
super().resetFrame()
250251
start = time.time()
251252
timeout = start + self.client.comm_params.timeout_connect
252253
while self.client.state != ModbusTransactionState.IDLE:

test/sub_client/test_client_faulty_response.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from pymodbus.exceptions import ModbusIOException
77
from pymodbus.factory import ClientDecoder
8-
from pymodbus.framer import ModbusSocketFramer
8+
from pymodbus.framer import ModbusRtuFramer, ModbusSocketFramer
99

1010

1111
class TestFaultyResponses:
@@ -30,6 +30,13 @@ def test_ok_frame(self, framer, callback):
3030
framer.processIncomingPacket(self.good_frame, callback, self.slaves)
3131
callback.assert_called_once()
3232

33+
def test_1917_frame(self, callback):
34+
"""Test invalid frame in issue 1917."""
35+
recv = b"\x01\x86\x02\x00\x01"
36+
framer = ModbusRtuFramer(ClientDecoder())
37+
framer.processIncomingPacket(recv, callback, self.slaves)
38+
callback.assert_not_called()
39+
3340
def test_faulty_frame1(self, framer, callback):
3441
"""Test ok frame."""
3542
faulty_frame = b"\x00\x04\x00\x00\x00\x05\x00\x03\x0a\x00\x04"

0 commit comments

Comments
 (0)