修改闹钟重复增加删除
authord15521469561 <d155214695615@qq.com>
Fri, 19 May 2023 10:16:05 +0000 (18:16 +0800)
committerd15521469561 <d155214695615@qq.com>
Fri, 19 May 2023 10:16:05 +0000 (18:16 +0800)
补充sos函数
修复bug

2.sdk/images/customer_fs.bin
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py
2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip
2.sdk/project/K5/usr/main.py

index ed7d3a8..27befdc 100644 (file)
Binary files a/2.sdk/images/customer_fs.bin and b/2.sdk/images/customer_fs.bin differ
index dfe1c8d..4e67da3 100644 (file)
@@ -391,7 +391,7 @@ label_ok.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 label_ok.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 
 #闹钟信息
-alarm_list = []
+alarm_list = []#用于显示闹钟列表不包含开关机信息
 
 class ClockManager(Abstract):
     def __init__(self):
@@ -401,14 +401,10 @@ class ClockManager(Abstract):
         self.idx = 0
 
         IFEXIST = ql_fs.path_exists("/ext/static/storage_file/alarm_msg.json") 
-        self.check_alarm_list=[]     
-        if IFEXIST == False:
-            with open("/ext/static/storage_file/alarm_msg.json","w",encoding='utf-8') as fd:
-                ujson.dump( self.check_alarm_list,fd)
-                print("闹钟信息加载完成")
-        else:
+        self.check_alarm_list = []     
+        if IFEXIST == True:
             with open("/ext/static/storage_file/alarm_msg.json","r",encoding='utf-8') as fd:
-                 self.check_alarm_list = ujson.load(fd)
+                self.check_alarm_list = ujson.load(fd)
 
     def post_processor_after_instantiation(self):
         EventMesh.subscribe("push_clock_info", self.set)
@@ -418,14 +414,16 @@ class ClockManager(Abstract):
         EventMesh.subscribe("set_rtc_alarm", self.set_rtc_alarm)
         EventMesh.subscribe("get_alarm_indx", self.get_alarm_indx)
         EventMesh.subscribe("get_check_alarm_list", self.get_check_alarm_list)
-        EventMesh.subscribe("set_check_alarm_list", self.set_check_alarm_list)
 
-    def set_check_alarm_list(self, event, msg):
-        self.check_alarm_list = msg
-        print("self.check_alarm_list = {}".format(self.check_alarm_list))
+       
 
     def get_check_alarm_list(self, event, msg):
-        return self.check_alarm_list
+        alarm_len = 0
+        global alarm_list
+        EventMesh.publish("read_alarminjson")
+        alarm_len = len(alarm_list)
+        return alarm_len
+
 
     def set(self, event, msg):
         global alarm_list
@@ -442,76 +440,149 @@ class ClockManager(Abstract):
 
     def read_alarminjson(self, event, msg):
         IFEXIST = ql_fs.path_exists("/ext/static/storage_file/alarm_msg.json") 
-        global alarm_list      
-        if IFEXIST == False:
-            with open("/ext/static/storage_file/alarm_msg.json","w",encoding='utf-8') as fd:
-                ujson.dump(alarm_list,fd)
-                print("闹钟信息加载完成")
-        else:
+        global alarm_list     
+        print("IFEXIST:{}".format(IFEXIST))
+        if IFEXIST == True:
             with open("/ext/static/storage_file/alarm_msg.json","r",encoding='utf-8') as fd:
                 alarm_list = ujson.load(fd)
-    
+        return alarm_list
+
     def add_alarm(self, event, msg):
+
         global alarm_list
+        EventMesh.publish("read_alarminjson")
         idx = len(alarm_list)
-        set_index1 = 0
-        set_index2 = 0
-        count = 0
-        for i in range(0,2):
-            get_index = EventMesh.publish("get_boot_off_index")#设置关机时间
-            print("get_index{}".format(get_index))
-            if idx == 0:#
-                if get_index[0] == 0 and i == 0:#记录开关机的index
-                    count = i+1
-                    set_index1 = i+1
-                elif get_index[0] != 1 and i == 0:
-                    count = int(get_index[0])
-                    set_index1 = count
-
-                if get_index[1] == 0 and i == 1:
-                    count = i+1
-                    set_index2 = count
-                elif get_index[1] != 0 and i == 1:
-                    count = int(get_index[1])
-                    set_index2 = count
-            else:
-                if get_index[0] == 0 and i == 0:
-                    count = idx+1
-                    set_index1 = idx+1
-                elif get_index[0] != 0 and i == 0:
-                    count= int(get_index[0])
-                    set_index1 = count
-
-                if get_index[1] == 0 and i == 1:
-                    count = idx+2
-                    set_index2 = idx+2
-
-                elif get_index[1] != 0 and i == 1:
-                    count= int(get_index[1])
-                    set_index2 = count
-
-            print("idx {} set_index1:{} set_index2:{} count:{}".format(idx,set_index1,set_index2,count))
-            EventMesh.publish("set_boot_off_index",[set_index1,set_index2])#设置关机时间
-
-#00获取所有闹钟信息:
-# {'minute': 13, 'repeart': 2, 'idx': 0, 'enabled': 1, 'days': [1, 2, 3, 4, 5, 6, 0], 'hour': 11},
-# {'minute': 0, 'repeart': 2, 'idx': 1, 'enabled': 0, 'days': [1, 2, 3, 4, 5, 6, 0], 'hour': 17}, 
-# {'minute': 0, 'repeart': 1, 'idx': 2, 'enabled': 0, 'days': [], 'hour': 18}, 
-# {'hour': 8, 'repeart': 10, 'idx': 2, 'enabled': 1, 'days': [0, 1, 2, 3, 4, 5, 6], 'minute': 28}, 
-# {'hour': 17, 'repeart': 10, 'idx': 3, 'enabled': 1, 'days': [0, 1, 2, 3, 4, 5, 6], 'minute': 11}]
-
-            print("i {}".format(i))
+        
+        # msg = ['1','06:90','23:59']
+        count = 1
+        new = 0
+        num = 0
+        print("msg:{}".format(msg))
+        # if msg[0] == 1:
+        # msg_new = msg[1]
+        for i in range(0,2):#开关机固定是 idx 0 1
             off_msg1 = msg[i+1]
             msg_tmp1 = off_msg1.split(':')
             start_hour = int(msg_tmp1[0])
             start_min = int(msg_tmp1[1])
             enable = int(msg[0])
-            print("add_here-----idx:{} msg:{}",idx,msg)
-            alarm_list.append({"idx": count-1, "hour": start_hour, "minute": start_min, "days": [0,1,2,3,4,5,6], "enabled": enable,"repeart":10})
-            with open("/ext/static/storage_file/alarm_msg.json", 'w+',encoding='utf-8') as fd:
-                ujson.dump(alarm_list,fd)
-            print("alarm_list----- :{}",alarm_list)
-        EventMesh.publish("set_check_alarm_list",alarm_list)
+            EventMesh.publish("set_boot_off_time",[msg[0],msg[1],msg[2]])
+            if alarm_list and new == 0 :
+                for x in range(0,5):
+                    # print("count :{} self.alarm_list:111111{} len(self.alarm_list):{}".format(count,alarm_list,len(alarm_list)))
+                    if new == 1 and count > len(alarm_list):
+                        break
+                    tmp = alarm_list[count-1]['idx']
+                    if tmp == 0 or tmp == 1:#覆盖旧的
+                        alarm_list[count-1] = {"idx": tmp, "hour": start_hour, "minute": start_min, "days":[0,1,2,3,4,5,6], "enabled": enable,"repeart":10}
+                        count+=1
+                        if count > len(alarm_list):
+                            new = 1
+                        # print("self.alarm_list:5555 {}".format(alarm_list))
+                        break
+                    else:#添加最新的
+                        count+=1
+                        if tmp == 2 or tmp == 3 or tmp == 4:#添加最新的
+                            msg_tmp = EventMesh.publish("get_boot_off_time")
+                            # print("msg_tmp all_data {}".format(msg_tmp))
+                            if msg_tmp != None: 
+                                if len(msg_tmp[0]) > 0:#只有关机时间长度为0时才添加新元素 不是就覆盖原来旧的数据
+                                    # print("self.alarm_list:444444 {}".format(alarm_list))
+                                    if count > len(alarm_list):
+                                        new = 1
+                                    continue
+                                else:
+                                    alarm_list.append({"idx": num, "hour": start_hour, "minute": start_min, "days":[0,1,2,3,4,5,6], "enabled": enable,"repeart":10}) 
+                                    # print("self.alarm_list:7777777 {}".format(alarm_list))
+                                    if count > len(alarm_list):
+                                        new = 1
+                                    break
+                    count+=1
+                    # print("self.alarm_list:111111 {}".format(alarm_list))
+                    
+            else:#添加最新的
+                alarm_list.append({"idx": num, "hour": start_hour, "minute": start_min, "days":[0,1,2,3,4,5,6], "enabled": enable,"repeart":10})
+                new = 1
+            num+=1
+            # print("add_here-----idx:{} msg:{} alarm_list:{}".format(idx,msg,alarm_list))
+            
+        # else:
+        #     msg_tmp = msg[1]
+        #     # print("alarm_list:{} alarm_new_old:{} msg_tmp:{}",alarm_new,alarm_new_old,msg_tmp)
+        #     num = 2
+        #     count = 1
+        #     j=0
+        #     new = 0
+        #     for j in range(0,3):
+        #         alarm_day = []
+        #         alarm_week = []
+        #         alarm_total_data = []
+        #         alarm_total_data = msg_tmp.split(',')[j]
+
+        #         b = alarm_total_data.find('-')
+        #         if b != -1:
+        #             alarm_data = alarm_total_data.split('-')#-作为分隔符
+        #             alarm_switch = int(alarm_data[1])#开关
+        #             alarm_day_num = int(alarm_data[2])#天
+        #             alarm_time = alarm_data[0]#时间
+        #             alarm_time_tmp = alarm_time.split(':')#冒号分隔时间 时 分
+        #             alarm_time_hour = int(alarm_time_tmp[0])
+        #             alarm_time_min = int(alarm_time_tmp[1])
+        #             if alarm_day_num == 3:
+        #                 alarm_week = alarm_data[3]#星期
+
+        #             if alarm_day_num == 2:#每一天
+        #                 alarm_day = [1,2,3,4,5,6,0]
+        #             elif alarm_day_num == 3:#自定义
+        #                 for i in range(0,7):
+        #                     if alarm_week[i] != '0':
+        #                         alarm_day.append(i)
+        #             if alarm_list and new == 0 :
+        #                 for x in range(0,5):
+                        
+        #                     print("count :{} self.alarm_new:111111{} len(self.alarm_new):{} ".format(count,alarm_list,len(alarm_list)))
+                            
+        #                     tmp = alarm_list[count-1]['idx']
+        #                     if tmp == 2 or tmp == 3 or tmp == 4 :#覆盖旧的
+        #                         alarm_list[count-1] = {"idx": tmp, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":1}
+        #                         count+=1
+        #                         if count > len(alarm_list):
+        #                             new = 1
+        #                         print("self.alarm_list:5555 {}".format(alarm_list))
+        #                         break
+        #                     else:#添加最新的
+        #                         count+=1
+        #                         if tmp == 0 or tmp == 1:#添加最新的
+        #                             msg_data = EventMesh.publish("get_boot_off_time")
+        #                             print("msg_data all_data {}".format(msg_data))
+        #                             if msg_data != None: 
+        #                                 if msg_data[1] > 0:#只有关机时间长度为0时才添加新元素 不是就覆盖原来旧的数据
+        #                                     print("self.alarm_list:444444 {}".format(alarm_list))
+        #                                     if count > len(alarm_list):
+        #                                         new = 1
+        #                                     continue
+        #                                 else:
+        #                                     alarm_list.append({"idx": num, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num}) 
+        #                                     print("self.alarm_list:7777777 {}".format(alarm_list))
+        #                                     if count > len(alarm_list):
+        #                                         new = 1
+        #                                     break
+        #                     count+=1
+        #                     print("self.alarm_list:111111 {}".format(alarm_list))
+        #             else:#添加最新的
+        #                 alarm_list.append({"idx": num, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num})
+        #                 new = 1
+        #         num+=1
+        
+        print("alarm_list----len- :{}".format(len(alarm_list)))
+        with open("/ext/static/storage_file/alarm_msg.json", 'w+',encoding='utf-8') as fd:
+            ujson.dump(alarm_list,fd)
+        EventMesh.publish("push_update_alarm_show")
+        
+       
+            
+        
+
 
     def remove_alarm(self, event, msg):
         global alarm_list
@@ -535,6 +606,7 @@ class ClockManager(Abstract):
         with open("/ext/static/storage_file/alarm_msg.json", 'w+',encoding='utf-8') as fd:
             ujson.dump(alarm_list,fd)
 
+
     def get_alarm_indx(self,event,msg):
         return self.idx
 
@@ -553,8 +625,8 @@ class ClockManager(Abstract):
                     ujson.dump(alarm_list,fd)
 
         #设置下一个闹钟
-        msg_tmp = EventMesh.publish("get_boot_off_time")
-
+        msg_data = EventMesh.publish("get_boot_off_time")
+        msg_tmp = msg_data[0]
         off_tmp2  = msg_tmp[2]
         msg_tmp2 = off_tmp2.split(':')
         end_min = int(msg_tmp2[0])*60+int(msg_tmp2[1])
@@ -574,7 +646,6 @@ class ClockManager(Abstract):
         if get_hr_state != None or get_spo2_state != None:
             if get_hr_state != 1 and get_spo2_state != 1:
                 EventMesh.publish("load_screen", {"screen": "popup_alarm"})
-
     # def _reset_rtc_alarm_time(self, args):
     #     print("---alarm_ring---")
 
index 5acc130..85edec4 100644 (file)
@@ -129,7 +129,13 @@ class WechatScreen(Screen):
         self.startY = 0
         self.startWidth = 0
         self.check_json = 0
-        self.wechat_list =lv.obj()
+        self.wechat_list = lv.obj(wechat_screen)
+        self.wechat_list.set_pos(0, 0)
+        self.wechat_list.set_size(240, 250)
+        self.wechat_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.wechat_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.wechat_list.add_flag(lv.obj.FLAG.HIDDEN)
+
         EventMesh.subscribe("wechat_updata_list_show", self.wechat_updata_list_show)
         EventMesh.subscribe("get_wechat_data", self.get_wechat_data)
         EventMesh.subscribe("set_wechat_data", self.set_wechat_data)
@@ -235,12 +241,12 @@ class WechatScreen(Screen):
                         
                         _btn_label1 = lv.label(wechat_btn)
                         if value.find("R:") != -1:
-                            _btn_label1.set_size(40, 40)
+                            _btn_label1.set_size(0, 0)
                             _btn_label1.set_pos(35, 8)
                             _btn_label1.set_text(str(self.msg_tmp)+'\"')
                             
                         elif value.find("S:") != -1:
-                            _btn_label1.set_size(40, 40)
+                            _btn_label1.set_size(0, 0)
                             _btn_label1.set_pos(self.startWidth-78, 8)
                             _btn_label1.set_text(str(self.msg_tmp)+'\"')
                         elif value.find("T:") != -1:
index 37631a0..379da32 100644 (file)
@@ -132,12 +132,12 @@ if __name__ == '__main__':
 
     from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
-            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol
+            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol
     import mgr as mgr
     print("init7:{}".format(utime.localtime()))
     
-    from mgr import ConfigStoreManager,getBootOffManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
-    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
+    from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
     print("init8:{}".format(utime.localtime()))
     
     
@@ -184,6 +184,8 @@ if __name__ == '__main__':
     app.append_manager(getplayAudiodStateManager())
     app.append_manager(getLowBatManager())
     app.append_manager(getBootOffManager())
+    app.append_manager(getOldTimeManager())
+    app.append_manager(getSosFlagManager())
 
     print("init21:{}".format(utime.localtime()))    
     
@@ -214,6 +216,7 @@ if __name__ == '__main__':
     pcr.add_support(bootoff_ProtoCol())
     pcr.add_support(WDSTART_ProtoCol())
     pcr.add_support(LOWBAT_ProtoCol())
+    pcr.add_support(sosHome_dial_ProtoCol())
 
     sm = SockManager()
     sm.add_support_resolver(pcr)
index 64ed841..7cf6f8b 100644 (file)
@@ -473,13 +473,18 @@ def voice_callback(args):
         if set_interrup_call == 1:
             EventMesh.publish("set_interrup_incall",0)
             return
-    
+
         EventMesh.publish("set_interrup_incall",0)
         EventMesh.publish("set_UI_high_priority",0)
         print('voicecall disconnect')
         EventMesh.publish("load_screen", {"screen": "main_menu"})  
+        hangup_mode = EventMesh.publish("get_hangup_mode")
+        if hangup_mode == 1:
+            EventMesh.publish("set_sos_flag",0)
+            EventMesh.publish("set_sos_num",0)
         sos_flag = EventMesh.publish("get_sos_flag")
-        if sos_flag == 0:
+
+        if sos_flag == 0 :
             EventMesh.publish("set_sos_num",0)
         else:
             num = EventMesh.publish("get_sos_num")
@@ -737,6 +742,30 @@ class DeviceInfoManager(Abstract):
         hour = date_tmp[3]
         min = date_tmp[4]
 
+        old_Timesec = EventMesh.publish("get_old_time_data")
+        if old_Timesec != None:
+            data = RTC().datetime()
+            hour = data[4]
+            min = data[5]
+            next_alarm_time = utime.localtime(old_Timesec)
+            # print("data[5]:{} {} next_alarm_time:{} old_Timesec:{}".format(data[1],data[2],next_alarm_time,old_Timesec))
+            month = next_alarm_time[1]
+            day = next_alarm_time[2]
+            if month != data[1] or day != data[2]:
+                step = EventMesh.publish("get_old_step_value")
+                if step > 0:
+                    self.gsensor.reset_step()
+                    EventMesh.publish("set_old_step_value",0)
+                
+                hr = EventMesh.publish("get_old_hr_data",)
+                if hr != 0:
+                    EventMesh.publish("set_old_hr_data", 0)
+                
+                spo2 = EventMesh.publish("get_old_spo2_data")
+                if spo2 != 0:
+                    EventMesh.publish("set_old_spo2_data", 0)
+            EventMesh.publish("set_old_time_data",time_tmp)
+
         if hour == 0:#清步数
             if min <= 1:
                 if self.clear_step == 0:
@@ -744,6 +773,13 @@ class DeviceInfoManager(Abstract):
                     if step > 0:
                         EventMesh.publish("set_old_step_value",0)
                         self.gsensor.reset_step()
+                    hr = EventMesh.publish("get_old_hr_data")
+                    if hr != 0:
+                        EventMesh.publish("set_old_hr_data", 0)
+                    
+                    spo2 = EventMesh.publish("get_old_spo2_data")
+                    if spo2 != 0:
+                        EventMesh.publish("set_old_spo2_data", 0)
                     self.clear_step = 1
             else:
                 if self.clear_step == 1:
@@ -1985,8 +2021,38 @@ class gethistoryDataManager(Abstract):
         step = EventMesh.publish(constants.EVENT.GET_STEP)
         self.old_step = self.oldstep + step[0]
         return self.old_step
-    
-    
+#获取旧的时间戳
+class getOldTimeManager(Abstract):
+    # 获取天气数据
+    def __init__(self):
+        self.time_sec = 0
+        self.read_data = {}
+        check_json= ql_fs.path_exists("/ext/static/storage_file/config.json")
+        if check_json == True :
+            with open("/ext/static/storage_file/config.json","r") as fd:#音频文件编号
+                self.read_data = ujson.load(fd)
+                if self.read_data != {}:
+                    b = str("old_time") in self.read_data.keys()
+                    if b == True:
+                        self.time_sec = self.read_data["old_time"]  
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("get_old_time_data", self.get_old_time_data)
+        EventMesh.subscribe("set_old_time_data", self.set_old_time_data)
+
+    def get_old_time_data(self, event, msg):
+        return self.time_sec
+
+    def set_old_time_data(self, event, msg):
+        self.time_sec = msg
+        self.read_data = EventMesh.publish("get_storage_data")
+        self.read_data["old_time"] = msg
+        EventMesh.publish("set_storage_data", self.read_data)
+        with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
+            ujson.dump(self.read_data,fd)
+
+
+        
     
 
 class getWeatherDataManager(Abstract):
@@ -2258,6 +2324,7 @@ class getSosFlagManager(Abstract):#设置sos
     def __init__(self):
         self.sos_flag = 0
         self.sos_num = 0
+        self.hangup_mode = 0
         self.call_timer = osTimer()
         self.sos_numer1 = []
         self.callnumer =""
@@ -2289,10 +2356,18 @@ class getSosFlagManager(Abstract):#设置sos
         EventMesh.subscribe("get_sos_num", self.get_sos_num)
 
         EventMesh.subscribe("set_dial_sos_number", self.set_dial_sos_number)
+        EventMesh.subscribe("get_dial_sos_number", self.get_dial_sos_number)#设置家庭号码三个
 
         EventMesh.subscribe("set_callnumer_cb", self.set_callnumer_cb)#延时回调
 
-        EventMesh.subscribe("get_dial_sos_number", self.get_dial_sos_number)#设置家庭号码三个
+        EventMesh.subscribe("set_hangup_mode", self.set_hangup_mode)
+        EventMesh.subscribe("get_hangup_mode", self.get_hangup_mode)#获取挂断方式 是对方挂断 还是手表按键主动挂断
+
+    def get_hangup_mode(self, event, msg): # 1是设备端手表主动挂断 0是手机端
+        return self.hangup_mode
+    
+    def set_hangup_mode(self, event, msg): 
+        self.hangup_mode = msg
 
     def set_sos_flag(self, event, msg): 
         self.sos_flag = msg
@@ -2307,7 +2382,6 @@ class getSosFlagManager(Abstract):#设置sos
                     EventMesh.publish("save_phonenum",number[0])
                     voiceCall.callStart(str(number[0]))
 
-
     def set_callnumer_cb(self, event, msg):
         self.callnumer = msg
         self.call_timer.start(5000, 0, self.call_timer_cb)#延迟1S 继续拨打
@@ -2329,7 +2403,7 @@ class getSosFlagManager(Abstract):#设置sos
     
     def set_dial_sos_number(self, event, msg): 
         self.sos_numer1 = msg
-        # print("self.sos_numer1:{}".format(self.sos_numer1))
+        
 
     def get_dial_sos_number(self, event, msg): 
         return self.sos_numer1
@@ -2379,8 +2453,7 @@ class getBootOffManager(Abstract):#开关机时间
     def __init__(self):
         self.read_data = {}
         self.off_msg = {}
-        self.off_index1 = 0
-        self.off_index2 = 0
+        self.off_flag = 0
         self.rtc =  RTC()
         check = ql_fs.path_exists("/ext/static/storage_file/config.json")
         
@@ -2398,12 +2471,6 @@ class getBootOffManager(Abstract):#开关机时间
                     b3 = str("off_end") in self.read_data.keys()
                     if b3 == True:
                         self.off_end = self.read_data["off_end"]
-                    b4 = str("off_index1") in self.read_data.keys()
-                    if b4 == True:
-                        self.off_index1 = self.read_data["off_index1"]  
-                    b5 = str("off_index2") in self.read_data.keys()
-                    if b5 == True:
-                        self.off_index2 = self.read_data["off_index2"]  
                         
         # print("self.sos_numer1:{} self.read_data:{}".format(self.sos_numer1,self.read_data))
 
@@ -2411,23 +2478,30 @@ class getBootOffManager(Abstract):#开关机时间
         EventMesh.subscribe("set_boot_off_time", self.set_boot_off_time)#设置关机时间
         EventMesh.subscribe("get_boot_off_time", self.get_boot_off_time)
 
-        EventMesh.subscribe("set_boot_off_index", self.set_boot_off_index)#设置关机时间
-        EventMesh.subscribe("get_boot_off_index", self.get_boot_off_index)
-
-    def set_boot_off_index(self, event, msg): 
-        self.off_index1 = msg[0]
-        self.off_index2 = msg[1]
-
-        print("self.off_index1:{} self.off_index2:{}".format(self.off_index1,self.off_index2))
-
-
-    def get_boot_off_index(self, event, msg):
-        return [self.off_index1,self.off_index2]
-
     def set_boot_off_time(self, event, msg): 
+        read_data = EventMesh.publish("get_storage_data")
+        read_data["off_on"] = msg[0]
+        read_data["off_start"] = msg[1]
+        read_data["off_end"] = msg[2]
+        with open("/ext/static/storage_file/config.json", 'w+',encoding='utf-8') as fd:
+            ujson.dump(read_data,fd)
         self.off_msg = msg
+        # print("read_data:{} self.off_msg:{}".format(read_data,self.off_msg))
 
     def get_boot_off_time(self, event, msg):
-        return self.off_msg
+        flag = 0
+        msg_tmp = EventMesh.publish("get_check_alarm_list")
+        # print("len(msg_tmp):{} len(self.off_msg):{}".format(msg_tmp,len(self.off_msg)))
+        if len(self.off_msg) > 0:
+            if msg_tmp > len(self.off_msg)-1:#判断闹钟是否有数据 总的数据大于开关机的时间 说明有闹钟列表
+                flag = 1
+            else:
+                flag = 0
+        else:
+            if msg_tmp > 0:
+                flag = 1
+            
+        return [self.off_msg,flag]
+
 
     
\ No newline at end of file
index 0b30f58..a59d075 100644 (file)
@@ -571,25 +571,28 @@ class REMIND_ProtoCol(ProtoCol):
         """
         # b'SZKW*860132060004322*0035*REMIND,23-04-06,14:41:06,b6e0d4c6,1,27,-1,40,6DF157335E02'
         # print("REMIND_ProtoCol RECV msg:%s"%(msg))
-        self.alarm_list = []
+        alarm_new = []
 
         msg = msg[1:-1]
         msg_tmp = msg.decode('ascii')
         msg_tmp = msg_tmp.split('REMIND,')
         msg_tmp = msg_tmp[1]
-        alarm_data  = EventMesh.publish("get_check_alarm_list")
-        num = len(alarm_data)
-        print("num:%d"%(num))
+
+        alarm_new  = EventMesh.publish("read_alarminjson")
+        # print("alarm_list:{} msg_tmp:{}",alarm_new,msg_tmp)
+        num = 2
+        count = 1
         j=0
+        new = 0
         for j in range(0,3):
-            self.alarm_day = []
-            self.alarm_week = []
-            self.alarm_total_data = []
-            self.alarm_total_data = msg_tmp.split(',')[j]
+            alarm_day = []
+            alarm_week = []
+            alarm_total_data = []
+            alarm_total_data = msg_tmp.split(',')[j]
 
-            b = self.alarm_total_data.find('-')
+            b = alarm_total_data.find('-')
             if b != -1:
-                alarm_data = self.alarm_total_data.split('-')#-作为分隔符
+                alarm_data = alarm_total_data.split('-')#-作为分隔符
                 alarm_switch = int(alarm_data[1])#开关
                 alarm_day_num = int(alarm_data[2])#天
                 alarm_time = alarm_data[0]#时间
@@ -597,20 +600,57 @@ class REMIND_ProtoCol(ProtoCol):
                 alarm_time_hour = int(alarm_time_tmp[0])
                 alarm_time_min = int(alarm_time_tmp[1])
                 if alarm_day_num == 3:
-                    self.alarm_week = alarm_data[3]#星期
+                    alarm_week = alarm_data[3]#星期
 
                 if alarm_day_num == 2:#每一天
-                    self.alarm_day = [1,2,3,4,5,6,0]
+                    alarm_day = [1,2,3,4,5,6,0]
                 elif alarm_day_num == 3:#自定义
                     for i in range(0,7):
-                        if self.alarm_week[i] != '0':
-                            self.alarm_day.append(i)
-                self.alarm_list.append({"idx": num, "hour": alarm_time_hour, "minute": alarm_time_min, "days": self.alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num})
-                with open("/ext/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd:
-                    ujson.dump(self.alarm_list,fd) 
-                num+=1
-        EventMesh.publish("set_check_alarm_list", self.alarm_list)
+                        if alarm_week[i] != '0':
+                           alarm_day.append(i)
+                if alarm_new and new == 0 :
+                    for x in range(0,5):
+                       
+                        # print("count :{} self.alarm_new:111111{} len(self.alarm_new):{} ".format(count,alarm_new,len(alarm_new)))
+                        if new == 1 and count > len(alarm_new):
+                            break
+                        tmp = alarm_new[count-1]['idx']
+                        if tmp == 2 or tmp == 3 or tmp == 4 :#覆盖旧的
+                            alarm_new[count-1] = {"idx": tmp, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num}
+                            count+=1
+                            if count > len(alarm_new):
+                                new = 1
+                            # print("self.alarm_list:5555 {}".format(alarm_new))
+                            break
+                        else:#添加最新的
+                            count+=1
+                            if tmp == 0 or tmp == 1:#添加最新的
+                                msg_data = EventMesh.publish("get_boot_off_time")
+                                # print("msg_data all_data {}".format(msg_data))
+                                if msg_data != None: 
+                                    if msg_data[1] != 0:#只有关机时间长度为0时才添加新元素 不是就覆盖原来旧的数据
+                                        # print("alarm_new:444444 {}".format(alarm_new))
+                                        if count > len(alarm_new):
+                                            new = 1
+                                        continue
+                                    else:
+                                        alarm_new.append({"idx": num, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num}) 
+                                        # print("self.alarm_list:7777777 {}".format(alarm_new))
+                                        if count > len(alarm_new):
+                                            new = 1
+                                        break
+                        count+=1
+                    # print("self.alarm_list:111111 {}".format(alarm_new))
+                else:#添加最新的
+                    alarm_new.append({"idx": num, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num})
+                    new = 1
+            num+=1
+        # print("self.alarm_list: {}".format(alarm_new))
+        with open("/ext/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd:
+            ujson.dump(alarm_new,fd)
         EventMesh.publish("push_update_alarm_show")
+        
+        # EventMesh.publish("add_alarm",[0,msg_tmp])
         EventMesh.publish(constants.PROTOCOL.REMIND_SEND)
 
 class HRSTART_ProtoCol(ProtoCol):
@@ -952,7 +992,6 @@ class bootoff_ProtoCol(ProtoCol):
         print("BOOTOFF:data:%s"%(data))
         # 通过socket发送到服务器端
         EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
-
     def recv(self, event, msg):
         """
         @param event:
@@ -967,9 +1006,7 @@ class bootoff_ProtoCol(ProtoCol):
         on_end = msg_tmp[3]
         print("BOOTOFF:send data:{} {} {}".format(on_bt,on_start,on_end))
         #b'[SZKW*860132060006970*0015*BOOTOFF,1,06:00,23:59]'
-        EventMesh.publish("set_boot_off_time",[on_bt,on_start,on_end])
         EventMesh.publish("add_alarm", [on_bt,on_start,on_end])
-        EventMesh.publish("set_rtc_alarm")
         EventMesh.publish(constants.PROTOCOL.BOOTOFF_SEND)  
 
 
@@ -991,6 +1028,7 @@ class sosHome_dial_ProtoCol(ProtoCol):
         @param event:
         @param msg: 接收到的下行数据
         """
+
         # b'[SZKW*867387060319166*000A*SOS_SEND]'
         read_data = {}
         read_data = EventMesh.publish("get_storage_data")
@@ -1006,7 +1044,7 @@ class sosHome_dial_ProtoCol(ProtoCol):
             if len(msg_tmp[i+1]) != 0:
                 read_data["SOS_NUMBER{}".format(i+1)] =  msg_tmp[i+1]
                 # print("read_data:{} msg_tmp:{}".format(read_data,msg_tmp[i+1]))
-                
+       
         if (len(msg_tmp)-1) == 3:
             EventMesh.publish("set_dial_sos_number",[msg_tmp[1],msg_tmp[2],msg_tmp[3]])
         elif (len(msg_tmp)-1) == 2:
@@ -1020,7 +1058,6 @@ class sosHome_dial_ProtoCol(ProtoCol):
             # print("read_data:{}".format(read_data))
             with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
                 ujson.dump(read_data,fd)
-
         EventMesh.publish(constants.PROTOCOL.SOS_SEND)  
   
 # 低电提醒
index 4659323..d6417aa 100644 (file)
@@ -922,6 +922,7 @@ class DialingScreen(Screen):
         
     def hangup(self,e):
         EventMesh.publish("set_UI_high_priority", 0)
+        EventMesh.publish("set_hangup_mode", 1)
         voiceCall.callEnd()
 
     def done_return(self):
@@ -3711,7 +3712,7 @@ class UI(object):
         for scr in self.screen_list:
             if scr.NAME == msg["screen"]:
                 # 每次屏幕切换开始息屏倒计时
-                self.__lcd_on()
+                
                 if scr.NAME == 'main_menu':
                     self.main_flag = 1
                 else :
@@ -3740,6 +3741,7 @@ class UI(object):
                 self.lv.scr_load(self.screen.get_meta())
                 
                 self.screen.post_processor_after_initialization()
+                self.__lcd_on()
                 mem = gc.mem_free()
                 print('2剩余内存RAM:{} KB'.format(mem / 1024))
 
index 7a25d80..a5788af 100644 (file)
@@ -990,6 +990,7 @@ poweroff_confirm_label.set_text("Goodbye")
 poweroff_confirm_label.align(lv.ALIGN.CENTER, 0, 0)
 poweroff_confirm_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
 
+import utime
 class PoweroffConfirmScreen(Screen):
     NAME = "poweroff_comfirm"
 
@@ -1003,12 +1004,15 @@ class PoweroffConfirmScreen(Screen):
         self.read_data = EventMesh.publish("get_storage_data")
         if step != 0:
             self.read_data["old_step"] = step
+        date_tmp = utime.localtime()
+        self.read_data["old_timesecond"] = date_tmp#关机保存一个是时间
         #print("self.read_data:{}".format(self.read_data))
         with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
             ujson.dump(self.read_data,fd)
         self.timer.start(3*1000,0,self.power_off)
 
     def power_off(self,*args):
+
         Power.powerDown()
     
     def done_return(self):
index b17b3e0..a00350a 100644 (file)
Binary files a/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip and b/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip differ
index 37631a0..379da32 100644 (file)
@@ -132,12 +132,12 @@ if __name__ == '__main__':
 
     from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
-            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol
+            ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol
     import mgr as mgr
     print("init7:{}".format(utime.localtime()))
     
-    from mgr import ConfigStoreManager,getBootOffManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
-    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
+    from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager, LocationManager, SockManager,getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
     print("init8:{}".format(utime.localtime()))
     
     
@@ -184,6 +184,8 @@ if __name__ == '__main__':
     app.append_manager(getplayAudiodStateManager())
     app.append_manager(getLowBatManager())
     app.append_manager(getBootOffManager())
+    app.append_manager(getOldTimeManager())
+    app.append_manager(getSosFlagManager())
 
     print("init21:{}".format(utime.localtime()))    
     
@@ -214,6 +216,7 @@ if __name__ == '__main__':
     pcr.add_support(bootoff_ProtoCol())
     pcr.add_support(WDSTART_ProtoCol())
     pcr.add_support(LOWBAT_ProtoCol())
+    pcr.add_support(sosHome_dial_ProtoCol())
 
     sm = SockManager()
     sm.add_support_resolver(pcr)