22# pylint: disable=missing-type-doc
33import struct
44import time
5+ from typing import List
56
67from pymodbus .exceptions import (
78 InvalidMessageReceivedException ,
@@ -191,6 +192,15 @@ def populateResult(self, result):
191192 result .slave_id = self ._header ["uid" ]
192193 result .transaction_id = self ._header ["uid" ]
193194
195+ def isFrameIntendedForUs (self , _slaves : List [int ]):
196+ """Check if slave is one we want."""
197+ # slave = self._buffer[0]
198+ # if slaves and slave not in slaves:
199+ # return False
200+
201+ # have a look at _validate_slave_id it does the same
202+ return True
203+
194204 # ----------------------------------------------------------------------- #
195205 # Public Member Functions
196206 # ----------------------------------------------------------------------- #
@@ -217,22 +227,24 @@ def processIncomingPacket(self, data, callback, slave, **kwargs):
217227 self .addToFrame (data )
218228 single = kwargs .get ("single" , False )
219229 while True :
220- if self .isFrameReady ():
221- if self .checkFrame ():
222- if self ._validate_slave_id (slave , single ):
223- self ._process (callback )
224- else :
225- header_txt = self ._header ["uid" ]
226- Log .debug ("Not a valid slave id - {}, ignoring!!" , header_txt )
227- self .resetFrame ()
228- break
229- else :
230- Log .debug ("Frame check failed, ignoring!!" )
231- self .resetFrame ()
232- break
233- else :
230+ if not self .isFrameIntendedForUs (slave ):
231+ self .resetFrame ()
232+ Log .debug (f"Frame not intended for us, ignoring!! - [{ data } ]" )
233+ break
234+ if not self .isFrameReady ():
234235 Log .debug ("Frame - [{}] not ready" , data )
235236 break
237+ if not self .checkFrame ():
238+ Log .debug ("Frame check failed, ignoring!!" )
239+ self .resetFrame ()
240+ break
241+ if not self ._validate_slave_id (slave , single ):
242+ header_txt = self ._header ["uid" ]
243+ Log .debug ("Not a valid slave id - {}, ignoring!!" , header_txt )
244+ self .resetFrame ()
245+ break
246+ self ._process (callback )
247+ Log .debug (f"Frame responded to!! - [{ data } ]" )
236248
237249 def buildPacket (self , message ):
238250 """Create a ready to send modbus packet.
0 commit comments