@@ -70,46 +70,6 @@ def decode_data(self, data):
7070 return {"slave" : uid , "fcode" : fcode }
7171 return {}
7272
73-
74- def xx_get_frame_start (self , buffer , slaves , broadcast , skip_cur_frame , function_codes ):
75- """Scan buffer for a relevant frame start."""
76- start = 1 if skip_cur_frame else 0
77- if (buf_len := len (buffer )) < 4 :
78- return buffer , False
79- for i in range (start , buf_len - 3 ): # <slave id><function code><crc 2 bytes>
80- if not broadcast and buffer [i ] not in slaves :
81- continue
82- if (
83- buffer [i + 1 ] not in function_codes
84- and (buffer [i + 1 ] - 0x80 ) not in function_codes
85- ):
86- continue
87- if i :
88- buffer = buffer [i :] # remove preceding trash.
89- return buffer , True
90- if buf_len > 3 :
91- buffer = buffer [- 3 :]
92- return buffer , False
93-
94- def old_check_frame (self , buffer , decoder ):
95- """Check if the next frame is available."""
96- try :
97- self .dev_id = int (buffer [0 ])
98- func_code = int (buffer [1 ])
99- pdu_class = decoder .lookupPduClass (func_code )
100- size = pdu_class .calculateRtuFrameSize (buffer )
101- self .msg_len = size
102-
103- if len (buffer ) < size :
104- raise IndexError
105- frame_size = self .msg_len
106- data = buffer [: frame_size - 2 ]
107- crc = buffer [size - 2 : size ]
108- crc_val = (int (crc [0 ]) << 8 ) + int (crc [1 ])
109- return FramerRTU .check_CRC (data , crc_val )
110- except (IndexError , KeyError , struct .error ):
111- return False
112-
11373 def frameProcessIncomingPacket (self , _single , callback , slave , tid = None ):
11474 """Process new packet pattern."""
11575 broadcast = not slave [0 ]
@@ -122,7 +82,8 @@ def frameProcessIncomingPacket(self, _single, callback, slave, tid=None):
12282 if not ok :
12383 Log .debug ("Frame - not ready" )
12484 break
125- if not self .old_check_frame (self ._buffer , self .decoder ):
85+ self .dev_id , self .msg_len , ok = self .message_handler .old_check_frame (self ._buffer , self .msg_len , self .decoder )
86+ if not ok :
12687 Log .debug ("Frame check failed, ignoring!!" )
12788 x = self ._buffer
12889 self .resetFrame ()
0 commit comments