修复bug 修复自动测量心率和血氧的间隔问题
authord15521469561 <d155214695615@qq.com>
Mon, 24 Apr 2023 01:40:35 +0000 (09:40 +0800)
committerd15521469561 <d155214695615@qq.com>
Mon, 24 Apr 2023 01:40:35 +0000 (09:40 +0800)
3.code/1.watch/2.code/alarm.py
3.code/1.watch/2.code/appWechat.py
3.code/1.watch/2.code/main_1.py
3.code/1.watch/2.code/mgr.py
3.code/1.watch/2.code/protocol.py
3.code/1.watch/2.code/ui.py
3.code/1.watch/2.code/ui_setting.py

index cdf909a..d907647 100644 (file)
@@ -645,7 +645,7 @@ class PopupAlarmScreen(Screen):
         self.alarm_count = 0
         self.timer.start(3*1000,1,self.exit_alarm_page)
         time = EventMesh.publish("screen_get_time")#获取系统时间
-        popup_alarm_time.set_text("{}:{}".format(time[0][0],time[0][1]))
+        popup_alarm_time.set_text("{}:{}".format("%02d"%(time[0][0]),"%02d"%(time[0][1])))
 
 
     def Close(self):
index dbf4b6f..ea66b84 100644 (file)
@@ -137,6 +137,7 @@ class WechatScreen(Screen):
         EventMesh.subscribe("set_wechat_data", self.set_wechat_data)
 
         EventMesh.subscribe("get_aduio_state", self.get_aduio_state)
+        EventMesh.subscribe("get_send_state", self.get_send_state)
 
         self.countdown = 1
         self.count_img = 0
@@ -146,6 +147,7 @@ class WechatScreen(Screen):
         self.sec_num = 0
         self.countdown_old = 0
         self.press_state = 0
+        self.ble_send = 0
 
     def get_wechat_data(self,event, msg): 
         return [self.MXA_MSG,self.wechat_num ,self.wechat_recode_list]
@@ -298,7 +300,7 @@ class WechatScreen(Screen):
         self.updata_list_show(1)
         self.count_img = 0
         self.play_sec = 0
-
+        self.ble_send = 0
     #按下录音
     def talking(self,e):
         self.play_timer.stop()
@@ -320,6 +322,7 @@ class WechatScreen(Screen):
         self.record_test.start("/ext/static/storage_file/{}.amr".format(self.wechat_num),16) 
         self.second_timer.start(1000, 1, self.reduce_second)
         self.press_state = 1
+        self.ble_send = 1
         #松开发送   
     def reciving(self,e):
         self.updata_list_show(0)
@@ -431,13 +434,16 @@ class WechatScreen(Screen):
     def hide_label(self,*args):
         wechat_label.add_flag(lv.obj.FLAG.HIDDEN)
         wechat_label.set_text(" ")
+        self.ble_send = 0
         self.updata_list_show(0)
 
      #获取是否在录音
     def get_aduio_state(self, event, msg): 
         return self.press_state
 
-
+    def get_send_state(self, event, msg): 
+        return self.ble_send
+    
     def Close(self):
         self.play_timer.stop()
         self.record_test.stop() #停止錄音
@@ -573,7 +579,6 @@ class TK_ProtoCol(ProtoCol):
             get_wechat_data = EventMesh.publish("get_wechat_data")
             wechat_num = get_wechat_data[1]
             MXA_MSG = get_wechat_data[0]
-            print("wechat_num ...:{}".format(wechat_num))
             wechat_recode_list = get_wechat_data[2]
             if wechat_num > 0:
                 wechat_num += 1 
@@ -586,10 +591,9 @@ class TK_ProtoCol(ProtoCol):
             wechat_recode_list["%02d"%(wechat_num)] = "R:{}".format(3)
             EventMesh.publish("set_wechat_data",[MXA_MSG,wechat_num,wechat_recode_list])
             #写语音文件数据
-            get_aduio_state=EventMesh.publish("get_aduio_state")
-            if get_aduio_state != 1:
-                pass
-                # EventMesh.publish("load_screen", {"screen": "wechat_popup"})
+            get_send_state=EventMesh.publish("get_send_state")
+            if get_send_state != 1:
+                EventMesh.publish("load_screen", {"screen": "wechat_popup"})
             EventMesh.publish("wechat_updata_list_show")
             # path = "/ext/static/storage_file/audio_amr/amr/{}.amr".format(wechat_num)
             path = "/ext/static/storage_file/{}.amr".format(wechat_num)
@@ -670,10 +674,9 @@ class MESSAGE_ProtoCol(ProtoCol):
         EventMesh.publish("set_wechat_data",[MXA_MSG,wechat_num,wechat_recode_list])
         # print("wechat_recode_list:len data:{}".format(wechat_recode_list))
         EventMesh.publish(constants.PROTOCOL.MESSAGE_SEND)
-        get_aduio_state=EventMesh.publish("get_aduio_state")
-        if get_aduio_state != 1:
-            pass
-            # EventMesh.publish("load_screen", {"screen": "wechat_popup"})
+        get_send_state=EventMesh.publish("get_send_state")
+        if get_send_state != 1:
+            EventMesh.publish("load_screen", {"screen": "wechat_popup"})
         EventMesh.publish("wechat_updata_list_show")
             
       
index 8b02cee..83ec335 100644 (file)
@@ -121,6 +121,7 @@ if __name__ == '__main__':
     ui.add_screen(_ui.MsgDetailScreen())
     ui.add_screen(_ui.IncomingCallScreen())
     ui.add_screen(_ui.OnCallScreen())
+    ui.add_screen(_ui.MessageFullScreen())
     # ui.add_screen(_ui.PowerOnScreen())
     ui.add_screen(FactoryModeLocationScreen())
     ui.add_screen(FactoryModeScreen())
index d62fa1a..6404799 100644 (file)
@@ -12,7 +12,7 @@ import dataCall
 import checkNet
 import osTimer
 from ext import constants
-
+import sms
 from ext.common import Lock, Abstract, LogAdapter
 from ext.location import GPS, GPSMatch,CellLocator
 from misc import USB, Power, ADC
@@ -511,6 +511,7 @@ class DeviceInfoManager(Abstract):
         self.Hr_Need_Open = 0
         self.Spo2_Need_Open = 0
         self.bat_time = 0
+        self.sms_full_flag = 0
 
         self.old_time = 0
         self.UD_time = 0
@@ -611,28 +612,39 @@ class DeviceInfoManager(Abstract):
         self.get_spo2_state = EventMesh.publish("get_spo2_state")
         # print("hr_time:{} get_hr_state:{} get_spo2_state:{}".format(hr_time,self.get_hr_state,self.get_spo2_state))
         
+        #电量小于20%5分钟提醒一次
         battery = EventMesh.publish("screen_get_battery")
         self.bat_time+=10
         if self.bat_time > 5*60:
             self.bat_time = 0
             if battery == 20:
                 EventMesh.publish("load_screen", {"screen": "low_power"})
-            
-           
+    
+        #消息已满
+        msg_nums = sms.getMsgNums() #获取短信条数
+        self.sms_full_flag+=10
+        if self.sms_full_flag >= 120:
+            self.sms_full_flag=0
+            if msg_nums >= 50:
+                EventMesh.publish("load_screen", {"screen": "message_full"})
+        
+        print("hr......01....{}\r\n".format(hr_time))
         if hr_time != None:
             # print("hr......01....{}\r\n".format(hr_time))
             if hr_time > 0:
                 # print("get_hr_state:{} get_spo2_state:{} self.old_time:{} hr_time:{}".format(self.get_hr_state,self.get_spo2_state,self.old_time,hr_time))
                 if self.get_hr_state != 1 and self.get_spo2_state != 1:
-                    if self.HR_state == 0:
-                        self.HR_Onestate = 0
-                        self.HR_OneTime = 0
+                    if self.get_hr_state == 0 and self.get_spo2_state == 0:
+                        if self.HR_state == 0 or self.HR_state == 3:
+                            self.HR_Onestate = 0
+                            self.HR_OneTime = 0
                     
-                    if self.old_time != hr_time:
+                    if self.old_time != hr_time:#重复修改测量间隔时间
                         self.SENSOR_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量
                         if self.get_hr_state == 2 and self.HR_state == 1:#自动检测的心率还在测量立马关了测试
                             heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
                             if heart_value > 50 and heart_value != None:
+                                EventMesh.publish("set_old_hr_data",heart_value)
                                 EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)
                             EventMesh.publish(constants.EVENT.STOP_HEART)
                             self.HR_state = 0
@@ -640,21 +652,48 @@ class DeviceInfoManager(Abstract):
                             self.HR_state = 0
                             spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
                             if spo2_value > 85 and spo2_value != None:
+                                EventMesh.publish("set_old_spo2_data",spo2_value)
                                 EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
                             EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
                     self.old_time = hr_time
 
-                    # print("time_tmp :{} self.SENSOR_time :{} time_tmp - self.SENSOR_time:{} self.HR_state:{}".format(time_tmp,self.SENSOR_time,time_tmp - self.SENSOR_time,self.HR_state))
-                    if math.fabs(time_tmp - self.SENSOR_time) >= hr_time and self.HR_state == 0:
+                    if self.HR_state == 3 or self.HR_state == 0:#
+                        if (time_tmp - self.SENSOR_time) >= hr_time:
+                            if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量没有完毕优先测量间隔时间测量的
+                                if self.get_hr_state == 3:
+                                    EventMesh.publish(constants.EVENT.STOP_HEART)
+                                    heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+                                    if heart_value > 50 and heart_value != None:
+                                        EventMesh.publish("set_old_hr_data",heart_value)
+                                        EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)
+                                    
+                                elif self.get_spo2_state == 3:
+                                    EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+                                    spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
+                                    if spo2_value > 85 and spo2_value != None:
+                                        EventMesh.publish("set_old_spo2_data",spo2_value)
+                                        EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+
+                                self.HR_state = 0
+                                self.SENSOR_time = time_tmp
+                            self.SENSOR_time = time_tmp
+                            self.HR_state = 0
+                        
+                    #print("time_tmp :{} self.SENSOR_time :{} time_tmp - self.SENSOR_time:{} self.HR_state:{}".format(time_tmp,self.SENSOR_time,time_tmp - self.SENSOR_time,self.HR_state))
+                    if (time_tmp - self.SENSOR_time) == 0 and self.HR_state == 0:
                         print("START_HEART:1")
                         EventMesh.publish("set_hr_state",2)#2代表后台进入测试
                         EventMesh.publish(constants.EVENT.START_HEART)
                         self.HR_state = 1
-                    elif math.fabs(time_tmp - self.SENSOR_time) >= (hr_time+60) and self.HR_state == 1:
+                        self.HR_Onestate = 0
+                        self.HR_OneTime = 0
+                    elif (time_tmp - self.SENSOR_time) >= 60 and self.HR_state == 1:
                         EventMesh.publish("set_hr_state",0)#2代表后台进入测试
                         EventMesh.publish(constants.EVENT.STOP_HEART)
                         heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+                        print("heart_value:{}".format(heart_value))
                         if heart_value > 50 and heart_value != None:
+                            EventMesh.publish("set_old_hr_data",heart_value)
                             EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
                         #获取心率数据上传数据app
                         print("STOP_HEART:")
@@ -662,22 +701,22 @@ class DeviceInfoManager(Abstract):
                         EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
                         print("START_BLOOD_OXYGEN:")
                         self.HR_state = 2
-                    elif math.fabs(time_tmp - self.SENSOR_time) >= (hr_time+120) and self.HR_state == 2:
+                    elif (time_tmp - self.SENSOR_time) >= 120 and self.HR_state == 2:
                         print("STOP_BLOOD_OXYGEN:")
                         EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
                         EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#停止血氧测试
                         spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
                         print("spo2_value:{}".format(spo2_value))
                         if spo2_value > 85 and spo2_value != None:
+                            EventMesh.publish("set_old_spo2_data",spo2_value)
                             EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
-                        self.HR_state = 0
-                        self.SENSOR_time = time_tmp
+                        self.HR_state = 3
+                    
                 else:
-                    # print("endtime.........\r\n")
                     self.SENSOR_time = time_tmp
                     self.HR_state = 0
                     self.old_time = 0 
-                if self.HR_state == 0:#只有不在测量的时候才测单次的
+                if self.HR_state == 3 or self.HR_state == 0:#只有不在测量的时候才测单次的
                     if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
                         self.HR_state = 0
                         self.HR_OneTime+=1
@@ -705,18 +744,19 @@ class DeviceInfoManager(Abstract):
                                 heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
                                 if heart_value > 50 and heart_value != None:
                                     EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
-                                    print("STOP_HEART.01:")
+                                    EventMesh.publish("set_old_hr_data",heart_value)
+                           
                                 if self.Spo2_Need_Open == 0 and self.get_spo2_state == 3:
                                     EventMesh.publish("set_spo2_state",3)#2代表后台进入血氧测试
                                     EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
-                                    print("START_BLOOD_OXYGEN 02")
+                                    
                                     self.HR_Onestate = 2
                                     self.set_hsenor_crt = 2#血氧关闭
                                 else:
                                     self.HR_Onestate = 0
                                     self.HR_OneTime = 0
                                     self.set_hsenor_crt = 0#
-                                    print("START_end......")
+                                 
                                     EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
                                     EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
                             else:
@@ -724,9 +764,10 @@ class DeviceInfoManager(Abstract):
                                     EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
                                     EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#K开血氧
                                     spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
-                                    print("spo2_value:{}.......01..".format(spo2_value))
+                                 
                                     if spo2_value > 85 and spo2_value != None:
                                         EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+                                        EventMesh.publish("set_old_spo2_data",spo2_value)
                                     if self.Hr_Need_Open == 0 and self.get_hr_state == 3:
                                         EventMesh.publish("set_hr_state",3)#2代表后台进入测试
                                         EventMesh.publish(constants.EVENT.START_HEART)
@@ -736,7 +777,7 @@ class DeviceInfoManager(Abstract):
                                         self.HR_Onestate = 0
                                         self.HR_OneTime = 0
                                         self.set_hsenor_crt = 2#血氧关闭
-                                    print("STOP_BLOOD_OXYGEN:....09.....")
+                                    
                                     
                         elif self.HR_OneTime > 6+6 and self.HR_Onestate == 2:
                             print("HR_OneTime:....05")
@@ -744,16 +785,16 @@ class DeviceInfoManager(Abstract):
                                 EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
                                 EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#停止血氧测试
                                 spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
-                                print("spo2_value:{}......08.....".format(spo2_value))
                                 if spo2_value > 85 and spo2_value != None:
                                     EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+                                    EventMesh.publish("set_old_spo2_data",spo2_value)
                             elif self.set_hsenor_crt == 1:
                                 EventMesh.publish("set_hr_state",0)#0代表g关闭测试
                                 EventMesh.publish(constants.EVENT.STOP_HEART)
                                 heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
                                 if heart_value > 50 and heart_value != None:
+                                    EventMesh.publish("set_old_hr_data",heart_value)
                                     EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
-                                    print("STOP_HEART.03:")
                             self.HR_Onestate = 0
                     else:
                         self.HR_Onestate = 0
@@ -764,12 +805,11 @@ class DeviceInfoManager(Abstract):
                 self.SENSOR_time = time_tmp#进入最后一次的时间戳
                 self.old_time = 0
 
-                if self.get_hr_state != 1 and self.get_spo2_state != 1:
+                if self.get_hr_state != 1 and self.get_spo2_state != 1:#没有设置间隔时间单次测量
                     if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
                         self.HR_state = 0
                         self.HR_OneTime+=1
                         if self.HR_OneTime == 1 and self.HR_Onestate == 0:
-                            print("hr.......01...\r\n")
                             if self.get_hr_state == 3:
                                 self.Hr_Need_Open = 1
                                 EventMesh.publish("set_hr_state",3)#2代表后台进入测试
@@ -784,26 +824,24 @@ class DeviceInfoManager(Abstract):
                             else:
                                 self.Spo2_Need_Open = 0
                             self.HR_Onestate = 1
-                            print("self.HR_Onestate....3")
+                      
                         elif self.HR_OneTime > 6 and self.HR_Onestate == 1:
-                            print("self.HR_Onestate...4..")
+                           
                             if self.Hr_Need_Open == 1:#需要关闭心率测量
                                 EventMesh.publish(constants.EVENT.STOP_HEART)
                                 heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
                                 if heart_value > 50 and heart_value != None:
+                                    EventMesh.publish("set_old_hr_data",heart_value)
                                     EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
-                                    print("STOP_HEART.06:")
                                 if self.Spo2_Need_Open == 0 and self.get_spo2_state == 3:
                                     EventMesh.publish("set_spo2_state",3)#2代表后台进入血氧测试
                                     EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
-                                    print("START_BLOOD_OXYGEN 06")
                                     self.HR_Onestate = 2
                                     self.set_hsenor_crt = 2#血氧关闭
                                 else:
                                     self.HR_Onestate = 0
                                     self.HR_OneTime = 0
                                     self.set_hsenor_crt = 0#
-                                    print("START_end....06..")
                                     EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
                                     EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
                             else:
@@ -813,6 +851,7 @@ class DeviceInfoManager(Abstract):
                                     spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
                                     print("spo2_value:{}.......01..".format(spo2_value))
                                     if spo2_value > 85 and spo2_value != None:
+                                        EventMesh.publish("set_old_spo2_data",spo2_value)
                                         EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
                                     if self.Hr_Need_Open == 0 and self.get_hr_state == 3:
                                         EventMesh.publish("set_hr_state",3)#2代表后台进入测试
@@ -826,21 +865,20 @@ class DeviceInfoManager(Abstract):
                                     print("STOP_BLOOD_OXYGEN:....06.....")
                                     
                         elif self.HR_OneTime > 6+6 and self.HR_Onestate == 2:
-                            print("HR_OneTime:....06")
                             if self.set_hsenor_crt == 2:
                                 EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
                                 EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#停止血氧测试
                                 spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
-                                print("spo2_value:{}......06.....".format(spo2_value))
                                 if spo2_value > 85 and spo2_value != None:
+                                    EventMesh.publish("set_old_spo2_data",spo2_value)
                                     EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
                             elif self.set_hsenor_crt == 1:
                                 EventMesh.publish("set_hr_state",0)#0代表g关闭测试
                                 EventMesh.publish(constants.EVENT.STOP_HEART)
                                 heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
                                 if heart_value > 50 and heart_value != None:
+                                    EventMesh.publish("set_old_hr_data",heart_value)
                                     EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
-                                    print("STOP_HEART.06:")
                             self.HR_Onestate = 0
                     else:
                         self.HR_Onestate = 0
@@ -1635,7 +1673,7 @@ class getHrTimeManager(Abstract):
         
 class getBrightnessManager(Abstract):#获取亮度级别
     def __init__(self):
-        self.level = 5#默认值5
+        self.level = 6#默认值6
         self.read_data = {}
         self.PWM_backlight  = None
         check = ql_fs.path_exists("/ext/static/storage_file/config.json")
@@ -1661,7 +1699,7 @@ class getBrightnessManager(Abstract):#获取亮度级别
 
     def add(self, event, msg):
         if self.level < 10:
-            self.level = self.level + 1
+            self.level = self.level + 2
         self.PWM_backlight = PWM(PWM.PWM1, PWM.ABOVE_MS, self.level, 10)
         self.PWM_backlight.open()
         
@@ -1674,7 +1712,7 @@ class getBrightnessManager(Abstract):#获取亮度级别
 
     def reduce(self, event, msg):
         if self.level > 0:
-            self.level = self.level - 1
+            self.level = self.level - 2
         if self.level <= 0:
             self.PWM_backlight = PWM(PWM.PWM1, PWM.ABOVE_MS, 1, 10)
         else:
index bc77019..4fdd067 100644 (file)
@@ -87,7 +87,7 @@ class ProtoCol(Abstract):
 
     def handler(self, event, msg):
         self.password = EventMesh.publish(constants.EVENT.GET_PASSWORD)
-        self.imei = EventMesh.publish(constants.EVENT.GET_IMEI)#"867387060319166"#EventMesh.publish(constants.EVENT.GET_IMEI) #"867387060319166"#EventMesh.publish(constants.EVENT.GET_IMEI) #"867387060319166"#"867387060319188"#"867387060319177"#"867387060319166"#"860132060004322"#"867387060319166"#"860132060004322"#EventMesh.publish(constants.EVENT.GET_IMEI)
+        self.imei = EventMesh.publish(constants.EVENT.GET_IMEI)#"867387060319166" #EventMesh.publish(constants.EVENT.GET_IMEI)#"867387060319166"#EventMesh.publish(constants.EVENT.GET_IMEI) #"867387060319166"#EventMesh.publish(constants.EVENT.GET_IMEI) #"867387060319166"#"867387060319188"#"867387060319177"#"867387060319166"#"860132060004322"#"867387060319166"#"860132060004322"#EventMesh.publish(constants.EVENT.GET_IMEI)
         self.cid = EventMesh.publish(constants.EVENT.GET_CID)
         self.imsi = EventMesh.publish(constants.EVENT.GET_IMSI)
         self.key = EventMesh.publish(constants.EVENT.GET_KEY)
@@ -605,7 +605,7 @@ class HRSTART_ProtoCol(ProtoCol):
         if hrTotal == 1:#单次测量
             get_hr_state = EventMesh.publish("get_hr_state")
             get_spo2_state = EventMesh.publish("get_spo2_state")
-            if get_hr_state == 0 or get_spo2_state == 3:#只要两个不在测量 单次优先级最低
+            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:
@@ -698,7 +698,7 @@ class OXYGEN_One_ProtoCol(ProtoCol):#单次测量
         get_hr_state = EventMesh.publish("get_hr_state")
         get_spo2_state = EventMesh.publish("get_spo2_state")
         if state == 1:
-            if get_hr_state == 3 or get_spo2_state == 0:#只要两个不在测量 单次优先级最低
+            if (get_hr_state == 3 ) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
                 EventMesh.publish("set_spo2_state",3)#3代表单次测量
         EventMesh.publish(constants.PROTOCOL.OXSTART_SEND)
 
index 7b639de..a1fa2f2 100644 (file)
@@ -1353,13 +1353,13 @@ msg_list_t.set_size(240, 270)
 msg_list_t.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
 msg_list_t.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-heartrate_done_img = lv.img(msg_list_t)
-heartrate_done_img.set_pos(53, 0)
-heartrate_done_img.set_size(134, 117)
-heartrate_done_img.set_src("E:/static/IMAGE_NOTICE_NONE.jpg")
+msg_list_t_done_img = lv.img(msg_list_t)
+msg_list_t_done_img.set_pos(53, 20)
+msg_list_t_done_img.set_size(134, 117)
+msg_list_t_done_img.set_src("E:/static/IMAGE_NOTICE_NONE.png")
 
 no_msg_text = lv.label(msg_list_t)
-no_msg_text.set_pos(0, 130)
+no_msg_text.set_pos(0, 200)
 no_msg_text.set_size(240, 40)
 no_msg_text.set_text("暂无信息")
 no_msg_text.set_long_mode(lv.label.LONG.WRAP)
@@ -1377,8 +1377,11 @@ no_msg_text.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 def msg_cb(args):
     index = args[1]
     storage = args[2]
-    
-    EventMesh.publish("load_screen", {"screen": "message_popup"})
+    print("index:{}".format(index))
+    if index >= 49:
+        EventMesh.publish("load_screen", {"screen": "message_full"})
+    else:
+        EventMesh.publish("load_screen", {"screen": "message_popup"})
 
 sms.setCallback(msg_cb)
 
@@ -1402,6 +1405,8 @@ class NewMessageScreen(Screen):
         super().__init__()
         self.meta = message_popup_screen
 
+    def initialization(self):
+        EventMesh.publish("set_sms_clear_all_data",10)
 
     def done_left_to_right(self):
         EventMesh.publish("load_screen", {"screen": "popup"})
@@ -1426,7 +1431,96 @@ class NewMessageScreen(Screen):
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
+message_full_screen = lv.obj()
+message_full = lv.obj(message_full_screen)
+message_full.center()
+message_full.set_size(240, 320)
+message_full.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+message_full_label = lv.label(message_full)
+message_full_label.set_pos(0, 100)
+message_full_label.set_size(240, 40)
+message_full_label.set_text("消息已满,是否清除所有?")
+message_full_label.set_long_mode(lv.label.LONG.WRAP)
+message_full_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+message_full_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+message_full_confirm = lv.label(message_full)
+message_full_confirm.set_text("确认")
+message_full_confirm.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+message_full_confirm.set_size(120, 60)
+message_full_confirm.set_pos(0,180)
+message_full_confirm.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+message_full_confirm.add_flag(lv.obj.FLAG.CLICKABLE)
+message_full_confirm.set_ext_click_area(20)
+
+message_full_cancel = lv.label(message_full)
+message_full_cancel.set_text("取消")
+message_full_cancel.set_size(120, 60)
+message_full_cancel.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+message_full_cancel.set_pos(120,180)
+message_full_cancel.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+message_full_cancel.add_flag(lv.obj.FLAG.CLICKABLE)
+message_full_cancel.set_ext_click_area(20)
+
+#信息弹窗
+class MessageFullScreen(Screen):
+    NAME = "message_full"
+    def __init__(self):
+        super().__init__()
+        self.timer = osTimer()
+        self.clear_state = 10
+        self.meta = message_full_screen
+        EventMesh.subscribe("sms_clear_all_data", self.sms_clear_all_data)
+        EventMesh.subscribe("set_sms_clear_all_data", self.set_sms_clear_all_data)
+        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)
+        
+    def initialization(self):
+        self.timer.start(10*1000,0,self.return_back)
+    
+    def return_back(self, e):
+        EventMesh.publish("load_screen", {"screen": "popup"})
+
+    def confirm(self, e):
+        self.clear_state = 0
+        # self.timer.start(2*1000,0,self.clear_data)
+        sms.deleteMsg(1,4)
+        EventMesh.publish("load_screen", {"screen": "popup"})
+    def clear_data(self, e):
+        sms.deleteMsg(1,4)
+    
+    def sms_clear_all_data(self, event,msg):
+        return self.clear_state
+    
+    def set_sms_clear_all_data(self, event,msg):
+        self.clear_state = msg
+
+    def concel(self, e):
+        EventMesh.publish("load_screen", {"screen": "popup"})
+
+    def done_left_to_right(self):
+        EventMesh.publish("load_screen", {"screen": "popup"})
 
+    def done_right_to_left(self):
+        EventMesh.publish("load_screen", {"screen": "popup"})
+
+    def done_bottom_to_top(self):
+        EventMesh.publish("load_screen", {"screen": "popup"})
+
+    def done_top_to_bottom(self):
+        EventMesh.publish("load_screen", {"screen": "popup"})
+
+    def done_return(self):
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
+    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"})
 
 class PopupScreen(Screen):
     NAME = "popup"
@@ -1456,7 +1550,9 @@ class PopupScreen(Screen):
         count = 0
         j = 0
         print("self.msg_nums:{}".format(self.msg_nums))
-        if self.msg_nums > 0:
+        clear_state = EventMesh.publish("sms_clear_all_data")
+        if self.msg_nums > 0 :
+            msg_list_t_done_img.add_flag(lv.obj.FLAG.HIDDEN)
             no_msg_text.add_flag(lv.obj.FLAG.HIDDEN)
             self.sms_detail_list.delete()#先删除一次控件
             
@@ -1517,7 +1613,10 @@ class PopupScreen(Screen):
                 bottom_btn = self.sms_detail_list.get_child(-1)
                 bottom_btn.scroll_to_view(lv.ANIM.OFF)   
         else:
+            msg_list_t_done_img.clear_flag(lv.obj.FLAG.HIDDEN)
             no_msg_text.clear_flag(lv.obj.FLAG.HIDDEN)
+            self.sms_detail_list.add_flag(lv.obj.FLAG.HIDDEN)
+            no_msg_text.set_text("暂无信息")
             
     def calling(self,e):
         #上传标题和内容
@@ -1994,13 +2093,12 @@ class StepScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = step_screen
-        self.step = 0
         self.timer = osTimer()
         
     def initialization(self):
         step = EventMesh.publish(constants.EVENT.GET_STEP)
         step_label_01.set_text("{}步".format(step[0]))
-        self.timer.start(5000, 1, self.revcing)
+        self.timer.start(1000, 1, self.revcing)
 
     def revcing(self, *args, **kwargs):
         step = EventMesh.publish(constants.EVENT.GET_STEP)
@@ -2948,6 +3046,28 @@ class CountdownEndScreen(Screen):
     def __init__(self):
         super().__init__()
         self.meta = countdown_end_screen
+        self.FIND_timer=osTimer()
+        self.aud = audio.Audio(0)
+        self.FIND_timer_count = 0
+
+    def initialization(self):
+        self.FIND_timer_count = 0
+        self.FIND_timer.start(3000, 1, self.FIND_timer_cb)
+        self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3')  #播放声音
+
+    def FIND_timer_cb(self, *args):
+        
+        self.FIND_timer_count += 1
+        if self.FIND_timer_count >= 2: #120秒
+            self.stop_FIND()
+        self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') 
+    
+    def stop_FIND(self) :
+        self.FIND_timer.stop()
+        self.aud.stopAll()
+
+    def Close(self):
+       self.stop_FIND()
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "countdown"})
@@ -3301,13 +3421,13 @@ class UI(object):
                         if b == True:
                             self.level = self.read_data["brightness_level"]
                         else:
-                            self.level = 5
+                            self.level = 6
                             self.read_data["brightness_level"] = self.level
                             EventMesh.publish("set_storage_data", self.read_data)
                             with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
                                 ujson.dump(self.read_data,fd)
             else:
-                self.level = 5 #默认是5级别
+                self.level = 6 #默认是5级别
                 EventMesh.publish("set_brightness_level", self.level)
         elif self.level > 10:
             self.level = 10
@@ -3422,7 +3542,7 @@ class UI(object):
             self.read_data = EventMesh.publish("get_storage_data")
             # print("self.read_data:{} self.level:{}".format(self.read_data,self.level))
             if self.level == None:
-                self.level = 5 
+                self.level = 6 
             elif self.level > 10:
                 self.level = 10
             elif self.level <= 0:
index 69ed403..9514adb 100644 (file)
@@ -1272,7 +1272,7 @@ class BrightnessScreen(Screen):
 
     def show_bar(self):
         if self.level == None:
-            self.level = 5
+            self.level = 6
         brightness_bar.set_value((100 // 10) * self.level, lv.ANIM.OFF)
 
     
@@ -1499,7 +1499,7 @@ class totalvolumeScreen(Screen):
         
     def initialization(self):
         self.read_data = EventMesh.publish("get_storage_data")
-        print("self.read_data:{}".format(self.read_data))
+        # print("self.read_data:{}".format(self.read_data))
         num = EventMesh.publish("get_volum_size")
         if num == None:
             self.volum_size = 8
@@ -1509,14 +1509,14 @@ class totalvolumeScreen(Screen):
         self.show_bar(0)
 
     def add_volum_size(self, e):
-        self.volum_size+=1
+        self.volum_size+=2
         if self.volum_size >= 11:
             self.volum_size = 11
         self.show_bar(1)
 
     def reduce_volum_size(self, e):
         if self.volum_size > 0:
-            self.volum_size -= 1
+            self.volum_size -= 2
         self.show_bar(1)
 
     def show_bar(self,msg):