From: dxy15521469561 <1731678236@qq.com> Date: Tue, 1 Aug 2023 06:33:41 +0000 (+0800) Subject: K5: X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=1b79fd9abe83e3bb40cc03fbf9a64b277177ac13;p=mirrors%2FASR1603_G5.git K5: 1.修复bug --- diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py index 8bdee137..1c8344c0 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py @@ -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() diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py index ef0cdd62..ed6347f0 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py @@ -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"}) diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py index 742f097f..c7fe477c 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py @@ -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 index 00000000..1e4a346c Binary files /dev/null and b/2.sdk/project/K5/ext/static/charge_ing.png differ diff --git a/2.sdk/project/K5/ext/static/vbat_0.png b/2.sdk/project/K5/ext/static/vbat_0.png index eea15437..89ae5248 100644 Binary files a/2.sdk/project/K5/ext/static/vbat_0.png and b/2.sdk/project/K5/ext/static/vbat_0.png differ diff --git a/2.sdk/project/K5/ext/static/vbat_100.png b/2.sdk/project/K5/ext/static/vbat_100.png index 195b82ab..267fc0e0 100644 Binary files a/2.sdk/project/K5/ext/static/vbat_100.png and b/2.sdk/project/K5/ext/static/vbat_100.png differ diff --git a/2.sdk/project/K5/ext/static/vbat_20.png b/2.sdk/project/K5/ext/static/vbat_20.png index e76eb8af..86add968 100644 Binary files a/2.sdk/project/K5/ext/static/vbat_20.png and b/2.sdk/project/K5/ext/static/vbat_20.png differ diff --git a/2.sdk/project/K5/ext/static/vbat_40.png b/2.sdk/project/K5/ext/static/vbat_40.png index f432c8bd..1a5dee16 100644 Binary files a/2.sdk/project/K5/ext/static/vbat_40.png and b/2.sdk/project/K5/ext/static/vbat_40.png differ diff --git a/2.sdk/project/K5/ext/static/vbat_60.png b/2.sdk/project/K5/ext/static/vbat_60.png index d3955e3e..3d5886c9 100644 Binary files a/2.sdk/project/K5/ext/static/vbat_60.png and b/2.sdk/project/K5/ext/static/vbat_60.png differ diff --git a/2.sdk/project/K5/ext/static/vbat_80.png b/2.sdk/project/K5/ext/static/vbat_80.png index 20a9b812..9475cdde 100644 Binary files a/2.sdk/project/K5/ext/static/vbat_80.png and b/2.sdk/project/K5/ext/static/vbat_80.png differ diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appAlipay.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appAlipay.py index f8424d5c..b9d26625 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appAlipay.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appAlipay.py @@ -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"}) diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/lcd.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/lcd.py index 8c6d7926..93007d54 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/lcd.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/lcd.py @@ -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) diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main_init.py index fbcf22a4..faa3b3f8 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main_init.py @@ -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()) diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py index 0d4a63d1..7b1a43be 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py @@ -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 diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py index 53841815..6a73a1cf 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py @@ -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() diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py index 50af606f..9e472e74 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py @@ -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: diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py index c3f74f82..009d33a8 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -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()