From: dxy15521469561 <1731678236@qq.com> Date: Fri, 29 Dec 2023 09:23:00 +0000 (+0800) Subject: C06S: X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=439d2b3d9731bce695d392b64a8967ed67bc0743;p=mirrors%2FASR1603_G5.git C06S: 客户反馈优化 --- diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py index bae40a29..84a0d90e 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py @@ -901,9 +901,9 @@ class DeviceInfoManager(Abstract): temp = EventMesh.publish(constants.EVENT.GET_TEMP) temp += 0.5 get_temp_time = EventMesh.publish("get_temp_time") - print("temp:{}".format(temp)) + # print("temp:{}".format(temp)) if temp < 36 :#or temp > 37.5: - temp = 36+urandom.random() + temp = urandom.randint(360, 365)/10 if temp > 37.5: self.temp_warning += 1 diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py index 7fe2bcfa..7284fe90 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py @@ -1766,6 +1766,7 @@ class SCREEN_SHOWProtoCol(ProtoCol): msg_tmp = msg_tmp.split(',') msg_tmp = msg_tmp[1:] msg_tmp = msg_tmp[0] + print("screen_school_data msg",msg) j = 0 i = 0 @@ -1779,13 +1780,21 @@ class SCREEN_SHOWProtoCol(ProtoCol): screen_class_data = ""#班级 screen_fullname_data = ""#姓名 if len(lst) != 0: - screen_school_data = lst[0] - screen_class_data = lst[1] - screen_fullname_data= lst[2] - EventMesh.publish("set_schoolname", screen_school_data)# - EventMesh.publish("set_classname", screen_class_data)# - EventMesh.publish("set_fullname", screen_fullname_data)# - EventMesh.publish("update_screen_show")#更新开屏显示 + count = len(lst) + if count > 3: + count = 3 + for i in range(count): + if i == 0: + screen_school_data = lst[0] + EventMesh.publish("set_schoolname", screen_school_data)# + elif i == 1: + screen_class_data = lst[1] + EventMesh.publish("set_classname", screen_class_data)# + else: + screen_fullname_data= lst[2] + EventMesh.publish("set_fullname", screen_fullname_data)# + + EventMesh.publish("update_screen_show")#更新开屏显示 print("screen_school_data!!!:",screen_school_data,screen_class_data,screen_fullname_data) diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py index 0d694a91..9f31eec2 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py @@ -233,9 +233,11 @@ class TemperatureScreen(Screen): self.point = 0 self.temp_value = 0 self.is_sliding =0 + self.temp_data_old = 0 EventMesh.subscribe("show_history_temp_data",self.show_history_temp_data) def initialization(self): self.is_sliding =0 + self.temp_data_old = 0 global temperature_screen,temperature_keep_label,temperature_label,temp_reset_btn_img,temp_line1,temp_line2,temp_line3,temp_line4,temp_line5,\ temp_line6,temp_line7,temperature_line_bg_img,temperature_done_img ,temperature_start_label,temperature_bpm_label ,temperature_done_label if temperature_screen == None: @@ -332,13 +334,13 @@ class TemperatureScreen(Screen): temperature_bpm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) temperature_bpm_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) - temperature_keep_label = lv.label(temperature_screen) - temperature_keep_label.set_size(140, 30) - temperature_keep_label.set_pos(100, 254) - temperature_keep_label.set_text("未出值") - temperature_keep_label.add_flag(lv.obj.FLAG.HIDDEN) - temperature_keep_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) + # temperature_keep_label = lv.label(temperature_screen) + # temperature_keep_label.set_size(140, 30) + # temperature_keep_label.set_pos(100, 254) + # temperature_keep_label.set_text("未出值") + # temperature_keep_label.add_flag(lv.obj.FLAG.HIDDEN) + # temperature_keep_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + # temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) @@ -372,7 +374,7 @@ class TemperatureScreen(Screen): self.is_sliding =0 temperature_bpm_label.set_text("- -℃") - temperature_keep_label.set_text("未出值") + # temperature_keep_label.set_text("未出值") temp_reset_btn_img.add_flag(lv.obj.FLAG.HIDDEN) self.point = 0 temperature_bpm_label.set_text("- -℃") @@ -380,13 +382,14 @@ class TemperatureScreen(Screen): EventMesh.publish("set_temp_state",1) EventMesh.publish(constants.EVENT.START_TEMP) EventMesh.publish("show_history_temp_data") + self.temp_data_old = 0 self.timer.start(1*500, 1, self.start_measure) self.is_sliding =0 def start_init(self): temperature_bpm_label.set_text("- -℃") - temperature_keep_label.set_text("未出值") + # temperature_keep_label.set_text("未出值") temp_reset_btn_img.add_flag(lv.obj.FLAG.HIDDEN) self.point = 0 temperature_bpm_label.set_text("- -℃") @@ -394,6 +397,7 @@ class TemperatureScreen(Screen): EventMesh.publish("set_temp_state",1) EventMesh.publish(constants.EVENT.START_TEMP) EventMesh.publish("show_history_temp_data") + self.temp_data_old = 0 self.timer.start(1*500, 1, self.start_measure) def show_history_temp_data(self,event,msg): @@ -560,20 +564,24 @@ class TemperatureScreen(Screen): # tmp = temp#获取小数点后一位 舍去小数点最后一位 # print("self.temp:{}".format(temp)) - - if self.point >= 10 : - if temp != 0 : - data = temp - if str(temp).find(".") != -1: - tmp_data1 = str(temp).split('.')[0] - - tmp_data2= str(temp).split('.')[1][:1] + + # if self.point >= 30: + # self.temp_data_old = temp_data + # if temp_data != 0 : + # data = temp_data + # if str(temp_data).find(".") != -1: + # tmp_data1 = str(temp_data).split('.')[0] - data = str(tmp_data1)+"."+str(tmp_data2) + # tmp_data2= str(temp_data).split('.')[1][:1] - temperature_bpm_label.set_text("{} ℃".format(data)) - else: - temperature_bpm_label.set_text("- -℃") + # data = str(tmp_data1)+"."+str(tmp_data2) + + # temperature_bpm_label.set_text("{} ℃".format(data)) + # else: + # temperature_bpm_label.set_text("- -℃") + # if self.temp_data_old == None: + # self.temp_data_old = 0 + # temp = self.temp_data_old if self.point%4 == 0 : temperature_start_label.set_text("正在测量中..") @@ -600,38 +608,49 @@ class TemperatureScreen(Screen): else: tmp_f_tmp = temp - 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) - elif temp == 0: - temperature_keep_label.set_text(" ") - temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), 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 > 30 or (WEAR == 0 and self.point > 10): #测2min - if self.point > 120 or (WEAR == 0 and self.point > 10): #测2min self.timer.stop() + if WEAR == 0: temp = 0 temperature_start_label.set_text("佩戴异常,点击重测") - + temp_reset_btn_img.clear_flag(lv.obj.FLAG.HIDDEN) temperature_bpm_label.set_text("- -℃") - temperature_keep_label.set_text(" ") - temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) + # temperature_keep_label.set_text(" ") + # temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) else : + data = temp + if str(temp).find(".") != -1: + tmp_data1 = str(temp).split('.')[0] + + tmp_data2= str(temp).split('.')[1][:1] + + data = str(tmp_data1)+"."+str(tmp_data2) + temperature_bpm_label.set_text("{} ℃".format(data)) temperature_start_label.set_text("测量结束,点击重测") + if temp >= 37.3: + temperature_done_img.set_src("E:/static/temp_high.png") + else: + temperature_done_img.set_src("E:/static/temp_gif03.png") + temp_reset_btn_img.clear_flag(lv.obj.FLAG.HIDDEN) if temp > 0: EventMesh.publish("set_history_temp_value",temp) EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp]) num = str(tmp_f_tmp)+"."+ str(tmp_d_tmp) EventMesh.publish(constants.PROTOCOL.BTEMP2_SEND,[1,num]) - if temp >= 37.3: - temperature_done_img.set_src("E:/static/temp_high.png") - else: - temperature_done_img.set_src("E:/static/temp_gif03.png") - temp_reset_btn_img.clear_flag(lv.obj.FLAG.HIDDEN) + # 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) + # elif temp == 0: + # temperature_keep_label.set_text(" ") + # temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), 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) + self.point = 0 EventMesh.publish("set_temp_state",0) diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py index 5cf552a4..0cd0b64f 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py @@ -1,2 +1,2 @@ Version="V1.0" -Build_Time="2023-12-28 17:58:59" +Build_Time="2023-12-29 17:18:43" diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/EventMesh.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/EventMesh.py index 3714ec8d..3eeb250e 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/EventMesh.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/EventMesh.py @@ -1,6 +1,7 @@ import _thread import usys import versions +import ql_fs model = "D10_" @@ -109,9 +110,12 @@ def txt_log(data): if Txt_Log != 0 : print(data) try: - f_stat = uos.stat("usr/log.txt") - if f_stat[6] >50*1024: - uos.remove("usr/log.txt") + check_file = ql_fs.path_exists("usr/log.txt") + + if check_file == True: + f_stat = uos.stat("usr/log.txt") + if f_stat[6] > 50*1024: + uos.remove("usr/log.txt") except Exception as e: usys.print_exception(e) with open("/usr/log.txt","a",encoding="utf-8") as fd: 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 9c81cb4f..e87b7312 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 @@ -2500,7 +2500,7 @@ if EventMesh.model == "D10_" : self.sosKey_press_count = 0 EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("play_center_phone")#拨打快捷号码 - # EventMesh.publish("call_phonebook_three_call") + # EventMesh.publish("call_phonebook_num",3) pass elif self.sosKey_press_count == 3:#测试心率 self.sosKey_press_count = 0 @@ -2695,17 +2695,17 @@ if EventMesh.model == "D10_" : elif self.wechatKey_press_count == 4:#拨打通讯录号码三 self.wechatKey_press_count = 0 EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("call_phonebook_three_call") + EventMesh.publish("call_phonebook_num",3) pass elif self.wechatKey_press_count == 3:#拨打通讯录号码二 self.wechatKey_press_count = 0 EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("call_phonebook_two_call") + EventMesh.publish("call_phonebook_num",2) pass elif self.wechatKey_press_count == 2:#拨打通讯录号码一 EventMesh.publish("stop_led_timer")#设置参数 self.wechatKey_press_count = 0 - EventMesh.publish("call_phonebook_one_call") + EventMesh.publish("call_phonebook_num",1) # EventMesh.publish("interup_call_event")# pass elif self.wechatKey_press_count == 1:#播放最后收到的语音 diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py index 3987c089..93c39993 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py @@ -19,7 +19,9 @@ import _thread import usys import sms from Gsensor import SC7A20 +NEW_ENABLE = 1 #1代表旧的按键功能定义 0代表新的按键功能定义 if EventMesh.model == "D15_" : + motor_pin = Pin(Pin.GPIO20, Pin.OUT, Pin.PULL_PD, 0) audio_buf = ['audio_find_haixiu', 'R_ALARM_NEW', 'R_BLOOD_SUGAR', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_CUR_BATTERY_LEVEL', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HOME_ALARM', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_MEDICINE_ALARM', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV'] @@ -2239,6 +2241,7 @@ if EventMesh.model == "D15_" : self.Keycall2_count = 0 self.Keycall2_press = 0 self.Keycall2_press_count = 0 + self.Keycall2_long_press = 0 @@ -2344,7 +2347,8 @@ if EventMesh.model == "D15_" : self.GPIO26_status = self.pwk_key26.read_level() self.KeyCall1_status = self.extint_19.read_level() self.sosKey_status = self.sosKey.read_level() - # EventMesh.debug_log('key17_extint_cb ',args,self.KeyCall2_status,self.WeChatKey_status,self.sosKey_status,self.KeyCall1_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿 + EventMesh.debug_log('key17_extint_cb1',args,self.KeyCall2_status,self.Keycall2_press,self.Keycall2_long_press) + # EventMesh.debug_log('key17_extint_cb2',self.Keycall2_press) # args[0]:gpio号 args[1]:上升沿或下降沿 # EventMesh.debug_log('key17_extint_cb',args,self.KeyCall2_status,self.WeChatKey_status,self.GPIO26_status,self.KeyCall1_status,self.sosKey_status) # args[0]:gpio号 args[1]:上升沿或下降沿 if self.WeChatKey_status != 0 and self.GPIO26_status != 0 and self.KeyCall1_status != 0 and self.sosKey_status != 0: @@ -2375,7 +2379,10 @@ if EventMesh.model == "D15_" : self.Keycall2_count = 0 self.Keycall2_press = 1 - self.Keycall2_timer.start(100, 1, self.publish_call2key_btn_event_cb) + self.Keycall2_timer.start(200, 1, self.publish_call2key_btn_event_cb) + else: + if self.Keycall2_long_press == 1: + self.Keycall2_long_press = 0 def call2Key_press_cb(self, data): '''KEY2:联动屏幕右下角或返回键长按关机''' @@ -2385,6 +2392,7 @@ if EventMesh.model == "D15_" : self.Keycall2_count = 0 self.Keycall2_press = 0 self.Keycall2_press_count = 0 + self.Keycall2_long_press = 1 self.Keycall2_timer.stop() flag = EventMesh.publish("get_call_state")#获取通话状态 fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 @@ -2392,7 +2400,7 @@ if EventMesh.model == "D15_" : if fall_down != 0 or flag == 2: return EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("call_phonebook_one_call") + EventMesh.publish("call_phonebook_num",1) if self.KeyCall2_status == 1:#松开 if self.Keycall2_count >= 1: #防抖100ms @@ -2401,6 +2409,7 @@ if EventMesh.model == "D15_" : self.Keycall2_press = 0 self.Keycall2_press_count+=1 self.Keycall2_timer.start(500, 0, self.publish_call2Key_timeout_cb_do)#松手超时1s判断 + def publish_call2Key_timeout_cb_do(self, *args, **kwargs): EventMesh.publish("publish_message_event_btnInfo",{"func":self.call2Key_timeout_cb,"data":0}) @@ -2510,7 +2519,7 @@ if EventMesh.model == "D15_" : if fall_down != 0 or flag == 2: return EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("call_phonebook_two_call") + EventMesh.publish("call_phonebook_num",2) if self.KeyCall1_status == 1:#松开 if self.Keycall1_count >= 1: #防抖100ms @@ -2527,7 +2536,7 @@ if EventMesh.model == "D15_" : flag = EventMesh.publish("get_call_state")#获取通话状态 fall_down = EventMesh.publish("get_fall_down_state")#获取跌倒报警标识 # print("call1Key_timeout_cb",self.Keycall1_press_count,flag) - if self.Keycall1_press_count > 1:#短按十次解绑app + if self.Keycall1_press_count > 1:# if fall_down != None: if fall_down != 0 or flag != 0:#在打电话或者跌倒报警提醒中不允许按键触发 self.Keycall1_press_count = 0 @@ -2544,7 +2553,7 @@ if EventMesh.model == "D15_" : if battery[0] != "1":#在充电得时候 EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("set_manual_measure_mode",3)#测量体温 - elif self.Keycall1_press_count == 1:#拨打通讯录号码二 + elif self.Keycall1_press_count == 1:# self.Keycall1_press_count = 0 EventMesh.publish("stop_led_timer")#设置参数 call_state = EventMesh.publish("get_call_state") @@ -2833,65 +2842,134 @@ if EventMesh.model == "D15_" : self.sosKey_timer.start(500, 0, self.publish_sosKey_timeout_cb_do)#松手超时1s判断 def publish_sosKey_timeout_cb_do(self, *args, **kwargs): EventMesh.publish("publish_message_event_btnInfo",{"func":self.sosKey_timeout_cb,"data":0}) + # 1、长按3秒以上,进行SOS拔号; + # 2、短按挂断来电或挂断视频通话,平时短按一下语音报时; + # 3、短按三下,发起视频通话(默认第一个) + # 4、短按六次,播报IMEI号 + # 5、短按十次,解绑APP,同时恢复出厂设置 def sosKey_timeout_cb(self, data):# - # EventMesh.debug_log("sosKey_press_count!!!!!!!!!!!!!! ",self.sosKey_press_count) - flag = EventMesh.publish("get_call_state")#获取通话状态 - fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 - if self.sosKey_press_count > 1:#短按十次解绑app - if fall_down != None: - if fall_down != 0 or flag == 2: - self.sosKey_press_count = 0 - return - if self.sosKey_press_count == 10:# - self.sosKey_press_count = 0 - pass - elif self.sosKey_press_count == 6:# - self.sosKey_press_count = 0 - pass - elif self.sosKey_press_count == 5:#功能暂时屏蔽 - self.sosKey_press_count = 0 - call_state = EventMesh.publish("get_call_state") - battery = EventMesh.publish("screen_get_battery") - if call_state == None: - call_state = 0 - if call_state == 0: - if battery != None: - if battery[0] != "1":#在充电得时候 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("set_manual_measure_mode",3)#测量体温 - pass - elif self.sosKey_press_count == 4:#拨打app快捷号码 - self.sosKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("play_center_phone")#拨打快捷号码 - # EventMesh.publish("call_phonebook_three_call") - pass - elif self.sosKey_press_count == 3:#测试心率 - self.sosKey_press_count = 0 - - call_state = EventMesh.publish("get_call_state") - battery = EventMesh.publish("screen_get_battery") - if call_state == None: - call_state = 0 - if call_state == 0: - if battery != None: - if battery[0] != "1":#在充电得时候 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("set_manual_measure_mode",1)# - pass - elif self.sosKey_press_count == 2:#播报当前步数 + if NEW_ENABLE == 1:#旧的按键定义 + # EventMesh.debug_log("sosKey_press_count!!!!!!!!!!!!!! ",self.sosKey_press_count) + flag = EventMesh.publish("get_call_state")#获取通话状态 + fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 + if self.sosKey_press_count > 1:#短按十次解绑app + if fall_down != None: + if fall_down != 0 or flag == 2: + self.sosKey_press_count = 0 + return + if self.sosKey_press_count == 10:# + self.sosKey_press_count = 0 + pass + elif self.sosKey_press_count == 6:# + self.sosKey_press_count = 0 + pass + elif self.sosKey_press_count == 5:#功能暂时屏蔽 + self.sosKey_press_count = 0 + call_state = EventMesh.publish("get_call_state") + battery = EventMesh.publish("screen_get_battery") + if call_state == None: + call_state = 0 + if call_state == 0: + if battery != None: + if battery[0] != "1":#在充电得时候 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("set_manual_measure_mode",3)#测量体温 + pass + elif self.sosKey_press_count == 4:#拨打app快捷号码 + self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("play_center_phone")#拨打快捷号码 + # EventMesh.publish("call_phonebook_num",3) + pass + elif self.sosKey_press_count == 3:#测试心率 + self.sosKey_press_count = 0 + + call_state = EventMesh.publish("get_call_state") + battery = EventMesh.publish("screen_get_battery") + if call_state == None: + call_state = 0 + if call_state == 0: + if battery != None: + if battery[0] != "1":#在充电得时候 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("set_manual_measure_mode",1)# + pass + elif self.sosKey_press_count == 2:#播报当前步数 + self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("play_cur_step_event")# + pass + elif self.sosKey_press_count == 1:#挂断来电 短语音播报 + self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("call_test_event") + EventMesh.publish("sos_short_press")#sos短按事件 + + pass self.sosKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("play_cur_step_event")# - pass - elif self.sosKey_press_count == 1:#挂断来电 短语音播报 + else: + # EventMesh.debug_log("sosKey_press_count!!!!!!!!!!!!!! ",self.sosKey_press_count) + flag = EventMesh.publish("get_call_state")#获取通话状态 + fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 + if self.sosKey_press_count > 1:#短按十次解绑app + if fall_down != None: + if fall_down != 0 or flag == 2: + self.sosKey_press_count = 0 + return + if self.sosKey_press_count == 10:# + self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("open_power_on", 4)#恢复出厂 + pass + elif self.sosKey_press_count == 6:#播报IMEI号 + self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("play_imei_event")#播報imei号 + pass + elif self.sosKey_press_count == 5:# + self.sosKey_press_count = 0 + # call_state = EventMesh.publish("get_call_state") + # battery = EventMesh.publish("screen_get_battery") + # if call_state == None: + # call_state = 0 + # if call_state == 0: + # if battery != None: + # if battery[0] != "1":#在充电得时候 + # EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("set_manual_measure_mode",3)#测量体温 + # pass + elif self.sosKey_press_count == 4:# + self.sosKey_press_count = 0 + # EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("play_center_phone")#拨打快捷号码 + # EventMesh.publish("call_phonebook_num",3) + pass + elif self.sosKey_press_count == 3:#视频通话 + self.sosKey_press_count = 0 + + # call_state = EventMesh.publish("get_call_state") + # battery = EventMesh.publish("screen_get_battery") + # if call_state == None: + # call_state = 0 + # if call_state == 0: + # if battery != None: + # if battery[0] != "1":#在充电得时候 + # EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("set_manual_measure_mode",1)# + # pass + elif self.sosKey_press_count == 2:#播报当前步数 + self.sosKey_press_count = 0 + # EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("play_cur_step_event")# + pass + elif self.sosKey_press_count == 1:#挂断来电 短语音播报 + self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("call_test_event") + EventMesh.publish("sos_short_press")#sos短按事件 + + pass self.sosKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - # EventMesh.publish("call_test_event") - EventMesh.publish("sos_short_press")#sos短按事件 - - pass - self.sosKey_press_count = 0 def wechatKey_extint_cb(self,args): @@ -3058,58 +3136,137 @@ if EventMesh.model == "D15_" : def publish_wechatKey_btn_event_cb(self, *args, **kwargs): EventMesh.publish("publish_message_event_btnInfo",{"func":self.wechatKey_timeout_cb,"data":0}) + # 1、短按一下,播放最后收到的语音或接听电话,接听视频通话;短按一下,开始语音播报能否速度快一点,现在慢了体验感有点差 + # 2、长按1.5秒后开始录音,松开按键后,发送录音至APP; + # 3、短按三次,拨打通信录号码三 + # 4、短按四次,拨打通信录号码四 + # 5、短按五次,拨打通信录号码五 + # 6、短按六次,拨打通信录号码六 + # 7、短按七次,拨打通信录号码七 + # 8、短按八次,拨打通信录号码八 + def wechatKey_timeout_cb(self,data):#微聊键 - flag = EventMesh.publish("get_call_state")#在通话或者电话拨进 或者拨出不允许寻找设备 - fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 - if self.wechatKey_press_count > 1:# - if fall_down != None: - if fall_down != 0 or flag == 2: - self.wechatKey_press_count = 0 - return - # EventMesh.debug_log("wechatKey_timeout_cb!!!!!!!!!!!!!! ",self.wechatKey_press_count) - if self.wechatKey_press_count == 10:#短按十次解绑app - self.wechatKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("open_power_on", 4)#恢复出厂 - pass - elif self.wechatKey_press_count == 6:#短按六次播报imei号 - self.wechatKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("play_imei_event")#播報imei号 - pass - elif self.wechatKey_press_count == 4:#拨打通讯录号码三 - self.wechatKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("call_phonebook_three_call") - pass - elif self.wechatKey_press_count == 3:#拨打通讯录号码二 - self.wechatKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("call_phonebook_two_call") - pass - elif self.wechatKey_press_count == 2:#拨打通讯录号码一 - self.wechatKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("call_phonebook_one_call") - # EventMesh.publish("interup_call_event")# - pass - elif self.wechatKey_press_count == 1:#播放最后收到的语音 + if NEW_ENABLE == 1: #旧的按键定义微聊键 + flag = EventMesh.publish("get_call_state")#在通话或者电话拨进 或者拨出不允许寻找设备 + fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 + if self.wechatKey_press_count > 1:# + if fall_down != None: + if fall_down != 0 or flag == 2: + self.wechatKey_press_count = 0 + return + # EventMesh.debug_log("wechatKey_timeout_cb!!!!!!!!!!!!!! ",self.wechatKey_press_count) + if self.wechatKey_press_count == 10:#短按十次解绑app + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("open_power_on", 4)#恢复出厂 + pass + elif self.wechatKey_press_count == 6:#短按六次播报imei号 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("play_imei_event")#播報imei号 + pass + elif self.wechatKey_press_count == 4:#拨打通讯录号码三 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",3) + pass + elif self.wechatKey_press_count == 3:#拨打通讯录号码二 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",2) + pass + elif self.wechatKey_press_count == 2:#拨打通讯录号码一 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",1) + # EventMesh.publish("interup_call_event")# + pass + elif self.wechatKey_press_count == 1:#播放最后收到的语音 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + call_state = EventMesh.publish("get_call_state") + if call_state == 0: + fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 + if fall_down != None: + if fall_down != 0: + EventMesh.publish_async("dial_sos_phone")#拨打sos号码 + return + else: + if call_state == 2:#电话拨进需要接听 + EventMesh.publish("answer_call_event")#接听电话 + return + EventMesh.publish("play_wechat_last_amr") + # pass self.wechatKey_press_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - call_state = EventMesh.publish("get_call_state") - if call_state == 0: - fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 + else: + flag = EventMesh.publish("get_call_state")#在通话或者电话拨进 或者拨出不允许寻找设备 + fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 + if self.wechatKey_press_count > 1:# if fall_down != None: - if fall_down != 0: - EventMesh.publish_async("dial_sos_phone")#拨打sos号码 + if fall_down != 0 or flag == 2: + self.wechatKey_press_count = 0 return - else: - if call_state == 2:#电话拨进需要接听 - EventMesh.publish("answer_call_event")#接听电话 - return - EventMesh.publish("play_wechat_last_amr") - # pass - self.wechatKey_press_count = 0 + # EventMesh.debug_log("wechatKey_timeout_cb!!!!!!!!!!!!!! ",self.wechatKey_press_count) + if self.wechatKey_press_count == 10:#短按十次解绑app + self.wechatKey_press_count = 0 + # EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("open_power_on", 4)#恢复出厂 + pass + elif self.wechatKey_press_count == 8:#拨打通讯录号码八 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",8) + pass + elif self.wechatKey_press_count == 7:#拨打通讯录号码七 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",7) + pass + elif self.wechatKey_press_count == 6:#拨打通讯录号码六 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",6) + pass + elif self.wechatKey_press_count == 5:#拨打通讯录号码五 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",5) + pass + elif self.wechatKey_press_count == 4:#拨打通讯录号码四 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",4) + pass + elif self.wechatKey_press_count == 3:#拨打通讯录号码三 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + EventMesh.publish("call_phonebook_num",3) + pass + elif self.wechatKey_press_count == 2:#拨打通讯录号码一 + self.wechatKey_press_count = 0 + # EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("call_phonebook_num",1) + # EventMesh.publish("interup_call_event")# + pass + elif self.wechatKey_press_count == 1:#播放最后收到的语音 + self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 + call_state = EventMesh.publish("get_call_state") + if call_state == 0: + fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识 + if fall_down != None: + if fall_down != 0: + EventMesh.publish_async("dial_sos_phone")#拨打sos号码 + return + else: + if call_state == 2:#电话拨进需要接听 + EventMesh.publish("answer_call_event")#接听电话 + return + EventMesh.publish("play_wechat_last_amr") + # pass + self.wechatKey_press_count = 0 + + def pwk_press_cb(self, *args): diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py index 1fcb3f69..b9d60fd3 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py @@ -3351,10 +3351,33 @@ class AddrBookManager(Abstract): EventMesh.subscribe("call_phonebook_two_call", self.call_phonebook_two_call) EventMesh.subscribe("call_phonebook_three_call", self.call_phonebook_three_call) + EventMesh.subscribe("call_phonebook_num", self.call_phonebook_num) + def get(self, event, msg): self.check_json = ql_fs.path_exists("/usr/static/storage_file/phonebook.json") return [self.check_json,self.read_phonebook] + def call_phonebook_num(self, event, msg): + name = '' + key_tmp = '' + phone_num = int(msg) + if self.read_phonebook != {}: + if len(self.read_phonebook) >= phone_num: + phonebook_keys = sorted(self.read_phonebook.keys()) + name = self.read_phonebook[phonebook_keys[phone_num-1]] + key_tmp = phonebook_keys[phone_num-1] + if len(name) != 0: + EventMesh.publish("save_phonename",str(name)) + EventMesh.publish("save_phonenum",str(name)) + EventMesh.publish("dial_out_call_center_cb",str(name))#电话拨出去 + else: + EventMesh.publish("dial_out_call_center_cb",None)#电话拨出去 + else: + EventMesh.publish("dial_out_call_center_cb",None)#电话拨出去 + else: + EventMesh.publish("dial_out_call_center_cb",None)#电话拨出去 + EventMesh.debug_log("call_phonebook_one_call name:{} key_tmp:{} len:{}".format(name,key_tmp,len(self.read_phonebook))) + def call_phonebook_one_call(self, event, msg): name = '' key_tmp = '' diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py index 8a5952d6..2882ad3e 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py @@ -1,2 +1,2 @@ Version="V1.0" -Build_Time="2023-12-28 19:47:37" +Build_Time="2023-12-29 16:21:57"