表盘整合到主菜单
authorp15692025051 <846603105@qq.com>
Mon, 17 Apr 2023 12:22:30 +0000 (20:22 +0800)
committerp15692025051 <846603105@qq.com>
Mon, 17 Apr 2023 12:22:30 +0000 (20:22 +0800)
3.code/1.watch/2.code/ui_WatchFaceScreen.py
3.code/1.watch/2.code/ui_main_menu.py

index 0ce62bd..7ecebe8 100644 (file)
@@ -4,7 +4,7 @@ import lvgl as lv
 from ext import EventMesh
 import osTimer
 from ext import constants
-from ext.ui import Screen
+from ext.ui import Screen,style_screen
 
 style_font_youyuan_20 = lv.style_t()
 style_font_youyuan_20.init()
@@ -13,20 +13,23 @@ style_font_youyuan_20.set_text_font_v2("font_20.bin",20,0)
 
 class Watchface2():
     NAME = "Watchface2"
-    # # #表盘1
-    def __init__(self): 
+    # # #表盘2
+    def __init__(self,main_menu): 
         print("Watchface2:__init__")
-
-        self.meta = lv.obj()
+        
+        self.meta = lv.obj(main_menu)
+        self.meta.set_size(240,320)
+        # self.meta.set_pos(0,0)
         self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # create style watchface_default
-        self.watchface_default = lv.style_t()
-        self.watchface_default.init()
-        self.watchface_default.set_bg_color(lv.color_make(0x00,0x00,0x00))
-        self.watchface_default.set_bg_opa(255)
+        # # create style watchface_default
+        # self.watchface_default = lv.style_t()
+        # self.watchface_default.init()
+        # self.watchface_default.set_bg_color(lv.color_make(0x00,0x00,0x00))
+        # self.watchface_default.set_bg_opa(255)
         # add style for watchface
-        self.meta.add_style(self.watchface_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
+        self.meta.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
+        
+        # create style style_watchface_img_default
         self.style_watchface_img_default = lv.style_t()
         self.style_watchface_img_default.init()
         self.style_watchface_img_default.set_img_recolor(lv.color_make(0xff,0xff,0xff))
@@ -36,7 +39,7 @@ class Watchface2():
         #状态栏
         
         self.watchface_mpsignal_img = lv.img(self.meta)
-        self.watchface_mpsignal_img.set_pos(int(0),int(0))
+        self.watchface_mpsignal_img.set_pos(int(20),int(0))
         self.watchface_mpsignal_img.set_size(24,17)
         self.watchface_mpsignal_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface_mpsignal_img.add_flag(lv.obj.FLAG.CLICKABLE)
@@ -52,100 +55,312 @@ class Watchface2():
         self.watchface_res_stat_battery_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
 
         self.watchface_res_stat_charge_in_img = lv.img(self.meta)
-        self.watchface_res_stat_charge_in_img.set_pos(int(190),int(0))
-        self.watchface_res_stat_charge_in_img.set_size(10,18)
+        self.watchface_res_stat_charge_in_img.set_pos(int(180),int(0))
+        self.watchface_res_stat_charge_in_img.set_size(6,16)
         self.watchface_res_stat_charge_in_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface_res_stat_charge_in_img.add_flag(lv.obj.FLAG.CLICKABLE)
         self.watchface_res_stat_charge_in_img.set_src("E:/static/charge_in.png")
         # add style for watchface_res_stat_charge_in_img
         self.watchface_res_stat_charge_in_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
+        
+        #主图片
+        self.watchface1_bg_img = lv.img(self.meta)
+        self.watchface1_bg_img.set_pos(int(50),int(50))
+        self.watchface1_bg_img.set_size(140,140)
+        self.watchface1_bg_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_bg_img.add_flag(lv.obj.FLAG.CLICKABLE)
+        self.watchface1_bg_img.set_src("E:/static/time_finish.png")
+        self.watchface1_bg_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
         #时间
-        x = 10
-        y = 60
+        x = 40
+        y = 80
         self.watchface1_time1_img = lv.img(self.meta)
         self.watchface1_time1_img.set_pos(int(x),int(y))
-        self.watchface1_time1_img.set_size(56,56)
+        self.watchface1_time1_img.set_size(36,44)
         self.watchface1_time1_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface1_time1_img.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.watchface1_time1_img.set_src("E:/static/watch_plate/style_2/time/1.png")
+        self.watchface1_time1_img.set_src("E:/static/watch_plate/style_1/time/1.png")
         self.watchface1_time1_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
         
         self.watchface1_time2_img = lv.img(self.meta)
-        self.watchface1_time2_img.set_pos(int(x+60),int(y))
-        self.watchface1_time2_img.set_size(56,56)
+        self.watchface1_time2_img.set_pos(int(x+36),int(y))
+        self.watchface1_time2_img.set_size(36,44)
         self.watchface1_time2_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface1_time2_img.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.watchface1_time2_img.set_src("E:/static/watch_plate/style_2/time/3.png")
+        self.watchface1_time2_img.set_src("E:/static/watch_plate/style_1/time/3.png")
         self.watchface1_time2_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
 
+        self.watchface1_time3_img = lv.img(self.meta)
+        self.watchface1_time3_img.set_pos(int(x+36+36+4),int(y+11))
+        self.watchface1_time3_img.set_size(8,24)
+        self.watchface1_time3_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_time3_img.add_flag(lv.obj.FLAG.CLICKABLE)
+        self.watchface1_time3_img.set_src("E:/static/watch_plate/style_1/time/colon.png")
+        self.watchface1_time3_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
         self.watchface1_time4_img = lv.img(self.meta)
-        self.watchface1_time4_img.set_pos(int(x),int(y + 5 + 56))
-        self.watchface1_time4_img.set_size(56,56)
+        self.watchface1_time4_img.set_pos(int(x+36+36+4+12),int(y))
+        self.watchface1_time4_img.set_size(36,44)
         self.watchface1_time4_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface1_time4_img.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.watchface1_time4_img.set_src("E:/static/watch_plate/style_2/time/2.png")
+        self.watchface1_time4_img.set_src("E:/static/watch_plate/style_1/time/2.png")
         self.watchface1_time4_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
 
         self.watchface1_time5_img = lv.img(self.meta)
-        self.watchface1_time5_img.set_pos(int(x+60),int(y+5+56))
-        self.watchface1_time5_img.set_size(56,56)
+        self.watchface1_time5_img.set_pos(int(x+36+36+4+12+36),int(y))
+        self.watchface1_time5_img.set_size(36,44)
         self.watchface1_time5_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface1_time5_img.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.watchface1_time5_img.set_src("E:/static/watch_plate/style_2/time/3.png")
+        self.watchface1_time5_img.set_src("E:/static/watch_plate/style_1/time/3.png")
         self.watchface1_time5_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
+        # create style self.watchface1_style_default
+        self.watchface1_style_default = lv.style_t()
+        self.watchface1_style_default.init()
+        self.watchface1_style_default.set_radius(0)
+        self.watchface1_style_default.set_bg_color(lv.color_make(0x21,0x95,0xf6))
+        self.watchface1_style_default.set_bg_grad_color(lv.color_make(0x21,0x95,0xf6))
+        self.watchface1_style_default.set_bg_grad_dir(lv.GRAD_DIR.NONE)
+        self.watchface1_style_default.set_bg_opa(0)
+        self.watchface1_style_default.set_border_color(lv.color_make(0x00,0x00,0x00))
+        self.watchface1_style_default.set_border_width(0)
+        self.watchface1_style_default.set_border_opa(255)
+        self.watchface1_style_default.set_pad_left(0)
+        self.watchface1_style_default.set_pad_right(0)
+        self.watchface1_style_default.set_pad_top(0)
+        self.watchface1_style_default.set_pad_bottom(0)
+        self.watchface1_style_default.set_text_font_v2("font_18.bin",18,0) #将外部字体库与该style对象绑定
+        #日期
+        self.watchface1_date = lv.spangroup(self.meta)
+        self.watchface1_date.set_pos(int(24),int(131))
+        self.watchface1_date.set_size(84,25)
+        self.watchface1_date.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_date.set_align(lv.TEXT_ALIGN.LEFT)
+        self.watchface1_date.set_overflow(lv.SPAN_OVERFLOW.CLIP)
+        self.watchface1_date.set_mode(lv.SPAN_MODE.BREAK)
+        self.watchface1_date_span = self.watchface1_date.new_span()
+        self.watchface1_date_span.set_text("12月9日")
+        self.watchface1_date_span.style.set_text_color(lv.color_make(0xe0,0xd7,0xd7))
+        self.watchface1_date_span.style.set_text_decor(lv.TEXT_DECOR.NONE)
+        self.watchface1_date_span.style.set_size(100)
+        self.watchface1_date.refr_mode()
+        
+        # add style for main_style_1_spangroup_date
+        self.watchface1_date.add_style(self.watchface1_style_default, lv.PART.MAIN|lv.STATE.DEFAULT)
         #星期
+        self.watchface1_week = lv.spangroup(self.meta)
+        self.watchface1_week.set_pos(int(29),int(166))
+        self.watchface1_week.set_size(80,25)
+        self.watchface1_week.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_week.set_align(lv.TEXT_ALIGN.LEFT)
+        self.watchface1_week.set_overflow(lv.SPAN_OVERFLOW.CLIP)
+        self.watchface1_week.set_mode(lv.SPAN_MODE.BREAK)
+        self.watchface1_week_span = self.watchface1_week.new_span()
+        self.watchface1_week_span.set_text("星期四")
+        self.watchface1_week_span.style.set_text_color(lv.color_make(0xee,0xe7,0xe7))
+        self.watchface1_week_span.style.set_text_decor(lv.TEXT_DECOR.NONE)
+        self.watchface1_week.refr_mode()
+        # add style for main_style_1_spangroup_week
+        self.watchface1_week.add_style(self.watchface1_style_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+        
+        # #阴历
+        # self.watchface1_lunar_calendar = lv.spangroup(self.meta)
+        # self.watchface1_lunar_calendar.set_pos(int(124),int(131))
+        # self.watchface1_lunar_calendar.set_size(110,17)
+        # self.watchface1_lunar_calendar.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        # self.watchface1_lunar_calendar.set_align(lv.TEXT_ALIGN.LEFT)
+        # self.watchface1_lunar_calendar.set_overflow(lv.SPAN_OVERFLOW.CLIP)
+        # self.watchface1_lunar_calendar.set_mode(lv.SPAN_MODE.BREAK)
+        # self.watchface1_lunar_calendar_span = self.watchface1_lunar_calendar.new_span()
+        # self.watchface1_lunar_calendar_span.set_text("三月初三")
+        # self.watchface1_lunar_calendar_span.style.set_text_color(lv.color_make(0xee,0xe7,0xe7))
+        # self.watchface1_lunar_calendar_span.style.set_text_decor(lv.TEXT_DECOR.NONE)
+        # self.watchface1_lunar_calendar.refr_mode()
+        # # add style for main_style_1_spangroup_week
+        # self.watchface1_lunar_calendar.add_style(self.watchface1_style_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+        
+        #计步
+        self.watchface1_step_img = lv.img(self.meta)
+        self.watchface1_step_img.set_pos(int(130),int(160))
+        self.watchface1_step_img.set_size(26,24)
+        self.watchface1_step_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_step_img.add_flag(lv.obj.FLAG.CLICKABLE)
+        self.watchface1_step_img.set_src("E:/static/watch_plate/style_1/step.png")
+        self.watchface1_step_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+        
+        self.watchface1_step_txt = lv.spangroup(self.meta)
+        self.watchface1_step_txt.set_pos(int(170),int(163))
+        self.watchface1_step_txt.set_size(70,25)
+        self.watchface1_step_txt.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_step_txt.set_align(lv.TEXT_ALIGN.LEFT)
+        self.watchface1_step_txt.set_overflow(lv.SPAN_OVERFLOW.CLIP)
+        self.watchface1_step_txt.set_mode(lv.SPAN_MODE.BREAK)
+        self.watchface1_step_span = self.watchface1_step_txt.new_span()
+        self.watchface1_step_span.set_text("0")
+        self.watchface1_step_span.style.set_text_color(lv.color_make(0xee,0xe7,0xe7))
+        self.watchface1_step_span.style.set_text_decor(lv.TEXT_DECOR.NONE)
+        #self.watchface1_week_step_span.style.set_text_font(lv.font_harmony_19)
+        self.watchface1_step_txt.refr_mode()
+        # add style for main_style_1_spangroup_week
+        self.watchface1_step_txt.add_style(self.watchface1_style_default, lv.PART.MAIN|lv.STATE.DEFAULT)
 
-        self.weekday = lv.img(self.meta)
-        self.weekday.set_pos(15,190)
-        self.weekday.set_size(56,56)
-        self.weekday.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        self.weekday.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.weekday.set_src("E:/static/watch_plate/style_2/week/fri.png")
-        self.weekday.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-        #日期
+        #心律
+        self.watchface1_HB_img = lv.img(self.meta)
+        self.watchface1_HB_img.set_pos(int(53),int(198))
+        self.watchface1_HB_img.set_size(30,27)
+        self.watchface1_HB_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_HB_img.add_flag(lv.obj.FLAG.CLICKABLE)
+        self.watchface1_HB_img.set_src("E:/static/watch_plate/style_1/heart.png")
+        self.watchface1_HB_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
         
-        self.date = lv.label(self.meta)
-        self.date.set_pos()
-        self.date.set_size()
-        self.date.set_long_mode(lv.label.LONG.WRAP)
-        self.date.set_text()
-        self.date.set_style_text_align(lv.TEXT_ALIGN.CENTER,0)
-        self.date.add_style(style_font_youyuan_20,lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #阴历
-        self.date = lv.label(self.meta)
-        self.date.set_pos()
-        self.date.set_size()
-        self.date.set_long_mode(lv.label.LONG.WRAP)
-        self.date.set_text()
-        self.date.set_style_text_align(lv.TEXT_ALIGN.CENTER,0)
-        self.date.add_style(style_font_youyuan_20,lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #天气logo
-        self.weather = lv.img(self.meta)
-        self.weather.set_pos(0, 50)
-        self.weather.set_size(240, 96)
-        self.weather.set_src("E:/static/IMAGE_HEART_ONLY_TEST_DONE.png")
-        #温度
+        self.watchface1_HB_txt = lv.spangroup(self.meta)
+        self.watchface1_HB_txt.set_pos(int(55),int(235))
+        self.watchface1_HB_txt.set_size(80,25)
+        self.watchface1_HB_txt.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_HB_txt.set_align(lv.TEXT_ALIGN.LEFT)
+        self.watchface1_HB_txt.set_overflow(lv.SPAN_OVERFLOW.CLIP)
+        self.watchface1_HB_txt.set_mode(lv.SPAN_MODE.BREAK)
+        self.watchface1_HB_span = self.watchface1_HB_txt.new_span()
+        self.watchface1_HB_span.set_text("0")
+        self.watchface1_HB_span.style.set_text_color(lv.color_make(0xee,0xe7,0xe7))
+        self.watchface1_HB_span.style.set_text_decor(lv.TEXT_DECOR.NONE)
+        #self.watchface1_week_HB_span.style.set_text_font(lv.font_harmony_19)
+        self.watchface1_HB_txt.refr_mode()
+        # add style for main_style_1_spangroup_week
+        self.watchface1_HB_txt.add_style(self.watchface1_style_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+        #血氧
+        self.watchface1_SPO2_img = lv.img(self.meta)
+        self.watchface1_SPO2_img.set_pos(int(161),int(193))
+        self.watchface1_SPO2_img.set_size(23,32)
+        self.watchface1_SPO2_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_SPO2_img.add_flag(lv.obj.FLAG.CLICKABLE)
+        self.watchface1_SPO2_img.set_src("E:/static/watch_plate/style_1/blood.png")
+        self.watchface1_SPO2_img.add_style(self.style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+        
+        self.watchface1_SPO2_txt = lv.spangroup(self.meta)
+        self.watchface1_SPO2_txt.set_pos(int(160),int(235))
+        self.watchface1_SPO2_txt.set_size(80,25)
+        self.watchface1_SPO2_txt.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.watchface1_SPO2_txt.set_align(lv.TEXT_ALIGN.LEFT)
+        self.watchface1_SPO2_txt.set_overflow(lv.SPAN_OVERFLOW.CLIP)
+        self.watchface1_SPO2_txt.set_mode(lv.SPAN_MODE.BREAK)
+        self.watchface1_SPO2_span = self.watchface1_SPO2_txt.new_span()
+        self.watchface1_SPO2_span.set_text("0")
+        self.watchface1_SPO2_span.style.set_text_color(lv.color_make(0xee,0xe7,0xe7))
+        self.watchface1_SPO2_span.style.set_text_decor(lv.TEXT_DECOR.NONE)
+        #self.watchface1_week_SPO2_span.style.set_text_font(lv.font_harmony_19)
+        self.watchface1_SPO2_txt.refr_mode()
+        # add style for main_style_1_spangroup_week
+        self.watchface1_SPO2_txt.add_style(self.watchface1_style_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+       
+
+    def initialization(self):    
+        #获取信号
+        signal = EventMesh.publish("screen_get_sig")
+        if signal:
+            self.__signal(None, signal)
+        # 获取电池电量
+        battery = EventMesh.publish("screen_get_battery")
+        if battery:
+            self.__battery(None, battery)
+        time = EventMesh.publish("screen_get_time")
+        #print("publish_time:"+time)
+        if time:
+            self.__time(None, time)
+        hrValue = EventMesh.publish("get_old_hr_data")
+        self.__oldHrValue(None, hrValue)
+
+        spo2Value = EventMesh.publish("get_old_spo2_data")
+        self.__oldSpo2Value(None, spo2Value)
+        
+
+    def get_step(self,event,msg):
+        # print("main get_step msg:{}".format(msg))
+        self.step = msg[0]
+        self.watchface1_step_span.set_text(str(self.step))
+
+
+    def timerout_update(self):
+        #获取信号
+        signal = EventMesh.publish("screen_get_sig")
+        if signal:
+            self.__signal(None, signal)
+        # 获取电池电量
+        battery = EventMesh.publish("screen_get_battery")
+        if battery:
+            self.__battery(None, battery)
+         
+        time = EventMesh.publish("screen_get_time")
+        #print("publish_time:"+time)
+        if time:
+            self.__time(None, time)
+
+        hrValue = EventMesh.publish("get_old_hr_data")
+        self.__oldHrValue(None, hrValue)
+
+        spo2Value = EventMesh.publish("get_old_spo2_data")
+        self.__oldSpo2Value(None, spo2Value)
+
+    def __time(self, event, msg):
+        #时间
+        hour1_chose = (msg[0][0])//10%10
+        hour2_chose = (msg[0][0])%10
+        min1_chose = (msg[0][1])//10%10
+        min2_chose = (msg[0][1])%10
+        self.watchface1_time1_img.set_src("E:/static/watch_plate/style_1/time/%d.png"%(hour1_chose))
+        self.watchface1_time2_img.set_src("E:/static/watch_plate/style_1/time/%d.png"%(hour2_chose))
+        self.watchface1_time4_img.set_src("E:/static/watch_plate/style_1/time/%d.png"%(min1_chose))
+        self.watchface1_time5_img.set_src("E:/static/watch_plate/style_1/time/%d.png"%(min2_chose))
+        self.watchface1_date_span.set_text(msg[2])#日期
+        self.watchface1_week_span.set_text(msg[3])   #星期
+
+    def __signal(self, event, msg):
+        #print("__signal_cb:",str(msg))
+        # 信号强度值范围0 ~ 31,值越大表示信号强度越好
+        #print("__signal_cb:{}".format(msg//8))
+        if msg:
+            if msg >= 0 and msg<=31 :
+                self.watchface_mpsignal_img.set_src("E:/static/mpsignal{}.png".format(msg//8))
+            else :
+                self.watchface_mpsignal_img.set_src("E:/static/mpsignal5.png") 
+
+    def __battery(self, event, msg):
+        #print("__battery_cb:",str(msg))
+        #print(msg)
+        if msg[0] == '1':
+            self.watchface_res_stat_charge_in_img.set_src("E:/static/charge_in.png")
+        else:
+            self.watchface_res_stat_charge_in_img.set_src("E:/static/charge_in1.png")
+
+        self.watchface_res_stat_battery_img.set_src("E:/static/vbat_%d.png"%(msg[1]))#"E:/vbat_60.png"
+        pass
+
+    def __oldHrValue(self, event, msg):
+        self.watchface1_HB_span.set_text(str(msg))
+    
+    def __oldSpo2Value(self, event, msg):
+        self.watchface1_SPO2_span.set_text(str(msg))
+
 
 
 class Watchface1():
     NAME = "Watchface1"
     # # #表盘1
-    def __init__(self): 
+    def __init__(self,main_menu): 
         print("Watchface1:__init__")
-
-        self.meta = lv.obj()
+        
+        self.meta = lv.obj(main_menu)
+        self.meta.set_size(240,320)
+        #self.meta.set_pos(0,0)
         self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # create style watchface_default
-        self.watchface_default = lv.style_t()
-        self.watchface_default.init()
-        self.watchface_default.set_bg_color(lv.color_make(0x00,0x00,0x00))
-        self.watchface_default.set_bg_opa(255)
+        # # create style watchface_default
+        # self.watchface_default = lv.style_t()
+        # self.watchface_default.init()
+        # self.watchface_default.set_bg_color(lv.color_make(0x00,0x00,0x00))
+        # self.watchface_default.set_bg_opa(255)
         # add style for watchface
-        self.meta.add_style(self.watchface_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+        self.meta.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
         
         # create style style_watchface_img_default
         self.style_watchface_img_default = lv.style_t()
@@ -157,7 +372,7 @@ class Watchface1():
         #状态栏
         
         self.watchface_mpsignal_img = lv.img(self.meta)
-        self.watchface_mpsignal_img.set_pos(int(40),int(0))
+        self.watchface_mpsignal_img.set_pos(int(20),int(0))
         self.watchface_mpsignal_img.set_size(24,17)
         self.watchface_mpsignal_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface_mpsignal_img.add_flag(lv.obj.FLAG.CLICKABLE)
@@ -307,7 +522,7 @@ class Watchface1():
         
         self.watchface1_step_txt = lv.spangroup(self.meta)
         self.watchface1_step_txt.set_pos(int(170),int(163))
-        self.watchface1_step_txt.set_size(80,25)
+        self.watchface1_step_txt.set_size(70,25)
         self.watchface1_step_txt.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
         self.watchface1_step_txt.set_align(lv.TEXT_ALIGN.LEFT)
         self.watchface1_step_txt.set_overflow(lv.SPAN_OVERFLOW.CLIP)
@@ -461,68 +676,51 @@ class Watchface1():
         self.watchface1_SPO2_span.set_text(str(msg))
 
 
-class WatchFaceScreen(Screen):
+class WatchFace():
     NAME = "watchface"
 
-    def __init__(self):
-        super().__init__()
+    def __init__(self,main_menu):
         #表盘
         self.watchface_list = []
         self.meta = None
         self.watchface_style_num = "Watchface1"
-
         self.timer_update = osTimer()
-        
+        self.main_menu = main_menu
 
     def initialization(self):
         print("watchface INIT !!!!!!!!")
         if self.watchface_list == [] : #第一次初始化
-            self.watchface_list.append( Watchface1())
-
+            self.watchface_list.append( Watchface1(self.main_menu))
+            self.watchface_list.append( Watchface2(self.main_menu))
         for wat in self.watchface_list:
             if wat.NAME == self.watchface_style_num :
                 self.watchface_style = wat
+            wat.meta.add_flag(lv.obj.FLAG.HIDDEN)    #隐藏
         self.meta = self.watchface_style.meta
+        self.watchface_style.meta.clear_flag(lv.obj.FLAG.HIDDEN)#显示
         self.watchface_style.initialization()
+
         EventMesh.subscribe(constants.EVENT.PUSH_STEP,self.watchface_style.get_step)
         self.timer_update.start(10000, 1, self.timerout_update)
-        
-    def post_processor_after_initialization(self):
         EventMesh.subscribe("change_face", self.change_face)
     
 
     def change_face(self, event=None, msg=None):
-        print("change face :",msg)
+        print("change_face :",msg)
         self.watchface_style_num = msg
+        for wat in self.watchface_list:
+            if wat.NAME == self.watchface_style_num :
+                self.watchface_style = wat
+            wat.meta.add_flag(lv.obj.FLAG.HIDDEN)    #隐藏
+        self.meta = self.watchface_style.meta
+        self.watchface_style.meta.clear_flag(lv.obj.FLAG.HIDDEN)#显示
+        self.watchface_style.initialization()
 
     def timerout_update(self, *args, **kwargs):
         self.watchface_style.timerout_update()
         
-
-    
-    
     def Close(self):
         print("watchface Close !!!!!!!!")
         self.timer_update.stop()
         return
-        
-        
-
-    def done_right_to_left(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-        #EventMesh.publish("load_screen", {"screen": "watchface"})
-        #self.timer_update.stop()
-
-    def done_top_to_bottom(self):
-        #EventMesh.publish("load_screen", {"screen": "watchface"})
-        #self.timer_update.stop()
-        EventMesh.publish("load_screen", {"screen": "popup"})
-
-    def done_bottom_to_top(self):
-        EventMesh.publish("load_screen", {"screen": "call_log"})
-        #EventMesh.publish("load_screen", {"screen": "watchface"})
-        #self.timer_update.stop()
-    def btn1_release(self):
-        pass
-    def btn8_press(self):
-        pass
+ 
index c10f2d1..cdf93d0 100644 (file)
@@ -42,7 +42,7 @@ style_btn.init()
 style_btn.set_bg_opa(lv.OPA.TRANSP)
 style_btn.set_shadow_opa(0)
 style_btn.set_border_width(0)
-
+from ext.ui_WatchFaceScreen import WatchFace
 class MainMenuScreen(Screen):
     NAME = "main_menu"
 
@@ -52,29 +52,49 @@ class MainMenuScreen(Screen):
         self.main_menu_list = []
         self.meta = None
         self.main_menu_style_num = "MainMenu2"
+        self.main_menu_WatchFace = None
 
     def initialization(self):
         print("main_menu INIT !!!!!!!!")
         if self.main_menu_list == [] : #第一次初始化
-            self.main_menu_list.append( MainMenu1())
+            #self.main_menu_list.append( MainMenu1())
             self.main_menu_list.append( MainMenu2())
 
         for menu in self.main_menu_list:
             if menu.NAME == self.main_menu_style_num :
                 self.main_menu_style = menu
+            menu.meta.add_flag(lv.obj.FLAG.HIDDEN)    #隐藏
+
+        self.main_menu_style.meta.clear_flag(lv.obj.FLAG.HIDDEN)#显示
+        if self.main_menu_WatchFace == None : #加载表盘
+            self.main_menu_WatchFace = WatchFace(self.main_menu_style.MainMenu_Watchface)
+        self.main_menu_WatchFace.initialization()#初始化表盘
         self.meta = self.main_menu_style.meta
-        self.main_menu_style.initialization()
+        self.main_menu_style.initialization()#初始化菜单
 
     def post_processor_after_instantiation(self):
         EventMesh.subscribe("change_style", self.change_style)
     
 
-    def change_style(self, event=None, msg=None):
+    def change_style(self, event=None, msg=None): #换风格
         print("change style :",msg)
+        self.Close()
+        self.main_menu_WatchFace.delete()
         self.main_menu_style_num = msg
+        for menu in self.main_menu_list:
+            if menu.NAME == self.main_menu_style_num :
+                self.main_menu_style = menu
+            menu.meta.add_flag(lv.obj.FLAG.HIDDEN)    #隐藏
 
+        self.main_menu_style.meta.clear_flag(lv.obj.FLAG.HIDDEN)#显示
+
+        self.main_menu_WatchFace = WatchFace(self.main_menu_style.MainMenu_Watchface)
+        self.main_menu_WatchFace.initialization()#初始化表盘
+        self.meta = self.main_menu_style.meta
+        self.main_menu_style.initialization()#初始化菜单
 
     def Close(self):
+        self.main_menu_WatchFace.Close()
         print("main_menu Close !!!!!!!!")
         return
 
@@ -287,8 +307,11 @@ class MainMenu2():
         self.MainMenu2 = lv.tileview(self.meta)
         self.MainMenu2.set_scrollbar_mode(0)
         self.MainMenu2.add_style(style_MainMenu_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+        #表盘
+        self.MainMenu_Watchface = self.MainMenu2.add_tile(0, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        
         #支付宝
-        self.MainMenu2_alipay = self.MainMenu2.add_tile(0, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_alipay = self.MainMenu2.add_tile(1, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_alipay = lv.img(self.MainMenu2_alipay)
         self.MainMenu2_img_alipay.set_size(160,230)
         self.MainMenu2_img_alipay.set_pos(40,20)
@@ -303,7 +326,7 @@ class MainMenu2():
         # self.label_alipay.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
         # self.label_alipay.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
         #拨号盘
-        self.MainMenu2_phone = self.MainMenu2.add_tile(1, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_phone = self.MainMenu2.add_tile(2, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_phone = lv.img(self.MainMenu2_phone)
         self.MainMenu2_img_phone.set_size(160,230)
         self.MainMenu2_img_phone.set_pos(40,20)
@@ -319,7 +342,7 @@ class MainMenu2():
         # self.label_phone.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #通讯录
-        self.MainMenu2_contacts = self.MainMenu2.add_tile(2, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_contacts = self.MainMenu2.add_tile(3, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_contacts = lv.img(self.MainMenu2_contacts)
         self.MainMenu2_img_contacts.set_size(160,230)
         self.MainMenu2_img_contacts.set_pos(40,20)
@@ -335,7 +358,7 @@ class MainMenu2():
         # self.label_contacts.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #心律检测
-        self.MainMenu2_heartrate = self.MainMenu2.add_tile(3, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_heartrate = self.MainMenu2.add_tile(4, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_heartrate = lv.img(self.MainMenu2_heartrate)
         self.MainMenu2_img_heartrate.set_size(160,230)
         self.MainMenu2_img_heartrate.set_pos(40,20)
@@ -351,7 +374,7 @@ class MainMenu2():
         # self.label_heartrate.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #血样检测
-        self.MainMenu2_spo2 = self.MainMenu2.add_tile(4, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_spo2 = self.MainMenu2.add_tile(5, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_spo2 = lv.img(self.MainMenu2_spo2)
         self.MainMenu2_img_spo2.set_size(160,230)
         self.MainMenu2_img_spo2.set_pos(40,20)
@@ -367,7 +390,7 @@ class MainMenu2():
         # self.label_spo2.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #工具箱
-        self.MainMenu2_toolbox = self.MainMenu2.add_tile(5, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_toolbox = self.MainMenu2.add_tile(6, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_toolbox = lv.img(self.MainMenu2_toolbox)
         self.MainMenu2_img_toolbox.set_size(160,230)
         self.MainMenu2_img_toolbox.set_pos(40,20)
@@ -383,7 +406,7 @@ class MainMenu2():
         # self.label_toolbox.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #设置
-        self.MainMenu2_setting = self.MainMenu2.add_tile(6, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_setting = self.MainMenu2.add_tile(7, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_setting = lv.img(self.MainMenu2_setting)
         self.MainMenu2_img_setting.set_size(160,230)
         self.MainMenu2_img_setting.set_pos(40,20)
@@ -399,7 +422,7 @@ class MainMenu2():
         # self.label_setting.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #体温测量
-        self.MainMenu2_temperature = self.MainMenu2.add_tile(7, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_temperature = self.MainMenu2.add_tile(8, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_temperature = lv.img(self.MainMenu2_temperature)
         self.MainMenu2_img_temperature.set_size(160,230)
         self.MainMenu2_img_temperature.set_pos(40,20)
@@ -415,7 +438,7 @@ class MainMenu2():
         # self.label_temperature.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #微聊
-        self.MainMenu2_wechat = self.MainMenu2.add_tile(8, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+        self.MainMenu2_wechat = self.MainMenu2.add_tile(9, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_wechat = lv.img(self.MainMenu2_wechat)
         self.MainMenu2_img_wechat.set_size(160,230)
         self.MainMenu2_img_wechat.set_pos(40,20)
@@ -441,8 +464,11 @@ class MainMenu2():
         self.MainMenu2_img_spo2.add_event_cb(lambda e: self.img_cb(e, "spo2"), lv.EVENT.CLICKED, None)
         self.MainMenu2_img_temperature.add_event_cb(lambda e: self.img_cb(e, "temperature"), lv.EVENT.CLICKED, None)
         self.MainMenu2_img_alipay.add_event_cb(lambda e: self.img_cb(e, "alipay_open"), lv.EVENT.CLICKED, None)
+        #self.MainMenu2_img_alipay.add_event_cb(lambda e: self.img_cb(e, "Watchface_set"), lv.EVENT.CLICKED, None)
+
     def initialization(self):
-        pass
+        pass#
+
     def img_cb(self, e, msg):
         print("MainMenu2:img_cb:{}".format(msg))
         EventMesh.publish("load_screen", {"screen": "{}".format(msg)})