Skip to content

Commit b3635e8

Browse files
committed
ASCII.
1 parent 9429a13 commit b3635e8

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

pymodbus/message/ascii.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def decode(self, data: bytes) -> tuple[int, int, int, bytes]:
4545
used_len = start
4646
Log.debug("Garble data before frame: {}, skip until start of frame", data, ":hex")
4747
return used_len, 0, 0, self.EMPTY
48-
if not (used_len := data.find(self.END)):
48+
if (used_len := data.find(self.END)) == -1:
4949
Log.debug("Incomplete frame: {} wait for more data", data, ":hex")
5050
return 0, 0, 0, self.EMPTY
5151

test/message/test_ascii.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,24 @@ def test_roundtrip_LRC(self):
3838
assert MessageAscii.check_LRC(data, 0x1C)
3939

4040
@pytest.mark.parametrize(
41-
("packet", "used_len", "id", "res"),
41+
("packet", "used_len", "res_id", "res"),
4242
[
4343
(b':010100010001FC\r\n', 17, 1, b'\x01\x00\x01\x00\x01'),
4444
(b':00010001000AF4\r\n', 17, 0, b'\x01\x00\x01\x00\x0a'),
4545
(b':01010001000AF3\r\n', 17, 1, b'\x01\x00\x01\x00\x0a'),
4646
(b':61620001000A32\r\n', 17, 97, b'\x62\x00\x01\x00\x0a'),
4747
(b':01270001000ACD\r\n', 17, 1, b'\x27\x00\x01\x00\x0a'),
48+
(b':010100', 0, 0, b''), # short frame
49+
(b':00010001000AF4', 0, 0, b''),
50+
(b'abc:00010001000AF4', 3, 0, b''), # garble before frame
51+
(b'abc00010001000AF4', 17, 0, b''), # only garble
52+
(b':01010001000A00\r\n', 17, 0, b''),
4853
],
4954
)
50-
def test_decode(self, frame, packet, used_len, id, res):
55+
def test_decode(self, frame, packet, used_len, res_id, res):
5156
"""Test decode."""
5257
res_len, tid, dev_id, data = frame.decode(packet)
5358
assert res_len == used_len
5459
assert data == res
5560
assert not tid
56-
assert dev_id == id
57-
58-
59-
# NO: b':01270001000ACD\r\n'
60-
# remember:
61-
# -- split packet
62-
# -- double packet
63-
# -- garble data in front
64-
# -- garble data after
61+
assert dev_id == res_id

0 commit comments

Comments
 (0)