import serial class GridEye(object): def __init__(self, port, baudrate=115200): self.serial = serial.Serial(port, baudrate, timeout=0.1) def readData(self): datas = [] for i in range(4): retry = True while retry: self.serial.reset_input_buffer() self.serial.reset_output_buffer() self.serial.write(bytes([ord('0')+i])) raw_data = self.serial.read(64*5+3) if raw_data.split(b':')[0] != bytes([ord('0')+i]): continue data = [int(x, 16)*0.25 for x in raw_data.split()[1:]] #data = self.serial.read(64*5+3) if b'FFFF' not in data: retry = False datas.append(data) return datas