from m5stack import *
from m5ui import *
from uiflow import *
import time

setScreenColor(0x111111)


seq = None
temper = None
row = None
t_map = None
col = None
t_map_target = None
int_temper = None
tem = None
hex_color = None
i = None
one_temper_low8 = None
k = None
one_temper_high8 = None
j = None
one_temper = None



label0 = M5TextBox(75, 112, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label1 = M5TextBox(75, 145, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(0, 112, "RecDLen:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(0, 145, "T_DLen:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(7, 176, "Max_T:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label5 = M5TextBox(75, 176, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)

import math


def upRange(start, stop, step):
  while start <= stop:
    yield start
    start += abs(step)

def downRange(start, stop, step):
  while start >= stop:
    yield start
    start -= abs(step)

# 描述该功能...
def draw(seq, temper):
  global row, t_map, col, t_map_target, int_temper, tem, hex_color, i, one_temper_low8, k, one_temper_high8, j, one_temper, uart1
  row = math.floor(seq / 32)
  col = seq % 32
  int_temper = math.floor(temper)
  hex_color = (int_temper << 16) + (5 << 8) + 5
  lcd.pixel(row, col, 0xffffff)



uart1 = machine.UART(1, tx=0, rx=26)
uart1.init(115200, bits=8, parity=None, stop=1)
t_map = []
t_map_target = []
tem = 0
while True:
  if uart1.any():
    t_map = uart1.read(1544)
    i_end = float(len(t_map) - 10)
    for i in (0 <= i_end) and upRange(0, i_end, 2) or downRange(0, i_end, 2):
      one_temper_low8 = int(t_map[int((i + 5) - 1)])
      one_temper_high8 = int(t_map[int((i + 6) - 1)])
      one_temper = (one_temper_high8 * 256 + one_temper_low8) / 100
      t_map_target.insert(int((i + 1) - 1), one_temper)
    k = 200
    for j in t_map_target:
      if j > tem:
        tem = j
      k = k + 1
      draw(k, j)
    label0.setText(str(len(t_map)))
    label1.setText(str(len(t_map_target)))
    label5.setText(str(tem))
    print(t_map_target)
    t_map_target = []
    tem = 0
    wait_ms(150)
  wait_ms(2)