串口通讯

class mySerial(Serial):
myIndoorMonitor = indoorMonitor()
myOutdoorMonitor = outdoorMonitor()
def __init__(self, com, baudrate=9600, bytesize=8, parity='N', stopbits=1):
Serial.__init__(self, com, baudrate, bytesize, parity, stopbits)



def receiveMonitorResult(self):
if self.monitorTag == 1:
while self.openTag:
try:
while self.inWaiting() > 0:
myout = self.read_all()
for _ in myout:
tempout = hex(ord(_))
hexout = tempout[-2:].upper() if len(tempout) == 4 else ('0' + tempout[-1]).upper()
if self.indoorRecieveTag:
self.hexOut += (' ' + hexout)
self.hexOut = self.hexOut.strip()
else:
self.hexOut = ''
if len(self.hexOut) > 7 \
and len(self.hexOut.split()) < self.myIndoorMonitor.str2hex(self.hexOut[6:8]):
continue
if len(self.hexOut) < 5:
self.indoorRecieveTag = True
else:
if self.hexOut[:5] in self.indoorMonitorStartCode:
self.indoorRecieveTag = True
else:
self.hexOut = self.hexOut[3:]
if self.myIndoorMonitor.str2hex(self.hexOut[6:8]) == len(self.hexOut.split()):
self.myIndoorMonitor.updateIndoorMonitor(self.hexOut)
self.indoorRecieveTag = False
except SerialException:
pass



# 获取端口号
def get_port_list():
port_list = serial.tools.list_ports.comports()
all_port = []
if len(port_list):
for port in port_list:
port_index = port.description.find('COM')
if port_index != -1:
port = port.description[port_index:port_index+4]
all_port.append(port)
all_port.reverse()
return all_port
posted @ 2022-03-04 17:27  王大老爷  阅读(25)  评论(0编辑  收藏  举报