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