为设备断网状态提供稳定的二维码显示部分
authorazao <821478748@qq.com>
Fri, 17 Oct 2025 01:43:37 +0000 (09:43 +0800)
committerazao <821478748@qq.com>
Fri, 17 Oct 2025 01:43:37 +0000 (09:43 +0800)
并且为连接,iot发送做信号判断
修改load函数,当界面一致时亮屏

2.sdk/project/K8/sdk/services/microPython/ports/quectel/core/ai_VC.py
2.sdk/project/K8/sdk/services/microPython/ports/quectel/core/main_init.py
2.sdk/project/K8/sdk/services/microPython/ports/quectel/core/ui.py

index f12b601..837e970 100644 (file)
@@ -922,6 +922,7 @@ class device_res_author(Abstract):
         signal = net.csqQueryPoll()
         if signal == -1 or self.get_sim_Status() != 1:#网络不正常
             print("dev_active 无 SIM卡!!!!!!!!\r\n")
+            EventMesh.publish("load_screen", {"screen": "imei_show"})
             return
         print("dev_active 1\r\n")
         # 签名内容: = deviceId+pid+timeStamp
@@ -1029,6 +1030,7 @@ class device_res_author(Abstract):
         signal = net.csqQueryPoll()
         if signal == -1 or self.get_sim_Status() != 1:#网络不正常
             print("dev_sign_in 无 SIM卡!!!!!!!!\r\n")
+            EventMesh.publish("load_screen", {"screen": "imei_show"})
             return
         print("dev_sign_in 1")
         token = ""
@@ -1179,6 +1181,7 @@ class OTA():
         signal = net.csqQueryPoll()
         if signal == -1 or sim.getStatus()  != 1:#网络不正常
             print("min_sys_ota 无 SIM卡!!!!!!!!\r\n")
+            EventMesh.publish("load_screen", {"screen": "imei_show"})
             return 0
         # return 0
         response = None
@@ -2343,6 +2346,13 @@ class AI_VC(Abstract):
         # EventMesh.publish("return_prev_screen")
 
     def AI_key_press(self, event, msg):#按键按下
+        signal = net.csqQueryPoll()
+        sim  = EventMesh.publish("get_sim_Status")
+        print("按下后网络情况:signal = {},sim = {}".format(signal,sim))
+        if signal == -1 or sim != 1:#网络不正常
+            print("dev_active 无 SIM卡!!!!!!!!\r\n")
+            EventMesh.publish("load_screen", {"screen": "imei_show"})
+            return
         screen_name = EventMesh.publish("get_screen_NAME")
         if screen_name == "system_init" or screen_name == "poweron" :
             return
@@ -2746,6 +2756,7 @@ class AI_VC(Abstract):
         
             print("websocket_connect_VC:OK!!!!!!!!!!!!!!!!!!!!!")
         except Exception as e: #网络连接异常
+            EventMesh.publish("load_screen", {"screen": "imei_show"})
             usys.print_exception(e)
             print("websocket_connect_VC error!!!\r\n")
             str_error = str(e)
@@ -2956,6 +2967,7 @@ class AI_VC(Abstract):
                                     EventMesh.publish("publish_AI_btnInfo",{"func":self.websocket_error,"data":"VC发送出错了,请重试"}) 
                                     self.ud_error(["VC",self.VC_taskid])
                             except Exception as e: #网络连接异常
+                                EventMesh.publish("load_screen", {"screen": "imei_show"})
                                 usys.print_exception(e)
 
                     utime.sleep_ms(1)
index 4955079..61c588f 100644 (file)
@@ -143,7 +143,8 @@ def main_init():
         ui.add_screen(_ui.chargeInScreen()) #充电已连接
         ui.add_screen(_ui.chargefullScreen()) #充电已满
         ui.add_screen(_ui.LowPowerScreen()) #电量低
-        ui.add_screen(_ui.IMEIScreen()) #IMEI二维码显示
+        ui.add_screen(_ui.IMEIScreen()) #IMEI二维码弹窗显示
+        ui.add_screen(_ui.IMEISHOWScreen()) #IMEI二维码持续显示
         
     except Exception as e:
         usys.print_exception(e)
index 2d2c480..c6d2cd1 100644 (file)
@@ -6598,6 +6598,7 @@ class IMEIScreen(Screen):
         self.meta_type = "popup"
         self.timer = osTimer()
 
+
     def initialization(self):
         imei = EventMesh.publish(constants.EVENT.GET_IMEI)
         imei_qr_data = str(imei)
@@ -6619,6 +6620,20 @@ class IMEIScreen(Screen):
             self.timer.stop()
             EventMesh.publish("load_screen", {"screen": "main_menu"})
 
+class IMEISHOWScreen(Screen):#一直展示imei界面(无网络时)
+    NAME = "imei_show"
+#EventMesh.publish("load_screen", {"screen": "imei_show"})
+    def __init__(self):
+        super().__init__()
+        self.meta = imei_screen
+
+
+    def initialization(self):
+        imei = EventMesh.publish(constants.EVENT.GET_IMEI)
+        imei_qr_data = str(imei)
+        imei_qr.update(imei_qr_data,len(imei_qr_data))
+        imei_label.set_text(imei)
+
 
 #正在充电
 class chargeInScreen(Screen):
@@ -7424,6 +7439,8 @@ class UI(object):
         if self.screen :
             if self.screen.NAME == msg["screen"]:
                 print("self.screen.NAME == msg[\"screen\"]")
+                self.__lcd_on()
+                utime.sleep_ms(100)
                 return
         for scr in self.screen_list:
             if scr.NAME == msg["screen"]: