C06S:
authordxy15521469561 <1731678236@qq.com>
Thu, 25 Jan 2024 08:54:37 +0000 (16:54 +0800)
committerdxy15521469561 <1731678236@qq.com>
Thu, 25 Jan 2024 08:54:37 +0000 (16:54 +0800)
设备联动
D15视频通话死机的问题

13 files changed:
2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py
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.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py
2.sdk/project/C06S/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip
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_d15.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_health.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py

index a9efd93..5dad75c 100644 (file)
Binary files a/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a and b/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a differ
index 6a35482..d38b69e 100644 (file)
@@ -279,6 +279,7 @@ def main_init():
         app.append_manager(setSmsIndexManager())
         app.append_manager(setclassTimeManager())
         app.append_manager(setCallStateManager())
+        app.append_manager(mgr.getsosInfoManager())
     except Exception as e:
         usys.print_exception(e)
     #print("init21:{}".format(utime.localtime()))    
index 89fd629..4c78462 100644 (file)
@@ -726,7 +726,7 @@ class DeviceInfoManager(Abstract):
         self.vbat_count = 0
 
         self.vbat_buf=[]
-
+        self.get_sos = 0
         self.curr_battery_level = 4200
         self.bat_count = 0
 
@@ -943,9 +943,21 @@ class DeviceInfoManager(Abstract):
             time_tmp = utime.mktime(date_tmp)
             # print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
             
-            """电量小于20% 5分钟提醒一次"""
-            EventMesh.publish(constants.PROTOCOL.MSGQ_SEND)
+            """sos下发通知 没有收到1分钟请求一次"""
+            sos_state = EventMesh.publish("get_sos_status")
+            
+            screen_NAME = EventMesh.publish("get_screen_NAME")
+            # print("sos_state:{} screen_NAME:{}\n".format(sos_state,screen_NAME))
+            if sos_state != None and screen_NAME != None:
+                if sos_state == 1 and screen_NAME != "sos_rev":
+                    self.get_sos+=1
+                    if self.get_sos >= 6:
+                        self.get_sos = 0
+                        EventMesh.publish(constants.PROTOCOL.MSGQ_SEND)
+                else:
+                    self.get_sos = 0
 
+            """电量小于20% 5分钟提醒一次"""
             get_low_btn = EventMesh.publish("get_low_bat_btn")#
             battery = EventMesh.publish("screen_get_battery")
             # print("get_low_btn:{} self.bat_time:{}".format(get_low_btn,self.bat_time))
@@ -1980,6 +1992,7 @@ class DeviceInfoManager(Abstract):
     def get_imei(self, topic, msg):
         if not self.imei:
             self.imei = modem.getDevImei()
+        # self.imei = "876226002021444"#视频通话测试账号
         return self.imei
 
     def get_cid(self, topic, msg):
@@ -2956,7 +2969,7 @@ class gethistoryDataManager(Abstract):
         return self.old_step
 #获取旧的时间戳
 class getOldTimeManager(Abstract):
-    # 获取天气数据
+    # 
     def __init__(self):
         self.time_sec = 0
         tmp_data = EventMesh.publish("get_storage_config","old_time")
@@ -3777,4 +3790,32 @@ class setclassTimeManager(Abstract):#设置上课禁用时间
                    EventMesh.publish("load_screen", {"screen": "main_menu"})
             
         pass
-    
\ No newline at end of file
+    
+class getsosInfoManager(Abstract):#平台下发sos内容
+    def __init__(self):
+        self.sos_message = ""
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("set_sos_message", self.set_sos_message)#设置关机时间
+        EventMesh.subscribe("get_sos_message", self.get_sos_message)
+
+    def set_sos_message(self, event, msg): 
+        if msg != None:
+            if len(str(msg)) != 0:
+                self.sos_message = msg
+        
+
+    def get_sos_message(self, event, msg):
+        if self.sos_message :
+            return self.sos_message
+        else:
+            return None
+
+
+
+
+
+
+
+
+
index aee967c..5e09c39 100644 (file)
@@ -27,6 +27,12 @@ def server_init(server_type = None):
     if server_type == None:
         server_type = 1
     #print("server_init:server_type:{}".format(server_type))
+    #,9000 117.50.2.99,9000
+    # d_server_addr = "117.50.2.99"
+    # d_server_port = 9000
+    # d_md5_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
+    # d_PID = "SZKW"   
+
     d_server_addr = "api.xcloudtech.com"
     d_server_port = 9000
     d_md5_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
@@ -2373,7 +2379,7 @@ class MESSAGE_SOS_ProtoCol(ProtoCol):
         send_data = self.PID+"*%s*000b*MESSAGE_SOS"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
-        #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data))
+        print("MESSAGE_SOS:send:%s"%(data))
         # 通过socket发送到服务器端
         EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
 
@@ -2387,11 +2393,13 @@ class MESSAGE_SOS_ProtoCol(ProtoCol):
 
         msg_s = msg.decode('ascii')
         msg_s = msg_s.split('MESSAGE_SOS,')[1]
-        print("MESSAGE_SOS!!!!!!!!!!!!")
-        for phonebook_tmp in msg_s: 
-            if len(phonebook_tmp) != 0:
-                phonebook_name = UnicodeHexStr_To_Utf8Str(phonebook_tmp)
-                EventMesh.publish("load_screen", {"screen": "sos_rev","meta":phonebook_name})
+        phonebook_name = ""
+        phonebook_tmp = msg_s
+        # print("phonebook_tmp!!!!!!!!!!!!",phonebook_tmp)
+        phonebook_name = UnicodeHexStr_To_Utf8Str(phonebook_tmp)
+        # print("phonebook_name!!!!!!!!!!!!",phonebook_name)
+        EventMesh.publish("set_sos_message", phonebook_name)#
+        EventMesh.publish("load_screen", {"screen": "sos_rev"})
         
         
 
index 63d9bb8..aacb608 100644 (file)
@@ -4850,18 +4850,19 @@ class CountdownEndScreen(Screen):
             countdown_end_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             self.meta = countdown_end_screen
         self.FIND_timer_count = 0
-        self.FIND_timer.start(3000, 1, self.FIND_timer_cb)
+        self.FIND_timer.start(1000, 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):
         EventMesh.publish("system_sleep_rest")#防止黑屏
         self.FIND_timer_count += 1
-        if self.FIND_timer_count >= 4: #120秒
+        if self.FIND_timer_count >= 30: #120秒
             self.stop_FIND()
             EventMesh.publish("return_prev_screen")
             return
-        self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') 
+        if self.FIND_timer_count % 4 == 0:
+            self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') 
     
     def stop_FIND(self) :
         
@@ -6054,6 +6055,7 @@ sos_recv_screen = None
 sos_recv_screen_label = None
 sos_recv_screen_comfirm=None
 sos_recv_screen_label2 = None
+sos_recv_screen_label2_btn =None
 class sosrecvScreen(Screen):#设备接收平台发送的
     NAME = "sos_rev"
     def __init__(self):
@@ -6062,26 +6064,46 @@ class sosrecvScreen(Screen):#设备接收平台发送的
         self.meta_type = "popup"
         self.timer = osTimer()
         self.count = 0
+        self.sos_state = 0
+        EventMesh.subscribe("get_sos_status",self.get_sos_status)
 
     def initialization(self):
         self.count = 0
-        global sos_recv_screen,sos_recv_screen_label,sos_recv_screen_label2,sos_recv_screen_comfirm
+        self.sos_state = 1
+        EventMesh.publish("set_UI_high_priority",1)
+        global sos_recv_screen,sos_recv_screen_label,sos_recv_screen_label2,sos_recv_screen_comfirm,sos_recv_screen_label2_btn
         if sos_recv_screen == None :
             sos_recv_screen = lv.obj()
             print("sos_recv_screen")
             sos_recv_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
             # add style for watchface
             sos_recv_screen.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            sos_recv_new_screen = lv.obj(sos_recv_screen)
+            sos_recv_new_screen.set_size(240,200)
+            sos_recv_new_screen.set_pos(0,10)
+            print("sos_recv_new_screen")
+            sos_recv_new_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            sos_recv_new_screen.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            sos_recv_new_btn_screen = lv.obj(sos_recv_screen)
+            sos_recv_new_btn_screen.set_size(240,62)
+            sos_recv_new_btn_screen.set_pos(0,220)
+            print("sos_recv_new_screen")
+            sos_recv_new_btn_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            sos_recv_new_btn_screen.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
             #
-            sos_recv_screen_label = lv.label(sos_recv_screen)
-            sos_recv_screen_label.set_size(240, 220-20)
-            sos_recv_screen_label.set_pos(0, 20)
+            sos_recv_screen_label = lv.label(sos_recv_new_screen)
+            sos_recv_screen_label.set_size(235,lv.SIZE.CONTENT)
+            sos_recv_screen_label.set_pos(5,10)
             sos_recv_screen_label.set_text(" ")
             sos_recv_screen_label.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
 
-            sos_recv_screen_comfirm = lv.img(sos_recv_screen)
+            sos_recv_screen_comfirm = lv.img(sos_recv_new_btn_screen)
             sos_recv_screen_comfirm.set_size(176, 46)
-            sos_recv_screen_comfirm.set_pos(32, 220)
+            sos_recv_screen_comfirm.set_pos(32, 0)
             sos_recv_screen_comfirm.set_src("E:/static/off_icon.png")
             sos_recv_screen_comfirm.add_flag(lv.obj.FLAG.CLICKABLE)
             sos_recv_screen_comfirm.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
@@ -6091,19 +6113,46 @@ class sosrecvScreen(Screen):#设备接收平台发送的
             sos_recv_screen_label2.align(lv.ALIGN.CENTER, 0, 5)
             sos_recv_screen_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
+            sos_recv_screen_label2_btn = lv.label(sos_recv_new_btn_screen)
+            sos_recv_screen_label2_btn.set_text(" ")
+            sos_recv_screen_label2_btn.set_size(240, 62)
+            sos_recv_screen_label2_btn.set_pos(0, 0)
+            sos_recv_screen_label2_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+            # sos_recv_screen_label2_btn.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
 
 
             self.meta = sos_recv_screen
+            sos_recv_screen_label2_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),
+                                     lv.EVENT.SHORT_CLICKED, None)
             sos_recv_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),
                                      lv.EVENT.SHORT_CLICKED, None)
-        self.meta_info = "需要你的帮助,是好滴还是我hi海带丝电池给谁hi都会死hi换货地址好ID号i海底火山hi大海hi属地化似乎机顶盒试试几点合适试试是是是"
-        sos_recv_screen_label.set_text("{}".format(self.meta_info))
+        # print("sos recv self.meta_info",self.meta_info)
+        # self.meta_info = "需要你的帮助,是好滴还是我hi海带丝电池给谁是是是hi都会死好滴你的还是1hi的hi收到hi都会死hi换货地址好ID号i海底火山hi大海hi属地化似乎机顶盒试试几点合适试试是是是"
+        
+        sos_message = EventMesh.publish("get_sos_message")
+        if sos_message != None:
+            if len(str(sos_message)) != 0:
+                sos_recv_screen_label.set_text("{}".format(sos_message))
+            else:
+                sos_recv_screen_label.set_text(" ")
+        else:
+            sos_recv_screen_label.set_text(" ")
+
         EventMesh.publish("set_motor_time",[1,2,10*10,10,5])#设置马达参数
         self.timer.start(1*1000,1,self.motor_cb)
     
+
+    def get_sos_status(self,event,msg):
+
+        return self.sos_state
+
     def confirm(self,e):
+        self.sos_state = 0
+        self.timer.stop()
         EventMesh.publish(constants.PROTOCOL.MESSAGE_SOS_SEND)
         EventMesh.publish("close_motor_infor")#关闭马达和定时器
+        EventMesh.publish("set_UI_high_priority",0)
         EventMesh.publish("return_prev_screen")
 
     def motor_cb(self,*argc):
@@ -6116,25 +6165,22 @@ class sosrecvScreen(Screen):#设备接收平台发送的
     # 
         
     def Close(self):
+        EventMesh.publish("set_UI_high_priority",0)
+        self.timer.stop()
         EventMesh.publish("close_motor_infor")#关闭马达和定时器
 
     def done_return(self):
+        EventMesh.publish("set_UI_high_priority",0)
         EventMesh.publish("return_prev_screen")
 
     def btn1_release(self):
-        EventMesh.publish("return_prev_screen")
-
-    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("set_UI_high_priority",0)
         EventMesh.publish("return_prev_screen")
 
     def btn8_press(self):
+        EventMesh.publish("set_UI_high_priority",0)
         EventMesh.publish("load_screen", {"screen": "main_menu"})
+
 #from usr.ui_WatchFaceScreen import WatchFaceScreen
 class UI(object):
     def __init__(self):
@@ -6319,8 +6365,9 @@ class UI(object):
         EventMesh.publish("publish_message_event_ui",{"func":self.ui_press_do,"data":event}) 
     def ui_press_do(self, event):    
         screen_NAME = EventMesh.publish("get_screen_NAME")
-        if screen_NAME == "poweron" or screen_NAME == "system_init":
-            return
+        if screen_NAME != None:
+            if screen_NAME == "poweron" or screen_NAME == "system_init":
+                return
         self.system_sleep_timeout_rest()
         # print("ui press {} self.screen_old:{}".format(self.screen_prev,self.screen_old))
         # print("ui_press_do")
@@ -6349,8 +6396,9 @@ class UI(object):
         EventMesh.publish("publish_message_event_ui",{"func":self.btn_press_do,"data":event}) 
     def btn_press_do(self, event):
         screen_NAME = EventMesh.publish("get_screen_NAME")
-        if screen_NAME == "poweron" or screen_NAME == "system_init":
-            return
+        if screen_NAME != None:
+            if screen_NAME == "poweron" or screen_NAME == "system_init":
+                return
         print("btn_press: {}".format(event))
         #主表盘按电源键,息屏
         
@@ -6397,8 +6445,9 @@ class UI(object):
 
     def btn_release(self, event, msg):
         screen_NAME = EventMesh.publish("get_screen_NAME")
-        if screen_NAME == "poweron" or screen_NAME == "system_init":
-            return
+        if screen_NAME != None:
+            if screen_NAME == "poweron" or screen_NAME == "system_init":
+                return
         print("btn_release: {}".format(event))
         # if self.main_flag != 1 and self.sleep_flag == 0:
         #     self.__lcd_on()
index 859b77f..5fb8def 100644 (file)
Binary files a/2.sdk/project/C06S/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip and b/2.sdk/project/C06S/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip differ
index 3b588db..62de12c 100644 (file)
@@ -860,7 +860,7 @@ if EventMesh.model == "D15" :
                 self.video_count = 0
                 
                 return
-            if video_state == 4 or self.video_call_state == 0 :#视频电话呼出 如果接通了就不需要了
+            if video_state == 4 or self.video_call_state == 0:#视频电话呼出 如果接通了就不需要了
                 self.video_call_state = 0
                 self.video_count=0
                 print("video calling")
@@ -3238,7 +3238,7 @@ if EventMesh.model == "D15" :
             self.pwKey_press_count = 0
 
         def sosKey_extint_cb(self,args):
-            EventMesh.debug_log('sosKey_extint_cb ',args)
+            
             power_off = EventMesh.publish("get_power_off_state")#获取关机标识
             open_power = EventMesh.publish("get_power_on_state")#获取开机标识
             if power_off != None and open_power != None:
@@ -3257,14 +3257,14 @@ if EventMesh.model == "D15" :
             self.KeyCall1_status = self.extint_19.read_level()
             # self.KeyCall2_status = self.extint_17.read_level()
 
-            # EventMesh.debug_log('sosKey_extint_cb ',args,self.sosKey_status,self.WeChatKey_status,self.KeyCall1_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿
+            EventMesh.debug_log('sosKey_extint_cb ',args,self.sosKey_status,self.WeChatKey_status,self.KeyCall1_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿
             if self.WeChatKey_status != 0 and self.GPIO26_status != 0 and self.KeyCall1_status != 0 and self.KeyCall2_status != 0:
                 if self.sosKey_status == 0:#按下
                     if NEW_ENABLE == 0:#新的按键功能定义
                         video_state = EventMesh.publish("get_video_state")
                         if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
                             if video_state == 6 or get_video == 0:
-
+                                EventMesh.debug_log("sosKey_extint_cb",get_video,video_state)
                                 EventMesh.publish("video_reject_cb",2)#挂断视频通话
                                 self.sosKey_press_count=0
                                 self.wechatKey_timer.stop()
index 1b9e0f0..52bed14 100644 (file)
@@ -5095,14 +5095,13 @@ if EventMesh.model == "D15":
 
             EventMesh.subscribe("video_no_network",self.video_no_network)#打着突然掉网或者未绑定设备 每10s检测一次
 
-            EventMesh.subscribe("video_anwer_led",self.video_anwer_led)
-
             EventMesh.subscribe("clear_video_timer_state",self.clear_video_timer_state)
 
             EventMesh.subscribe("set_vedio_init",self.set_vedio_init)
             
 
             EventMesh.subscribe("set_app_dev_end_state",self.set_app_dev_end_state)#设置是app 设备 还是主动信号不好的挂断当前的视频通话
+            EventMesh.subscribe("get_app_dev_end_state",self.get_app_dev_end_state)#设置是app 设备 还是主动信号不好的挂断当前的视频通话
 
         def set_video_state(self, event, msg):#视频通话 1是刚播进去 2 是手机拨进去 3是正在加入中 5是已接通出现画面
             self.video_state = msg
@@ -5225,14 +5224,17 @@ if EventMesh.model == "D15":
                 self.timer.start(1*1000,1,self.publish_led_event_cb)
             
 
-        def video_time_cb(self,data):
+        def video_time_cb(self,data):#1s定时器 实时监测视频通话的状态 3是拨进未接通 5是接通出画面了
             EventMesh.publish("system_sleep_rest")#防止黑屏 
             call_state = jrtc.get_state()
-            video_state = EventMesh.publish("get_video_state")
+            video_state = EventMesh.publish("get_video_state")#这个函数获取为了防止不进回调不置0
             get_video_state = EventMesh.publish("get_video_in_out_state")
             dev_mode = EventMesh.publish("get_dev_app_mode")
+            # print("call_state",call_state,video_state)
+            if self.video_led_state == 1 or self.video_timer == 1:#手表挂断不在进入
+                self.timer.stop()
+                return
 
-            # print("call_state",call_state,video_state,get_video_state,dev_mode)
             if video_state != 0 or call_state != 0:
                 if get_video_state == 0 and call_state != 0:#双方接通如果是信号不好就开始计算30 30s过后还没有出画面就挂断当前视频通话
                     self.video_count+=1
@@ -5275,11 +5277,11 @@ if EventMesh.model == "D15":
                         self.timer.stop()
                         EventMesh.publish("video_reject_cb",1)
             else:
-                if self.video_state_time == 0:
-                    self.video_state_time = 1
-                    self.video_count = 0
-                    self.timer.stop()
-                    EventMesh.publish("video_reject_cb",1)
+                self.video_state_time = 0
+                self.video_count = 0
+                self.timer.stop()
+                EventMesh.publish("set_video_state", 0)
+                EventMesh.publish("video_reject_cb",1)
 
         def video_waite_event_time_cb(self,*argc):#正在接听中,请稍候
             EventMesh.publish("video_answer_mode_timer_cb",1)
@@ -5305,18 +5307,18 @@ if EventMesh.model == "D15":
 
         def video_answer_cb(self,event,msg):#手表端拒绝视频通话
             EventMesh.publish("set_video_in_out_state",0)
-            EventMesh.publish("stop_led_timer")#设置参数
-            EventMesh.publish("close_timer_all")#
+            EventMesh.publish("stop_led_timer")#关闭亮灯模式
+            EventMesh.publish("close_timer_all")##关闭统一的计时器
             EventMesh.publish("set_vedio_init")#
-            EventMesh.publish("open_vedio_infor")
+            EventMesh.publish("open_vedio_infor")#启动视频通话的SDK相关配置
+
         
         def clear_video_timer_state(self,event,msg):#清除标识
             self.video_timer = 0
 
         def video_reject_cb(self,event,msg):#手表端挂断视频通话
-            # print("close_jrtc_event start",msg)
             if self.video_timer == 0:
-                self.video_timer = 1
+                # print("close_jrtc_event start",self.video_timer)
                 EventMesh.publish("stop_led_timer")#设置参数
                 EventMesh.publish("close_timer_all")#
                 EventMesh.publish("close_video_timer")
@@ -5328,7 +5330,7 @@ if EventMesh.model == "D15":
                 call_type = int(EventMesh.publish("get_vedio_call_type"))#
                 
                 # print("video_reject_cb1111",self.video_led_state,self.video_answer)
-                print("close_jrtc_event ens")
+                # print("close_jrtc_event ens")
                 if msg == 2:
                     self.video_led_state = 1
                     EventMesh.publish("dev_video_end_timer_cb")#手表设备已挂断
@@ -5336,23 +5338,28 @@ if EventMesh.model == "D15":
                     self.video_led_state = 0
                     EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断
                 EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
-
-                print("close_jrtc_event ens1")
+                self.video_timer = 1
+                call_state = jrtc.get_state()
+                # print("close_jrtc_event ens1",call_state)
                 jrtc.close(0)
-                print("close_jrtc_event ens2")
+                # print("close_jrtc_event ens2",call_state)
+                
+
                
             
         def set_app_dev_end_state(self,event,msg):#app拒绝视频通话
             self.video_led_state = 0 #手表挂断不在进入
 
+        def get_app_dev_end_state(self,event,msg):#app拒绝视频通话
+            return self.video_led_state #手表挂断不在进入
+
         def app_rtalk_cb(self,event,msg):#app拒绝视频通话
-            
             dev_mode = EventMesh.publish("get_dev_app_mode")#如果是app主动挂断需要提示音频文件
             video_state = EventMesh.publish("get_video_state")#清除视频通话状态
-            # print("app_rtalk_cb return,",self.video_led_state,dev_mode,video_state)
-            # 1手表挂断 3 信号不好自动挂断 
-            if self.video_led_state == 1 or dev_mode == 0 or video_state == 0:#手表挂断不在进入
+            # print("app_rtalk_cb return 1",self.video_led_state,dev_mode,video_state)
+            if self.video_led_state == 1 or self.video_timer == 1:#手表挂断不在进入
                 return
+            # print("app_rtalk_cb return 2",self.video_led_state,dev_mode,video_state)
             self.video_timer = 1
             self.video_led_state = 0
             EventMesh.publish(constants.EVENT.SYSTEM_UP)#
@@ -5364,41 +5371,24 @@ if EventMesh.model == "D15":
                 EventMesh.publish("close_timer_all")#
                 EventMesh.publish("set_video_in_out_state",0)#清除视频通话拨进还是拨出的状态
 
+            EventMesh.publish("close_video_timer")
             # print("app_rtalk_cb ",dev_mode,self.video_led_state,video_state)
-
-            EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断
-
             EventMesh.publish("set_dev_app_mode", 0)
-            EventMesh.publish("close_video_timer")
             EventMesh.publish("set_video_state",0)#清除视频通话状态
             EventMesh.publish("set_video_in_out_state",0)#清除视频通话拨进还是拨出的状态
-
-        def video_anwer_led(self,event,msg): #1绿灯 2白灯 3红灯
-            # print("video_anwer_led",msg)
-            if msg == 1:
-                # self.video_led_state = 0
-                # EventMesh.publish("set_led_time_arg",[1,2,8*1,led_mode.FLASH_LIGHT_GREEN,8,4,led_mode.VIDEO_MEASURE_MODE])#
-                pass
-            elif msg == 2:#网络不好或者正在接听中
-                # if self.video_led_state == 1:
-                #     self.video_led_state = 0
-                #     EventMesh.publish("set_led_time_arg",[1,2,8*1,led_mode.FLASH_LIGHT_WHITE,8,4,led_mode.VIDEO_MEASURE_MODE])#
-                # else:
-                #     self.video_led_state = 0
-                pass
-            else:#对方手机app挂断或者信号不好挂断
-                # EventMesh.publish("set_led_time_arg",[1,2,8*1,led_mode.FLASH_LIGHT_RED,8,4,led_mode.VIDEO_MEASURE_MODE])#
-                pass
-
             
+            EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断
+            video_state = EventMesh.publish("get_video_state")
+            # print("app_rtalk_cb end",video_state)
 
     def jrtc_cb(close_sta):#注册回调
         print("jrtc callback:", close_sta)
         if close_sta == 0 or close_sta == 1:
-            pass
-            # EventMesh.publish("set_video_in_out_state",0)
-            # EventMesh.publish("set_video_state",0)
-            # jrtc.close(0)
+            EventMesh.publish("set_video_state", 0)
+            EventMesh.publish("set_video_in_out_state",0)
+            # if EventMesh.publish("get_app_dev_end_state") == 0:
+            #     jrtc.close(0)
+
     jrtc.set_callback(jrtc_cb)
 
     import fota
index 95f0d37..633d835 100644 (file)
@@ -217,7 +217,6 @@ class UI(object):
             EventMesh.debug_log("__lcd_on")
             if self.sleep_lock == 1:
                 EventMesh.debug_log("__lcd_on:sleep_lock:error!")
-                utime.sleep_ms(200)
             self.sleep_lock = 1
             self.sleep_flag = 1
             
@@ -228,11 +227,10 @@ class UI(object):
             self.system_sleep_timer.start(1000, 1, self.system_sleep_timer_cb)
             EventMesh.publish("set_lcd_state",self.sleep_flag)
            
-            utime.sleep_ms(2)
             #lv.autoSleep(0)
             pm.autosleep(0)
             pm.sclkEx_set(0, 1, 5)
-            utime.sleep_ms(60)
+            
             
            
             self.sleep_lock = 0
@@ -244,7 +242,6 @@ class UI(object):
             EventMesh.debug_log("__lcd_off")
             if self.sleep_lock == 1:
                 EventMesh.debug_log("__lcd_on:sleep_lock:error!")
-                utime.sleep_ms(200)
             self.sleep_lock = 1
             self.sleep_flag = 0
            
index 841ea82..1232a45 100644 (file)
@@ -8367,7 +8367,8 @@ video_img_test = None
 def jrtc_cb(close_sta):
     print("jrtc callback:", close_sta)
     if close_sta == 0 or close_sta == 1:
-        jrtc.close(0)
+        pass
+        # jrtc.close(0)
 jrtc.set_callback(jrtc_cb)
 class VedioShowScreen(Screen):#正在视频通话中
     #
index 0edc12e..f983b97 100644 (file)
@@ -144,15 +144,15 @@ class HealthScreen(Screen):#健康测量
         super().__init__()
         self.is_sliding = 0
         self.meta = health_screen
-        # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
-        health_hr_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "heartrate")), lv.EVENT.CLICKED, None)
-        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
-        health_spo2_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "spo2")), lv.EVENT.CLICKED, None)
-        health_temp_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "temperature")), lv.EVENT.CLICKED, None)
+        # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.SHORT_CLICKED, None)
+        health_hr_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "heartrate")), lv.EVENT.SHORT_CLICKED, None)
+        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.SHORT_CLICKED, None)
+        health_spo2_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "spo2")), lv.EVENT.SHORT_CLICKED, None)
+        health_temp_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "temperature")), lv.EVENT.SHORT_CLICKED, None)
 
        
         health_hr_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e,"heartrate")), lv.EVENT.PRESSING, None)
-        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
+        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.PRESSING, None)
         health_spo2_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "spo2")), lv.EVENT.PRESSING, None)
         health_temp_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "temperature")), lv.EVENT.PRESSING, None)
     
@@ -162,7 +162,7 @@ class HealthScreen(Screen):#健康测量
             #print("PRESSING")
             self.is_sliding += 1
 
-        elif  code == lv.EVENT.CLICKED:
+        elif  code == lv.EVENT.SHORT_CLICKED:
             #utime.sleep_ms(10)
             print("1self.is_sliding",self.is_sliding)
             if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件
index b39d460..338cf00 100644 (file)
@@ -1502,7 +1502,7 @@ class totalvolumeScreen(Screen):
             self.aud.setVolume(self.volum_size)
             EventMesh.publish("set_volum_size",self.volum_size)
             # print("self.read_data:size :{}".format(self.read_data))
-
+            self.aud.stop()
             self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3')  #播放声音
  
     def Close(self):