K5:
authordxy15521469561 <1731678236@qq.com>
Tue, 1 Aug 2023 06:33:41 +0000 (14:33 +0800)
committerdxy15521469561 <1731678236@qq.com>
Tue, 1 Aug 2023 06:33:41 +0000 (14:33 +0800)
1.修复bug

17 files changed:
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K5/ext/static/charge_ing.png [new file with mode: 0644]
2.sdk/project/K5/ext/static/vbat_0.png
2.sdk/project/K5/ext/static/vbat_100.png
2.sdk/project/K5/ext/static/vbat_20.png
2.sdk/project/K5/ext/static/vbat_40.png
2.sdk/project/K5/ext/static/vbat_60.png
2.sdk/project/K5/ext/static/vbat_80.png
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appAlipay.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/lcd.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main_init.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.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_setting.py

index 8bdee13..1c8344c 100644 (file)
@@ -27,7 +27,7 @@ class powerOFFManager(Abstract):#关机
 
     def long_press_power_off(self, event, msg): #msg 1 开始测量 2 测量成功 3 测量失败未出值
         self.timer.start(5000,0,self.fun)
-        EventMesh.publish("set_led_time_arg",[1000,200,6,led_mode.FLASH_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE])#測量失敗
+        EventMesh.publish("set_led_time_arg",[1000,500,6,led_mode.FLASH_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE])#測量失敗
         
 
     def fun(self, *args):
@@ -62,7 +62,6 @@ class playCurStepManager(Abstract):#播报当前步数
             self.count = 0
             self.step_num = 0
         self.setp_old = step
-        step = 11
         if step <= 10:#个
             if play_state != None:
                 if play_state == 0:
@@ -640,6 +639,93 @@ class playImeiManager(Abstract):
                 num = int(imei[self.play_count])
                 self.play_count+=1
                 self.aud.play(1, 1, 'U:/static/R_READ_TIME_{}.mp3'.format(num))  #播放imei号
+from machine import RTC
+class playCurTimeManager(Abstract):#播放当前时间
+    def __init__(self):
+        self.timer = osTimer()
+        self.aud = audio.Audio(0)
+        self.aud.set_pa(Pin.GPIO29)
+        self.aud.setVolume(11)
+        self.play_count = 0
+        self.old_hour = 0
+        self.old_min = 0
+        self.hour_tmp = ""
+        self.min_tmp = ""
+        pass
+        
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("play_cur_time_event", self.play_cur_time_event)#播報imei号
+
+    
+
+    def play_cur_time_event(self, event, msg): #msg 1 开始测量 2 测量成功 3 测量失败未出值
+        self.play_count = 0
+        self.timer.start(1000,1,self.play_timer_cb)
+           
+    def play_timer_cb(self,*agrs):
+
+        data = RTC().datetime()
+        hour = data[4]
+        min = data[5]
+        self.hour_tmp = str(hour)
+        self.min_tmp = str(min)
+        shi_value = int(self.step_tmp[0])#十
+        ge_value = int(self.step_tmp[1])#个
+
+        hour_tmp1 = hour//10
+        hour_tmp2 = hour%10
+        if hour != self.old_hour or min != self.old_min:
+            self.play_count = 0
+
+        self.old_hour = hour
+        self.old_min = min
+        play_state = EventMesh.publish("get_audio_state")#音频播放状态
+        if play_state != None:
+            if play_state == 0:
+                self.play_count+=1
+                self.hour_tmp = str(hour)
+                self.min_tmp = str(min)
+                shi_value = int(self.step_tmp[0])#十
+                ge_value = int(self.step_tmp[1])#个
+                if hour > 9:
+                    if hour < 20:
+                        if self.play_count == 1:
+                            # R_READ_TIME_18 #10点
+                            pass
+                        elif self.play_count == 2:#点
+                            pass
+                        elif self.play_count == 3:#点
+                            if min > 0:
+                                pass
+                        
+                    else:
+                        pass
+                    if min > 9:
+                        if self.play_count == 1:
+                            if hour < 20:
+                                pass
+                                # R_READ_TIME_19 #20点
+                            else:
+                                pass#
+                        pass
+                    else:
+                        pass
+              
+
+
+        # print("hour:{} min:{} week:{} date1:{} date2:{} data:{}".format(hour,min,week,date1,date2,data))
+        if self.play_count > 14:
+            self.play_count = 0
+            self.timer.stop()
+            return
+        imei = EventMesh.publish(constants.EVENT.GET_IMEI)
+        play_state = EventMesh.publish("get_audio_state")#音频播放状态
+        if play_state != None:
+            if play_state == 0:
+                num = int(imei[self.play_count])
+                self.play_count+=1
+                self.aud.play(1, 1, 'U:/static/R_READ_TIME_{}.mp3'.format(num))  #播放imei号
 
            
 
@@ -666,7 +752,7 @@ class wechatInforManager(Abstract):#微聊相关信息
                     i = 0
                     for sort_new_tmp in sort_new: #字典 key value
                         i+=1 # 1 
-                        if i >= 1:#大于50条把最后一条删除掉只保留前面50调最新的数据
+                        if i >= 1:#
                             self.wechat_num = sort_new_tmp["num"]
                             break
         else :
@@ -680,6 +766,7 @@ class wechatInforManager(Abstract):#微聊相关信息
         self.timeSecond = 0
         self.wechat_show = 0
         self.sort_new = {}
+        self.time_min = 0
 
     def post_processor_after_instantiation(self):
         EventMesh.subscribe("start_wechat_record", self.start_wechat_record)#手表开始录音
@@ -687,6 +774,7 @@ class wechatInforManager(Abstract):#微聊相关信息
         EventMesh.subscribe("play_wechat_last_amr", self.play_wechat_last_amr)#播放微聊语音最后一条语音文件
         EventMesh.subscribe("get_wechat_data", self.get_wechat_data)
         EventMesh.subscribe("set_wechat_data", self.set_wechat_data)
+        EventMesh.subscribe("play_wechat_last_amr", self.play_unread_wechat_infor)#播放微聊语音最后一条语音文件
 
     def get_wechat_data(self,event, msg): 
 
@@ -751,6 +839,36 @@ class wechatInforManager(Abstract):#微聊相关信息
                 self.aud.setVolume(11)#设置音量最大
                 self.aud.stop()
                 self.aud.play(1, 1, '/usr/static/storage_file/{}.amr'.format(self.wechat_num))  #文件名前面要加上路径
+    def play_unread_wechat_infor(self):#未读微聊语音
+        sort_tmp = {}
+        sort_tmp = self.wechat_recode_list.values()
+        sort_new = {}
+        sort_new = sorted(sort_tmp, key = lambda i: i['timesec'],reverse = True)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
+        date_tmp = utime.localtime()
+        time_tmp = utime.mktime(date_tmp)
+        
+        unread = 0
+        for sort_new_tmp in sort_new: #字典 key value
+            read = sort_new_tmp["read"]
+            if read == 1:#未读1标识只要遇到read标识为1则跳出
+                unread = 1
+                break
+        if unread == 1:#未读提示语音和亮灯
+            #每5s闪一下
+            #每十分钟语音提醒一次 
+            EventMesh.publish("set_led_time_arg",[5000,400,2,led_mode.FLASH_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE])#红灯5s闪一次
+            #self.time_min = 0 20 - 10 = 19 
+            #10 20-10 90-10 100-10
+            if self.time_min == 0 or time_tmp - self.time_min >= 10*60:
+                self.time_min = time_tmp
+                #语音提示播放
+                pass
+            
+            pass
+        else:
+            self.time_min = 0
+            pass
+
 
 class FindWatchManager(Abstract):#查找设备
     def __init__(self):
@@ -873,6 +991,8 @@ class BtnDevice(Abstract):
         EventMesh.publish("interup_call_event")#如果在电话中强制挂断电话
         EventMesh.publish("stop_led_timer")#设置参数关闭led定时器 同时也关闭所有的灯再开相对应的灯
         EventMesh.publish("STOP_FIND_WATCH")#停止查找设备
+        #播报当前时间
+
 
     def pwk_extint_cb(self,args):
         self.GPIO26_status = self.extint.read_level()
index ef0cdd6..ed6347f 100644 (file)
@@ -191,7 +191,7 @@ if __name__ == '__main__':
             next_alarm_time = utime.localtime(timeSecond)
             machine.RTC().datetime((next_alarm_time[0],next_alarm_time[1],next_alarm_time[2],next_alarm_time[6],next_alarm_time[3],next_alarm_time[4],next_alarm_time[5],0))
 
-    EventMesh.publish("set_led_time_arg",[1000,200,10,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE])#设置参数
+    EventMesh.publish("set_led_time_arg",[1000,500,10,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE])#设置参数
     # EventMesh.publish("load_screen", {"screen": "main_menu"})
 
 
index 742f097..c7fe477 100644 (file)
@@ -3408,8 +3408,8 @@ class ContactsScreen(Screen):
 
             contact_none_label = lv.label(contacts_screen_list_screen)
             contact_none_label.set_pos(0, 80)
-            contact_none_label.set_size(240, 40)
-            contact_none_label.set_text("空")
+            contact_none_label.set_size(240, 50)
+            contact_none_label.set_text("无联系人,请在手机\nAPP上添加")
             contact_none_label.set_long_mode(lv.label.LONG.WRAP)
             contact_none_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             contact_none_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
diff --git a/2.sdk/project/K5/ext/static/charge_ing.png b/2.sdk/project/K5/ext/static/charge_ing.png
new file mode 100644 (file)
index 0000000..1e4a346
Binary files /dev/null and b/2.sdk/project/K5/ext/static/charge_ing.png differ
index eea1543..89ae524 100644 (file)
Binary files a/2.sdk/project/K5/ext/static/vbat_0.png and b/2.sdk/project/K5/ext/static/vbat_0.png differ
index 195b82a..267fc0e 100644 (file)
Binary files a/2.sdk/project/K5/ext/static/vbat_100.png and b/2.sdk/project/K5/ext/static/vbat_100.png differ
index e76eb8a..86add96 100644 (file)
Binary files a/2.sdk/project/K5/ext/static/vbat_20.png and b/2.sdk/project/K5/ext/static/vbat_20.png differ
index f432c8b..1a5dee1 100644 (file)
Binary files a/2.sdk/project/K5/ext/static/vbat_40.png and b/2.sdk/project/K5/ext/static/vbat_40.png differ
index d3955e3..3d5886c 100644 (file)
Binary files a/2.sdk/project/K5/ext/static/vbat_60.png and b/2.sdk/project/K5/ext/static/vbat_60.png differ
index 20a9b81..9475cdd 100644 (file)
Binary files a/2.sdk/project/K5/ext/static/vbat_80.png and b/2.sdk/project/K5/ext/static/vbat_80.png differ
index f8424d5..b9d2662 100644 (file)
@@ -159,7 +159,7 @@ class Alipay(Abstract):
         elif rsp_code == 5:
             #获取付款码回调 
             print("upay_display_notify_cb: paycode[%d]: %s\n"%( result_len, result))
-            EventMesh.publish("load_screen", {"screen": "alipay_paycode","meta":str(result)})
+            # EventMesh.publish("load_screen", {"screen": "alipay_paycode","meta":str(result)})
             EventMesh.publish("set_alipay_code",str(result))
             # 查询付款结果 
             print("upay_display_notify_cb:  get payment result\n")
@@ -319,6 +319,10 @@ class Alipay(Abstract):
         elif check_bind == 5: #未绑定
             #EventMesh.publish("load_screen", {"screen": "alipay_invite"})
             if self.is_init == 0 :   
+                if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:
+                    EventMesh.publish("connect_failed_event")
+                else:
+                    EventMesh.publish("connect_ok_event")
                 args = ""
                 userdata = ""
                 print("--000--")
@@ -379,27 +383,43 @@ class AlipayOpenScreen(Screen):
         self.timer_AlipayOpen = osTimer()
         self.timer_AlipayOpen_count = 0
         self.flag = 0
+        EventMesh.subscribe("connect_failed_event",self.connect_failed_event)
+        EventMesh.subscribe("connect_ok_event",self.connect_ok_event)
+
+    def connect_failed_event(self, event, msg):
+        AlipayOpen_label.clear_flag(lv.obj.FLAG.HIDDEN)
+    
+    def connect_ok_event(self, event, msg):
+        AlipayOpen_label.add_flag(lv.obj.FLAG.HIDDEN)
 
-        
     def initialization(self):
         
         self.flag = 0
         state = EventMesh.publish(constants.EVENT.GET_CONNECT)
-        print("AlipayOpenScreen:state",state)
+        print("AlipayOpenScreen:state ",state,EventMesh.publish("get_alipay_init"))
 
-        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0 and EventMesh.publish("get_alipay_init") != 0:
+       #初始化成功 未联网
+       #初始化失败 已联网
+       
+        if (EventMesh.publish(constants.EVENT.GET_CONNECT) == 0 and EventMesh.publish("get_alipay_init") != 0) or EventMesh.publish("get_alipay_init") != 0:
             AlipayOpen_label.clear_flag(lv.obj.FLAG.HIDDEN)
         else:
             AlipayOpen_label.add_flag(lv.obj.FLAG.HIDDEN)
             if EventMesh.publish("get_alipay_init") == 0:
+                print("get_alipay_init ok:")
+                # AlipayOpen_label.add_flag(lv.obj.FLAG.HIDDEN)
                 if self.flag == 0:
                     self.flag = 1
                     EventMesh.publish("alipay_1")
             else:
+                print("get_alipay_init failed:")
+                # AlipayOpen_label.clear_flag(lv.obj.FLAG.HIDDEN)
+                print("timeout_AlipayOpen:",self.flag)
                 EventMesh.publish_async("Alipay_init","",40*1024)
         self.timer_AlipayOpen_count = 0
         self.timer_AlipayOpen.start(1000, 1, self.timeout_AlipayOpen)
         EventMesh.publish("set_Alipay_Ui_isOpen",1)
+    
 
     def timeout_AlipayOpen(self, *args):
         #print("timeout_AlipayOpen:",self.flag)
@@ -484,6 +504,7 @@ class Alipay_1_1(Screen):
     #已绑定,显示功能列表
     def __init__(self):
         super().__init__()
+        self.timer = osTimer()
         self.meta = alipay_1_1_screen
         #付款码
         alipay_imgbtn_3.add_event_cb(lambda e: EventMesh.callback_wrapper(self.alipay_paycode(e)),
@@ -503,12 +524,26 @@ class Alipay_1_1(Screen):
         pass
         
     def alipay_paycode(self,e):
+        self.timer.start(1*1000,1,self.fun)
         # Alipay.alipay.msg_send(3,"","") #发送获取付款码消息
-        EventMesh.publish("get_payment_code")
+        
+    def fun(self,*agrc):
+        # print("alipay_paycode!!!!!!!!!!!")
+        if EventMesh.publish("get_alipay_page_paycode") != 1:
+            EventMesh.publish("get_payment_code")
+            infor = EventMesh.publish("get_alipay_code")
+            if infor != None:
+                EventMesh.publish("update_show_defargc")
+        if EventMesh.publish("get_alipay_page_paycode") == 1:
+            self.timer.stop()
+            EventMesh.publish("load_screen", {"screen": "alipay_paycode"})
+        # EventMesh.publish("get_payment_code")
 
     def alipay_collect(self,e):
         EventMesh.publish("get_collect_code")
         # EventMesh.publish("load_screen", {"screen": "alipay_collect"})
+    def Close(self):
+        self.timer.stop()
 
     def alipay_parent(self,e):
         EventMesh.publish("get_parent_code")
@@ -815,7 +850,7 @@ line_bar = []
 def code_128_generate_barcode1(screen, data, width=180, height=80):
    
     left_curr_line = 0
-
+    show_play = 0
     # 删除上次的container
     # old_container = screen.get_child(-1)
     # if old_container:
@@ -824,7 +859,7 @@ def code_128_generate_barcode1(screen, data, width=180, height=80):
     # 生成二进制码
     binary_data = code128.encode(data)
     if not binary_data:
-        return
+        return 0
     # print("binary_data is ",binary_data)
 
 
@@ -848,6 +883,9 @@ def code_128_generate_barcode1(screen, data, width=180, height=80):
         else:
             line_bar[i].set_style_bg_color(lv.color_make(0x00, 0x00, 0x00), lv.PART.MAIN | lv.STATE.DEFAULT)
         left_curr_line += real_width
+    show_play = 1
+    print("show_play:",show_play)
+    return show_play
 
 class Alipay_paycode(Screen):
     NAME = "alipay_paycode"
@@ -858,28 +896,47 @@ class Alipay_paycode(Screen):
         self.timer = osTimer()
         EventMesh.subscribe("set_alipay_code",self.set_alipay_code)
         EventMesh.subscribe("get_alipay_code",self.get_alipay_code)
+        EventMesh.subscribe("get_alipay_page_paycode",self.get_alipay_page_paycode)
+        EventMesh.subscribe("update_show_defargc",self.update_show_defargc)
         self.alipay_qr_data = {}
-
+        self.count = 0
+        self.update_page_state = 0
+#  if EventMesh.publish("get_alipay_page_paycode") == 0:
+#                 EventMesh.publish("load_screen", {"screen": "alipay_paycode","meta":str(result)})
     def post_processor_after_initialization(self):
-        self.alipay_qr_data = str(self.meta_info)
-        print("alipay_paycode:",str(self.meta_info))
+        self.alipay_qr_data = EventMesh.publish("get_alipay_code")
+        print("self.alipay_qr_data:",str(self.alipay_qr_data))
         alipay_paycode_alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
-        code_128_generate_barcode1(alipay_paycode_screen,self.alipay_qr_data,240,100)
+        self.update_page_state = code_128_generate_barcode1(alipay_paycode_screen,self.alipay_qr_data,240,100)
 
     def initialization(self):
         print("alipay_paycode:initialization")
-        self.timer.start(10*1000,1,self.update_alipy)
+        self.count = 0
+        self.timer.start(1*1000,1,self.update_alipy)
         EventMesh.publish("set_Alipay_Ui_isOpen",1)
     def update_alipy(self,e):
-        EventMesh.publish("get_payment_code")
-        EventMesh.publish("publish_message_event_ui",{"func":self.update_show,"data":0})
-
+        EventMesh.publish("system_sleep_rest")#防止黑屏
+        if self.count == 0 or self.count >= 10:
+            if self.count >= 10:
+                self.count = 0
+            EventMesh.publish("get_payment_code")
+            EventMesh.publish("publish_message_event_ui",{"func":self.update_show,"data":0})
+        self.count+=1
+
+    def update_show_defargc(self, event, msg):
+        if self.alipay_qr_data != {}:
+            print("alipay_paycode:update_show")
+            alipay_paycode_alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
+            self.update_page_state  = code_128_generate_barcode1(alipay_paycode_screen,self.alipay_qr_data,240,100)
 
     def update_show(self,data):
         if self.alipay_qr_data != {}:
             print("alipay_paycode:update_show")
             alipay_paycode_alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
-            code_128_generate_barcode1(alipay_paycode_screen,self.alipay_qr_data,240,100)
+            self.update_page_state  = code_128_generate_barcode1(alipay_paycode_screen,self.alipay_qr_data,240,100)
+
+    def get_alipay_page_paycode(self, event, msg):#获取
+        return self.update_page_state
 
     def get_alipay_code(self, event, msg):#获取
         return self.alipay_qr_data
@@ -888,12 +945,15 @@ class Alipay_paycode(Screen):
         self.alipay_qr_data = msg
 
     def lcd_on(self):
-        self.timer.start(10*1000,1,self.update_alipy)
+        self.count = 0
+        self.timer.start(1*1000,1,self.update_alipy)
 
     def lcd_off(self):
+        self.count = 0
         self.timer.stop()
 
     def Close(self):
+        self.update_page_state = 0
         self.timer.stop()
         EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
@@ -963,10 +1023,17 @@ class Alipay_pay_success(Screen):
     def initialization(self):
         EventMesh.publish("set_Alipay_Ui_isOpen",1)
       
+    
+    def done_click(self):
+        EventMesh.publish("load_screen", {"screen": "main_menu"}) 
+
     def Close(self):
         EventMesh.publish("set_Alipay_Ui_isOpen",0)
         pass
-                
+
+    def done_return(self):
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
+
     def btn1_release(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
index 8c6d792..93007d5 100644 (file)
@@ -226,14 +226,21 @@ style_font_youyuan_black_40.init()
 style_font_youyuan_black_40.set_text_color(lv.color_make(0x00, 0x00, 0x00))
 style_font_youyuan_black_40.set_text_font_v2("font_40.bin",40,0)
 
+style_font_youyuan_20_op = lv.style_t()
+style_font_youyuan_20_op.init()
+style_font_youyuan_20_op.set_text_color(lv.color_make(0xff, 0xff, 0xff))
+style_font_youyuan_20_op.set_text_font_v2("font_28.bin",28,0)
+
 power_on_screen = lv.obj()
 print("power_on_screen")
 power_on_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 power_on_label = lv.label(power_on_screen)
-power_on_label.set_text(" ")
-power_on_label.align(lv.ALIGN.CENTER, 0, 0)
-power_on_label.add_style(style_font_youyuan_black_40, lv.PART.MAIN | lv.STATE.DEFAULT)
+power_on_label.set_pos(0, 150)
+power_on_label.set_size(240, 40)
+power_on_label.set_text("系统初始化中")
+power_on_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+power_on_label.add_style(style_font_youyuan_20_op, lv.PART.MAIN | lv.STATE.DEFAULT)
 print("power_on_screen init...")
 lv.scr_load(power_on_screen)
 utime.sleep_ms(200)
index fbcf22a..faa3b3f 100644 (file)
@@ -142,6 +142,9 @@ def main_init():
     ui.add_screen(_ui.NovaliedNumScreen())
     ui.add_screen(_ui.DialNoconnectPopupScreen())
     ui.add_screen(_ui.LowOnePowerScreen())
+    ui.add_screen(_ui.RemoveMessageScreen())
+    ui.add_screen(_ui.NoSimAutoScreen())
+    ui.add_screen(_ui.chargefullScreen())
     ui.add_screen(NewWechatPopupScreen())
     ui.add_screen(HealthScreen())
     # ui.add_screen(_ui.Setting3Screen())  
index 0d4a63d..7b1a43b 100644 (file)
@@ -660,6 +660,11 @@ class DeviceInfoManager(Abstract):
         self.mearsure_btn = 0
         self.mearsure_timer = 0
 
+        self.no_smi_count = 0
+        self.no_smi_state = 0
+
+        self.charge_full_count = 0
+
         self.usb = USB()
         self.usb.setCallback(self.usb_event_cb)
         self.log = LogAdapter(self.__class__.__name__)
@@ -904,19 +909,21 @@ class DeviceInfoManager(Abstract):
         #消息已满
         msg_nums = sms.getMsgNums() #获取短信条数
         if(msg_nums != -1):
-            self.sms_full_flag+=10
-            if self.sms_full_flag >= 120:
-                self.sms_full_flag=0
-                sms_data = sms.getSaveLoc()
-                sms_max = sms_data[0][2]
-                if msg_nums >= sms_max:
+            sms_data = sms.getSaveLoc()
+            sms_max = sms_data[0][2]
+            if msg_nums >= sms_max-1:
+                self.sms_full_flag+=10
+                if self.sms_full_flag >= 120:
+                    self.sms_full_flag=0
                     EventMesh.publish("load_screen", {"screen": "message_full"})
+            else:
+                self.sms_full_flag = 0
 
         get_temp_time  = EventMesh.publish("get_temp_time")
         get_temp_state  = EventMesh.publish("get_temp_state")
         hr_time = {}
         hr_time = EventMesh.publish("get_time_hr_spo2")#获取时间是否大于0
-        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[0] != "0":
+        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[0] != "1":
             # 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:
@@ -944,17 +951,21 @@ class DeviceInfoManager(Abstract):
                                 self.temp_state = 0
                                 self.temp_one_state = 0
                                 temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
-                               
+                                if temp < 25 or temp > 42:
+                                    temp = 0
                                 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("set_history_temp_value",temp)
+                                if temp != 0:
+                                    EventMesh.publish("set_history_temp_value",temp)
+                                    EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
                                 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:#单次测量
@@ -966,9 +977,11 @@ class DeviceInfoManager(Abstract):
                                     elif self.temp_one_state > 6:
                                         self.temp_one_state = 0
                                         temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
-                                    
+                                        if temp < 25 or temp > 42:
+                                            temp = 0
                                         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)
@@ -976,7 +989,7 @@ class DeviceInfoManager(Abstract):
                                             if temp != 0:
                                                 EventMesh.publish("set_history_temp_value",temp)
                                                 EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
-                                        EventMesh.publish("set_history_temp_value",temp)
+                                                EventMesh.publish("set_history_temp_value",temp)
                                         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)
@@ -1001,7 +1014,8 @@ class DeviceInfoManager(Abstract):
                         elif self.temp_one_state > 6:
                             self.temp_one_state = 0
                             temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
-                        
+                            if temp < 25 or temp > 42:
+                                temp = 0
                             tmp_f = str(temp).split('.')[0] 
                             tmp_f_tmp = int(tmp_f)
 
@@ -1310,10 +1324,13 @@ class DeviceInfoManager(Abstract):
                     if get_temp_state == 2 or get_temp_state == 3:
                         self.temp_one_state = 0
                         self.temp_state = 0
-                        temp = EventMesh.publish(constants.EVENT.GET_TEMP)              
+                        temp = EventMesh.publish(constants.EVENT.GET_TEMP)             
+                        if temp < 25 or temp > 42:
+                            temp = 0
+
                         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("set_temp_state",0)
@@ -1330,7 +1347,25 @@ class DeviceInfoManager(Abstract):
             self.set_hsenor_crt = 0
 
         voiceCall.setCallback(voice_callback)
-            
+        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#未插卡提示关机
+            if battery[0] == "1":
+                self.no_smi_count+=1
+                if self.no_smi_count > 6 and self.no_smi_state == 0:
+                    self.no_smi_count = 0
+                    self.no_smi_state = 1
+                    EventMesh.publish("load_screen", {"screen": "no_sim_auto_screen"})  
+                if battery[1] >= 100:
+                    if self.charge_full_count > 60 and self.charge_full_count % (60*10) == 0:#每十分钟提醒一次
+                        EventMesh.publish("load_screen", {"screen": "charge_full"})  
+                    self.charge_full_count+=10
+            else:
+                self.no_smi_count = 0
+                self.charge_full_count = 0
+                self.no_smi_state = 0
+        else:
+            self.no_smi_count = 0
+            self.charge_full_count = 0
+            self.no_smi_state = 0
         #quecgnss.gnssEnable(0)  
     
       
@@ -2064,23 +2099,24 @@ class gethistoryDataManager(Abstract):
 
     def set_history_temp_value(self, event, msg): 
         self.temp_value = msg
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
-        if len(self.read_histroy_temp_data) >= 7:
-            sort_new = {}
-            sort_new = sorted(self.read_histroy_temp_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
-            print(sort_new)
-            for i in range(len(self.read_histroy_temp_data)-1):
-                sort_new[i] = sort_new[i+1]#0==1 1== 2 2== 3 3==4 4==5 5==6 6==7
-                self.read_histroy_temp_data[i] = sort_new[i]
-                pass
-            self.read_histroy_temp_data[6] = {"timeSec": time_tmp, "temp": self.temp_value}
-        else:
-            self.read_histroy_temp_data.append({"timeSec": time_tmp, "temp": self.temp_value}) 
+        if self.temp_value > 0:
+            date_tmp = utime.localtime()
+            time_tmp = utime.mktime(date_tmp)
+            if len(self.read_histroy_temp_data) >= 7:
+                sort_new = {}
+                sort_new = sorted(self.read_histroy_temp_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
+                print(sort_new)
+                for i in range(len(self.read_histroy_temp_data)-1):
+                    sort_new[i] = sort_new[i+1]#0==1 1== 2 2== 3 3==4 4==5 5==6 6==7
+                    self.read_histroy_temp_data[i] = sort_new[i]
+                    pass
+                self.read_histroy_temp_data[6] = {"timeSec": time_tmp, "temp": self.temp_value}
+            else:
+                self.read_histroy_temp_data.append({"timeSec": time_tmp, "temp": self.temp_value}) 
 
-        with open("/ext/static/storage_file/history_spo2.json","w",encoding="utf-8") as fd:
-            ujson.dump(self.read_histroy_temp_data,fd)
-        #print(self.read_histroy_temp_data)
+            with open("/ext/static/storage_file/history_spo2.json","w",encoding="utf-8") as fd:
+                ujson.dump(self.read_histroy_temp_data,fd)
+            #print(self.read_histroy_temp_data)
 
     def get_history_hr_value(self, event, msg): #近7次心率历史数据统计显示
         return self.read_histroy_hr_data
index 5384181..6a73a1c 100644 (file)
@@ -1194,7 +1194,7 @@ class NoSimPowerScreen(Screen):#
 
             no_sim_power_screen_cancel = lv.img(no_sim_power_screen)
             no_sim_power_screen_cancel.set_size(176, 46)
-            no_sim_power_screen_cancel.set_pos(32, 270)
+            no_sim_power_screen_cancel.set_pos(32, 265)
             no_sim_power_screen_cancel.set_src("E:/static/cancel_icon.png")
             no_sim_power_screen_cancel.add_flag(lv.obj.FLAG.CLICKABLE)
             no_sim_power_screen_cancel.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
@@ -1236,6 +1236,118 @@ class NoSimPowerScreen(Screen):#
     def btn8_press(self):
         EventMesh.publish("return_prev_screen")
 
+no_sim_auto_screen = None
+no_sim_auto_screen_title = None
+no_sim_auto_screen_label =None
+no_sim_auto_screen_comfirm =None
+no_sim_autor_screen_cancel = None
+no_sim_auto_screen_img = None
+no_sim_confirm_label = None
+
+#未插卡,长按关机
+class NoSimAutoScreen(Screen):#无sim卡是否关机
+    NAME = "no_sim_auto_screen"
+    def __init__(self):
+        super().__init__()
+        self.meta = None
+        self.meta_type = "popup"
+        self.timer = osTimer()
+        self.count = 0
+
+    def initialization(self):
+        global no_sim_auto_screen,no_sim_confirm_label,no_sim_cancel_label,no_sim_auto_screen_img,no_sim_auto_screen_title,no_sim_auto_screen_comfirm,no_sim_auto_screen_cancel,no_sim_auto_screen_label
+        if no_sim_auto_screen == None :
+            no_sim_auto_screen = lv.obj()
+            print("no_sim_power_screen")
+            no_sim_auto_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            no_sim_auto_screen_title = lv.label(no_sim_auto_screen)
+            no_sim_auto_screen_title.set_pos(0, 10)
+            no_sim_auto_screen_title.set_size(240, 50)
+            no_sim_auto_screen_title.set_text("无SIM卡,无操作30s\n后自动关机")
+            no_sim_auto_screen_title.set_long_mode(lv.label.LONG.WRAP)
+            no_sim_auto_screen_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            no_sim_auto_screen_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            no_sim_auto_screen_img = lv.img(no_sim_auto_screen)
+            no_sim_auto_screen_img.set_pos(100, 70)
+            no_sim_auto_screen_img.set_size(61, 61)
+            no_sim_auto_screen_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            no_sim_auto_screen_img.set_src("E:/static/poweroff_icon.png")
+
+
+            no_sim_auto_screen_label = lv.label(no_sim_auto_screen)
+            no_sim_auto_screen_label.set_pos(0, 150)
+            no_sim_auto_screen_label.set_size(240, 40)
+            no_sim_auto_screen_label.set_text("是否关机?")
+            no_sim_auto_screen_label.set_long_mode(lv.label.LONG.WRAP)
+            no_sim_auto_screen_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            no_sim_auto_screen_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            no_sim_auto_screen_comfirm = lv.img(no_sim_auto_screen)
+            no_sim_auto_screen_comfirm.set_size(176, 46)
+            no_sim_auto_screen_comfirm.set_pos(32, 190)
+            no_sim_auto_screen_comfirm.set_src("E:/static/off_icon.png")
+            no_sim_auto_screen_comfirm.add_flag(lv.obj.FLAG.CLICKABLE)
+            no_sim_auto_screen_comfirm.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            no_sim_confirm_label = lv.label(no_sim_auto_screen_comfirm)
+            no_sim_confirm_label.set_text("确定")
+            no_sim_confirm_label.align(lv.ALIGN.CENTER, 0, 5)
+            no_sim_confirm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            no_sim_auto_screen_cancel = lv.img(no_sim_auto_screen)
+            no_sim_auto_screen_cancel.set_size(176, 46)
+            no_sim_auto_screen_cancel.set_pos(32, 265)
+            no_sim_auto_screen_cancel.set_src("E:/static/cancel_icon.png")
+            no_sim_auto_screen_cancel.add_flag(lv.obj.FLAG.CLICKABLE)
+            no_sim_auto_screen_cancel.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            no_sim_cancel_label = lv.label(no_sim_auto_screen_cancel)
+            no_sim_cancel_label.set_text("取消")
+            no_sim_cancel_label.align(lv.ALIGN.CENTER, 0, 5)
+            no_sim_cancel_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            no_sim_auto_screen_cancel.set_ext_click_area(20)
+
+            self.meta = no_sim_auto_screen
+            no_sim_auto_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),
+                                     lv.EVENT.CLICKED, None)
+        
+            no_sim_auto_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.cancel(e)),
+                                     lv.EVENT.CLICKED, None)
+        self.timer.start(1*1000,1,self.fun)
+        self.count = 0
+    def fun(self,*argc):
+        EventMesh.publish("system_sleep_rest")#防止黑屏
+        self.count+=1
+        if self.count > 30:
+            self.count = 0
+            self.timer.stop()
+            EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
+            
+
+    def Close(self):
+        self.count = 0
+        self.timer.stop()
+
+    def confirm(self,e):
+        EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
+
+    def cancel(self,e):
+        EventMesh.publish("return_prev_screen")
+
+    def done_return(self):
+        EventMesh.publish("return_prev_screen")
+
+    def btn1_release(self):
+        EventMesh.publish("return_prev_screen")
+
+    def btn8_press(self):
+        EventMesh.publish("return_prev_screen")
+
+
+
+
 dialing_popup_screen = None
 dialing_popup_img = None
 dialing_popup_name = None
@@ -1468,6 +1580,63 @@ class DialNoconnectPopupScreen(Screen):#你所拨打的电话暂时无法接通
     def btn8_press(self):
         EventMesh.publish("return_prev_screen")
 
+charge_full_screen = None
+charge_full_screen_title = None
+class chargefullScreen(Screen):#充电已满弹窗提示
+    NAME = "charge_full"
+    def __init__(self):
+        super().__init__()
+        self.meta = None
+        self.meta_type = "popup"
+        self.timer = osTimer()
+        self.count = 0
+    def initialization(self):
+        global charge_full_screen,charge_full_screen_title
+        if charge_full_screen == None :
+            charge_full_screen = lv.obj()
+            print("charge_full_screen")
+            charge_full_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            charge_full_screen_title = lv.label(charge_full_screen)
+            charge_full_screen_title.set_pos(0, 150)
+            charge_full_screen_title.set_size(240, 40)
+            charge_full_screen_title.set_text("充电已满")
+            charge_full_screen_title.set_long_mode(lv.label.LONG.WRAP)
+            charge_full_screen_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            charge_full_screen_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.meta = charge_full_screen
+        self.count = 0
+        self.timer.start(1*1000,1,self.fun)
+
+    def Close(self):
+        self.count = 0
+        self.timer.stop()
+        pass
+    
+    def fun(self,*argc):
+        EventMesh.publish("system_sleep_rest")#防止黑屏
+        self.count+=1
+        if self.count > 10:
+            self.count = 0
+            self.timer.stop()
+            EventMesh.publish("return_prev_screen")
+    
+    def done_click(self):
+        EventMesh.publish("return_prev_screen")
+
+    def done_return(self):
+        EventMesh.publish("return_prev_screen")
+
+    def btn1_release(self):
+        EventMesh.publish("return_prev_screen")
+
+    def btn8_press(self):
+        EventMesh.publish("return_prev_screen")
+
+
+
+
 message_popup_screen = None
 message_popup_title = None
 #信息弹窗
@@ -1518,7 +1687,65 @@ class NewMessageScreen(Screen):
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
+remove_message_popup_screen = None
+remove_message_popup_title = None
+#信息弹窗
+class RemoveMessageScreen(Screen):#删除短信弹窗框
+    NAME = "remove_message_popup"
+    def __init__(self):
+        super().__init__()
+        self.meta = None
+        self.meta_type = "popup"
+        self.timer = osTimer()
+
+    def initialization(self):
+        global remove_message_popup_screen,remove_message_popup_title 
+        if remove_message_popup_screen == None :
+            remove_message_popup_screen = lv.obj()
+            print("message_popup_screen")
+            remove_message_popup_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            message_popup_title = lv.label(remove_message_popup_screen)
+            message_popup_title.set_pos(0, 150)
+            message_popup_title.set_size(240, 50)
+            message_popup_title.set_text("正在删除中...\n请稍候")
+            message_popup_title.set_long_mode(lv.label.LONG.WRAP)
+            message_popup_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            message_popup_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.meta = remove_message_popup_screen
+        self.timer.start(1000,1,self.timer_cb)
+    def timer_cb(self,*argc):
+        msg_nums = sms.getMsgNums() 
+        # print("timer_cb remove!!!!!!!!!",msg_nums)
+        if msg_nums == 0:
+            self.timer.stop()
+            EventMesh.publish("load_screen", {"screen": "popup"})
+
+    def Close(self):
+        self.timer.stop()
+
+    def done_left_to_right(self):
+        EventMesh.publish("return_prev_screen")
+
+    def done_right_to_left(self):
+        EventMesh.publish("return_prev_screen")
+
+    def done_bottom_to_top(self):
+        EventMesh.publish("return_prev_screen")
+
+    def done_top_to_bottom(self):
+        EventMesh.publish("return_prev_screen")
+
+    def done_return(self):
+        EventMesh.publish("return_prev_screen")
+    def done_click(self):
+        EventMesh.publish("load_screen", {"screen": "popup"})
+
+    def btn1_release(self):
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
 
+    def btn8_press(self):
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
 message_full_screen = None 
 message_full_label = None 
 message_full_confirm = None 
@@ -1530,6 +1757,7 @@ class MessageFullScreen(Screen):
         super().__init__()
         self.meta = None
         self.meta_type = "popup"
+        EventMesh.subscribe("remove_all_sms_cb",self.remove_all_sms_cb)
     def initialization(self):
         global message_full_screen,message_full_label,message_full_confirm,message_full_cancel
         if message_full_screen == None :
@@ -1567,11 +1795,15 @@ class MessageFullScreen(Screen):
             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)
 
+    def remove_all_sms_cb(self, event, msg):
+        sms.deleteMsg(1,4)
 
     def confirm(self, e):
+        print("sms confirm!!!!!!!!")
         # self.timer.start(2*1000,0,self.clear_data)
-        sms.deleteMsg(1,4)
-        EventMesh.publish("load_screen", {"screen": "popup"})
+        EventMesh.publish("load_screen", {"screen": "remove_message_popup"})
+        EventMesh.publish_async("remove_all_sms_cb","",1*1024)
+        
 
     def concel(self, e):
         EventMesh.publish("return_prev_screen")
@@ -1605,7 +1837,7 @@ def msg_cb(args):
     print("index:{}".format(index))
     sms_data = sms.getSaveLoc()
     sms_max = sms_data[0][2]
-    if index >= sms_max:
+    if index >= sms_max-1:
         EventMesh.publish("load_screen", {"screen": "message_full"})
     else:
         EventMesh.publish("load_screen", {"screen": "message_popup"})
@@ -3356,8 +3588,8 @@ class ContactsScreen(Screen):
 
             contact_none_label = lv.label(contacts_screen_list_screen)
             contact_none_label.set_pos(0, 80)
-            contact_none_label.set_size(240, 40)
-            contact_none_label.set_text("空")
+            contact_none_label.set_size(240, 50)
+            contact_none_label.set_text("无联系人,请在手机\nAPP上添加")
             contact_none_label.set_long_mode(lv.label.LONG.WRAP)
             contact_none_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             contact_none_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
@@ -3779,6 +4011,8 @@ class TemperatureScreen(Screen):
         
         temp = EventMesh.publish(constants.EVENT.GET_TEMP) 
         tmp = str(temp).split('.')[0] + '.' + str(temp).split('.')[1][:1]#获取小数点后一位 舍去小数点最后一位
+        if temp < 25 or temp > 42:
+            temp = 0
         # print("self.temp:{}".format(temp))
         if self.point >= 2:
             if temp != 0:
@@ -3806,12 +4040,13 @@ class TemperatureScreen(Screen):
         tmp_d = str(temp).split('.')[1][:1]
         tmp_d_tmp = int(tmp_d)
         if self.point >= 2:
-            if temp >= 37.3:
-                temperature_keep_label.set_text("体温偏高")
-                temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0x00, 0x00), lv.STATE.DEFAULT)
-            else:
-                temperature_keep_label.set_text("体温正常")
-                temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            if temp != 0:
+                if temp >= 37.3:
+                    temperature_keep_label.set_text("体温偏高")
+                    temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0x00, 0x00), lv.STATE.DEFAULT)
+                else:
+                    temperature_keep_label.set_text("体温正常")
+                    temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
         if self.point > 120 : #测2min
             self.timer.stop()
             if temp >= 37.3:
@@ -4817,34 +5052,35 @@ class CountdownScreen(Screen):
         # EventMesh.publish("load_screen", {"screen": "countdown"})
     
     def fun(self,e):
-        date_tmp = utime.localtime()
-        self.time_tmp = utime.mktime(date_tmp) 
-        total_sec = self.time_tmp - self.timeSecond
-        # print("total_sec:{} self.time_tmp:{} self.timeSecond:{} self.total:{}".format(total_sec,self.time_tmp,self.timeSecond,self.total))
-        if self.total > 0:
-            self.total = self.total - total_sec
-        self.timeSecond = self.time_tmp
-        
-        
-        self.hour = self.total//3600
-        self.min = self.total%3600//60
-        self.sec =  self.total%60
-        
+        if self.g_state == 1:
+            date_tmp = utime.localtime()
+            self.time_tmp = utime.mktime(date_tmp) 
+            total_sec = self.time_tmp - self.timeSecond
+            # print("total_sec:{} self.time_tmp:{} self.timeSecond:{} self.total:{}".format(total_sec,self.time_tmp,self.timeSecond,self.total))
+            if self.total > 0:
+                self.total = self.total - total_sec
+            self.timeSecond = self.time_tmp
+            
+            
+            self.hour = self.total//3600
+            self.min = self.total%3600//60
+            self.sec =  self.total%60
+            
 
-        # print("self.total:{} self.time_tmp:{} self.timeSecond:{} test_hour:{} test_min:{} test_sec:{}".format(self.total,self.time_tmp,self.timeSecond,test_hour,test_min,test_sec))
-        self.show_value()  
-        # print("Close self.timeSecond:22")
-        EventMesh.publish("set_countdown_all_time", [self.total,self.timeSecond])
-        if self.total <= 0:
-            self.g_state = 0
-            self.g_end = 1
-            self.hour = 0
-            self.min = 0
-            self.sec = 0
-            EventMesh.publish("set_countdown_off_state", [0,self.g_state])
-            self.timer.stop()
-            self.show_value()
-            EventMesh.publish("load_screen", {"screen": "countdown_end"})
+            # print("self.total:{} self.time_tmp:{} self.timeSecond:{} test_hour:{} test_min:{} test_sec:{}".format(self.total,self.time_tmp,self.timeSecond,test_hour,test_min,test_sec))
+            self.show_value()  
+            # print("Close self.timeSecond:22")
+            EventMesh.publish("set_countdown_all_time", [self.total,self.timeSecond])
+            if self.total <= 0:
+                self.g_state = 0
+                self.g_end = 1
+                self.hour = 0
+                self.min = 0
+                self.sec = 0
+                EventMesh.publish("set_countdown_off_state", [0,self.g_state])
+                self.timer.stop()
+                self.show_value()
+                EventMesh.publish("load_screen", {"screen": "countdown_end"})
         
         # self.total = self.total - 1
         
@@ -5014,6 +5250,7 @@ class CountdownEndScreen(Screen):
             self.meta = countdown_end_screen
         self.FIND_timer_count = 0
         self.FIND_timer.start(3000, 1, self.FIND_timer_cb)
+        EventMesh.publish("close_count_show_info")
         self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3')  #播放声音
 
     def FIND_timer_cb(self, *args):
@@ -5026,7 +5263,7 @@ class CountdownEndScreen(Screen):
         self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') 
     
     def stop_FIND(self) :
-        EventMesh.publish("close_count_show_info")
+        
         self.FIND_timer.stop()
         self.aud.stopAll()
 
index 50af606..9e472e7 100644 (file)
@@ -69,7 +69,7 @@ watchface1_res_stat_charge_in_img.set_pos(int(180),int(0))
 watchface1_res_stat_charge_in_img.set_size(10,18)
 watchface1_res_stat_charge_in_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
 watchface1_res_stat_charge_in_img.add_flag(lv.obj.FLAG.CLICKABLE)
-watchface1_res_stat_charge_in_img.set_src("E:/static/charge_in.png")
+# watchface1_res_stat_charge_in_img.set_src("E:/static/charge_in.png")
 # add style for watchface1_res_stat_charge_in_img
 watchface1_res_stat_charge_in_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
 
@@ -258,11 +258,10 @@ class WatchFace1():
         #print("__battery_cb:",str(msg))
         #print(msg)
         if msg[0] == '1':
-            watchface1_res_stat_charge_in_img.set_src("E:/static/charge_in.png")
+            watchface1_res_stat_battery_img.set_src("E:/static/charge_ing.png")
         else:
-            watchface1_res_stat_charge_in_img.set_src("E:/static/charge_in1.png")
-
-        watchface1_res_stat_battery_img.set_src("E:/static/vbat_%d.png"%(msg[1]))#"E:/vbat_60.png"
+            # watchface1_res_stat_charge_in_img.set_src("E:/static/charge_in1.png")
+            watchface1_res_stat_battery_img.set_src("E:/static/vbat_%d.png"%(msg[1]))#"E:/vbat_60.png"
         pass
 
     def __oldHrValue(self, event, msg):
@@ -482,11 +481,10 @@ class WatchFace2():
         #print("__battery_cb:",str(msg))
         #print(msg)
         if msg[0] == '1':
-            watchface2_res_stat_charge_in_img.set_src("E:/static/charge_in.png")
+            watchface2_res_stat_battery_img.set_src("E:/static/charge_ing.png")
         else:
-            watchface2_res_stat_charge_in_img.set_src("E:/static/charge_in1.png")
-
-        watchface2_res_stat_battery_img.set_src("E:/static/vbat_%d.png"%(msg[1]))#"E:/vbat_60.png"
+            # watchface2_res_stat_charge_in_img.set_src("E:/static/charge_in1.png")
+            watchface2_res_stat_battery_img.set_src("E:/static/vbat_%d.png"%(msg[1]))#"E:/vbat_60.png"
         pass
     def __stepValue(self, event, msg):
         if msg == None:    
index c3f74f8..009d33a 100644 (file)
@@ -1016,7 +1016,7 @@ print("poweron_screen")
 poweron_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 poweron_label = lv.label(poweron_screen)
-poweron_label.set_text("WELLCOM")
+poweron_label.set_text("WELCOME")
 poweron_label.align(lv.ALIGN.CENTER, 0, 0)
 poweron_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
 class PowerOnScreen(Screen):
@@ -1060,11 +1060,10 @@ class PowerOnScreen(Screen):
         else:
             play_state = EventMesh.publish("get_audio_state")#音频播放状态
             if play_state != None:
-                if play_state == 0 or self.count >= 5:#在上一个界面在播放音频时切换界面则关闭 以免一直播放
+                if self.count >= 9:#在上一个界面在播放音频时切换界面则关闭 以免一直播放
                     self.count = 0
                     EventMesh.publish("load_screen", {"screen": "main_menu"})
                     self.timer.stop()
-                    
                     return
         self.count+=1
 
@@ -1099,6 +1098,8 @@ class PoweroffConfirmScreen(Screen):
         self.meta = poweroff_confirm_screen
         self.timer = osTimer()
         self.read_data = {}
+        self.count = 0
+
     def initialization(self):
         step = EventMesh.publish("get_old_step_value")
         self.read_data = EventMesh.publish("get_storage_data")
@@ -1117,7 +1118,7 @@ class PoweroffConfirmScreen(Screen):
         self.count+=1
         play_state = EventMesh.publish("get_audio_state")#音频播放状态
         if play_state != None:
-            if play_state == 0 or self.count > 5:#在上一个界面在播放音频时切换界面则关闭 以免一直播放
+            if self.count > 8:#在上一个界面在播放音频时切换界面则关闭 以免一直播放
                 self.count = 0
                 self.timer.stop()
                 Power.powerDown()