C06S:
authordxy15521469561 <1731678236@qq.com>
Fri, 29 Dec 2023 09:23:00 +0000 (17:23 +0800)
committerdxy15521469561 <1731678236@qq.com>
Fri, 29 Dec 2023 09:23:00 +0000 (17:23 +0800)
客户反馈优化

2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/EventMesh.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py

index bae40a2..84a0d90 100644 (file)
@@ -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
index 7fe2bcf..7284fe9 100644 (file)
@@ -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)
 
index 0d694a9..9f31eec 100644 (file)
@@ -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)
             
index 3714ec8..3eeb250 100644 (file)
@@ -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:
index 9c81cb4..e87b731 100644 (file)
@@ -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:#播放最后收到的语音
index 3987c08..93c3999 100644 (file)
@@ -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):
index 1fcb3f6..b9d60fd 100644 (file)
@@ -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 = ''