C06S:
authordxy15521469561 <1731678236@qq.com>
Thu, 1 Feb 2024 07:49:45 +0000 (15:49 +0800)
committerdxy15521469561 <1731678236@qq.com>
Thu, 1 Feb 2024 07:49:45 +0000 (15:49 +0800)
联动调节
D10测试视频通话
K01优化视频通话

15 files changed:
2.sdk/project/C06S/ext/static/SOS_PLAY.mp3 [new file with mode: 0644]
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/constants.py
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/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/mgr_d15.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/K5_DDY/sdk/services/microPython/ports/quectel/core/mgr.py

diff --git a/2.sdk/project/C06S/ext/static/SOS_PLAY.mp3 b/2.sdk/project/C06S/ext/static/SOS_PLAY.mp3
new file mode 100644 (file)
index 0000000..f2588cd
Binary files /dev/null and b/2.sdk/project/C06S/ext/static/SOS_PLAY.mp3 differ
index f56d62a..7d59695 100644 (file)
@@ -131,6 +131,9 @@ class PROTOCOL:
 
     MSGQ_SEND = "MSGQ_SEND"
     MSGQ_RECV = "MSGQ_RECV"
+    
+    PROFILE_SEND = "profile_SEND"
+    PROFILE_RECV = "profile_RECV"
 
     
 
index d38b69e..b8a37e4 100644 (file)
@@ -336,6 +336,7 @@ def main_init():
         pcr.add_support(protocol.FACTORY_ProtoCol())
         pcr.add_support(protocol.MESSAGE_SOS_ProtoCol())
         pcr.add_support(protocol.MSGQ_ProtoCol())
+        pcr.add_support(protocol.profile_ProtoCol())
     except Exception as e:
         usys.print_exception(e)
     try:    
index 4c78462..4405dca 100644 (file)
@@ -3318,7 +3318,7 @@ class getSosFlagManager(Abstract):#设置sos
         if SOS_NUMBER1 != None:
                 self.sos_numer1 = SOS_NUMBER1
         SOS_NUMBER2 = EventMesh.publish("get_storage_config","SOS_NUMBER2")
-        if SOS_NUMBER1 != None:        
+        if SOS_NUMBER2 != None:        
             self.sos_numer1 = [SOS_NUMBER1, SOS_NUMBER2]
 
         SOS_NUMBER3 = EventMesh.publish("get_storage_config","SOS_NUMBER3")
index 5e09c39..d87e5df 100644 (file)
@@ -2400,6 +2400,8 @@ class MESSAGE_SOS_ProtoCol(ProtoCol):
         # print("phonebook_name!!!!!!!!!!!!",phonebook_name)
         EventMesh.publish("set_sos_message", phonebook_name)#
         EventMesh.publish("load_screen", {"screen": "sos_rev"})
+        EventMesh.publish("update_sos_show",phonebook_name)
+        
         
         
 
@@ -2413,7 +2415,7 @@ class MSGQ_ProtoCol(ProtoCol):
     def send(self, event, msg):
         
         #[XT*334588000000156*0007*MESSAGE]
-        send_data = self.PID+"*%s*0005*MSGQ"%(self.imei)
+        send_data = self.PID+"*%s*0004*MSGQ"%(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))
@@ -2432,8 +2434,44 @@ class MSGQ_ProtoCol(ProtoCol):
         print("MSGQ!!!!!!!!!!!!")
        
     
-       
+# [XT*YYYYYYYYYYYYYYY*LEN*profile] 
+class profile_ProtoCol(ProtoCol):
+    """情景模式"""
+    TYPE = "profile"
+
+
+    def send(self, event, msg):
+        
+        #[XT*334588000000156*0007*MESSAGE]
+        send_data = self.PID+"*%s*0007*profile"%(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))
+        # 通过socket发送到服务器端
+        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
 
+    def recv(self, event, msg):
+        """
+
+        @param event: 
+        @param msg: 接收到的下行数据
+        """
+
+        msg = msg[1:-1]
+        msg_s = msg.decode('ascii')
+        msg_s = msg_s.split('profile,')[1]
+        mode = int(msg_s)
+        if mode == 4:
+            screen_NAME = EventMesh.publish("get_screen_NAME")
+            if screen_NAME != None:
+                if screen_NAME == "sos_rev":#在sos求助界面收到该指令啧退出当前界面
+                    EventMesh.publish("close_sos_timer")
+                    EventMesh.publish("close_motor_infor")#关闭马达和定时器
+                    EventMesh.publish("set_UI_high_priority",0)
+                    EventMesh.publish("return_prev_screen") 
+        print("profile!!!!!!!!!!!!")
+        
+        EventMesh.publish(constants.PROTOCOL.PROFILE_SEND)
 
     
 
index aacb608..3fa9a83 100644 (file)
@@ -6053,9 +6053,20 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面
 
 sos_recv_screen = None
 sos_recv_screen_label = None
-sos_recv_screen_comfirm=None
+sos_recv_screen_comfirm =None
 sos_recv_screen_label2 = None
 sos_recv_screen_label2_btn =None
+sos_recv_new_screen = None
+
+style_cont_sos = lv.style_t()
+style_cont_sos.init()
+style_cont_sos.set_bg_color(lv.color_make(0x23, 0xc1,0xbb))
+style_cont_sos.set_radius(20)
+style_cont_sos.set_pad_left(0)
+style_cont_sos.set_pad_right(0)
+style_cont_sos.set_pad_top(0)
+style_cont_sos.set_pad_bottom(0)
+
 class sosrecvScreen(Screen):#设备接收平台发送的
     NAME = "sos_rev"
     def __init__(self):
@@ -6063,15 +6074,20 @@ class sosrecvScreen(Screen):#设备接收平台发送的
         self.meta = None
         self.meta_type = "popup"
         self.timer = osTimer()
+        self.timer1 = osTimer()
         self.count = 0
         self.sos_state = 0
-        EventMesh.subscribe("get_sos_status",self.get_sos_status)
+        self.aud = audio.Audio(0)
+        EventMesh.subscribe("close_sos_timer",self.close_sos_timer)
+
+        EventMesh.subscribe("update_sos_show",self.update_sos_show)
 
     def initialization(self):
+        self.aud.setVolume(11)#设置最大声录音
         self.count = 0
         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
+        global sos_recv_screen,sos_recv_screen_label,sos_recv_new_screen,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")
@@ -6101,12 +6117,19 @@ class sosrecvScreen(Screen):#设备接收平台发送的
             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_new_btn_screen)
-            sos_recv_screen_comfirm.set_size(176, 46)
-            sos_recv_screen_comfirm.set_pos(32, 0)
-            sos_recv_screen_comfirm.set_src("E:/static/off_icon.png")
+            sos_recv_screen_comfirm = lv.btn(sos_recv_new_btn_screen)
+            sos_recv_screen_comfirm.set_size(200,46)
+            sos_recv_screen_comfirm.set_pos(20,0)
             sos_recv_screen_comfirm.add_flag(lv.obj.FLAG.CLICKABLE)
-            sos_recv_screen_comfirm.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            sos_recv_screen_comfirm.add_style(style_cont_sos, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            # 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, 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)
 
             sos_recv_screen_label2 = lv.label(sos_recv_screen_comfirm)
             sos_recv_screen_label2.set_text("确定")
@@ -6140,31 +6163,55 @@ class sosrecvScreen(Screen):#设备接收平台发送的
             sos_recv_screen_label.set_text(" ")
 
         EventMesh.publish("set_motor_time",[1,2,10*10,10,5])#设置马达参数
+        self.aud.stop()#
+        self.aud.play(1, 1, '/ext/static/SOS_PLAY.mp3')  #文件名前面要加上路径
         self.timer.start(1*1000,1,self.motor_cb)
-    
-
-    def get_sos_status(self,event,msg):
 
-        return self.sos_state
+    def close_sos_timer(self,event,msg):
+        self.aud.stop()#
+        self.timer.stop()
+        
 
     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):
         EventMesh.publish("system_sleep_rest")#防止黑屏
+        if EventMesh.publish("get_audio_state") == 0:
+            self.aud.stop()#
+            self.aud.play(1, 1, '/ext/static/SOS_PLAY.mp3')
+            
         self.count+=1
         if self.count >= 7:
             self.count = 0
             EventMesh.publish("set_motor_time",[1,2,10*10,10,5])#设置马达参数
 
-    # 
+    def update_sos_show(self,event,msg):
+        global sos_recv_screen_label,sos_recv_new_screen
+        if sos_recv_screen_label == None:
+            return
+        if len(str(msg)) != 0:
+            sos_recv_new_screen.scroll_to(0, 0, lv.ANIM.OFF)#每次更新的时候就从头显示
+            sos_recv_screen_label.set_text("{}".format(msg))
+        else:
+            sos_recv_new_screen.scroll_to(0, 0, lv.ANIM.OFF)
+            sos_recv_screen_label.set_text(" ")
+        pass
         
     def Close(self):
+
+        self.aud.stop()#
+        num = EventMesh.publish("get_volum_size")
+        if num == None:
+            num = 8
+        self.aud.setVolume(num)#恢复原始音量
         EventMesh.publish("set_UI_high_priority",0)
         self.timer.stop()
         EventMesh.publish("close_motor_infor")#关闭马达和定时器
index 5430080..0c0821a 100644 (file)
@@ -3499,9 +3499,8 @@ if EventMesh.model == "D15" :
                         fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识
                         usb_state = EventMesh.publish("get_usb")#
                         video_state = EventMesh.publish("get_video_state")
-                        if flag != 0 or usb_state == 1 or usb_state == 3 or fall_down != 0:
+                        if flag != 0  or fall_down != 0:
                             return
-                            pass
                         EventMesh.publish("stop_led_timer")#设置参数
                         EventMesh.publish("call_viode_book_num")
                     pass
index 6bbe69a..c454933 100644 (file)
@@ -4233,7 +4233,7 @@ if EventMesh.model == "D10":
             if SOS_NUMBER1 != None:
                 self.sos_numer1 = SOS_NUMBER1
             SOS_NUMBER2 = EventMesh.publish("get_storage_config","SOS_NUMBER2")
-            if SOS_NUMBER1 != None:        
+            if SOS_NUMBER2 != None:        
                 self.sos_numer1 = [SOS_NUMBER1, SOS_NUMBER2]
 
             SOS_NUMBER3 = EventMesh.publish("get_storage_config","SOS_NUMBER3")
index e30c868..cb0bb58 100644 (file)
@@ -4259,7 +4259,7 @@ if EventMesh.model == "D15":
             if SOS_NUMBER1 != None:
                 self.sos_numer1 = SOS_NUMBER1
             SOS_NUMBER2 = EventMesh.publish("get_storage_config","SOS_NUMBER2")
-            if SOS_NUMBER1 != None:        
+            if SOS_NUMBER2 != None:        
                 self.sos_numer1 = [SOS_NUMBER1, SOS_NUMBER2]
 
             SOS_NUMBER3 = EventMesh.publish("get_storage_config","SOS_NUMBER3")
index be0fd6e..54fbeff 100644 (file)
@@ -271,7 +271,7 @@ class SockManager(Abstract):
                     # "api.xcloudtech.com"
                     # d_server_port = 9000
                     jsload_data =  ujson.loads(c)
-                    # print("jsload_data-{}".format(jsload_data))
+                    print("jsload_data-{}".format(jsload_data))
                     # jsload_data = {'data':'111','protocolType':'', 'host':'device.miwitracker.com', 'secretKey': 'bZld0ALsZTt15tKEZhOlLPgbsO75BLTP', 'port':8505, 'bid': '3G', 'extJsonStr': ''}
                     # ujson.loads(c)
                     
@@ -619,9 +619,8 @@ class PING_ProtoCol(ProtoCol):
         data_tmp = data_tmp.split(']')[0] #去掉]   
         EventMesh.publish(constants.EVENT.SET_PING, data_tmp.split(',')[1])
         if EventMesh.model == 'D15':
-            if str(data_tmp) == "1":
-                EventMesh.publish(constants.PROTOCOL.JPREG_SEND) 
-                EventMesh.publish(constants.PROTOCOL.MEMBERS_SEND)
+            EventMesh.publish(constants.PROTOCOL.JPREG_SEND) 
+            EventMesh.publish(constants.PROTOCOL.MEMBERS_SEND)
 
 class KA_ProtoCol(ProtoCol):
     """心跳"""
@@ -3063,7 +3062,7 @@ class CALLING_ProtoCol(ProtoCol):#app发起视频通话
         usb_state = EventMesh.publish("get_usb")#
         video_state = EventMesh.publish("get_video_state")
         sos_dialing = EventMesh.publish("get_sos_state_out")#正在拨打sos电话
-        if flag != 0 or usb_state == 1 or usb_state == 3 or fall_down != 0 or video_state != 0 or sos_dialing != 0: #电话在打入或者 在充电不允许视频通话
+        if flag != 0 or fall_down != 0 or video_state != 0 or sos_dialing != 0: #电话在打入或者 在充电不允许视频通话
             EventMesh.publish(constants.PROTOCOL.CALLING_SEND,1)
         else:
             EventMesh.publish(constants.PROTOCOL.CALLING_SEND,0)
index 83492f5..5040ddc 100644 (file)
@@ -2915,7 +2915,7 @@ class getSosFlagManager(Abstract):#设置sos
         if SOS_NUMBER1 != None:
                 self.sos_numer1 = SOS_NUMBER1
         SOS_NUMBER2 = EventMesh.publish("get_storage_config","SOS_NUMBER2")
-        if SOS_NUMBER1 != None:        
+        if SOS_NUMBER2 != None:        
             self.sos_numer1 = [SOS_NUMBER1, SOS_NUMBER2]
 
         SOS_NUMBER3 = EventMesh.publish("get_storage_config","SOS_NUMBER3")
index 75f4986..a4ee75e 100644 (file)
@@ -39,10 +39,11 @@ def server_init(server_type = None):
         # PID = "SZKW"
     elif server_type == 2:
         # test.iot.socket.thisiot.com:9999
-        d_server_addr = "test.iot.socket.thisiot.com"
+        d_server_addr = "iot.socket.thisiot.com"
         d_server_port = 9999
-        d_md5_key = "3JyCjsw4ryXKzjzudayY"
-        d_PID = "qAELPTKmFanR4RHe"
+        d_md5_key = "SZYhyGhroQ3xFKFWZq1g"
+        d_PID = "oxLwDqcwJCtiPSRu"
+    
     elif server_type == 3:
         d_server_addr = "tcp.zhihuixuexiao.com"
         d_server_port = 2346
@@ -221,8 +222,9 @@ class SockManager(Abstract):
                 print("sign_data:{} sonce_data:{}".format(md5_data,sign_data))
                 # sign_data = MD5_head
                 # http://8.134.110.49:31379/dev/device/check?imei=&bid=sonce=sign=
-                ip_addr = "test.iot.api.thisiot.com"
-                url = "http://{}/dev/device/check?imei={}&bid={}&sonce={}&sign={}".format(ip_addr,imei,pid_data,sonce_data,sign_data)
+                ip_addr = "iot.api.thisiot.com"
+                # url = "http://{}/dev/device/check?imei={}&bid={}&sonce={}&sign={}".format(ip_addr,imei,pid_data,sonce_data,sign_data)
+                url = "http://app.api.thisiot.com/dev/device/check?imei={}&bid={}&sonce={}&sign={}".format(imei,pid_data,sonce_data,sign_data)
 
                 response = request.get(url)
                 data_tmp ={}
@@ -239,7 +241,7 @@ class SockManager(Abstract):
                     # "api.xcloudtech.com"
                     # d_server_port = 9000
                     jsload_data =  ujson.loads(c)
-                    print("jsload_data-{}".format(jsload_data))
+                    # print("jsload_data-{}".format(jsload_data))
                     # jsload_data = {'data':'111','protocolType':'', 'host':'device.miwitracker.com', 'secretKey': 'bZld0ALsZTt15tKEZhOlLPgbsO75BLTP', 'port':8505, 'bid': '3G', 'extJsonStr': ''}
                     # ujson.loads(c)
                     
@@ -267,8 +269,8 @@ class SockManager(Abstract):
                                         
                                         EventMesh.publish("set_new_key", str(secretKey))#获取pid和key
                                         EventMesh.publish("set_new_pid",str(pid))#获取pid和key
-
-                                        self.reconnect_timer_cb()#重连设备
+                                        self.reconnect_flag = 0
+                                        self.reconnect()#重连设备
                 EventMesh.publish("set_server_state",1)#获取修改服务器状态
         
         
@@ -454,7 +456,7 @@ class ProtoCol(Abstract):
         else:
             self.md5_key = server_data[0]
             self.PID = server_data[1]
-        print("init md5PID2",self.md5_key,self.PID)
+        # print("init md5PID2",self.md5_key,self.PID)
 
     def initialization(self, *args, **kwargs):
         EventMesh.subscribe(self.TYPE + "_SEND", self.handler)
index 55dfb19..ff890d8 100644 (file)
@@ -8424,7 +8424,6 @@ class VedioShowScreen(Screen):#正在视频通话中
 
     def close_jrtc_event(self,event,msg):
         print("close_jrtc_event")
-        
         jrtc.close(0)
         pass
     def clear_jrtc_init_state(self,event,msg):
@@ -9178,10 +9177,9 @@ class voiceOutCallScreen(Screen):#等待对方接接听中
             self.second_count += 1
             self.show_time()
             
-
         if call_state != 5:
             self.time_count+=1
-            if self.time_count >= 1*60 or (call_state == 0 and self.time_count >= 5 and self.second_count != 0):
+            if self.time_count >= 1*60 or call_state == 0:
                 self.time_count = 0
                 self.timer1.stop()
                 call_id = str(EventMesh.publish("get_vedio_call_id"))#
index 32f78b4..fdaeff5 100644 (file)
@@ -3147,7 +3147,7 @@ class getSosFlagManager(Abstract):#设置sos
         if SOS_NUMBER1 != None:
                 self.sos_numer1 = SOS_NUMBER1
         SOS_NUMBER2 = EventMesh.publish("get_storage_config","SOS_NUMBER2")
-        if SOS_NUMBER1 != None:        
+        if SOS_NUMBER2 != None:        
             self.sos_numer1 = [SOS_NUMBER1, SOS_NUMBER2]
 
         SOS_NUMBER3 = EventMesh.publish("get_storage_config","SOS_NUMBER3")
index 726005d..c63a916 100644 (file)
@@ -3314,7 +3314,7 @@ class getSosFlagManager(Abstract):#设置sos
         if SOS_NUMBER1 != None:
                 self.sos_numer1 = SOS_NUMBER1
         SOS_NUMBER2 = EventMesh.publish("get_storage_config","SOS_NUMBER2")
-        if SOS_NUMBER1 != None:        
+        if SOS_NUMBER2 != None:        
             self.sos_numer1 = [SOS_NUMBER1, SOS_NUMBER2]
 
         SOS_NUMBER3 = EventMesh.publish("get_storage_config","SOS_NUMBER3")