电话None异常的问题
authord15521469561 <d155214695615@qq.com>
Fri, 12 May 2023 06:16:10 +0000 (14:16 +0800)
committerd15521469561 <d155214695615@qq.com>
Fri, 12 May 2023 06:16:10 +0000 (14:16 +0800)
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/mgr.py
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modlvgl.c
2.sdk/Helios_SDK/services/microPython/ports/quectel/core/ui.py

index 98bf563..c6d76af 100644 (file)
@@ -484,45 +484,46 @@ def voice_callback(args):
         else:
             num = EventMesh.publish("get_sos_num")
             number = EventMesh.publish("get_dial_sos_number")
-            if len(number) > 0:
-                if num == None:
-                    num = 0
-                num+=1
-                num_len = 0
-
-                if len(number) == 1:
-                    num_len = len(number)
-                elif len(number) == 2:
-                    num_len = len(number)+1
-                elif len(number) == 3:
-                    num_len = len(number)+2  
-                # print("number:{} number_len :{} num:{} num_len:{}".format(number,len(number),num,num_len))
-                if num > num_len :
-                    EventMesh.publish("set_sos_flag",0)
-                    EventMesh.publish("set_sos_num",0)
-                else:
-                    # print("number:{} number_len :{}".format(number,len(number)))
-                    EventMesh.publish("set_sos_num",num)
+            if number != None:
+                if len(number) > 0:
+                    if num == None:
+                        num = 0
+                    num+=1
+                    num_len = 0
+
                     if len(number) == 1:
-                        EventMesh.publish("set_callnumer_cb",number[0])
-                        print("phone 1")
+                        num_len = len(number)
                     elif len(number) == 2:
-                        if num == 1 or num == 3:
-                            print("phone 2")
-                            EventMesh.publish("set_callnumer_cb",number[1])
-                        elif num == 2:
-                            print("phone 3")
-                            EventMesh.publish("set_callnumer_cb",number[0])
+                        num_len = len(number)+1
                     elif len(number) == 3:
-                        if num == 1 or num == 4:
-                            EventMesh.publish("set_callnumer_cb",number[1])
-                            print("phone 4")
-                        elif num == 2 or num == 5:
-                            print("phone 5")
-                            EventMesh.publish("set_callnumer_cb",number[2])
-                        elif num == 3:
-                            print("phone 6")
+                        num_len = len(number)+2  
+                    # print("number:{} number_len :{} num:{} num_len:{}".format(number,len(number),num,num_len))
+                    if num > num_len :
+                        EventMesh.publish("set_sos_flag",0)
+                        EventMesh.publish("set_sos_num",0)
+                    else:
+                    # print("number:{} number_len :{}".format(number,len(number)))
+                        EventMesh.publish("set_sos_num",num)
+                        if len(number) == 1:
                             EventMesh.publish("set_callnumer_cb",number[0])
+                            print("phone 1")
+                        elif len(number) == 2:
+                            if num == 1 or num == 3:
+                                print("phone 2")
+                                EventMesh.publish("set_callnumer_cb",number[1])
+                            elif num == 2:
+                                print("phone 3")
+                                EventMesh.publish("set_callnumer_cb",number[0])
+                        elif len(number) == 3:
+                            if num == 1 or num == 4:
+                                EventMesh.publish("set_callnumer_cb",number[1])
+                                print("phone 4")
+                            elif num == 2 or num == 5:
+                                print("phone 5")
+                                EventMesh.publish("set_callnumer_cb",number[2])
+                            elif num == 3:
+                                print("phone 6")
+                                EventMesh.publish("set_callnumer_cb",number[0])
         print('voicecall disconnect end')
         
 
@@ -650,13 +651,24 @@ class DeviceInfoManager(Abstract):
 
         print("post_processor_after_instantiation:2")
         self.timer_push_schedule.start(10000, 1, self.publish_event)
+        # self.timer_push_schedule.start(1000, 1, self.publish_test)
         # self.battery_push_schedule.start(3000, 1, self.__check_battery)
         self.log.debug("post_processor_after_instantiation finished")
         #EventMesh.publish(constants.EVENT.START_HEART)
         # 设备开机立刻更新一次参数
         self.publish_event()
         print("post_processor_after_instantiation:3")
-    
+    def publish_test(self, *args, **kwargs):
+        pass
+        # self.read_data = {}
+        # check = ql_fs.path_exists("/ext/static/storage_file/config.json")
+        # if check == True:
+        #     with open("/ext/static/storage_file/config.json","r") as fd:
+        #         self.read_data = ujson.load(fd)
+        # self.read_data["test"] = "7817871837381378"
+        # with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
+        #     ujson.dump(self.read_data,fd)
+
 
     def publish_event(self, *args, **kwargs):
         """
@@ -676,7 +688,7 @@ class DeviceInfoManager(Abstract):
         self.timer_push = 0
         date_tmp = utime.localtime()
         time_tmp = utime.mktime(date_tmp)
-        print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
+        # print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
 
         if  math.fabs(time_tmp - self.KA_time) > 7*60: #7分钟一次心跳
             self.KA_time = time_tmp
@@ -2062,10 +2074,11 @@ class getSosFlagManager(Abstract):#设置或获取音量大小数据
         self.sos_flag = msg
         if self.sos_flag == 1:
             number = EventMesh.publish("get_dial_sos_number")
-            if len(number) > 0 and number != None:
-                EventMesh.publish("save_phonename",number[0])
-                EventMesh.publish("save_phonenum",number[0])
-                voiceCall.callStart(str(number[0]))
+            if number != None:
+                if len(number) > 0:
+                    EventMesh.publish("save_phonename",number[0])
+                    EventMesh.publish("save_phonenum",number[0])
+                    voiceCall.callStart(str(number[0]))
 
 
     def set_callnumer_cb(self, event, msg):
@@ -2094,7 +2107,21 @@ class getSosFlagManager(Abstract):#设置或获取音量大小数据
     def get_dial_sos_number(self, event, msg): 
         return self.sos_numer1
 
-
+# date_tmp......01....(2023, 5, 12, 10, 4, 22, 4, 132) time_tmp:1683857062
+# 1683857062 + 360 + 244*60
+# 1440 * 60 = 86400
+# 244*60 = 14640
+# 2023 5 13 6:00 
+#10*60 + 4 = 604
+# 1683958102
+#6*60 = 360
+# 604-360 = 244
+# e = 10080
+# c = 604 
+# n = 
+# 1683975862
+#836+600
+#1440 - 604 + 360  s = 71760
 class getBootOffManager(Abstract):#开关机时间
     def __init__(self):
         self.read_data = {}
@@ -2123,7 +2150,23 @@ class getBootOffManager(Abstract):#开关机时间
         EventMesh.subscribe("get_boot_off_time", self.get_boot_off_time)
 
     # def _rtc_callback(self,args):
-    #     print("---!!!!!!alarm_ring!!!!!!!---,idx:",args)
+    #     msg_tmp = self.off_msg
+    #     off_tmp1  = msg_tmp[1]
+    #     msg_tmp1 = off_tmp1.split(':')
+    #     start_min = msg_tmp1[0]*60+msg_tmp1[1]
+
+
+    #     off_tmp2  = msg_tmp[2]
+    #     msg_tmp2 = off_tmp2.split(':')
+    #     end_min = off_tmp2[0]*60+msg_tmp2[1]
+
+    #     rtc_now_time = self.rtc.datetime()
+    #     current = rtc_now_time[4]*60+rtc_now_time[5]
+    #     # if current == start_min:
+
+    #     # if current == start_min:
+
+    #     # print("---!!!!!!alarm_ring!!!!!!!---,idx:",args)
 
     # def set_boot_off_time(self, event, msg): 
 
@@ -2136,7 +2179,12 @@ class getBootOffManager(Abstract):#开关机时间
     #     # data = RTC().datetime()
     #     # hour = data[4]
     #     # min = data[5]
-
+    #     #反向获取时间戳
+    #     def_time = 24*60 #一天的总分钟数
+    #     time = utime.localtime()
+    #     print("09获取utime的时间戳:", time)
+    #     rtc_mktime = utime.mktime(time)
+    #     print("10反向获取utime的mktime:", rtc_mktime)
 
        
     #     current_minute = rtc_now_time[4]*60 + rtc_now_time[5] #当前的分钟数不包含年月日
@@ -2147,62 +2195,27 @@ class getBootOffManager(Abstract):#开关机时间
     #     start_min = msg_tmp1[0]*60+msg_tmp1[1]
     #     end_min = msg_tmp2[0]*60+msg_tmp2[1]
     #     #9:00 6:00 
+    #     next_off_mktime = 0 #关机的时间戳
+    #     next_on_mktime = 0 #开机的时间戳
     #     if current_minute >  start_min:#如果当前的分钟数 大于开始的关机时间分钟数 则认为是第二天6:00需要开机 23:00需要关机
-    #         next_alarm_time = utime.localtime(next_alarm_mktime)
+    #         next_off_mktime = rtc_mktime+((def_time - current_minute)+start_min)*60#算到下一个开机时间
     #         pass
-
-
-    #     print("04当前的rtc_total_minutes:{}".format(current_minute))  
-
-    #     if current_minute in minute_list:
-    #         print("当前时间和闹钟列表时间重复,删除重复的时间")
-    #         minute_list.remove(current_minute)
-
-    #     minute_list.append(current_minute)
-
-    #     # 对分钟数列表进行排序,并获取当前时间分钟数所在的位置
-    #     minute_list = sorted(minute_list)
-    #     current_index = minute_list.index(current_minute)
-
-    #     print("05将当前时间插入min_list后的min_list:{}".format(minute_list))  
-    #     print("06当前时间所在位置:{}".format(current_index))  
-
-    #     next_index = current_index + 1
-    #     if next_index >= len(minute_list):
-    #         next_minute = minute_list[0]
-    #         print("07下一个闹钟的分钟数:", next_minute)
-    #     else:
-    #         next_minute = minute_list[next_index]
-    #         print("07下一个闹钟的分钟数:", next_minute)
-
-    #     if next_minute >= current_minute:
-    #         interval_minute = next_minute - current_minute
-    #         print("08距离下一次响铃的的分钟数:", interval_minute)
     #     else:
-    #         interval_minute = end_minute - current_minute + next_minute
-    #         print("08距离下一次响铃的的分钟数:", interval_minute)
 
-    #     #反向获取时间戳
-    #     time = utime.localtime()
-    #     print("09获取utime的时间戳:", time)
-    #     rtc_mktime = utime.mktime(time)
-    #     print("10反向获取utime的mktime:", rtc_mktime)
+    #         pass
 
-    #     #加上下一次响铃需要的时间
-    #     next_alarm_mktime = rtc_mktime + interval_minute*60
-    #     print("11下一次响铃的mktime:", next_alarm_mktime)
 
     #     #格式化时间戳,得到下一次闹钟的时间
-    #     next_alarm_time = utime.localtime(next_alarm_mktime)
-    #     print("12ä¸\8bä¸\80次å\93\8dé\93\83ç\9a\84å\87\86ç¡®æ\97¶é\97´ï¼\9a", next_alarm_time)
+    #     next_time = utime.localtime(next_off_mktime)
+    #     print("12ä¸\8bä¸\80次å¼\80æ\9cºæ\97¶é\97´ç\9a\84å\87\86ç¡®æ\97¶é\97´ï¼\9a", next_time)
     #     #将时间转换为rtc的格式
     #     data_l = [2021, 7, 9, 5, 12, 30, 0, 0]
     #     #给rtc时间赋值
-    #     data_l[0] = next_alarm_time[0] #year
-    #     data_l[1] = next_alarm_time[1] #month                    
-    #     data_l[2] = next_alarm_time[2] #day                     
-    #     data_l[4] = next_alarm_time[3] #hour               
-    #     data_l[5] = next_alarm_time[4] #minute               
+    #     data_l[0] = next_time[0] #year
+    #     data_l[1] = next_time[1] #month                    
+    #     data_l[2] = next_time[2] #day                     
+    #     data_l[4] = next_time[3] #hour               
+    #     data_l[5] = next_time[4] #minute               
     #     #转换为元组       
     #     data_e=tuple(data_l)
     #     print("13将该时间转换为RTC元组:", data_e)
index f34a32a..dac18b5 100644 (file)
@@ -26674,7 +26674,7 @@ typedef struct{
     // lv_fs_file_t font_f;
     // lv_fs_res_t font_res;
     // uint32_t font_resCount;
-    uint8_t __g_font_buf[1024];//ÈçbinÎļþ´æÔÚSPI FLASH¿ÉʹÓôËbuff
+    uint8_t __g_font_buf[1024];//如bin文件存在SPI FLASH可使用此buff
 }user_font_t;
 
 //forrest.liu@20230217 add for test
@@ -26829,7 +26829,7 @@ static uint8_t bin_find_index(char *bin_name)
 }
 
 static uint8_t *__user_font_getdata(user_font_t *font_user, int offset, int size){
-    //Èç×ÖÄ£±£´æÔÚSPI FLASH, SPIFLASH_Read(__g_font_buf,offset,size);
+    //如字模保存在SPI FLASH, SPIFLASH_Read(__g_font_buf,offset,size);
     /*if(0 == font_mutex1) {
         font_mutex1 = Helios_Mutex_Create();
     }
@@ -27057,7 +27057,7 @@ typedef struct{
     lv_fs_file_t font_f;
     lv_fs_res_t font_res;
     uint32_t font_resCount;
-    uint8_t __g_font_buf[1024];//ÈçbinÎļþ´æÔÚSPI FLASH¿ÉʹÓôËbuff
+    uint8_t __g_font_buf[1024];//如bin文件存在SPI FLASH可使用此buff
 }user_font_t;
 
 
@@ -27082,7 +27082,7 @@ static void get_bin_header(char *bin_name,x_header_t *header)
 // static uint8_t fontisopen = 0;
 
 static uint8_t *__user_font_getdata(user_font_t *font_user, int offset, int size){
-    //Èç×ÖÄ£±£´æÔÚSPI FLASH, SPIFLASH_Read(__g_font_buf,offset,size);
+    //如字模保存在SPI FLASH, SPIFLASH_Read(__g_font_buf,offset,size);
     if(0 == font_mutex1) {
         font_mutex1 = Helios_Mutex_Create();
     }
index 9c80ea5..bdc2b34 100644 (file)
@@ -2850,7 +2850,11 @@ class CountdownScreen(Screen):
         if self.total <= 0:
             self.g_state = 0
             self.g_end = 1
+            self.hour = 0
+            self.min = 0
+            self.sec = 0
             self.timer.stop()
+            self.show_value()
             EventMesh.publish("load_screen", {"screen": "countdown_end"})
         
         self.total = self.total - 1
@@ -3170,13 +3174,19 @@ class StopwatchScreen(Screen):
             self.sec_value = 0
             self.min_value += 1
         if self.min_value > 99:
+            self.min_value = 99
             self.timer.stop()
+            stopwatch_start_img.clear_flag(lv.obj.FLAG.HIDDEN)
+            stopwatch_stop_img.add_flag(lv.obj.FLAG.HIDDEN)
         self.show_value()
 
     def show_value(self):
         global stopwatch_screen,stopwatch_title,stopwatch_label_min,stopwatch_mao,stopwatch_label_sec ,\
             stopwatch_mao1 ,stopwatch_label_ms,stopwatch_reset_img ,topwatch_reset_imgbtn ,stopwatch_start_img ,\
             stopwatch_start_imgbtn, stopwatch_stop_img 
+        if self.min_value >= 99:
+            self.min_value = 99
+
         stopwatch_label_ms.set_text(str("%d"%(self.ms_value)))
         stopwatch_label_sec.set_text(str("%02d"%(self.sec_value)))
         stopwatch_label_min.set_text(str("%02d"%(self.min_value)))