ota获取版本号加延时
authordxy <1731678236qq.com>
Tue, 16 Sep 2025 06:07:28 +0000 (14:07 +0800)
committerdxy <1731678236qq.com>
Tue, 16 Sep 2025 06:07:28 +0000 (14:07 +0800)
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_alarm.py

index ebefc5a..30e0d4c 100644 (file)
@@ -268,7 +268,6 @@ class AI_UART():
                             print("send_queu_uart_data sucess data:{} {}".format(data["data"],type(data["data"])))
                             self.uart_queue_send_data(data["data"])
                         if "resend_flag" in data:
-                            print("需要重发")
                             print("send_reset_cb:{} {}".format(data["resend_flag"],data["ACK_time"]))
                             if data["resend_flag"] == 1:
                                 self.send_count = 5#重试5次
@@ -480,50 +479,54 @@ class AI_UART():
             elif jsload_data["event"] == "AI_PWR_PRESS" :#电源按键按下
                 EventMesh.publish("publish_AI_btnInfo",{"func":self.pwk_key_release})  
                 ack_flag = 1
-            elif jsload_data["event"] == "bt_scan_rest":#扫描列表
+            elif jsload_data["event"] == "bt_scan_rest":#扫描列表 #蓝牙停止扫描后主动向4g发送扫描列表需要发送ack
                 EventMesh.publish("send_bt_scan_list",jsload_data)
                 ack_flag=1
-            elif jsload_data["event"]=="bt_connect_single":
+            elif jsload_data["event"]=="bt_connect_single": #收到蓝牙主动发送过来的单个连接蓝牙耳机的连接状态 需要发送ack
                 EventMesh.publish("save_bt_connect_list",jsload_data)
                 ack_flag=1
-            elif jsload_data["event"]=="need_send_bt_connect_list":
+                
+            elif jsload_data["event"]=="need_send_bt_connect_list": #发送连接蓝牙连接记录列表 不需要发送ack
                 self.get_bt_connect_timer.stop()
                 self.get_bt_connect_flag = 0
-                EventMesh.publish("save_bt_connect_list",jsload_data)
+                EventMesh.publish("save_bt_connect_list",jsload_data) #先保存连接记录再发送连接耳机列表to IOT
                 EventMesh.publish("send_bt_connect_list")
-                ack_flag=1
+               
             elif jsload_data["event"]=="get_ble_switch":
-                ble_switch_flag =  EventMesh.publish("get_storage_config","switch_ble_state")#ble开关
+                ble_switch_flag =  EventMesh.publish("get_storage_config","switch_ble_state")#ble开关 不需要发送ack
                 if ble_switch_flag == None:
                     ble_switch_flag = "1"
                 EventMesh.publish("send_ble_switch_toble",str(ble_switch_flag))
-                ack_flag=1
+                
                 pass
             elif jsload_data["event"]=="get_bt_switch":
-                bt_switch_flag =  EventMesh.publish("get_storage_config","switch_bt_state")#bt开关
+                bt_switch_flag =  EventMesh.publish("get_storage_config","switch_bt_state")#bt开关 不需要发送ack
                 if bt_switch_flag == None:
                     bt_switch_flag = "1"
                 EventMesh.publish("send_bt_switch_toble",bt_switch_flag)
-                ack_flag=1
+                
                 pass
-            elif jsload_data["event"]=="get_cat1_imei":
+            elif jsload_data["event"]=="get_cat1_imei": #蓝牙主动向4G获取imei  4g不需要发送ack 蓝牙收到imei需要回ack给4改
                 EventMesh.publish("send_imei_to_ble")
                 ack_flag=1
                 pass
-            elif jsload_data["event"] == "post_bt_connect_rest":
+            elif jsload_data["event"] == "post_bt_connect_rest": #蓝牙主动蓝牙耳机连接状态 需要发送ack给蓝牙
                 EventMesh.publish("recv_bt_connect_rest",jsload_data)
                 ack_flag=1
-            elif jsload_data["event"] == "clear_earphone_record_ok":
+
+            elif jsload_data["event"] == "clear_earphone_record_ok":#清除蓝牙耳机连接记录
                 tts_play_str = "删除成功"
                 EventMesh.publish("play_tts",[tts_play_str,1])
-                ack_flag=1
+                self.read_ack_flag = 1
             
             elif jsload_data["event"] == "versions":
                 self.bt_versions = jsload_data["data"]
                 print("当前蓝牙版本是:{}".format(self.bt_versions))
-            elif jsload_data["event"] == "kws" :#电源按键按下
+                self.read_ack_flag = 1
+
+            elif jsload_data["event"] == "kws" :#
                 EventMesh.publish("kws_even")
-            elif jsload_data["event"] == "ack" :#电源按键按下
+            elif jsload_data["event"] == "ack" :#
                 self.read_ack_flag = 1
             if ack_flag == 1:
                 self.send_ack()
@@ -547,7 +550,7 @@ class AI_UART():
         }
         json_str  =ujson.dumps(json_data)
         print("clear_earphone_record{}".format(json_str))
-        self.send_data(json_str)
+        self.send_data(json_str,1)
     def adjust_volume_toBle(self,event,msg): #
         self.read_ack_flag=0
         volume = int(msg)
@@ -583,7 +586,7 @@ class AI_UART():
             }
             json_str  =ujson.dumps(json_data)
             print("switch_ble_state{}".format(json_str))
-            self.send_data(json_str)
+            self.send_data(json_str,1)
 
         elif  msg == 2: #AI对话开启蓝牙
             json_data = \
@@ -597,7 +600,7 @@ class AI_UART():
             }
             json_str  =ujson.dumps(json_data)
             print("switch_ble_state{}".format(json_str))
-            self.send_data(json_str)
+            self.send_data(json_str,1)
         elif  msg == 3: #AI对话开启蓝牙
             json_data = \
             {
@@ -609,7 +612,7 @@ class AI_UART():
             }
             json_str  =ujson.dumps(json_data)
             print("switch_bt_state{}".format(json_str))
-            self.send_data(json_str)
+            self.send_data(json_str,1)
 
         elif  msg == 4: #AI对话开启蓝牙
             json_data = \
@@ -623,7 +626,7 @@ class AI_UART():
             }
             json_str  =ujson.dumps(json_data)
             print("switch_bt_state{}".format(json_str))
-            self.send_data(json_str)
+            self.send_data(json_str,1)
 
     def send_bt_switch_toble(self,event,msg):
         EventMesh.publish("publish_AI_btnInfo",{"func":self.send_bt_switch_toble_cb,"data":msg})
@@ -646,7 +649,7 @@ class AI_UART():
         }
         json_str  =ujson.dumps(json_data)
         print("send_bt_switch_toble{}".format(json_str))
-        self.send_data(json_str)
+        self.send_data(json_str,1)
 
     def send_ble_switch_toble(self,event,msg):
         EventMesh.publish("publish_AI_btnInfo",{"func":self.send_ble_switch_toble_cb,"data":msg})
@@ -668,7 +671,7 @@ class AI_UART():
         }
         json_str  =ujson.dumps(json_data)
         print("send_ble_switch_toble{}".format(json_str))
-        self.send_data(json_str)    
+        self.send_data(json_str,1)    
 
     # 重发机制
     def send_reset_cb(self,json_str,need_resend = None,timeOut=None):
@@ -728,6 +731,9 @@ class AI_UART():
 
         print("bt_send_end")
     def send_data(self,str_data,need_resend = None,ACK_time =None):
+        if self.bt_ota_flag == 1:
+            print("ota 中不需要上传")
+            return
         print("send_data{} {} {}".format(str_data,need_resend,ACK_time))
         queue_data={"event":"uart_send_data","data":str_data}
         if need_resend != None:
@@ -828,7 +834,13 @@ class AI_UART():
         print("send_get_versions{}".format(json_str))
         print("send_get_versions{}".format(json_str))
         print("send_get_versions{}".format(json_str))
-        self.send_data(json_str)
+        self.send_data(json_str,1)
+        count =1000
+        while True:
+            count -=1
+            if count <=0 or self.read_ack_flag == 1:
+                break
+            utime.sleep_ms(1)
 
         pass
     def start_ota(self,event=None,msg=None):#通过串口给蓝牙升级
@@ -893,6 +905,7 @@ class AI_UART():
             if count <=0 or self.read_ack_flag == 1:
                 break
             utime.sleep_ms(10)
+            EventMesh.publish(constants.EVENT.SYSTEM_UP)#唤醒休眠
         print("ota_start:count:{}".format(count))
         url = msg[0]
         bt_size = msg[1]
index 81c9683..7c448c5 100644 (file)
@@ -747,8 +747,17 @@ class AI_alarm(Abstract):
     def AI_delete_alarm(self,event=None,Num=None):#删除闹钟
         self.alarm_array =[]#闹钟队列清空
         clear_ttr = "闹钟列表已清空"
+        date_tmp = utime.localtime()
+        time_tmp = utime.mktime(date_tmp)
         try:
             EventMesh.publish("set_storage_config",["alarm_list",self.alarm_array])
+            alarm_send = {
+                "cmd":"post_alarm",
+                "ts":time_tmp,
+                "msg":"上报闹钟",
+                "data":self.alarm_array
+            }
+            EventMesh.publish("REPORT_ALARM_TO_IOT",alarm_send)
         except Exception as e:
             usys.print_exception(e)
             clear_ttr = "清除闹钟列表失败"
@@ -759,6 +768,7 @@ class AI_alarm(Abstract):
         if len(self.alarm_array) >= Num: #只有大于等于列表个数才能删除对应闹钟信息
             self.alarm_array.pop(Num)
             EventMesh.publish("set_storage_config",["alarm_list",self.alarm_array])
+            EventMesh.publish("get_need_alarm_report_info")
             pass
 
     def AI_alarm_close(self,event=None,Num=None):