From: d15521469561 Date: Fri, 19 May 2023 10:16:05 +0000 (+0800) Subject: 修改闹钟重复增加删除 X-Git-Url: http://git.snicker.com.cn/img/static/gitweb.css?a=commitdiff_plain;h=d5bcd0e5f02f0bb7f52c232eb2d27f11ab926c66;p=mirrors%2FASR1603_G5.git 修改闹钟重复增加删除 补充sos函数 修复bug --- diff --git a/2.sdk/images/customer_fs.bin b/2.sdk/images/customer_fs.bin index ed7d3a89..27befdc4 100644 Binary files a/2.sdk/images/customer_fs.bin and b/2.sdk/images/customer_fs.bin differ diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py index dfe1c8d1..4e67da39 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py @@ -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---") diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py index 5acc130c..85edec4f 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py @@ -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: diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main.py index 37631a00..379da324 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/main.py @@ -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) diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py index 64ed841e..7cf6f8be 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py @@ -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 diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/protocol.py index 0b30f58e..a59d0755 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/protocol.py @@ -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) # 低电提醒 diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py index 4659323c..d6417aa3 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py @@ -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)) diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py index 7a25d80d..a5788afc 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -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): diff --git a/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip b/2.sdk/project/K5/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_ALIPAY/images/firmware_base_release_pack.zip index b17b3e00..a00350a9 100644 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 diff --git a/2.sdk/project/K5/usr/main.py b/2.sdk/project/K5/usr/main.py index 37631a00..379da324 100644 --- a/2.sdk/project/K5/usr/main.py +++ b/2.sdk/project/K5/usr/main.py @@ -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)