我试图找到一个长帧内的特定元素,其输出如下:
接收:[' 01',' 03',' 3C',' 00',' 00' ,' 00',' 00',' 00',' 00',' 00',' 00',' 00',' 00',' 00',' 00',' 00', ' 00',' 00',' 00',' 00',' 00',' 00& #39;,' 00',' 4B',' 00',' 00',' 00',& #39; 30',' 30',' 30',' 31',' 30',' 30&# 39;,' 32',' 30',' 4B',' 00',' 00',&# 39; 00',' 30',' 30',' 30',' 30',' 30&#39 ;,' 30',' 30',' 30',' 53',' 4D', ' 41' ,' 52',' 54',' 50',' 00',& #39; 00',' 00',' 00',' 00',' 00',' 00&# 39;,' 00',' 00',' 00',' 7D',' 1F']
这是我的代码的一部分,我试图修改它:
data = []
data.append(CMRead)
data.append((starting_address >> 8) & 0xFF)
data.append(starting_address & 0xFF)
data.append((num >> 8) & 0xFF)
data.append(num & 0xFF)
# opening a communication serial
if not self.Open():
return TIMEOUT
#send frame
if not self.SendFrame(address, data):
self.Close()
return TIMEOUT
#receive frame
if not self.ReceiveFrame(data, 2 + ((num + 7) // 8)):
self.Close()
return TIMEOUT
我需要一种机制来检查接收帧输出中是否有十六进制值' 53'' 4D',' 41' 存在与否,但我还没有。
感谢代码帮助!
答案 0 :(得分:1)
wanted = ['53', '4D', '41']
frames = ['01', '03', '3C', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '4B', '00', '00', '00', '30', '30', '30', '31', '30', '30', '32', '30', '4B', '00', '00', '00', '30', '30', '30', '30', '30', '30', '30', '30', '53', '4D', '41', '52', '54', '50', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '7D', '1F']
captured = [(frame in wanted) for frame in frames]
any_captured = any(captured)