from machine import RTC
import ujson
import ql_fs
+from ext.ui import style_img,style_screen,style_font_youyuan_20
"""
可以添加/编辑闹钟时间、周期;
最多添加三个闹钟;
style_cont_alarm = lv.style_t()
style_cont_alarm.init()
style_cont_alarm.set_bg_color(lv.color_make(0x22, 0x28, 0x3D))
-style_cont_alarm.set_radius(5)
+style_cont_alarm.set_radius(0)
style_cont_alarm.set_pad_left(0)
style_cont_alarm.set_pad_right(0)
style_cont_alarm.set_pad_top(0)
style_cont_alarm.set_pad_bottom(0)
#字体样式
-style_font_white = lv.style_t()
-style_font_white.init()
-style_font_white.set_text_color(lv.color_make(0xff, 0xff, 0xff))
-style_font_white.set_text_font_v2("font_20.bin",18,0)
-style_font_white.set_border_width(0)
-style_font_white.set_pad_left(0)
-style_font_white.set_pad_right(0)
-style_font_white.set_pad_top(0)
-style_font_white.set_pad_bottom(0)
+# style_font_white = lv.style_t()
+# style_font_white.init()
+# style_font_white.set_text_color(lv.color_make(0xff, 0xff, 0xff))
+# style_font_white.set_text_font_v2("font_20.bin",18,0)
+# style_font_white.set_border_width(0)
+# style_font_white.set_pad_left(0)
+# style_font_white.set_pad_right(0)
+# style_font_white.set_pad_top(0)
+# style_font_white.set_pad_bottom(0)
style_font_yellow = lv.style_t()
style_font_yellow.init()
clk_list_screen1 = lv.obj(clk_list_screen)
clk_list_screen1.center()
clk_list_screen1.set_size(240, 320)
-clk_list_screen1.add_style(style_alarm_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_list_screen1.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-clk_list_title = lv.label(clk_list_screen1)
+clk_list_title_bg= lv.btn(clk_list_screen1)
+clk_list_title_bg.set_size(220,40)
+clk_list_title_bg.set_pos(10,10)
+clk_list_title_bg.add_style(style_cont_alarm, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_list_title_bg.set_ext_click_area(40)
+
+clk_list_title = lv.label(clk_list_title_bg)
clk_list_title.set_pos(0, 15)
clk_list_title.set_size(240, 40)
clk_list_title.set_text("闹钟列表")
clk_list_title.set_long_mode(lv.label.LONG.WRAP)
clk_list_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-clk_list_title.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-clk_list_add_btn = lv.btn(clk_list_screen1)
-clk_list_add_btn.set_pos(180,45)
-clk_list_add_btn.set_size(50,20)
-clk_list_add_btn.add_style(style_alarm_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-clk_list_add = lv.label(clk_list_screen1)
-clk_list_add.set_pos(180, 45)
-clk_list_add.set_size(50, 20)
-clk_list_add.set_text("添加")
-clk_list_add.set_long_mode(lv.label.LONG.WRAP)
-clk_list_add.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-clk_list_add.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
-clk_list_add.set_ext_click_area(15)
+clk_list_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+# clk_list_add_btn = lv.btn(clk_list_screen1)
+# clk_list_add_btn.set_pos(180,45)
+# clk_list_add_btn.set_size(50,20)
+# clk_list_add_btn.add_style(style_alarm_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# clk_list_add = lv.label(clk_list_screen1)
+# clk_list_add.set_pos(180, 45)
+# clk_list_add.set_size(50, 20)
+# clk_list_add.set_text("添加")
+# clk_list_add.set_long_mode(lv.label.LONG.WRAP)
+# clk_list_add.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+# clk_list_add.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+# clk_list_add.set_ext_click_area(15)
clk_list_screen1_1 = lv.obj(clk_list_screen)
clk_list_screen1_1.set_pos(0, 65)
clk_list_screen1_1.set_size(240, 255)
clk_list_screen1_1.add_style(style_alarm_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+no_add_alarm_img = lv.img(clk_list_screen1_1)
+no_add_alarm_img.set_pos(63, 0)
+no_add_alarm_img.set_size(113, 152)
+no_add_alarm_img.set_src("E:/static/IMAGE_IDLE_SCREEN_ALARM_ICON_NEW.jpg")
+no_add_alarm_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+#暂未添加闹钟
+no_add_alarm = lv.label(clk_list_screen1_1)
+no_add_alarm.set_pos(0, 170)
+no_add_alarm.set_size(240, 50)
+no_add_alarm.set_text("闹钟暂未设置")
+no_add_alarm.set_long_mode(lv.label.LONG.WRAP)
+no_add_alarm.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+no_add_alarm.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
# -------------------------------------------clk_edit screen----------------------------------------------------------
clk_edit_screen = lv.obj()
clk_edit_title.set_text("编辑闹钟")
clk_edit_title.set_long_mode(lv.label.LONG.WRAP)
clk_edit_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-clk_edit_title.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_edit_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_edit_time = lv.btn(clk_edit_screen)
clk_edit_time.set_size(224,75)
clk_edit_time_label.set_text("编辑时间")
clk_edit_time_label.set_long_mode(lv.label.LONG.WRAP)
clk_edit_time_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-clk_edit_time_label.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_edit_time_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_edit_weekday = lv.btn(clk_edit_screen)
clk_edit_weekday.set_size(224,75)
clk_edit_weekday_label.set_text("编辑星期")
clk_edit_weekday_label.set_long_mode(lv.label.LONG.WRAP)
clk_edit_weekday_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-clk_edit_weekday_label.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_edit_weekday_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_delete_alarm = lv.btn(clk_edit_screen)
clk_delete_alarm.set_size(224,75)
clk_delete_alarm_label.set_text("删除闹钟")
clk_delete_alarm_label.set_long_mode(lv.label.LONG.WRAP)
clk_delete_alarm_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-clk_delete_alarm_label.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_delete_alarm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
# -------------------------------------------clk_repeat screen----------------------------------------------------------
clk_repeat_screen = lv.obj()
clk_repeat_label.set_size(103, 40)
clk_repeat_label.set_text("星期一")
clk_repeat_label.set_long_mode(lv.label.LONG.DOT)
-clk_repeat_label.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_repeat_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_repeat_label.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
clk_repeat_switch = lv.switch(clk_repeat_btn)
clk_repeat_label1.set_size(103, 40)
clk_repeat_label1.set_text("星期二")
clk_repeat_label1.set_long_mode(lv.label.LONG.DOT)
-clk_repeat_label1.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_repeat_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_repeat_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
clk_repeat_switch1 = lv.switch(clk_repeat_btn1)
clk_repeat_label2.set_size(103, 40)
clk_repeat_label2.set_text("星期三")
clk_repeat_label2.set_long_mode(lv.label.LONG.DOT)
-clk_repeat_label2.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_repeat_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_repeat_label2.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
clk_repeat_label3.set_size(103, 40)
clk_repeat_label3.set_text("星期四")
clk_repeat_label3.set_long_mode(lv.label.LONG.DOT)
-clk_repeat_label3.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_repeat_label3.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_repeat_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
clk_repeat_switch3 = lv.switch(clk_repeat_btn3)
clk_repeat_label4.set_size(103, 40)
clk_repeat_label4.set_text("星期五")
clk_repeat_label4.set_long_mode(lv.label.LONG.DOT)
-clk_repeat_label4.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_repeat_label4.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_repeat_label4.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
clk_repeat_switch4 = lv.switch(clk_repeat_btn4)
clk_repeat_label5.set_size(103, 40)
clk_repeat_label5.set_text("星期六")
clk_repeat_label5.set_long_mode(lv.label.LONG.DOT)
-clk_repeat_label5.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_repeat_label5.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_repeat_label5.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
clk_repeat_switch5 = lv.switch(clk_repeat_btn5)
clk_repeat_label6.set_size(103, 40)
clk_repeat_label6.set_text("星期日")
clk_repeat_label6.set_long_mode(lv.label.LONG.DOT)
-clk_repeat_label6.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+clk_repeat_label6.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
clk_repeat_label6.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
clk_repeat_switch6 = lv.switch(clk_repeat_btn6)
label_ok.set_size(100, 40)
label_ok.set_text("完成")
label_ok.set_long_mode(lv.label.LONG.DOT)
-label_ok.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
+label_ok.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
label_ok.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
#闹钟信息
super().__init__()
self.meta = clk_list_screen
self.clock_list = []
- clk_list_add_btn.add_event_cb(lambda e: self.add_alarm_btn(e),
- lv.EVENT.PRESSED, None)
+ # clk_list_add_btn.add_event_cb(lambda e: self.add_alarm_btn(e),
+ # lv.EVENT.PRESSED, None)
self.weekdays_list = ["日","一","二","三","四","五","六"]
+ EventMesh.subscribe("push_update_alarm_show", self.update_show_info)
+ self.alarm_show_list = lv.obj()
+ self.timer=osTimer()
+
+
def initialization(self):
EventMesh.publish("read_alarminjson")
EventMesh.publish("set_rtc_alarm")
-
print("n闹钟列表初始化!!")
self.alarm_draw_btn()
- def alarm_draw_btn(self):
+ def update_show_info(self,event,msg):
+ EventMesh.publish("read_alarminjson")
+ self.timer.start(1*1000,0,self.alarm_draw_btn)
+
+ def alarm_draw_btn(self,*agrs):
global alarm_list
self.clock_list = alarm_list
- if self.clock_list:
- print("菜单的孩子个数:",clk_list_screen1.get_child_cnt())
- for i ,each in enumerate(self.clock_list):
- print("------刷新闹钟列表噢:",each)
- _btn = lv.btn(clk_list_screen1_1)
- _btn.set_size(224,75)
- _btn.set_pos(8,79*i)
- _btn.add_style(style_cont_alarm, lv.PART.MAIN | lv.STATE.DEFAULT)
- _btn.add_event_cb(lambda e: self.edit_alarm(e),
- lv.EVENT.PRESSED, None)
-
- _btn_label1 = lv.label(_btn)
- _btn_label1.set_pos(50, 0)
- _btn_label1.set_long_mode(lv.label.LONG.DOT)
- _btn_label1.set_size(0, 0)
- _btn_label1.set_text(str(i))
-
- _btn_label2 = lv.label(_btn)
- _btn_label2.set_pos(8, 10)
- _btn_label2.set_size(97, 40)
- _btn_label2.set_text("%02d" % each["hour"] + ":"+"%02d" % each["minute"])
- # _btn_label2.set_text(str(each["days"]))
-
- _btn_label2.set_long_mode(lv.label.LONG.DOT)
- _btn_label2.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
- _btn_label2.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-
- _new_list = sorted(each["days"])
- _output = [self.weekdays_list[x] for x in _new_list]
- _btn_label3 = lv.label(_btn)
- _btn_label3.set_pos(10, 40)
- _btn_label3.set_size(200, 40)
- _btn_label3.set_text(",".join(_output))
- _btn_label3.set_long_mode(lv.label.LONG.DOT)
- _btn_label3.add_style(style_font_white, lv.PART.MAIN | lv.STATE.DEFAULT)
- _btn_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-
- _btn_switch = lv.switch(_btn)
- _btn_switch.set_pos(174, 29)
- _btn_switch.set_size(34, 17)
- _btn_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.INDICATOR)
- _btn_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.INDICATOR| lv.STATE.CHECKED)
- _btn_switch.add_event_cb(lambda e:
- self.switch_event_cb(e),
- lv.EVENT.VALUE_CHANGED,
- None)
-
- _btn_switch.set_style_bg_color(lv.color_make(0xf1, 0xa3, 0x3b),lv.PART.KNOB| lv.STATE.CHECKED)
- _btn_switch.set_style_bg_color(lv.color_make(0x3d, 0x3d, 0x3d),lv.PART.KNOB)
-
- _btn_switch.set_ext_click_area(20)
- if each["enabled"]:
- _btn_switch.add_state(lv.STATE.CHECKED)
- else:
- _btn_switch.clear_state(lv.STATE.CHECKED)
-
- def edit_alarm(self, e):
+ IFEXIST = ql_fs.path_exists("/ext/static/storage_file/alarm_msg.json")
+ if IFEXIST == True:
+ if self.clock_list:
+ # print("nalarm_list:{}".format(alarm_list))
+ no_add_alarm_img.add_flag(lv.obj.FLAG.HIDDEN)
+ no_add_alarm.add_flag(lv.obj.FLAG.HIDDEN)
+ self.alarm_show_list.delete()#先删除一次控件
+ self.alarm_show_list = lv.obj(clk_list_screen)
+ self.alarm_show_list.set_pos(0, 65)
+ self.alarm_show_list.set_size(240, 255)
+ self.alarm_show_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+ self.alarm_show_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+ print("菜单的孩子个数:",clk_list_screen1.get_child_cnt())
+ num = 0
+ for i ,each in enumerate(self.clock_list):
+
+ _btn = lv.btn(self.alarm_show_list)
+ _btn.set_size(230,75)
+ _btn.set_pos(8,79*i)
+ _btn.add_style(style_cont_alarm, lv.PART.MAIN | lv.STATE.DEFAULT)
+ _btn.add_event_cb(lambda e: self.edit_alarm(e),
+ lv.EVENT.CLICKED, None)
+
+ num = each["idx"]
+ # print("------刷新闹钟列表噢:{} num:{}",each,num)
+ _btn_label1 = lv.label(_btn)
+ _btn_label1.set_pos(50, 0)
+ _btn_label1.set_size(0, 0)
+ _btn_label1.set_text(str(num))
+
+ _btn_label2 = lv.label(_btn)
+ _btn_label2.set_pos(8, 10)
+ _btn_label2.set_size(97, 40)
+ _btn_label2.set_text("%02d" % each["hour"] + ":"+"%02d" % each["minute"])
+ # _btn_label2.set_text(str(each["days"]))
+
+ _btn_label2.set_long_mode(lv.label.LONG.DOT)
+ _btn_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+ _btn_label2.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+
+ _new_list = sorted(each["days"])
+ _output = [self.weekdays_list[x] for x in _new_list]
+ _btn_label3 = lv.label(_btn)
+ _btn_label3.set_pos(10, 40)
+ _btn_label3.set_size(200, 40)
+ if len(_new_list) >= 7:
+ _btn_label3.set_text("每天")
+ else:
+ _btn_label3.set_text(",".join(_output))
+ _btn_label3.set_long_mode(lv.label.LONG.DOT)
+ _btn_label3.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+ _btn_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+
+ _btn_switch = lv.switch(_btn)
+ _btn_switch.set_pos(174, 29)
+ _btn_switch.set_size(50, 25)
+ _btn_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.INDICATOR)
+ _btn_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.INDICATOR| lv.STATE.CHECKED)
+ _btn_switch.add_event_cb(lambda e:
+ self.switch_event_cb(e),
+ lv.EVENT.VALUE_CHANGED,
+ None)
+
+ _btn_switch.set_style_bg_color(lv.color_make(0xf1, 0xa3, 0x3b),lv.PART.KNOB| lv.STATE.CHECKED)
+ _btn_switch.set_style_bg_color(lv.color_make(0x3d, 0x3d, 0x3d),lv.PART.KNOB)
+
+ _btn_switch.set_ext_click_area(40)
+ if each["enabled"]:
+ _btn_switch.add_state(lv.STATE.CHECKED)
+ else:
+ _btn_switch.clear_state(lv.STATE.CHECKED)
+ else:
+ no_add_alarm_img.clear_flag(lv.obj.FLAG.HIDDEN)
+ no_add_alarm.clear_flag(lv.obj.FLAG.HIDDEN)
+ self.alarm_show_list.add_flag(lv.obj.FLAG.HIDDEN)
+ else:
+ no_add_alarm_img.clear_flag(lv.obj.FLAG.HIDDEN)
+ no_add_alarm.clear_flag(lv.obj.FLAG.HIDDEN)
+ self.alarm_show_list.add_flag(lv.obj.FLAG.HIDDEN)
+
+ def edit_alarm(self, e):#暂时屏蔽
+ return
idx = int(e.get_target().get_child(0).get_text())
print("edit!!!!!!!!!!!!:",idx)
clock_info = self.clock_list[idx]
clock_info["idx"] = idx
+
EventMesh.publish("load_screen", {"screen": "new_edit_clk","meta": clock_info})
def add_alarm_btn(self, e):
def __init__(self):
super().__init__()
self.meta = clk_edit_screen
- clk_edit_weekday.add_event_cb(lambda e: self.edit_weekday(e), lv.EVENT.PRESSED, None)
- clk_edit_time.add_event_cb(lambda e: self.edit_time(e), lv.EVENT.PRESSED, None)
- clk_delete_alarm.add_event_cb(lambda e: self.delete_alarm(e), lv.EVENT.PRESSED, None)
+ clk_edit_weekday.add_event_cb(lambda e: self.edit_weekday(e), lv.EVENT.CLICKED, None)
+ clk_edit_time.add_event_cb(lambda e: self.edit_time(e), lv.EVENT.CLICKED, None)
+ clk_delete_alarm.add_event_cb(lambda e: self.delete_alarm(e), lv.EVENT.CLICKED, None)
def initialization(self):
print("hahahahh",self.meta_info["idx"])
def delete_alarm(self, e):
-
- clk_list_screen1_1.clean()
-
EventMesh.publish("remove_alarm",self.meta_info)
- self.load_screen(e, {"screen": "clk_list"})
+ EventMesh.publish("load_screen", {"screen": "clk_list"})
def edit_weekday(self,e):
def __init__(self):
super().__init__()
self.meta = clk_time_screen
- alarm_ok.add_event_cb(lambda e: self.handler(e), lv.EVENT.PRESSED, None)
+ # alarm_ok.add_event_cb(lambda e: self.handler(e), lv.EVENT.PRESSED, None)
def initialization(self):
roll_1_v = self.meta_info["hour"]
WT_SEND = "WT_SEND"
WT_RECV = "WT_RECV"
+ REMIND_SEND = "REMIND_SEND"
+ REMIND_RECV = "REMIND_RECV"
+
class EVENT:
CHANNEL_SOCKET_SEND = "CHANNEL_SOCKET_SEND"
global x
while 1:
x += 1
- #print("烧录次数:",str(x))
+ print("烧录次数:",str(x))
if sum_len >= length:
print("sum_len >= length,退出循环")
return
i2c_obj = I2C(I2C.I2C2, I2C.STANDARD_MODE)
ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x14]), 2, bytearray(cmd), 2)
- utime.sleep(1)
+ utime.sleep_ms(100)
#print("烧写固件第一次写命令 ret:{} cmd[0]:{:#X} cmd[1]:{:#X}".format(ret,cmd[0],cmd[1]))
ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x18]), 2, bytearray(data), PER_LEN)
- utime.sleep(1)
+ utime.sleep_ms(100)
#print("烧写固件包 ret : ",ret)
#print("data[0]:{:#X} data[1]:{:#X} data[2]:{:#X} data[510]:{:#X} data[511]:{:#X}".format(data[0],data[1],data[2],data[510],data[511]))
cmd[0] = 0xEE
ret = i2c_obj.write(TP_HYN_I2C_UPDATE_WRITE_ADDR>>1, bytearray([0xa0,0x04]), 2, bytearray(cmd), 1)
#print("烧写固件第二次写命令 ret:{} cmd[0]:{:#X} ".format(ret,cmd[0]))
- utime.sleep(1)
+ utime.sleep_ms(100)
retrycnt = 51
for i in range (retrycnt):
r_data = bytearray(1)
ret = i2c_obj.read(TP_HYN_I2C_UPDATE_READ_ADDR>>1, bytearray([0xa0,0x05]), 2, r_data, 1, 0)
- utime.sleep(1)
+ utime.sleep_ms(100)
#print("烧写固件读数据 ret:{} r_data[0]:{:#X} ".format(ret,r_data[0]))
if r_data[0] == 0x55:
print("r_data[0] = 0x55,break")
lcd_ctrl = Pin(Pin.GPIO18, Pin.OUT, Pin.PULL_DISABLE, 1)
lcd.lcd_init(init_buf, 240, 320, 52000, 1, 4, 0, invalid, displayon, displayoff, None,TESel = True,TEPin = 5)
gpio_backlight = Pin(Pin.GPIO37, Pin.OUT, Pin.PULL_DISABLE, 0)
-gpio_backlight.write(1)
+gpio_backlight.write(0)
LCD_SIZE_W = 240
LCD_SIZE_H = 320
# 启动lvgv线程
lv.tick_inc(5)
lv.task_handler()
+style_screen = lv.style_t()
+style_screen.init()
+style_screen.set_radius(0)
+style_screen.set_bg_color(lv.color_make(0x00, 0x00, 0x00))
+style_screen.set_bg_opa(255)
+style_screen.set_border_width(0)
+style_screen.set_pad_left(0)
+style_screen.set_pad_right(0)
+style_screen.set_pad_top(0)
+style_screen.set_pad_bottom(0)
+#开机画面
+style_font_youyuan_40 = lv.style_t()
+style_font_youyuan_40.init()
+style_font_youyuan_40.set_text_color(lv.color_make(0xff, 0xff, 0xff))
+style_font_youyuan_40.set_text_font_v2("font_40.bin",40,0)
+
+power_on_screen = lv.obj()
+power_on = lv.obj(power_on_screen)
+power_on.center()
+power_on.set_size(240, 320)
+power_on.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+power_on_label = lv.label(power_on)
+power_on_label.set_text("WELCOME")
+power_on_label.align(lv.ALIGN.CENTER, 0, 0)
+power_on_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
+print("power_on_screen init...")
+lv.scr_load(power_on_screen)
+#utime.sleep_ms(2000)
+print("power_on_screen end...")
+gpio_backlight.write(1)
--- /dev/null
+
+
+
+class App(object):
+ def __init__(self):
+ self.managers = []
+
+ def append_manager(self, manager):
+ if isinstance(manager, Abstract):
+ manager.post_processor_after_instantiation()
+ self.managers.append(manager)
+ return self
+
+ def start(self):
+ for manager in self.managers:
+ manager.post_processor_before_initialization()
+ manager.initialization()
+ manager.post_processor_after_initialization()
+
+
+class watchApp(App):
+ def __init__(self):
+ super(watchApp, self).__init__()
+ self.__ui = None
+
+ def set_ui(self, ui):
+ self.__ui = ui
+
+ def start(self):
+ if self.__ui is not None:
+ self.__ui.start()
+ super().start()
+
+
+
+if __name__ == '__main__':
+ import uos
+ import ql_fs
+ if ql_fs.path_exists("/ext") == False:
+ ldev = uos.VfsLfs1(32, 32, 32, "ext_fs",0,3)
+ uos.mount(ldev,'/ext')
+ res = uos.statvfs("/ext")
+ res = list(res)
+ print('总ext空间:{} MB,剩余空间:{} MB'.format((((res[0] * res[2]) / 1024 / 1024)),((res[0] * res[3]) / 1024 / 1024)))
+
+ from ext import EventMesh
+ from ext.common import Abstract
+ from ext.lcd import gpio_backlight,tp_cst816
+ from ext.btn_device_ec800m import BtnDevice
+ from ext.protocol import LK_ProtoCol,PING_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,ProtoColResolver,PHL_ProtoCol
+ import ext.mgr as mgr
+ import ext.ui as _ui
+ from ext.mgr import ConfigStoreManager, LocationManager, SockManager, \
+ NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldHrDataManager
+ from ext.appAlipay import Alipay ,AlipayOpenScreen,Alipay_1_1,Alipay_invite,Alipay_inviting,\
+ Alipay_success,Alipay_paycode,Alipay_pay_success,Alipay_collect,Alipay_parent
+ from ext.ui_WatchFaceScreen import WatchFaceScreen
+ from ext.alarm import ClkListScreen,ClockManager,NewEditClk,CLKTimeScreen,ClkPeriod
+ from ext.ui_main_menu import MainMenuScreen
+ from ext.appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol
+ import ext.ui_setting as _ui_setting
+ # from usr.test_sms import REMIND_ProtoCol
+
+ #from usr.ui_wechat import WechatScreen,TK_ProtoCol
+ btn_device = BtnDevice(tp_cst816)
+ btn_device.start()
+
+ ui = _ui.UI(gpio_backlight)
+ ui.add_screen(WatchFaceScreen())
+ ui.add_screen(_ui.PopupScreen())
+ ui.add_screen(_ui.PhoneScreen())
+ ui.add_screen(MainMenuScreen())
+ ui.add_screen(_ui.HeartrateScreen())
+ ui.add_screen(_ui_setting.SettingScreen())
+ ui.add_screen(_ui.ToolboxScreen())
+ ui.add_screen(_ui.StepScreen())
+ ui.add_screen(_ui.AlarmScreen())
+ ui.add_screen(_ui.CountdownScreen())
+ ui.add_screen(_ui.StopwatchScreen())
+ ui.add_screen(_ui.WeatherScreen())
+ ui.add_screen(_ui.Spo2Screen())
+ ui.add_screen(_ui.TemperatureScreen())
+ ui.add_screen(_ui.ContactsScreen())
+ ui.add_screen(WechatScreen())
+ ui.add_screen(ClkListScreen())
+
+ ui.add_screen(NewEditClk())
+ ui.add_screen(CLKTimeScreen())
+ ui.add_screen(ClkPeriod())
+
+ # ui.add_screen(_ui_setting.LanguageScreen())
+ ui.add_screen(_ui_setting.DialswitchScreen())
+ # ui.add_screen(_ui.ThemeswitchScreen())
+ ui.add_screen(_ui_setting.ImeiScreen())
+ ui.add_screen(_ui_setting.AppScreen())
+ ui.add_screen(_ui_setting.BrightnessScreen())
+ ui.add_screen(_ui_setting.VolumeScreen())
+ ui.add_screen(_ui_setting.RestoreScreen())
+ ui.add_screen(_ui_setting.PoweroffScreen())
+ ui.add_screen(_ui_setting.VersionScreen())
+ ui.add_screen(_ui_setting.UpdateScreen())
+ ui.add_screen(_ui_setting.AlarmvolumeScreen())
+ ui.add_screen(_ui_setting.MsgvolumeScreen())
+ ui.add_screen(_ui_setting.PhoneringScreen())
+ ui.add_screen(_ui.DialingScreen())
+ ui.add_screen(_ui.CallLogScreen())
+ ui.add_screen(AlipayOpenScreen())
+ ui.add_screen(Alipay_1_1())
+ ui.add_screen(Alipay_invite())
+ ui.add_screen(Alipay_inviting())
+ ui.add_screen(Alipay_success())
+ ui.add_screen(Alipay_paycode())
+ ui.add_screen(Alipay_pay_success())
+ ui.add_screen(Alipay_collect())
+ ui.add_screen(Alipay_parent())
+ ui.add_screen(_ui.UIFINDScreen())
+ ui.add_screen(_ui.MsgDetailScreen())
+ ui.add_screen(_ui.IncomingCallScreen())
+ ui.add_screen(_ui.OnCallScreen())
+ # ui.add_screen(_ui.PowerOnScreen())
+ # ui.add_screen(_ui.Setting2Screen())
+ # ui.add_screen(_ui.Setting3Screen())
+
+
+ app = watchApp()
+ app.set_ui(ui)
+ app.append_manager(mgr.BrightNessLevelManager()) \
+ .append_manager(mgr.AlarmVolumeLevelManager()) \
+ .append_manager(mgr.MsgVolumeLevelManager()) \
+ .append_manager(mgr.PhoneVolumeLevelManager()) \
+ .append_manager(mgr.DeviceInfoManager()) \
+ .append_manager(mgr.BatteryManager()) \
+
+ # .append_manager(mgr.StopwatchManager()) \
+ # .append_manager(mgr.CountdownManager()) \
+
+ app.append_manager(Alipay())
+ app.append_manager(ConfigStoreManager())
+ app.append_manager(NetManager())
+ app.append_manager(LocationManager())
+ app.append_manager(AddrBookManager())
+ app.append_manager(mgr.MsgManager())
+ app.append_manager(MsgdetailManager())
+ app.append_manager(mgr.CallLogManager())
+ app.append_manager(mgr.getWeatherDataManager())
+ app.append_manager(PhoneCallingManager())
+ app.append_manager(ClockManager())
+ app.append_manager(getOldHrDataManager())
+
+ pcr = ProtoColResolver()
+ pcr.add_support(LK_ProtoCol())
+ pcr.add_support(PING_ProtoCol())
+ pcr.add_support(KA_ProtoCol())
+ pcr.add_support(UD_ProtoCol())
+ pcr.add_support(CR_ProtoCol())
+ pcr.add_support(FIND_ProtoCol())
+ pcr.add_support(POWEROFF_ProtoCol())
+ pcr.add_support(PHL_ProtoCol())
+ pcr.add_support(TK_ProtoCol())
+ pcr.add_support(MESSAGE_ProtoCol())
+ pcr.add_support(WT_ProtoCol())
+ pcr.add_support(REMIND_ProtoCol())
+ sm = SockManager()
+ sm.add_support_resolver(pcr)
+ app.append_manager(sm)
+ app.start()
+
+ EventMesh.publish("load_screen", {"screen": "watchface"})
+
from ext.common import Abstract
from ext.lcd import gpio_backlight,tp_cst816
from ext.btn_device_ec800m import BtnDevice
- from ext.protocol import LK_ProtoCol,PING_ProtoCol,WT_ProtoCol,UD_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,ProtoColResolver,PHL_ProtoCol
+ from ext.protocol import LK_ProtoCol,PING_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,ProtoColResolver,PHL_ProtoCol
import ext.mgr as mgr
import ext.ui as _ui
from ext.mgr import ConfigStoreManager, LocationManager, SockManager, \
from ext.ui_main_menu import MainMenuScreen
from ext.appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol
import ext.ui_setting as _ui_setting
- # from usr.test_sms import WeatherScreen
+ # from usr.test_sms import REMIND_ProtoCol
#from usr.ui_wechat import WechatScreen,TK_ProtoCol
btn_device = BtnDevice(tp_cst816)
ui.add_screen(_ui.MsgDetailScreen())
ui.add_screen(_ui.IncomingCallScreen())
ui.add_screen(_ui.OnCallScreen())
- ui.add_screen(_ui.PowerOnScreen())
+ # ui.add_screen(_ui.PowerOnScreen())
# ui.add_screen(_ui.Setting2Screen())
# ui.add_screen(_ui.Setting3Screen())
pcr.add_support(TK_ProtoCol())
pcr.add_support(MESSAGE_ProtoCol())
pcr.add_support(WT_ProtoCol())
+ pcr.add_support(REMIND_ProtoCol())
sm = SockManager()
sm.add_support_resolver(pcr)
app.append_manager(sm)
app.start()
- EventMesh.publish("load_screen", {"screen": "PowerOn"})
+ EventMesh.publish("load_screen", {"screen": "watchface"})
msg_weather_content = UnicodeHexStr_To_Utf8Str(msg_weather_content)
# print("msg_date:{} msg_time:{} msg_weather_content:{} msg_type:{} msg_temp:{} msg_min_temp:{} msg_max_temp:{} msg_city:{}".format(msg_date,msg_time,\
# msg_weather_content,msg_type,msg_temp,msg_min_temp,msg_max_temp,msg_city))
- # print("WT_ProtoCol RECV msg:%s"%(msg))
+ print("WT_ProtoCol RECV msg:%s"%(msg))
EventMesh.publish("set_weather_data",[msg_date,msg_time,msg_weather_content,msg_type,msg_temp,msg_min_temp,msg_max_temp,msg_city,1])
EventMesh.publish("updata_weather_show")
EventMesh.publish(constants.PROTOCOL.WT_SEND)
-
+class REMIND_ProtoCol(ProtoCol):
+ """闹钟数据"""
+ TYPE = "REMIND"
+
+
+ def send(self, event, msg):
+ # [SZKW*867387060319491*0008*REMIND]
+ send_data = "SZKW*%s*003*REMIND"%(self.imei)
+ MD5_SIGN = self.pack_MD5_head(send_data)
+ data = "[%s%s]"%(str(MD5_SIGN),send_data)
+ # print("REMIND_ProtoCol:send:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+ def recv(self, event, msg):
+ """
+ @param event: 闹钟数据下发
+ @param msg: 接收到的下行数据
+ """
+ # b'SZKW*860132060004322*0035*REMIND,23-04-06,14:41:06,b6e0d4c6,1,27,-1,40,6DF157335E02'
+ # print("REMIND_ProtoCol RECV msg:%s"%(msg))
+ self.alarm_list = []
+
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp = msg_tmp.split('REMIND,')
+ msg_tmp = msg_tmp[1]
+ num = 0
+ j=0
+ for j in range(0,3):
+ self.alarm_day = []
+ self.alarm_week = []
+ self.alarm_total_data = []
+ self.alarm_total_data = msg_tmp.split(',')[j]
+
+ b = self.alarm_total_data.find('-')
+ if b != -1:
+ alarm_data = self.alarm_total_data.split('-')#-作为分隔符
+ alarm_switch = int(alarm_data[1])#开关
+ alarm_day_num = int(alarm_data[2])#天
+ alarm_time = alarm_data[0]#时间
+ alarm_time_tmp = alarm_time.split(':')#冒号分隔时间 时 分
+ alarm_time_hour = int(alarm_time_tmp[0])
+ alarm_time_min = int(alarm_time_tmp[1])
+ if alarm_day_num == 3:
+ self.alarm_week = alarm_data[3]#星期
+
+ if alarm_day_num == 2:#每一天
+ self.alarm_day = [1,2,3,4,5,6,0]
+ elif alarm_day_num == 3:#自定义
+ for i in range(0,7):
+ if self.alarm_week[i] != '0':
+ self.alarm_day.append(i)
+ self.alarm_list.append({"idx": num, "hour": alarm_time_hour, "minute": alarm_time_min, "days": self.alarm_day, "enabled": alarm_switch})
+ with open("/ext/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd:
+ ujson.dump(self.alarm_list,fd)
+ num+=1
+ if num >= 2:
+ num = 2
+ EventMesh.publish("push_update_alarm_show")
+ EventMesh.publish(constants.PROTOCOL.REMIND_SEND)
+
+
class ProtoColResolver(object):
def __init__(self):
import utime
#-------------------------------------weather-----------------#
-weather_screen = lv.obj()
-weather = lv.obj(weather_screen)
-weather.center()
-weather.set_size(240, 320)
-weather.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-weather_img = lv.img(weather)
-weather_img.set_pos(10, 10)
-weather_img.set_size(135, 120)
-
-weather_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-no_weather_img = lv.img(weather)
-no_weather_img.set_pos(10, 10)
-no_weather_img.set_size(135, 120)
-no_weather_img.set_src("E:/static/update.jpg")
-no_weather_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-weather_tem_label = lv.label(weather)
-weather_tem_label.set_pos(155, 40)
-weather_tem_label.set_size(85, 50)
-weather_tem_label.set_text("_ _C")
-weather_tem_label.set_long_mode(lv.label.LONG.WRAP)
-weather_tem_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-weather_tem_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-weather_detail_label = lv.label(weather)
-weather_detail_label.set_pos(155, 80)
-weather_detail_label.set_size(85, 50)
-weather_detail_label.set_text("-/-")
-weather_detail_label.set_long_mode(lv.label.LONG.WRAP)
-weather_detail_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-weather_detail_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-weather_location_label = lv.label(weather)
-weather_location_label.set_pos(0, 200)
-weather_location_label.set_size(240, 50)
-weather_location_label.set_text("--")
-weather_location_label.set_long_mode(lv.label.LONG.WRAP)
-weather_location_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-weather_location_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-no_connect_label = lv.label(weather)
-no_connect_label.set_pos(0, 200)
-no_connect_label.set_size(240, 40)
-no_connect_label.set_text("找不到服务器")
-no_connect_label.set_long_mode(lv.label.LONG.WRAP)
-no_connect_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-no_connect_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-no_connect_label1 = lv.label(weather)
-no_connect_label1.set_pos(0, 250)
-no_connect_label1.set_size(240, 70)
-no_connect_label1.set_text("请联网后重试")
-no_connect_label1.set_long_mode(lv.label.LONG.WRAP)
-no_connect_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-no_connect_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-class WeatherScreen(Screen):
- NAME = "weather"
-
- def __init__(self):
- super().__init__()
- self.meta = weather_screen
- self.weather_data = {}
- EventMesh.subscribe("updata_weather_show", self.update_weather_data)
-
-
- def post_processor_after_initialization(self):
- EventMesh.publish("updata_weather_show")
-
-
- def update_weather_data(self, event, msg):
-
- connect = EventMesh.publish(constants.EVENT.GET_CONNECT) #获取网络状态
- self.weather_data = EventMesh.publish("get_weather_data")
- if connect != 0:
- no_data = self.weather_data[8]
- if no_data != 0:
- no_weather_img.add_flag(lv.obj.FLAG.HIDDEN)
- weather_img.clear_flag(lv.obj.FLAG.HIDDEN)
- no_connect_label.set_text(" ")
- no_connect_label1.set_text(" ")
- # print("self.weather_data:{}".format(self.weather_data))
- type = self.weather_data[3]
- if type == None:
- weather_img.set_src("E:/static/update.jpg")#天气类型
- else:
- weather_img.set_src("E:/static/{}_weather.jpg".format(type))#天气类型
-
- temp = self.weather_data[4]
- if temp == None:
- weather_tem_label.set_text("_ _C")
- else:
- weather_tem_label.set_text("{}C".format(temp))
-
- date = self.weather_data[0]
- if date != '{}':
- date_month = date.split('-')[1]
- date_day = date.split('-')[2]
- weather_detail_label.set_text("{}/{}".format(date_month,date_day))#天气更新时间
- else:
- weather_detail_label.set_text("-/-")
-
- city = self.weather_data[7]
- if city != '{}':
- weather_location_label.set_text("{}".format(city))#城市
- else:
- weather_location_label.set_text("--")
- else:#已联网未获取到天气数据
- weather_location_label.set_text(" ")
- weather_detail_label.set_text("-/-")
- weather_tem_label.set_text("_ _C")
- no_connect_label.set_text("未获取网络数据")
- no_connect_label1.set_text("请稍候重试")
-
- else:
- weather_location_label.set_text(" ")
- weather_detail_label.set_text("-/-")
- weather_tem_label.set_text("_ _C")
+# weather_screen = lv.obj()
+# weather = lv.obj(weather_screen)
+# weather.center()
+# weather.set_size(240, 320)
+# weather.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# weather_img = lv.img(weather)
+# weather_img.set_pos(10, 10)
+# weather_img.set_size(135, 120)
+
+# weather_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# no_weather_img = lv.img(weather)
+# no_weather_img.set_pos(10, 10)
+# no_weather_img.set_size(135, 120)
+# no_weather_img.set_src("E:/static/update.jpg")
+# no_weather_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# weather_tem_label = lv.label(weather)
+# weather_tem_label.set_pos(155, 40)
+# weather_tem_label.set_size(85, 50)
+# weather_tem_label.set_text("_ _C")
+# weather_tem_label.set_long_mode(lv.label.LONG.WRAP)
+# weather_tem_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+# weather_tem_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# weather_detail_label = lv.label(weather)
+# weather_detail_label.set_pos(155, 80)
+# weather_detail_label.set_size(85, 50)
+# weather_detail_label.set_text("-/-")
+# weather_detail_label.set_long_mode(lv.label.LONG.WRAP)
+# weather_detail_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+# weather_detail_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# weather_location_label = lv.label(weather)
+# weather_location_label.set_pos(0, 200)
+# weather_location_label.set_size(240, 50)
+# weather_location_label.set_text("--")
+# weather_location_label.set_long_mode(lv.label.LONG.WRAP)
+# weather_location_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+# weather_location_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# no_connect_label = lv.label(weather)
+# no_connect_label.set_pos(0, 200)
+# no_connect_label.set_size(240, 40)
+# no_connect_label.set_text("找不到服务器")
+# no_connect_label.set_long_mode(lv.label.LONG.WRAP)
+# no_connect_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+# no_connect_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# no_connect_label1 = lv.label(weather)
+# no_connect_label1.set_pos(0, 250)
+# no_connect_label1.set_size(240, 70)
+# no_connect_label1.set_text("请联网后重试")
+# no_connect_label1.set_long_mode(lv.label.LONG.WRAP)
+# no_connect_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+# no_connect_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# class WeatherScreen(Screen):
+# NAME = "weather"
+
+# def __init__(self):
+# super().__init__()
+# self.meta = weather_screen
+# self.weather_data = {}
+# EventMesh.subscribe("updata_weather_show", self.update_weather_data)
+
+
+# def post_processor_after_initialization(self):
+# EventMesh.publish("updata_weather_show")
+
+
+# def update_weather_data(self, event, msg):
+
+# connect = EventMesh.publish(constants.EVENT.GET_CONNECT) #获取网络状态
+# self.weather_data = EventMesh.publish("get_weather_data")
+# if connect != 0:
+# no_data = self.weather_data[8]
+# if no_data != 0:
+# no_weather_img.add_flag(lv.obj.FLAG.HIDDEN)
+# weather_img.clear_flag(lv.obj.FLAG.HIDDEN)
+# no_connect_label.set_text(" ")
+# no_connect_label1.set_text(" ")
+# # print("self.weather_data:{}".format(self.weather_data))
+# type = self.weather_data[3]
+# if type == None:
+# weather_img.set_src("E:/static/update.jpg")#天气类型
+# else:
+# weather_img.set_src("E:/static/{}_weather.jpg".format(type))#天气类型
+
+# temp = self.weather_data[4]
+# if temp == None:
+# weather_tem_label.set_text("_ _C")
+# else:
+# weather_tem_label.set_text("{}C".format(temp))
+
+# date = self.weather_data[0]
+# if date != '{}':
+# date_month = date.split('-')[1]
+# date_day = date.split('-')[2]
+# weather_detail_label.set_text("{}/{}".format(date_month,date_day))#天气更新时间
+# else:
+# weather_detail_label.set_text("-/-")
+
+# city = self.weather_data[7]
+# if city != '{}':
+# weather_location_label.set_text("{}".format(city))#城市
+# else:
+# weather_location_label.set_text("--")
+# else:#已联网未获取到天气数据
+# weather_location_label.set_text(" ")
+# weather_detail_label.set_text("-/-")
+# weather_tem_label.set_text("_ _C")
+# no_connect_label.set_text("未获取网络数据")
+# no_connect_label1.set_text("请稍候重试")
+
+# else:
+# weather_location_label.set_text(" ")
+# weather_detail_label.set_text("-/-")
+# weather_tem_label.set_text("_ _C")
- no_weather_img.clear_flag(lv.obj.FLAG.HIDDEN)
- weather_img.add_flag(lv.obj.FLAG.HIDDEN)
- no_connect_label.set_text("找不到服务器")
- no_connect_label1.set_text("请联网后重试")
+# no_weather_img.clear_flag(lv.obj.FLAG.HIDDEN)
+# weather_img.add_flag(lv.obj.FLAG.HIDDEN)
+# no_connect_label.set_text("找不到服务器")
+# no_connect_label1.set_text("请联网后重试")
- def done_return(self):
- EventMesh.publish("load_screen", {"screen": "toolbox"})
+# def done_return(self):
+# EventMesh.publish("load_screen", {"screen": "toolbox"})
- def btn1_release(self):
- EventMesh.publish("load_screen", {"screen": "watchface"})
+# def btn1_release(self):
+# EventMesh.publish("load_screen", {"screen": "watchface"})
- def btn8_press(self):
- EventMesh.publish("load_screen", {"screen": "watchface"})
-
-
-
-
-
+# def btn8_press(self):
+# EventMesh.publish("load_screen", {"screen": "watchface"})
+
+class REMIND_ProtoCol(ProtoCol):
+ """闹钟数据"""
+ TYPE = "REMIND"
+
+
+ def send(self, event, msg):
+ # [SZKW*867387060319491*0008*REMIND]
+ send_data = "SZKW*%s*003*REMIND"%(self.imei)
+ MD5_SIGN = self.pack_MD5_head(send_data)
+ data = "[%s%s]"%(str(MD5_SIGN),send_data)
+ # print("REMIND_ProtoCol:send:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+ def recv(self, event, msg):
+ """
+ @param event: 闹钟数据下发
+ @param msg: 接收到的下行数据
+ """
+ # b'SZKW*860132060004322*0035*REMIND,23-04-06,14:41:06,b6e0d4c6,1,27,-1,40,6DF157335E02'
+ # print("REMIND_ProtoCol RECV msg:%s"%(msg))
+ self.alarm_list = []
+
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp = msg_tmp.split('REMIND,')
+ msg_tmp = msg_tmp[1]
+ num = 0
+ j=0
+ for j in range(0,3):
+ self.alarm_day = []
+ self.alarm_week = []
+ self.alarm_total_data = []
+ self.alarm_total_data = msg_tmp.split(',')[j]
+
+ b = self.alarm_total_data.find('-')
+ if b != -1:
+ alarm_data = self.alarm_total_data.split('-')#-作为分隔符
+ alarm_switch = int(alarm_data[1])#开关
+ alarm_day_num = int(alarm_data[2])#天
+ alarm_time = alarm_data[0]#时间
+ alarm_time_tmp = alarm_time.split(':')#冒号分隔时间 时 分
+ alarm_time_hour = int(alarm_time_tmp[0])
+ alarm_time_min = int(alarm_time_tmp[1])
+ if alarm_day_num == 3:
+ self.alarm_week = alarm_data[3]#星期
+
+ if alarm_day_num == 2:#每一天
+ self.alarm_day = [1,2,3,4,5,6,0]
+ elif alarm_day_num == 3:#自定义
+ for i in range(0,7):
+ if self.alarm_week[i] != '0':
+ self.alarm_day.append(i)
+ self.alarm_list.append({"idx": num, "hour": alarm_time_hour, "minute": alarm_time_min, "days": self.alarm_day, "enabled": alarm_switch})
+ with open("/ext/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd:
+ ujson.dump(self.alarm_list,fd)
+ num+=1
+ if num >= 2:
+ num = 2
+ EventMesh.publish("push_update_alarm_show")
+ EventMesh.publish(constants.PROTOCOL.REMIND_SEND)
self.timer.stop()
EventMesh.publish("load_screen", {"screen": "watchface"})
-#开机画面
-style_font_youyuan_40 = lv.style_t()
-style_font_youyuan_40.init()
-style_font_youyuan_40.set_text_color(lv.color_make(0xff, 0xff, 0xff))
-style_font_youyuan_40.set_text_font_v2("font_40.bin",40,0)
-power_on_screen = lv.obj()
-power_on = lv.obj(power_on_screen)
-power_on.center()
-power_on.set_size(240, 320)
-power_on.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-power_on_label = lv.label(power_on)
-power_on_label.set_text("WELCOME")
-power_on_label.align(lv.ALIGN.CENTER, 0, 0)
-power_on_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
+# class PowerOnScreen(Screen):
+# NAME = "PowerOn"
-class PowerOnScreen(Screen):
- NAME = "PowerOn"
+# def __init__(self):
+# super().__init__()
+# self.meta = power_on_screen
+# self.timer = osTimer()
+# def post_processor_after_initialization(self):
+# self.timer.start(2*1000,0,self.update_show)
- def __init__(self):
- super().__init__()
- self.meta = power_on_screen
- self.timer = osTimer()
- def post_processor_after_initialization(self):
- self.timer.start(3*1000,0,self.update_show)
-
- def update_show(self,*agrs):
+# def update_show(self,*agrs):
- EventMesh.publish("load_screen", {"screen": "watchface"})
+# EventMesh.publish("load_screen", {"screen": "watchface"})
class UIFINDScreen(Screen):