增加体温协议上传
authord15521469561 <d155214695615@qq.com>
Tue, 16 May 2023 01:57:12 +0000 (09:57 +0800)
committerd15521469561 <d155214695615@qq.com>
Tue, 16 May 2023 01:57:12 +0000 (09:57 +0800)
20 files changed:
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/EventMesh.py
2.sdk/images/customer_fs.bin
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appAlipay.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appFactoryMode.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/constants.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_main_menu.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip
2.sdk/project/K5/usr/main.py
2.sdk/project/K5/usr/static/0_main2_weather.png [deleted file]
2.sdk/project/K5/usr/static/1_main2_weather.png [deleted file]
2.sdk/project/K5/usr/static/2_main2_weather.png [deleted file]
2.sdk/project/K5/usr/static/3_main2_weather.png [deleted file]

index 1b32fbd..c660e42 100644 (file)
@@ -72,3 +72,15 @@ def set_log(log_adapter):
 
 def add_filter(flt):
     event_store.add_filter(flt)
+
+def callback_wrapper(callback):#按键回调
+    def wrapped_callback(*args, **kwargs):
+        try:
+            return callback(*args, **kwargs)
+        except Exception as e:
+            # 在这里处理异常,例如打印错误信息,保存到日志文件,等等。
+            print('Exception in callback:', e)
+            # 如果需要,你可以在这里重新抛出异常
+            # raise
+    return wrapped_callback
+
index 0c73253..baf94f0 100644 (file)
Binary files a/2.sdk/images/customer_fs.bin and b/2.sdk/images/customer_fs.bin differ
index 3cc4089..d3f2b56 100644 (file)
@@ -722,7 +722,7 @@ class ClkListScreen(Screen):
                     _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),
+                    _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_alarm(e)),
                                             lv.EVENT.CLICKED, None)
 
                     num = each["idx"]
@@ -836,9 +836,9 @@ class NewEditClk(Screen):
     def __init__(self):
         super().__init__()
         self.meta = clk_edit_screen
-        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)
+        clk_edit_weekday.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_weekday(e)), lv.EVENT.CLICKED, None)
+        clk_edit_time.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_time(e)), lv.EVENT.CLICKED, None)
+        clk_delete_alarm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.delete_alarm(e)), lv.EVENT.CLICKED, None)
 
     def initialization(self):  
         print("hahahahh",self.meta_info["idx"])
@@ -923,13 +923,13 @@ class ClkPeriod(Screen):
 
         ]
 
-        clk_repeat_switch.add_event_cb(lambda e: self.save_choice(e,1), lv.EVENT.VALUE_CHANGED, None)
-        clk_repeat_switch1.add_event_cb(lambda e: self.save_choice(e,2), lv.EVENT.VALUE_CHANGED, None)
-        clk_repeat_switch2.add_event_cb(lambda e: self.save_choice(e,3), lv.EVENT.VALUE_CHANGED, None)
-        clk_repeat_switch3.add_event_cb(lambda e: self.save_choice(e,4), lv.EVENT.VALUE_CHANGED, None)
-        clk_repeat_switch4.add_event_cb(lambda e: self.save_choice(e,5), lv.EVENT.VALUE_CHANGED, None)
-        clk_repeat_switch5.add_event_cb(lambda e: self.save_choice(e,6), lv.EVENT.VALUE_CHANGED, None)
-        clk_repeat_switch6.add_event_cb(lambda e: self.save_choice(e,0), lv.EVENT.VALUE_CHANGED, None)
+        clk_repeat_switch.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e,1)), lv.EVENT.VALUE_CHANGED, None)
+        clk_repeat_switch1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e,2)), lv.EVENT.VALUE_CHANGED, None)
+        clk_repeat_switch2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e,3)), lv.EVENT.VALUE_CHANGED, None)
+        clk_repeat_switch3.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e,4)), lv.EVENT.VALUE_CHANGED, None)
+        clk_repeat_switch4.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e,5)), lv.EVENT.VALUE_CHANGED, None)
+        clk_repeat_switch5.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e,6)), lv.EVENT.VALUE_CHANGED, None)
+        clk_repeat_switch6.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e,0)), lv.EVENT.VALUE_CHANGED, None)
 
     def initialization(self):
         self.choice_list = self.meta_info["days"]
index 3bfeb3d..bb1195c 100644 (file)
@@ -429,13 +429,13 @@ class Alipay_1_1(Screen):
         super().__init__()
         self.meta = alipay_1_1_screen
         #付款码
-        alipay_imgbtn_3.add_event_cb(lambda e: self.alipay_paycode(e),
+        alipay_imgbtn_3.add_event_cb(lambda e: EventMesh.callback_wrapper(self.alipay_paycode(e)),
                                      lv.EVENT.PRESSED, None)
         #收钱
-        alipay_imgbtn_2.add_event_cb(lambda e: self.alipay_collect(e),
+        alipay_imgbtn_2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.alipay_collect(e)),
                                      lv.EVENT.PRESSED, None) 
         #家长设置
-        alipay_imgbtn_1.add_event_cb(lambda e: self.alipay_parent(e),
+        alipay_imgbtn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.alipay_parent(e)),
                                      lv.EVENT.PRESSED, None)
        
     def initialization(self):
@@ -746,7 +746,7 @@ class Alipay_pay_success(Screen):
     def __init__(self):
         super().__init__()
         self.meta = alipay_pay_success_screen
-        alipay_pay_bg.add_event_cb(lambda e: self.button_cb(e), lv.EVENT.CLICKED, None)
+        alipay_pay_bg.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e)), lv.EVENT.CLICKED, None)
 
     def post_processor_after_initialization(self):
         print("money:",str(self.meta_info))
index 900bd41..68f54ee 100644 (file)
@@ -60,7 +60,7 @@ class FactoryModeScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = factorymode_screen
-        factorymode_location.add_event_cb(lambda e: self.load_screen(e, {"screen": "FactoryModeLocation"}), lv.EVENT.CLICKED, None)
+        factorymode_location.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModeLocation"})), lv.EVENT.CLICKED, None)
     
 
     def done_return(self):
index 82631aa..bba7d93 100644 (file)
@@ -116,9 +116,9 @@ class WechatScreen(Screen):
             self.volum_size = 8
         self.aud.setVolume(self.volum_size)
         self.meta = wechat_screen
-        wechat_press_btn.add_event_cb(lambda e: self.talking(e),
+        wechat_press_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.talking(e)),
                                      lv.EVENT.LONG_PRESSED, None)
-        wechat_press_btn.add_event_cb(lambda e: self.sending(e),
+        wechat_press_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sending(e)),
                                      lv.EVENT.RELEASED, None)
         self.timer = osTimer()
         self.second_timer = osTimer()
@@ -229,7 +229,7 @@ class WechatScreen(Screen):
                             wechat_btn.set_pos(230-self.startWidth,self.startY )
                             wechat_btn.add_style(style_wechat_r_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
                         if value.find("R:") != -1 or value.find("S:") != -1:
-                            wechat_btn.add_event_cb(lambda e: self.play_label(e),
+                            wechat_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.play_label(e)),
                                 lv.EVENT.CLICKED, None)
                         
                         _btn_label1 = lv.label(wechat_btn)
index 67a259e..6fd352a 100644 (file)
@@ -68,6 +68,9 @@ class PROTOCOL:
     BOOTOFF_SEND = "BOOTOFF_SEND"
     BOOTOFF_RECV = "BOOTOFF_RECV"
 
+    WDSTART_SEND ="wdstart_SEND"
+    WDSTART_RECV ="wdstart_RECV"
+
 class EVENT:
     CHANNEL_SOCKET_SEND = "CHANNEL_SOCKET_SEND"
     START_LOCATION = "START_LOCATION" 
index 195b84e..82bb5e2 100644 (file)
@@ -132,12 +132,12 @@ if __name__ == '__main__':
 
     from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
-            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol
+            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol
     import mgr as mgr
     print("init7:{}".format(utime.localtime()))
     
-    from mgr import ConfigStoreManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, \
-    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getStorageDataManager,getBrightnessManager,getHrTimeManager
+    from mgr import ConfigStoreManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager
     print("init8:{}".format(utime.localtime()))
     
     
@@ -180,7 +180,11 @@ if __name__ == '__main__':
     app.append_manager(getStorageDataManager())
     app.append_manager(getUpLoadDataManager())
     app.append_manager(getVolumSizeManager())
+    app.append_manager(getTempTimeManager())
+    app.append_manager(getplayAudiodStateManager())
 
+    print("init44444444444444444444444441:{}".format(utime.localtime()))    
+    
     print("init11:{}".format(utime.localtime()))    
     pcr = ProtoColResolver()
     pcr.add_support(LK_ProtoCol())
@@ -206,11 +210,12 @@ if __name__ == '__main__':
     # pcr.add_support(CENTER_ProtoCol())
     pcr.add_support(CENTER_ProtoCol())
     pcr.add_support(bootoff_ProtoCol())
+    pcr.add_support(WDSTART_ProtoCol())
     sm = SockManager()
     sm.add_support_resolver(pcr)
     app.append_manager(sm)
     app.start()
     print("init12:{}".format(utime.localtime()))
-    #EventMesh.publish("load_screen", {"screen": "FIND"})
+    
 
 
index 246f16e..e754410 100644 (file)
@@ -587,6 +587,11 @@ class DeviceInfoManager(Abstract):
         self.UD_time = 0
         self.upload_time = 0
         self.UD_timeout = 7*60
+
+        self.temp_time = 0
+        self.temp_state = 0
+        self.temp_one_state = 0
+
         self.aud = audio.Audio(0)
         print("DeviceInfoManager:1")
         self.gsensor = SC7A20()
@@ -692,6 +697,8 @@ class DeviceInfoManager(Abstract):
         # EventMesh.publish("time", self.get_time())
         # EventMesh.publish("battery", self.get_battery())
         # EventMesh.publish("signal", self.get_signal())
+
+        
         self.timer_push = 0
         date_tmp = utime.localtime()
         time_tmp = utime.mktime(date_tmp)
@@ -754,6 +761,101 @@ class DeviceInfoManager(Abstract):
         
 
         if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 or battery[1] != 1:
+
+            get_temp_time  = EventMesh.publish("get_temp_time")
+            get_temp_state  = EventMesh.publish("get_temp_state")
+            # print("get_temp_time:{} self.temp_one_state:{}".format(get_temp_time,self.temp_one_state))
+            if get_temp_time != None:#定时测量体温
+                
+                if get_temp_time > 0:
+                    if get_temp_state != None:
+                        if get_temp_state == 0 or get_temp_state == 2 or get_temp_state == 3 :
+                            if (time_tmp-self.temp_time) >= get_temp_time:#大于一个周期的时间,重新赋值
+                                self.temp_one_state = 0
+                                self.temp_state = 0
+                                self.temp_time = time_tmp
+
+                            if self.old_time != get_temp_time:#重复修改测量间隔时间
+                                self.temp_one_state = 0
+                                self.temp_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量 
+                                self.temp_state = 0
+                            self.old_time = get_temp_time
+
+                            if (time_tmp-self.temp_time) == 0 and self.temp_state == 0:#一开始就测量 测量一分钟停止测量体温
+                                self.temp_state = 1
+                                self.temp_one_state = 0
+                                EventMesh.publish("set_temp_state",2)
+                                print("AUTO temp:") 
+                                EventMesh.publish(constants.EVENT.START_TEMP)
+
+                            elif (time_tmp-self.temp_time) >= 60 and self.temp_state == 1:
+                                self.temp_state = 0
+                                self.temp_one_state = 0
+                                temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
+                               
+                                tmp_f = str(temp).split('.')[0] 
+                                tmp_f_tmp = int(tmp_f)
+
+                                tmp_d = str(temp).split('.')[1][:1]
+                                tmp_d_tmp = int(tmp_d)
+                                EventMesh.publish(constants.EVENT.STOP_TEMP)
+                                print("AUTO temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp)) 
+                                EventMesh.publish("set_temp_state",0)
+                                EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
+
+                            if self.temp_state == 0 or get_temp_state == 3:#只有不在测量的时候才测单次的
+                                if get_temp_state == 3:#单次测量
+                                    self.temp_one_state+=1
+                                    if self.temp_one_state == 1:
+                                        EventMesh.publish("set_temp_state",3)
+                                        print("AUTO one temp:1") 
+                                        EventMesh.publish(constants.EVENT.START_TEMP)   
+                                    elif self.temp_one_state > 6:
+                                        self.temp_one_state = 0
+                                        temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
+                                    
+                                        tmp_f = str(temp).split('.')[0] 
+                                        tmp_f_tmp = int(tmp_f)
+
+                                        tmp_d = str(temp).split('.')[1][:1]
+                                        tmp_d_tmp = int(tmp_d)
+                                        EventMesh.publish(constants.EVENT.STOP_TEMP)
+                                        print("once temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp)) 
+                                        EventMesh.publish("set_temp_state",0)
+                                        EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
+                        else:
+                           self.temp_one_state = 0 
+                           self.temp_state = 0
+
+                else:
+                    if self.temp_state != 0:
+                        if self.temp_state == 2:
+                            self.temp_state = 0
+                            EventMesh.publish(constants.EVENT.STOP_TEMP)
+                    if get_temp_state == 0 or get_temp_state == 1:
+                        self.temp_one_state = 0
+
+                    if get_temp_state == 3:#单次测量
+                        self.temp_one_state+=1
+                        if self.temp_one_state == 1:
+                            print("AUTO one temp:2") 
+                            EventMesh.publish("set_temp_state",3)
+                            EventMesh.publish(constants.EVENT.START_TEMP)   
+                        elif self.temp_one_state > 6:
+                            self.temp_one_state = 0
+                            temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
+                        
+                            tmp_f = str(temp).split('.')[0] 
+                            tmp_f_tmp = int(tmp_f)
+
+                            tmp_d = str(temp).split('.')[1][:1]
+                            tmp_d_tmp = int(tmp_d)
+                            EventMesh.publish(constants.EVENT.STOP_TEMP)
+                            print("AUTO once temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp)) 
+                            EventMesh.publish("set_temp_state",0)
+                            EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
+
+
             if hr_time != None:
                 # print("hr......01....{}\r\n".format(hr_time))
                 if hr_time > 0:
@@ -1877,6 +1979,7 @@ class getHrTimeManager(Abstract):
         self.set_time = 0
         self.set_hr = 0 #0关闭 1手动 2 自动测量按照时间间隔测试心率
         self.set_spo2 = 0
+        self.get_temp = 0
         check = ql_fs.path_exists("/ext/static/storage_file/config.json")
         if check == True:
             with open("/ext/static/storage_file/config.json","r") as fd:
@@ -1914,7 +2017,41 @@ class getHrTimeManager(Abstract):
     def get_spo2_state(self, event, msg): 
         return self.set_spo2
     
-        
+#体温
+class getTempTimeManager(Abstract):
+    def __init__(self):
+        self.set_time = 0
+        self.get_temp = 0
+        check = ql_fs.path_exists("/ext/static/storage_file/config.json")
+        if check == True:
+            with open("/ext/static/storage_file/config.json","r") as fd:
+                self.read_data = ujson.load(fd)
+                if self.read_data != {}:
+                    b = str("temp_time") in self.read_data.keys()
+                    if b == True:
+                        self.set_time = self.read_data["temp_time"]   
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("set_temp_time", self.set_temp_time)
+        EventMesh.subscribe("get_temp_time", self.get_temp_time)
+
+        EventMesh.subscribe("set_temp_state", self.set_temp_state)
+        EventMesh.subscribe("get_temp_state", self.get_temp_state)
+
+
+    def set_temp_time(self, event, msg): 
+        self.set_time = msg
+
+    def get_temp_time(self, event, msg): 
+
+        return self.set_time
+    
+    def set_temp_state(self, event, msg): 
+        self.get_temp = msg
+
+    def get_temp_state(self, event, msg): 
+        return self.get_temp
+           
 class getBrightnessManager(Abstract):#获取亮度级别
     def __init__(self):
         self.level = 6#默认值6
@@ -2027,6 +2164,20 @@ class getUpLoadDataManager(Abstract):#
 
     def get_upload_data(self, event, msg): 
         return self.upload_time 
+
+class getplayAudiodStateManager(Abstract):#获取设置播放音频状态
+    def __init__(self):
+        self.play = 0
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("set_audio_state", self.set_audio_state)
+        EventMesh.subscribe("get_audio_state", self.get_audio_state)
+
+    def set_audio_state(self, event, msg): 
+        self.play = msg
+
+    def get_audio_state(self, event, msg): 
+        return self.play
     
 class getVolumSizeManager(Abstract):#设置或获取音量大小数据
     def __init__(self):
index 77f3981..94517e0 100644 (file)
@@ -645,9 +645,12 @@ class HRSTART_ProtoCol(ProtoCol):
             get_spo2_state = EventMesh.publish("get_spo2_state")
             if (get_spo2_state == 3) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
                 EventMesh.publish("set_hr_state",3)#3代表单次测量
-        elif hrTotal > 1:
-            if hrTotal <= 300:
+        else:
+            if hrTotal > 0 and hrTotal <= 300:
                 hrTotal = 300
+            elif hrTotal >= 65536:
+                hrTotal = 65536
+
             storage_tmp = EventMesh.publish("get_storage_data")
             storage_tmp["measure_time"] = hrTotal
             EventMesh.publish("set_storage_data", storage_tmp)
@@ -760,12 +763,58 @@ class TEMP_ProtoCol(ProtoCol):
 
     def recv(self, event, msg):
         """
-        @param event: 心率数据下发
+        @param event: 
         @param msg: 接收到的下行数据
         """
         # print("HRSTART_ProtoCol RECV msg:")
         #EventMesh.publish(constants.PROTOCOL.TEMP_SEND)
 
+class WDSTART_ProtoCol(ProtoCol):
+    """上传体温频率"""
+    TYPE = "wdstart"
+    def send(self, event, msg):
+        #[XT*334588000000156*len*wdstart,300]
+        send_data = "SZKW*%s*0007*wdstart"%(self.imei)
+        MD5_SIGN = self.pack_MD5_head(send_data)
+        data = "[%s%s]"%(str(MD5_SIGN),send_data)
+        # print("temp:data:%s"%(data))
+        # 通过socket发送到服务器端
+        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+    def recv(self, event, msg):
+        """
+        @param event: 体温下发频率数据
+        @param msg: 接收到的下行数据
+        """
+        # print("WDSTART_ProtoCol RECV msg:")
+        print("wdstart:{}".format(msg))
+        msg = msg[1:-1]
+        msg_tmp = msg.decode('ascii')
+        msg_tmp = msg_tmp.split(',')
+        msg_tmp = msg_tmp[1]
+
+        tempTotal = int(msg_tmp)
+        print("tempTotal:{}".format(tempTotal))
+        if tempTotal == 1:#单次测量
+            get_temp_state = EventMesh.publish("get_temp_state")
+            print("get_temp_state:{}".format(get_temp_state))
+            if get_temp_state == 0:#只要两个不在测量 单次优先级最低
+
+                EventMesh.publish("set_temp_state",3)#3代表单次测量
+        else:
+            if tempTotal > 0 and tempTotal <= 300:
+                tempTotal = 300
+            elif tempTotal >= 65536:
+                tempTotal = 65536
+            storage_tmp = EventMesh.publish("get_storage_data")
+            storage_tmp["temp_time"] = tempTotal
+            EventMesh.publish("set_storage_data", storage_tmp)
+            EventMesh.publish("set_temp_time",tempTotal)
+            print("storage_tmp:{}".format(storage_tmp))
+            with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
+                ujson.dump(storage_tmp,fd)
+        
+        EventMesh.publish(constants.PROTOCOL.WDSTART_SEND)
 #解绑
 # [XT*334588000000156*0003*DLT]
 def reset_factory(msg):
@@ -1000,7 +1049,7 @@ class ProtoColResolver(object):
         #     data = data[7:]
         #     EventMesh.publish(constants.PROTOCOL.H04_RECV, data)
         try:
-            print("handler:{}".format(type(data)))
+            print("handler:{} data type:{}".format(data,type(data)))
             data_tmp = data.decode('ascii')
             data_tmp = data_tmp.split(']')[0] #去掉]
             ProtoCol_type = data_tmp.split('*')[3] #拿到协议标识
index 2bf7fdd..dab1af4 100644 (file)
@@ -18,6 +18,17 @@ from lcd import lcd,lcd_ctrl,tp_cst816
 from misc import PWM
 import uos
 import gc
+
+def audio_cb(event):
+    if event == 0:
+        EventMesh.publish("set_audio_state", 1)
+        print('audio-play start.') 
+    elif event == 7:
+        EventMesh.publish("set_audio_state", 0)
+        print('audio-play finish.')
+
+aud = audio.Audio(0)
+aud.setCallback(audio_cb)
 # -----------------------------------------style create--------------------------------------
 style_screen = lv.style_t()
 style_screen.init()
@@ -363,45 +374,45 @@ class PhoneScreen(Screen):
 
             self.meta = phone_screen
 
-            phone_one.add_event_cb(lambda e: self.one(e),
+            phone_one.add_event_cb(lambda e: EventMesh.callback_wrapper(self.one(e)),
                                      lv.EVENT.CLICKED, None)
-            phone_two.add_event_cb(lambda e: self.two(e),
+            phone_two.add_event_cb(lambda e: EventMesh.callback_wrapper(self.two(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_three.add_event_cb(lambda e: self.three(e),
+            phone_three.add_event_cb(lambda e: EventMesh.callback_wrapper(self.three(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_four.add_event_cb(lambda e: self.four(e),
+            phone_four.add_event_cb(lambda e: EventMesh.callback_wrapper(self.four(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_five.add_event_cb(lambda e: self.five(e),
+            phone_five.add_event_cb(lambda e: EventMesh.callback_wrapper(self.five(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_six.add_event_cb(lambda e: self.six(e),
+            phone_six.add_event_cb(lambda e: EventMesh.callback_wrapper(self.six(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_seven.add_event_cb(lambda e: self.seven(e),
+            phone_seven.add_event_cb(lambda e: EventMesh.callback_wrapper(self.seven(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_eight.add_event_cb(lambda e: self.eight(e),
+            phone_eight.add_event_cb(lambda e: EventMesh.callback_wrapper(self.eight(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_nine.add_event_cb(lambda e: self.nine(e),
+            phone_nine.add_event_cb(lambda e: EventMesh.callback_wrapper(self.nine(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_zero.add_event_cb(lambda e: self.zero(e),
+            phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.zero(e)),
                                         lv.EVENT.CLICKED, None)
 
-            phone_call_btn.add_event_cb(lambda e: self.call(e),
+            phone_call_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.call(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_contact_btn.add_event_cb(lambda e: self.contact(e),
+            phone_contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.contact(e)),
                                         lv.EVENT.CLICKED, None)
-            phone_delete_btn.add_event_cb(lambda e: self.delete(e),
+            phone_delete_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.delete(e)),
                                         lv.EVENT.CLICKED, None)
             
-            phone_start.add_event_cb(lambda e: self.start(e),
+            phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)),
                                         lv.EVENT.CLICKED, None)#短按显示* 
             
-            phone_start.add_event_cb(lambda e: self.pressed_start(e),
+            phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)),
                                         lv.EVENT.LONG_PRESSED, None)#长按显示+
             
-            phone_start.add_event_cb(lambda e: self.endpressed_start(e),
+            phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.endpressed_start(e)),
                                         lv.EVENT.RELEASED, None)#释放按键
             
 
-            phone_hash.add_event_cb(lambda e: self.hash(e),
+            phone_hash.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hash(e)),
                                         lv.EVENT.CLICKED, None)
             
 
@@ -686,7 +697,7 @@ class CallLogScreen(Screen):
                     _btn.set_size(240,80)
                     _btn.set_pos(0,82*h)
                     _btn.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-                    _btn.add_event_cb(lambda e: self.calling(e),
+                    _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
                                             lv.EVENT.CLICKED, None)
 
 
@@ -827,7 +838,7 @@ class DialingScreen(Screen):
             hangup_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
             hangup_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
             hangup_imgbtn.set_pos(80, 220)
-            hangup_imgbtn.add_event_cb(lambda e: self.hangup(e),
+            hangup_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)),
                                     lv.EVENT.CLICKED, None)
             self.meta = dialing_screen
 
@@ -1007,8 +1018,8 @@ class MessageFullScreen(Screen):
             message_full_cancel.set_ext_click_area(20)
             self.meta = message_full_screen
             
-            message_full_confirm.add_event_cb(lambda e: self.confirm(e),lv.EVENT.CLICKED, None)
-            message_full_cancel.add_event_cb(lambda e: self.concel(e),lv.EVENT.CLICKED, None)
+            message_full_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.CLICKED, None)
+            message_full_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.CLICKED, None)
 
         
         self.timer.start(10*1000,0,self.return_back)
@@ -1176,7 +1187,7 @@ class PopupScreen(Screen):
                     msg_btn.set_size(230,65)
                     msg_btn.set_pos(0,67*count)
                     msg_btn.add_style(style_sms_bg_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-                    msg_btn.add_event_cb(lambda e: self.calling(e),
+                    msg_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
                                             lv.EVENT.CLICKED, None)
                 
                     title = tmp[0] 
@@ -1522,12 +1533,12 @@ class ToolboxScreen(Screen):
             toolbox_stopwatch_img.set_src("E:/static/tool/IMAGE_SECMENU_STOPWATCH.png")
             toolbox_stopwatch_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-            toolbox_step_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "step"}), lv.EVENT.CLICKED, None)
-            toolbox_weather_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "weather"}), lv.EVENT.CLICKED, None)
-            toolbox_alarm_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "clk_list"}), lv.EVENT.CLICKED, None)
-            toolbox_sms_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "popup"}), lv.EVENT.CLICKED, None)
-            toolbox_countdown_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "countdown"}), lv.EVENT.CLICKED, None)
-            toolbox_stopwatch_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "stopwatch"}), lv.EVENT.CLICKED, None)
+            toolbox_step_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "step"})), lv.EVENT.CLICKED, None)
+            toolbox_weather_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "weather"})), lv.EVENT.CLICKED, None)
+            toolbox_alarm_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "clk_list"})), lv.EVENT.CLICKED, None)
+            toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None)
+            toolbox_countdown_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "countdown"})), lv.EVENT.CLICKED, None)
+            toolbox_stopwatch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "stopwatch"})), lv.EVENT.CLICKED, None)
             self.meta = toolbox_screen
 
     def done_return(self):
@@ -1615,9 +1626,9 @@ class IncomingCallScreen(Screen):
             incoming_call_hangup.set_pos(150, 220)
             incoming_call_hangup.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
             incoming_call_hangup.set_src("E:/static/hang_up.png")
-            incoming_call_answer.add_event_cb(lambda e: self.answer(e),
+            incoming_call_answer.add_event_cb(lambda e: EventMesh.callback_wrapper(self.answer(e)),
                                      lv.EVENT.CLICKED, None)
-            incoming_call_hangup.add_event_cb(lambda e: self.hangup(e),
+            incoming_call_hangup.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)),
                                      lv.EVENT.CLICKED, None)
             self.meta = incoming_call_screen 
         EventMesh.publish("set_UI_high_priority", 1)
@@ -1732,10 +1743,10 @@ class IncomingCallScreen(Screen):
         EventMesh.publish("call_log_update_show_list")
 
         self.call_timer.start(6000, 1, self.call_timer_cb)
-        self.aud.play(1, 1, 'E:/static/R_CALL_mp3.mp3')  #播放来电铃声
+        self.aud.play(1, 1, 'U:/static/R_CALL_mp3.mp3')  #播放来电铃声
 
     def call_timer_cb(self,e):
-       self.aud.play(1, 1, 'E:/static/R_CALL_mp3.mp3')  #播放来电铃声
+       self.aud.play(1, 1, 'U:/static/R_CALL_mp3.mp3')  #播放来电铃声
 
     def answer(self,e):
         self.call_timer.stop()
@@ -1820,7 +1831,7 @@ class OnCallScreen(Screen):
             on_call_hangup.set_pos(85, 220)
             on_call_hangup.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
             on_call_hangup.set_src("E:/static/hang_up.png")
-            on_call_hangup.add_event_cb(lambda e: self.hangup(e),
+            on_call_hangup.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)),
                                      lv.EVENT.CLICKED, None)
             self.meta = on_call_screen
             
@@ -1976,7 +1987,7 @@ class WeatherScreen(Screen):
             no_weather_degree = lv.img(weather_screen)
             no_weather_degree.set_pos(200, 40)
             no_weather_degree.set_size(22, 22)
-            no_weather_degree.set_src("E:/static/degree.png")
+            no_weather_degree.set_src("U:/static/degree.png")
             no_weather_degree.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 
             weather_detail_label = lv.label(weather_screen)
@@ -2191,7 +2202,7 @@ class ContactsScreen(Screen):
                 contact_btn.set_pos(0,82*i )
                 contact_btn.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
                 # contact_btn.add_style(style_contact_btn_pressed, lv.PART.MAIN | lv.STATE.PRESSED)
-                contact_btn.add_event_cb(lambda e: self.calling(e),
+                contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
                                         lv.EVENT.CLICKED, None)
 
                 contact_btn_label_1 = lv.label(contact_btn)
@@ -2255,6 +2266,7 @@ temperature_value_label = None
 temperature_wrist_label = None
 temperature_wrist_degree_img = None
 temperature_wrist_value_label = None
+temperature_measure_end_label = None
 class TemperatureScreen(Screen):
     NAME = "temperature"
 
@@ -2262,6 +2274,7 @@ class TemperatureScreen(Screen):
         super().__init__()
         self.meta = None
         self.temp_timer = osTimer()
+        self.count = 0
     def initialization(self):
         global temperature_screen,temperature_bg_img ,temperature_body_label ,temperature_degree_img ,temperature_value_label,\
             temperature_wrist_label,temperature_wrist_degree_img ,temperature_wrist_value_label  
@@ -2286,7 +2299,7 @@ class TemperatureScreen(Screen):
             temperature_degree_img = lv.img(temperature_screen)
             temperature_degree_img.set_pos(150, 70)
             temperature_degree_img.set_size(22, 22)
-            temperature_degree_img.set_src("E:/static/degree.png")
+            temperature_degree_img.set_src("U:/static/degree.png")
             temperature_degree_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 
             temperature_value_label = lv.label(temperature_screen)
@@ -2308,24 +2321,51 @@ class TemperatureScreen(Screen):
             temperature_wrist_degree_img = lv.img(temperature_screen)
             temperature_wrist_degree_img.set_pos(150, 150)
             temperature_wrist_degree_img.set_size(22, 22)
-            temperature_wrist_degree_img.set_src("E:/static/degree.png")
+            temperature_wrist_degree_img.set_src("U:/static/degree.png")
             temperature_wrist_degree_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 
             temperature_wrist_value_label = lv.label(temperature_screen)
             temperature_wrist_value_label.set_pos(100,150)
             temperature_wrist_value_label.set_size(50, 20)
-            temperature_wrist_value_label.set_text("24.9℃")
+            temperature_wrist_value_label.set_text("24.9")
             temperature_wrist_value_label.set_long_mode(lv.label.LONG.WRAP)
             temperature_wrist_value_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             temperature_wrist_value_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            temperature_measure_end_label = lv.label(temperature_screen)
+            temperature_measure_end_label.set_pos(0,210)
+            temperature_measure_end_label.set_size(240, 30)
+            temperature_measure_end_label.set_text(" ")
+            temperature_measure_end_label.set_long_mode(lv.label.LONG.WRAP)
+            temperature_measure_end_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            temperature_measure_end_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
             self.meta = temperature_screen
+        EventMesh.publish("set_temp_state",1)
         EventMesh.publish(constants.EVENT.START_TEMP)
+        self.count = 0
         self.temp_timer.start(1*1000, 1, self.temp_timerout)
     def temp_timerout(self,*args):
+        self.count += 1
+        EventMesh.publish("system_sleep_rest")#防止黑屏
         temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
-        print("temp:{}".format(temp))   
-        temperature_value_label.set_text("{}".format(temp))
+        tmp = str(temp).split('.')[0] + '.' + str(temp).split('.')[1][:1]#获取小数点后一位 舍去小数点最后一位
+        temperature_value_label.set_text("{}".format(tmp))
+        tmp_f = str(temp).split('.')[0] 
+        tmp_f_tmp = int(tmp_f)
+
+        tmp_d = str(temp).split('.')[1][:1]
+        tmp_d_tmp = int(tmp_d)
+
+        print("temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp)) 
+        if self.count > 3*60:
+            self.count = 0
+            EventMesh.publish("set_temp_state",0)
+            temperature_measure_end_label.set_text("测量完成")
+            EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
+            self.temp_timer.stop()
+            EventMesh.publish(constants.EVENT.STOP_TEMP)
     def Close(self):
+        EventMesh.publish("set_temp_state",0)
         EventMesh.publish(constants.EVENT.STOP_TEMP)
         self.temp_timer.stop()
     def done_return(self):
@@ -2709,21 +2749,21 @@ class CountdownScreen(Screen):
 
             self.meta = countdown_screen
 
-            countdown_sec_up_btn.add_event_cb(lambda e: self.sec_up(e),
+            countdown_sec_up_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sec_up(e)),
                                         lv.EVENT.CLICKED, None)
-            countdown_sec_down_btn.add_event_cb(lambda e: self.sec_down(e),
+            countdown_sec_down_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sec_down(e)),
                                         lv.EVENT.CLICKED, None)
-            countdown_min_up_btn.add_event_cb(lambda e: self.min_up(e),
+            countdown_min_up_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.min_up(e)),
                                         lv.EVENT.CLICKED, None)
-            countdown_min_down_btn.add_event_cb(lambda e: self.min_down(e),
+            countdown_min_down_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.min_down(e)),
                                         lv.EVENT.CLICKED, None)
-            countdown_hour_up_btn.add_event_cb(lambda e: self.hour_up(e),
+            countdown_hour_up_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hour_up(e)),
                                         lv.EVENT.CLICKED, None)
-            countdown_hour_down_btn.add_event_cb(lambda e: self.hour_down(e),
+            countdown_hour_down_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hour_down(e)),
                                         lv.EVENT.CLICKED, None)
-            countdown_start_imgbtn.add_event_cb(lambda e: self.start(e),
+            countdown_start_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)),
                                         lv.EVENT.CLICKED, None)
-            countdown_reset_imgbtn.add_event_cb(lambda e: self.reset(e),
+            countdown_reset_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reset(e)),
                                         lv.EVENT.CLICKED, None)
             # countdown_stop_imgbtn.add_event_cb(lambda e: self.stop(e),
             #                              lv.EVENT.CLICKED, None)      
@@ -3113,10 +3153,10 @@ class StopwatchScreen(Screen):
             stopwatch_stop_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
             stopwatch_stop_img.set_pos(115, 210)
             stopwatch_stop_img.add_flag(lv.obj.FLAG.HIDDEN)
-            stopwatch_start_imgbtn.add_event_cb(lambda e: self.start(e),
+            stopwatch_start_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)),
                                      lv.EVENT.CLICKED, None)
         
-            stopwatch_reset_imgbtn.add_event_cb(lambda e: self.reset(e),
+            stopwatch_reset_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reset(e)),
                                      lv.EVENT.CLICKED, None)
             self.meta = stopwatch_screen
 
@@ -3130,6 +3170,7 @@ class StopwatchScreen(Screen):
             stopwatch_start_imgbtn, stopwatch_stop_img 
         print("stopwatch start:{}".format(self.s_state))
         #self.timer.start(100, 1, self._fun)  
+        
         if self.s_state == 1:
             self.s_state = 2
             self.paused()
@@ -3137,10 +3178,17 @@ class StopwatchScreen(Screen):
             self.s_state = 1
         if self.s_state != 2:
             self.s_state = 1
+            if self.ms_value > 0 or self.sec_value > 0 or self.min_value > 0:
+                self.ms_value = 0   
+                self.sec_value = 0
+                self.min_value = 0
+            self.show_value()
             self.timer.start(100,1,self._fun)
             stopwatch_stop_img.clear_flag(lv.obj.FLAG.HIDDEN)
             stopwatch_start_img.add_flag(lv.obj.FLAG.HIDDEN)
-
+            # print("ms_value start:{} {} {}".format(self.ms_value,self.sec_value,self.min_value))
+           
+        
 
     def paused(self):        
         global stopwatch_screen,stopwatch_title,stopwatch_label_min,stopwatch_mao,stopwatch_label_sec ,\
@@ -3360,6 +3408,7 @@ class UI(object):
         self.sleep_flag = 1
         self.level = 6
         self.read_data = {}
+        self.aud = audio.Audio(0)
         self.level = EventMesh.publish("get_brightness_level")
         self.read_data = EventMesh.publish("get_storage_data")
         self.main_flag = 0
@@ -3596,6 +3645,11 @@ class UI(object):
                 print('1剩余内存RAM:{} KB'.format(mem / 1024))
     
                 self.screen = scr
+                play_state = EventMesh.publish("get_audio_state")#音频播放状态
+                if play_state != None:
+                    if play_state != 0:#在上一个界面在播放音频时切换界面则关闭 以免一直播放
+                        self.aud.stop()
+
                 if self.screen_old != None :
                     self.screen_old.Close() #先关闭上一次界面
                     self.lv.img.cache_invalidate_src(None) #清img cache
index 40588b8..db5eedf 100644 (file)
@@ -79,7 +79,7 @@ watchface1_bg_img.set_pos(int(0),int(40))
 watchface1_bg_img.set_size(240,280)
 watchface1_bg_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
 watchface1_bg_img.add_flag(lv.obj.FLAG.CLICKABLE)
-watchface1_bg_img.set_src("E:/static/watch_plate/style_1/bg.png")
+watchface1_bg_img.set_src("U:/static/bg.png")
 watchface1_bg_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
 #时间
 
@@ -390,7 +390,7 @@ watchface2_step_img = lv.img(Watchface2)
 watchface2_step_img.set_pos(int(95),int(260))
 watchface2_step_img.set_size(26,21)
 watchface2_step_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-watchface2_step_img.set_src("E:/static/watch_plate/style_2/step.png")
+watchface2_step_img.set_src("U:/static/step.png")
 watchface2_step_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
 
 watchface2_step_txt = lv.label(Watchface2)
index 328e756..da804bd 100644 (file)
@@ -308,15 +308,15 @@ class MainMenuScreen(Screen):
         self.watchface = WatchFace()
         self.menu_id = "0"
         print("MainMenu1:__init__")    
-        MainMenu2_img_phone.add_event_cb(lambda e: self.img_cb(e,  "Phone"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_toolbox.add_event_cb(lambda e: self.img_cb(e, "toolbox"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_setting.add_event_cb(lambda e: self.img_cb(e, "setting"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_heartrate.add_event_cb(lambda e: self.img_cb(e, "heartrate"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_contacts.add_event_cb(lambda e: self.img_cb(e,  "contacts"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_wechat.add_event_cb(lambda e: self.img_cb(e, "wechat"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_spo2.add_event_cb(lambda e: self.img_cb(e, "spo2"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_temperature.add_event_cb(lambda e: self.img_cb(e, "temperature"), lv.EVENT.CLICKED, None)
-        MainMenu2_img_alipay.add_event_cb(lambda e: self.img_cb(e, "alipay_open"), lv.EVENT.CLICKED, None)
+        MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "Phone")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_setting.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "setting")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_heartrate.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "heartrate")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_contacts.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "contacts")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "wechat")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_temperature.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "temperature")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_alipay.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "alipay_open")), lv.EVENT.CLICKED, None)
         EventMesh.subscribe("watch_top_show", self.watch_top_show)
         #MainMenu2_img_alipay.add_event_cb(lambda e: img_cb(e, "Watchface_set"), lv.EVENT.CLICKED, None)
         
index f16111c..4bc6803 100644 (file)
@@ -277,29 +277,29 @@ class SettingScreen(Screen):
         super().__init__()
         self.meta = setting_screen
         # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
-        setting_dialswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "dialswitch"}), lv.EVENT.CLICKED, None)
+        setting_dialswitch.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "dialswitch"})), lv.EVENT.CLICKED, None)
         # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
-        setting_imei.add_event_cb(lambda e: self.load_screen(e, {"screen": "imei"}), lv.EVENT.CLICKED, None)
-        setting_app.add_event_cb(lambda e: self.load_screen(e, {"screen": "app"}), lv.EVENT.CLICKED, None)
-        setting_bright.add_event_cb(lambda e: self.load_screen(e, {"screen": "brightness"}), lv.EVENT.CLICKED, None)
-        setting_volume.add_event_cb(lambda e: self.load_screen(e, {"screen": "totalvolume"}), lv.EVENT.CLICKED, None)
-        setting_restore.add_event_cb(lambda e: self.load_screen(e, {"screen": "restore"}), lv.EVENT.CLICKED, None)
-        setting_poweroff.add_event_cb(lambda e: self.load_screen(e, {"screen": "poweroff"}), lv.EVENT.CLICKED, None)
-        setting_update.add_event_cb(lambda e: self.load_screen(e, {"screen": "update"}), lv.EVENT.CLICKED, None)
-        setting_version.add_event_cb(lambda e: self.load_screen(e, {"screen": "version"}), lv.EVENT.CLICKED, None)
+        setting_imei.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "imei"})), lv.EVENT.CLICKED, None)
+        setting_app.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "app"})), lv.EVENT.CLICKED, None)
+        setting_bright.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "brightness"})), lv.EVENT.CLICKED, None)
+        setting_volume.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "totalvolume"})), lv.EVENT.CLICKED, None)
+        setting_restore.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "restore"})), lv.EVENT.CLICKED, None)
+        setting_poweroff.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "poweroff"})), lv.EVENT.CLICKED, None)
+        setting_update.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "update"})), lv.EVENT.CLICKED, None)
+        setting_version.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "version"})), lv.EVENT.CLICKED, None)
 
         # img regist btton
         # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
-        setting_dialswitch_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "dialswitch"}), lv.EVENT.CLICKED, None)
+        setting_dialswitch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "dialswitch"})), lv.EVENT.CLICKED, None)
         # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
-        setting_imei_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "imei"}), lv.EVENT.CLICKED, None)
-        setting_app_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "app"}), lv.EVENT.CLICKED, None)
-        setting_bright_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "brightness"}), lv.EVENT.CLICKED, None)
-        setting_volume_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "totalvolume"}), lv.EVENT.CLICKED, None)
-        setting_restore_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "restore"}), lv.EVENT.CLICKED, None)
-        setting_poweroff_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "poweroff"}), lv.EVENT.CLICKED, None)
-        setting_update_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "update"}), lv.EVENT.CLICKED, None)
-        setting_version_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "version"}), lv.EVENT.CLICKED, None)
+        setting_imei_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "imei"})), lv.EVENT.CLICKED, None)
+        setting_app_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "app"})), lv.EVENT.CLICKED, None)
+        setting_bright_img.add_event_cb(lambda e:EventMesh.callback_wrapper( self.load_screen(e, {"screen": "brightness"})), lv.EVENT.CLICKED, None)
+        setting_volume_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "totalvolume"})), lv.EVENT.CLICKED, None)
+        setting_restore_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "restore"})), lv.EVENT.CLICKED, None)
+        setting_poweroff_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "poweroff"})), lv.EVENT.CLICKED, None)
+        setting_update_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "update"})), lv.EVENT.CLICKED, None)
+        setting_version_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "version"})), lv.EVENT.CLICKED, None)
 
     
 
@@ -826,8 +826,8 @@ class RestoreScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = restore_screen
-        restore_confirm.add_event_cb(lambda e: self.confirm(e),lv.EVENT.CLICKED, None)
-        restore_cancel.add_event_cb(lambda e: self.concel(e),lv.EVENT.CLICKED, None)
+        restore_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.CLICKED, None)
+        restore_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.CLICKED, None)
         
     
     def confirm(self, e):
@@ -859,7 +859,7 @@ class UpdateScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = update_screen
-        update_return.add_event_cb(lambda e: self.back(e),lv.EVENT.CLICKED, None)
+        update_return.add_event_cb(lambda e: EventMesh.callback_wrapper(self.back(e)),lv.EVENT.CLICKED, None)
     
     def back(self,e):
         EventMesh.publish("load_screen", {"screen": "setting"})
@@ -957,8 +957,8 @@ class PoweroffScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = poweroff_screen
-        poweroff_confirm_img.add_event_cb(lambda e: self.confirm(e),lv.EVENT.CLICKED, None)
-        poweroff_return.add_event_cb(lambda e: self.concel(e),lv.EVENT.CLICKED, None)
+        poweroff_confirm_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.CLICKED, None)
+        poweroff_return.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.CLICKED, None)
 
     def initialization(self):
         pass
@@ -1094,10 +1094,10 @@ class DialswitchScreen(Screen):
         self.meta = dialswitch_screen
         self.read_data = {}
         self.watchface_style_num = "Watchface1"
-        dialswitch_btn1.add_event_cb(lambda e: self.watchface01(e),
+        dialswitch_btn1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.watchface01(e)),
                                      lv.EVENT.PRESSED, None)
 
-        dialswitch_btn2.add_event_cb(lambda e: self.watchface02(e),
+        dialswitch_btn2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.watchface02(e)),
                                      lv.EVENT.PRESSED, None)
     def initialization(self):
         self.read_data = EventMesh.publish("get_storage_data")
@@ -1154,10 +1154,10 @@ class ThemeswitchScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = menustyle_screen
-        menustyle_btn1.add_event_cb(lambda e: self.fun1(e),
+        menustyle_btn1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun1(e)),
                                      lv.EVENT.PRESSED, None)
 
-        menustyle_btn2.add_event_cb(lambda e: self.fun2(e),
+        menustyle_btn2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun2(e)),
                                      lv.EVENT.PRESSED, None)
 
     def fun1(self,e):
@@ -1341,15 +1341,15 @@ class BrightnessScreen(Screen):
         self.time = 10
         self.read_data = {}
         self.meta = brightness_screen
-        brightness_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
+        brightness_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)),
                                      lv.EVENT.CLICKED, None)
-        brightness_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+        brightness_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)),
                                      lv.EVENT.CLICKED, None)
         
-        brightness_time_reduce_imgbtn.add_event_cb(lambda e: self.reduce_time_level(e),
+        brightness_time_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_time_level(e)),
                                      lv.EVENT.CLICKED, None)
 
-        brightness_time_add_imgbtn.add_event_cb(lambda e: self.add_time_level(e),
+        brightness_time_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_time_level(e)),
                                      lv.EVENT.CLICKED, None)
     def initialization(self):
         self.level = EventMesh.publish("get_brightness_level")
@@ -1421,9 +1421,9 @@ class VolumeScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = volume_screen
-        volume_phone_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "phonering"}), lv.EVENT.CLICKED, None)
-        volume_message_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "msgvolume"}), lv.EVENT.CLICKED, None)
-        volume_alarm_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "alarmvolume"}), lv.EVENT.CLICKED, None)
+        volume_phone_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "phonering"})), lv.EVENT.CLICKED, None)
+        volume_message_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "msgvolume"})), lv.EVENT.CLICKED, None)
+        volume_alarm_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "alarmvolume"})), lv.EVENT.CLICKED, None)
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
@@ -1443,9 +1443,9 @@ class PhoneringScreen(Screen):
         super().__init__()
         self.level = 0
         self.meta = phonering_screen
-        phonering_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
+        phonering_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)),
                                      lv.EVENT.CLICKED, None)
-        phonering_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+        phonering_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)),
                                      lv.EVENT.CLICKED, None)
         phonering_add_imgbtn.set_ext_click_area(20)
         phonering_reduce_imgbtn.set_ext_click_area(20)
@@ -1490,9 +1490,9 @@ class AlarmvolumeScreen(Screen):
         super().__init__()
         self.level = 0
         self.meta = alarmvolume_screen
-        alarmvolume_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
+        alarmvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)),
                                      lv.EVENT.CLICKED, None)
-        alarmvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+        alarmvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)),
                                      lv.EVENT.CLICKED, None)
 
     def add_level(self, e):
@@ -1530,9 +1530,9 @@ class MsgvolumeScreen(Screen):
         super().__init__()
         self.level = 0
         self.meta = msgvolume_screen
-        msgvolume_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
+        msgvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)),
                                      lv.EVENT.CLICKED, None)
-        msgvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+        msgvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)),
                                      lv.EVENT.CLICKED, None)
 
     def add_level(self, e):
@@ -1614,9 +1614,9 @@ class totalvolumeScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = volume_adjust_screen
-        totalvolume_add_imgbtn.add_event_cb(lambda e: self.add_volum_size(e),
+        totalvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_volum_size(e)),
                                      lv.EVENT.CLICKED, None)
-        totalvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_volum_size(e),
+        totalvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_volum_size(e)),
                                      lv.EVENT.CLICKED, None)
         self.read_data = {}
         self.volum_size = 8
index ac7d12b..8db8114 100644 (file)
Binary files a/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip and b/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip differ
index 195b84e..82bb5e2 100644 (file)
@@ -132,12 +132,12 @@ if __name__ == '__main__':
 
     from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
-            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol
+            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol
     import mgr as mgr
     print("init7:{}".format(utime.localtime()))
     
-    from mgr import ConfigStoreManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, \
-    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getStorageDataManager,getBrightnessManager,getHrTimeManager
+    from mgr import ConfigStoreManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager
     print("init8:{}".format(utime.localtime()))
     
     
@@ -180,7 +180,11 @@ if __name__ == '__main__':
     app.append_manager(getStorageDataManager())
     app.append_manager(getUpLoadDataManager())
     app.append_manager(getVolumSizeManager())
+    app.append_manager(getTempTimeManager())
+    app.append_manager(getplayAudiodStateManager())
 
+    print("init44444444444444444444444441:{}".format(utime.localtime()))    
+    
     print("init11:{}".format(utime.localtime()))    
     pcr = ProtoColResolver()
     pcr.add_support(LK_ProtoCol())
@@ -206,11 +210,12 @@ if __name__ == '__main__':
     # pcr.add_support(CENTER_ProtoCol())
     pcr.add_support(CENTER_ProtoCol())
     pcr.add_support(bootoff_ProtoCol())
+    pcr.add_support(WDSTART_ProtoCol())
     sm = SockManager()
     sm.add_support_resolver(pcr)
     app.append_manager(sm)
     app.start()
     print("init12:{}".format(utime.localtime()))
-    #EventMesh.publish("load_screen", {"screen": "FIND"})
+    
 
 
diff --git a/2.sdk/project/K5/usr/static/0_main2_weather.png b/2.sdk/project/K5/usr/static/0_main2_weather.png
deleted file mode 100644 (file)
index 3663868..0000000
Binary files a/2.sdk/project/K5/usr/static/0_main2_weather.png and /dev/null differ
diff --git a/2.sdk/project/K5/usr/static/1_main2_weather.png b/2.sdk/project/K5/usr/static/1_main2_weather.png
deleted file mode 100644 (file)
index bc1edac..0000000
Binary files a/2.sdk/project/K5/usr/static/1_main2_weather.png and /dev/null differ
diff --git a/2.sdk/project/K5/usr/static/2_main2_weather.png b/2.sdk/project/K5/usr/static/2_main2_weather.png
deleted file mode 100644 (file)
index 26a5e63..0000000
Binary files a/2.sdk/project/K5/usr/static/2_main2_weather.png and /dev/null differ
diff --git a/2.sdk/project/K5/usr/static/3_main2_weather.png b/2.sdk/project/K5/usr/static/3_main2_weather.png
deleted file mode 100644 (file)
index b1b9abd..0000000
Binary files a/2.sdk/project/K5/usr/static/3_main2_weather.png and /dev/null differ