From: d15521469561 Date: Mon, 24 Apr 2023 01:40:35 +0000 (+0800) Subject: 修复bug 修复自动测量心率和血氧的间隔问题 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=2c19cd79fc11a0f91b5872ab2c3f5f3a6d02bb2e;p=mirrors%2FASR1603_G5.git 修复bug 修复自动测量心率和血氧的间隔问题 --- diff --git a/3.code/1.watch/2.code/alarm.py b/3.code/1.watch/2.code/alarm.py index cdf909a2..d907647c 100644 --- a/3.code/1.watch/2.code/alarm.py +++ b/3.code/1.watch/2.code/alarm.py @@ -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): diff --git a/3.code/1.watch/2.code/appWechat.py b/3.code/1.watch/2.code/appWechat.py index dbf4b6f8..ea66b842 100644 --- a/3.code/1.watch/2.code/appWechat.py +++ b/3.code/1.watch/2.code/appWechat.py @@ -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") diff --git a/3.code/1.watch/2.code/main_1.py b/3.code/1.watch/2.code/main_1.py index 8b02ceeb..83ec335d 100644 --- a/3.code/1.watch/2.code/main_1.py +++ b/3.code/1.watch/2.code/main_1.py @@ -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()) diff --git a/3.code/1.watch/2.code/mgr.py b/3.code/1.watch/2.code/mgr.py index d62fa1a4..6404799a 100644 --- a/3.code/1.watch/2.code/mgr.py +++ b/3.code/1.watch/2.code/mgr.py @@ -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: diff --git a/3.code/1.watch/2.code/protocol.py b/3.code/1.watch/2.code/protocol.py index bc77019c..4fdd0674 100644 --- a/3.code/1.watch/2.code/protocol.py +++ b/3.code/1.watch/2.code/protocol.py @@ -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) diff --git a/3.code/1.watch/2.code/ui.py b/3.code/1.watch/2.code/ui.py index 7b639dee..a1fa2f22 100644 --- a/3.code/1.watch/2.code/ui.py +++ b/3.code/1.watch/2.code/ui.py @@ -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: diff --git a/3.code/1.watch/2.code/ui_setting.py b/3.code/1.watch/2.code/ui_setting.py index 69ed4036..9514adb4 100644 --- a/3.code/1.watch/2.code/ui_setting.py +++ b/3.code/1.watch/2.code/ui_setting.py @@ -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):