Skip to content

Commit f9febb9

Browse files
authored
clean ProcessIncommingPacket. (#1491)
1 parent 33dbcfb commit f9febb9

File tree

4 files changed

+45
-49
lines changed

4 files changed

+45
-49
lines changed

pymodbus/framer/ascii_framer.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -166,20 +166,20 @@ def processIncomingPacket(self, data, callback, slave, **kwargs):
166166
single = kwargs.get("single", False)
167167
self.addToFrame(data)
168168
while self.isFrameReady():
169-
if self.checkFrame():
170-
if self._validate_slave_id(slave, single):
171-
frame = self.getFrame()
172-
if (result := self.decoder.decode(frame)) is None:
173-
raise ModbusIOException("Unable to decode response")
174-
self.populateResult(result)
175-
self.advanceFrame()
176-
callback(result) # defer this
177-
else:
178-
header_txt = self._header["uid"]
179-
Log.error("Not a valid slave id - {}, ignoring!!", header_txt)
180-
self.resetFrame()
181-
else:
169+
if not self.checkFrame():
182170
break
171+
if not self._validate_slave_id(slave, single):
172+
header_txt = self._header["uid"]
173+
Log.error("Not a valid slave id - {}, ignoring!!", header_txt)
174+
self.resetFrame()
175+
continue
176+
177+
frame = self.getFrame()
178+
if (result := self.decoder.decode(frame)) is None:
179+
raise ModbusIOException("Unable to decode response")
180+
self.populateResult(result)
181+
self.advanceFrame()
182+
callback(result) # defer this
183183

184184
def buildPacket(self, message):
185185
"""Create a ready to send modbus packet.

pymodbus/framer/binary_framer.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -163,23 +163,20 @@ def processIncomingPacket(self, data, callback, slave, **kwargs):
163163
slave = [slave]
164164
single = kwargs.get("single", False)
165165
while self.isFrameReady():
166-
if self.checkFrame():
167-
if self._validate_slave_id(slave, single):
168-
if (result := self.decoder.decode(self.getFrame())) is None:
169-
raise ModbusIOException("Unable to decode response")
170-
self.populateResult(result)
171-
self.advanceFrame()
172-
callback(result) # defer or push to a thread?
173-
else:
174-
header_txt = self._header["uid"]
175-
Log.debug("Not a valid slave id - {}, ignoring!!", header_txt)
176-
self.resetFrame()
177-
break
178-
179-
else:
166+
if not self.checkFrame():
180167
Log.debug("Frame check failed, ignoring!!")
181168
self.resetFrame()
182169
break
170+
if not self._validate_slave_id(slave, single):
171+
header_txt = self._header["uid"]
172+
Log.debug("Not a valid slave id - {}, ignoring!!", header_txt)
173+
self.resetFrame()
174+
break
175+
if (result := self.decoder.decode(self.getFrame())) is None:
176+
raise ModbusIOException("Unable to decode response")
177+
self.populateResult(result)
178+
self.advanceFrame()
179+
callback(result) # defer or push to a thread?
183180

184181
def buildPacket(self, message):
185182
"""Create a ready to send modbus packet.

pymodbus/framer/socket_framer.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -161,23 +161,22 @@ def processIncomingPacket(self, data, callback, slave, **kwargs):
161161
Log.debug("Processing: {}", data, ":hex")
162162
self.addToFrame(data)
163163
while True:
164-
if self.isFrameReady():
165-
if self.checkFrame():
166-
if self._validate_slave_id(slave, single):
167-
self._process(callback)
168-
else:
169-
header_txt = self._header["uid"]
170-
Log.debug("Not a valid slave id - {}, ignoring!!", header_txt)
171-
self.resetFrame()
172-
else:
173-
Log.debug("Frame check failed, ignoring!!")
174-
self.resetFrame()
175-
else:
164+
if not self.isFrameReady():
176165
if len(self._buffer):
177166
# Possible error ???
178167
if self._header["len"] < 2:
179168
self._process(callback, error=True)
180169
break
170+
if not self.checkFrame():
171+
Log.debug("Frame check failed, ignoring!!")
172+
self.resetFrame()
173+
continue
174+
if not self._validate_slave_id(slave, single):
175+
header_txt = self._header["uid"]
176+
Log.debug("Not a valid slave id - {}, ignoring!!", header_txt)
177+
self.resetFrame()
178+
continue
179+
self._process(callback)
181180

182181
def _process(self, callback, error=False):
183182
"""Process incoming packets irrespective error condition."""

pymodbus/framer/tls_framer.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -126,16 +126,16 @@ def processIncomingPacket(self, data, callback, slave, **kwargs):
126126
Log.debug("Processing: {}", data, ":hex")
127127
self.addToFrame(data)
128128

129-
if self.isFrameReady():
130-
if self.checkFrame():
131-
if self._validate_slave_id(slave, single):
132-
self._process(callback)
133-
else:
134-
Log.debug("Not in valid slave id - {}, ignoring!!", slave)
135-
self.resetFrame()
136-
else:
137-
Log.debug("Frame check failed, ignoring!!")
138-
self.resetFrame()
129+
if not self.isFrameReady():
130+
return
131+
if not self.checkFrame():
132+
Log.debug("Frame check failed, ignoring!!")
133+
self.resetFrame()
134+
return
135+
if not self._validate_slave_id(slave, single):
136+
Log.debug("Not in valid slave id - {}, ignoring!!", slave)
137+
self.resetFrame()
138+
self._process(callback)
139139

140140
def _process(self, callback, error=False):
141141
"""Process incoming packets irrespective error condition."""

0 commit comments

Comments
 (0)