Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/contrib/message_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def report(self, message): # pylint: disable=no-self-use
" %-12s => %s" % (k_item, v_item) # pylint: disable=consider-using-f-string
)

elif isinstance(v_dict, collections.Iterable): # pylint: disable=no-member
elif isinstance(v_dict, collections.Iterable):
print("%-15s =" % k_dict) # pylint: disable=consider-using-f-string
value = str([int(x) for x in v_dict])
for line in textwrap.wrap(value, 60):
Expand Down
24 changes: 12 additions & 12 deletions pymodbus/framer/rtu_framer.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,18 +131,17 @@ def isFrameReady(self):

:returns: True if ready, False otherwise
"""
if len(self._buffer) <= self._hsize:
return False

try:
# Frame is ready only if populateHeader() successfully
# populates crc field which finishes RTU frame otherwise,
# if buffer is not yet long enough, populateHeader() raises IndexError
self.populateHeader()
except IndexError:
return False

return True
size = self._header.get('len', 0)
if not size and len(self._buffer) > self._hsize:
try:
# Frame is ready only if populateHeader() successfully
# populates crc field which finishes RTU frame otherwise,
# if buffer is not yet long enough, populateHeader() raises IndexError
size = self.populateHeader()
except IndexError:
return False

return len(self._buffer) >= size if size > 0 else False

def populateHeader(self, data=None): # pylint: disable=invalid-name
"""Try to set the headers `uid`, `len` and `crc`.
Expand All @@ -164,6 +163,7 @@ def populateHeader(self, data=None): # pylint: disable=invalid-name
# crc yet not available
raise IndexError
self._header["crc"] = data[size - 2 : size]
return size

def addToFrame(self, message):
"""Add the received data to the buffer handle.
Expand Down