From: dxy15521469561 <1731678236@qq.com> Date: Tue, 19 Sep 2023 07:13:59 +0000 (+0800) Subject: 对接云米服务 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=966ca5dde3c3a1b89a81b6dba1271db8a095d26b;p=mirrors%2FASR1603_G5.git 对接云米服务 --- diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py index cc684061..d7df6833 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py @@ -78,7 +78,7 @@ def set_log(log_adapter): def add_filter(flt): event_store.add_filter(flt) -Txt_Log = 1 +Txt_Log = 0 def txt_log(data): if Txt_Log != 0 : print(data) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py index e1c8b6fd..5e9ff75b 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py @@ -402,9 +402,9 @@ label_ok.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) #闹钟信息 alarm_list = [{'hour': 16, 'repeart': 10, 'idx': 0, 'enabled': 0, 'days': [], 'minute': 39}, {'hour': 16, 'repeart': 10, 'idx': 1, 'enabled': 0, 'days': [], 'minute': 39}, - {'hour': 15, 'repeart': 1, 'idx': 2, 'enabled': 0, 'days': [], 'minute': 13}, - {'hour': 16, 'repeart': 1, 'idx': 3, 'enabled': 0, 'days': [], 'minute': 39}, - {'hour': 15, 'repeart': 1, 'idx': 4, 'enabled': 0, 'days': [], 'minute': 13}] + {'hour': 15, 'repeart': 15, 'idx': 2, 'enabled': 0, 'days': [], 'minute': 13}, + {'hour': 16, 'repeart': 15, 'idx': 3, 'enabled': 0, 'days': [], 'minute': 39}, + {'hour': 15, 'repeart': 15, 'idx': 4, 'enabled': 0, 'days': [], 'minute': 13}] #用于显示闹钟列表不包含开关机信息 class ClockManager(Abstract): @@ -419,6 +419,7 @@ class ClockManager(Abstract): if IFEXIST == True: with open("/usr/static/storage_file/alarm_msg.json","r",encoding='utf-8') as fd: self.check_alarm_list = ujson.load(fd) + print("self.check_alarm_list",self.check_alarm_list) def post_processor_after_instantiation(self): EventMesh.subscribe("push_clock_info", self.set) @@ -914,9 +915,9 @@ class ClkListScreen(Screen): # no_add_alarm_img.add_flag(lv.obj.FLAG.HIDDEN) no_add_alarm.add_flag(lv.obj.FLAG.HIDDEN) self.alarm_show_list.delete()#先删除一次控件 - self.alarm_show_list = lv.obj(clk_list_screen1_1) - self.alarm_show_list.set_pos(0, 0) - self.alarm_show_list.set_size(128, 128) + self.alarm_show_list = lv.obj(clk_list_screen) + self.alarm_show_list.set_pos(0, 35) + self.alarm_show_list.set_size(128, 128-35) self.alarm_show_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) self.alarm_show_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) #print("菜单的孩子个数:",clk_list_screen1.get_child_cnt()) @@ -927,7 +928,7 @@ class ClkListScreen(Screen): if count >= 3: break repeart = each["repeart"] - if repeart == 10: + if repeart >= 10: continue _btn = lv.btn(self.alarm_show_list) _btn.set_size(112,45) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py index 2fdc3fbd..6fcbf689 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py @@ -87,6 +87,9 @@ class PROTOCOL: KEYBRD_SEND ="KEYBRD_SEND" KEYBRD_RECV = "KEYBRD_RECV" + SILENCETIMEFS_SEND ="SILENCETIMEFS_SEND" + SILENCETIMEFS_RECV = "SILENCETIMEFS_RECV" + class EVENT: CHANNEL_SOCKET_SEND = "CHANNEL_SOCKET_SEND" diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py index 3134dff9..0a2f8631 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py @@ -157,7 +157,7 @@ def main_init(): # ui.add_screen(_ui.Setting3Screen()) print("init6:{}".format(utime.localtime())) - from protocol import WLKEY_ProtoCol,SILENCETIME2_ProtoCol,KEYBRD_ProtoCol,LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\ + from protocol import SILENCETIMEFS_ProtoCol,WLKEY_ProtoCol,SILENCETIME2_ProtoCol,KEYBRD_ProtoCol,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,Time_ProtoCol,\ ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager @@ -250,6 +250,7 @@ def main_init(): pcr.add_support(KEYBRD_ProtoCol()) pcr.add_support(SILENCETIME2_ProtoCol()) pcr.add_support(WLKEY_ProtoCol()) + pcr.add_support(SILENCETIMEFS_ProtoCol()) EventMesh.publish("load_screen", {"screen": "poweron"}) sm = SockManager() sm.add_support_resolver(pcr) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py index dd1bd82f..cbdeecfc 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py @@ -517,6 +517,23 @@ class sosInfoCallManager(Abstract): num_len = len(number)+2 # print("number:{} number_len :{} num:{} num_len:{}".format(number,len(number),num,num_len)) if num > num_len : + if len(number) == 1: + number1 = str(number[0]) + sms.sendPduMsg(number1, '我需要你的帮助', 'UCS2') + elif len(number) == 2: + number1 = str(number[0]) + sms.sendPduMsg(number1, '我需要你的帮助', 'UCS2') + + number2 = str(number[1]) + sms.sendPduMsg(number2, '我需要你的帮助', 'UCS2') + elif len(number) == 3: + number1 = str(number[0]) + sms.sendPduMsg(number1, '我需要你的帮助', 'UCS2') + number2 = str(number[1]) + sms.sendPduMsg(number2, '我需要你的帮助', 'UCS2') + number3 = str(number[2]) + sms.sendPduMsg(number3, '我需要你的帮助', 'UCS2') + EventMesh.publish("set_sos_flag",0) EventMesh.publish("set_sos_num",0) else: @@ -1451,7 +1468,7 @@ class DeviceInfoManager(Abstract): self.old_time = 0 self.set_hsenor_crt = 0 - + EventMesh.publish("get_class_in_time_page") #quecgnss.gnssEnable(0) @@ -2875,10 +2892,11 @@ class getSosFlagManager(Abstract):#设置sos self.call_timer.start(10000, 0, self.call_timer_cb)#延迟10S 继续拨打 def call_timer_cb(self, *args, **kwargs): - # print("call_timer_cb:{}".format(self.callnumer)) - EventMesh.publish("save_phonename",str(self.callnumer)) - EventMesh.publish("save_phonenum",str(self.callnumer)) - EventMesh.publish("load_screen", {"screen": "dialing_noplay_popup"}) + if self.sos_flag == 1: + # print("call_timer_cb:{}".format(self.callnumer)) + EventMesh.publish("save_phonename",str(self.callnumer)) + EventMesh.publish("save_phonenum",str(self.callnumer)) + EventMesh.publish("load_screen", {"screen": "dialing_noplay_popup"}) def get_sos_flag(self, event, msg): return self.sos_flag diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py index c56f6362..ac2625a5 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py @@ -23,7 +23,7 @@ import usys def server_init(server_type = None): - #服务器选择1,防走丢,2大锤,3三基同创,4童信 + #服务器选择1,防走丢,2大锤,3三基同创,4童信 5云米 if server_type == None: server_type = 1 #print("server_init:server_type:{}".format(server_type)) @@ -56,11 +56,7 @@ def server_init(server_type = None): d_server_port = 8505 d_md5_key = "" d_PID = "3G" - elif server_type == 6: - d_server_addr = "120.26.104.21" - d_server_port = 9968 - d_md5_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP" - d_PID = "SZKW" + return [d_server_addr,d_server_port,d_md5_key,d_PID] from queue import Queue def unicode_to_utf8(src): @@ -162,7 +158,7 @@ class SockManager(Abstract): def connect(self): print("connect1{}:{}".format(self.server_addr, self.server_port)) - if EventMesh.publish("get_sim_Status") != 1: #没sim + if EventMesh.publish("network_state") == 0: #没注网 return try: if(self.sock != None) : @@ -245,7 +241,7 @@ class SockManager(Abstract): def send(self, topic, msg): # print("TCP:send data:{}".format(msg)) - if EventMesh.publish("get_sim_Status") != 1: #没sim,则不发送 + if EventMesh.publish("network_state") == 0: #没注网,则不发送 EventMesh.publish(constants.EVENT.SET_CONNECT, 0)#标记断网 print("dataCall not connect") return @@ -271,7 +267,7 @@ class SockManager(Abstract): data = data + r print("TCP recv: data:len:{}".format(len(data))) - print("TCP recv: data:{}".format(data)) + # print("TCP recv: data:{}".format(data)) if data[-1] != 0x5d and len(data)<20*1024: #']': continue self.connect_tmp = 1 #有数据,就认为是连接状态 @@ -287,8 +283,8 @@ class SockManager(Abstract): data = b'' except Exception as e: - #print("TCP:ERROR:recv:") - #usys.print_exception(e) + print("TCP:ERROR:recv:") + usys.print_exception(e) self.run_flag = False self.reconnect() @@ -552,7 +548,7 @@ class UD_ProtoCol(ProtoCol): MD5_SIGN = self.pack_MD5_head(MD5_head_data) data = "[%s%s]"%(str(MD5_SIGN),send_data) - #EventMesh.txt_log("{}".format(data)) + print("UD:data:{}".format(data)) # wt_data = EventMesh.publish("get_weather_data") # # #如果没有天气数据,则获取天气数据 # if wt_data != None or wt_data[0] == None : @@ -685,7 +681,7 @@ class PHL_ProtoCol(ProtoCol): phonebook_oldtmp = phonebook_tmp # print("phonebook_oldtmp!!!:{}".format(str(phonebook_oldtmp))) # print("phonebook!!!:{}".format(str(phonebook))) - with open("/ext/static/storage_file/phonebook.json","w",encoding="utf-8") as fd: + with open("/usr/static/storage_file/phonebook.json","w",encoding="utf-8") as fd: ujson.dump(phonebook,fd) print("创建电话簿") @@ -779,41 +775,69 @@ class REMIND_ProtoCol(ProtoCol): msg_tmp = msg_tmp[1] alarm_new = EventMesh.publish("read_alarminjson") - # print("alarm_list:{} msg_tmp:{}",alarm_new,msg_tmp) + print("alarm_list:{} msg_tmp:{}",alarm_new,msg_tmp) - k=0 + + k=1 + count = 0 + + for i in range(len(str(msg_tmp))):#寻找有多少个,号 + if msg_tmp[i] == ',': + k+=1 if len(alarm_new) < 5 : alarm_new = [] for i in range(5): - alarm_new.append({'hour': 16, 'repeart': 1, 'idx': i, 'enabled': 0, 'days': [], 'minute': 39}) - for j in range(2,5):#0 1是开关机,234是闹钟 + alarm_new.append({'hour': 8, 'repeart': 10, 'idx': i, 'enabled': 0, 'days': [], 'minute': 39}) + for j in range(2,2+k):#0 1是开关机,234是闹钟 alarm_day = [] alarm_week = [] alarm_total_data = [] - alarm_total_data = msg_tmp.split(',')[k] - k+=1 - 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) - alarm_new[j] = {"idx": j, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num} - - # print("self.alarm_list: {}".format(alarm_new)) - with open("/ext/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd: + if k == 1: + if len(msg_tmp) != 0: + alarm_data = msg_tmp.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) + alarm_new[j] = {"idx": j, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num} + else: + if len(msg_tmp) != 0: + alarm_total_data = msg_tmp.split(',')[count] + count+=1 + 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) + alarm_new[j] = {"idx": j, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num} + + print("k",k,alarm_new) + + with open("/usr/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd: ujson.dump(alarm_new,fd) EventMesh.publish("push_update_alarm_show") @@ -1131,15 +1155,28 @@ class MONITOR_ProtoCol(ProtoCol): @param msg: 接收到的下行数据 """ # b'[SZKW*867387060319166*000A*MONITOR]' - read_data = EventMesh.publish("get_storage_config","center_dial") - - if read_data != None: - contact = read_data - if len(contact) > 0: - print("MONITOR RECV msg:{} {}".format(contact,type(contact))) - EventMesh.publish("save_phonename", contact) - EventMesh.publish("save_phonenum", contact) - voiceCall.callStart(contact) + msg = msg[1:-1] + msg_tmp = msg.decode('ascii') + msg_tmp = msg_tmp.split('MONITOR') + msg_tmp = msg_tmp[1] + print("MONITOR_ProtoCol RECV msg:{} msg_:{}".format(msg,len(msg_tmp))) + if len(msg_tmp) != 0: + data = msg_tmp.split(",") + contact = data[1] + EventMesh.publish("save_phonename", contact) + EventMesh.publish("save_phonenum", contact) + EventMesh.publish("load_screen", {"screen": "dialing_noplay_popup"}) + # voiceCall.callStart(contact) + else: + read_data = EventMesh.publish("get_storage_config","center_dial") + + if read_data != None: + contact = read_data + if len(contact) > 0: + print("MONITOR RECV msg:{} {}".format(contact,type(contact))) + EventMesh.publish("save_phonename", contact) + EventMesh.publish("save_phonenum", contact) + EventMesh.publish("load_screen", {"screen": "dialing_noplay_popup"}) EventMesh.publish(constants.PROTOCOL.MONITOR_SEND) #定时开关机 @@ -1244,7 +1281,7 @@ class LOWBAT_ProtoCol(ProtoCol): EventMesh.publish("set_low_bat_btn",on_bt) EventMesh.publish(constants.PROTOCOL.LOWBAT_SEND) -# 低电提醒 +# #[XT*334588000000156*0008*LOWBAT,1] class Time_ProtoCol(ProtoCol): """设置系统时间""" @@ -1304,6 +1341,101 @@ class WLKEY_ProtoCol(ProtoCol): # print("WLKEY!!!!!!!!!!!!!",msg) EventMesh.publish(constants.PROTOCOL.WLKEY_SEND) +# [SG*5678901234*0037* SILENCETIMEFS,21:10-7:30@0111110,21:10-7:30@0111110,21:10-7:30@0111110,21:10-7:30@0111110] + +#免打扰 +class SILENCETIMEFS_ProtoCol(ProtoCol):#云米 + """上课禁用""" + TYPE = "SILENCETIMEFS" + def send(self, event, msg): + # [XT*334588000000156*0006*SILENCETIME2] a b c d + send_data = self.PID+"*%s*000D*SILENCETIMEFS"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + # print("KEYBRD:data:%s"%(data)) + # print("SILENCETIME2!!!!!!!!!!!!!",msg) + # 通过socket发送到服务器端 + EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data) + + def recv(self, event, msg): + """ + @param event: + @param msg: 接收到的下行数据 + """ + class_in_buf = {"1": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []},\ + "0": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ + "3": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ + "2": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}} + + # class_in_buf.append({'start_hour': "16:54", 'week': [], 'idx': 0, 'enabled': 0, 'end_hour': "18:39"}) + msg = msg[1:-1] + msg_tmp = msg.decode('ascii') + msg_tmp_d = str(msg_tmp.split('SILENCETIMEFS,')[1]) + + count = 1 + k = 0 + + for i in range(len(str(msg_tmp_d))): + if msg_tmp_d[i] == ',': + count+=1 + + for x in range(count):#21:10-7:30@0111110,21:10-7:30@0111110,21:10-7:30@0111110,21:10-7:30@0111110 + week = [] + if x >= 4: + break + if count > 1: + + msg_data = msg_tmp_d.split(',')[x] + print("SILENCETIMEFS count",msg_data) + b = msg_data.find('-') + if b != -1: + data = msg_data.split('-')#-作为分隔符 + time = data[1].split('@')#@作为分隔符 + print("data",data,time,data[0],time[0]) + start_time = data[0]#开始时间 + end_time = time[0]#结束时间 + enable = 1 + week_day = time[1] + for i in range(0,7): + if week_day[i] != '0': + week.append(i) + tmp={} + tmp["start_time"] = start_time + tmp["end_time"] = end_time + tmp["week"] = week + tmp["enable"] = enable + class_in_buf["{}".format(x)] = tmp + else: + if len(msg_tmp_d) != 0: + b = msg_tmp_d.find('-') + if b != -1: + + data = msg_tmp_d.split('-')#-作为分隔符 + time = data[1].split('@')#@作为分隔符 + print("data",data,time,data[0],time[0]) + start_time = data[0]#开始时间 + end_time = time[0]#结束时间 + enable = 1 + week_day = time[1] + for i in range(0,7): + if week_day[i] != '0': + week.append(i) + tmp={} + tmp["start_time"] = start_time + tmp["end_time"] = end_time + tmp["week"] = week + tmp["enable"] = enable + class_in_buf["{}".format(x)] = tmp + + with open("/usr/static/storage_file/class_msg.json", 'w+',encoding='utf-8') as fd: + ujson.dump(class_in_buf,fd) + + + EventMesh.publish("set_class_time", class_in_buf) + EventMesh.publish(constants.PROTOCOL.SILENCETIMEFS_SEND) + EventMesh.publish("get_class_in_time_page") + + #免打扰 class SILENCETIME2_ProtoCol(ProtoCol): """免打扰""" @@ -1323,9 +1455,70 @@ class SILENCETIME2_ProtoCol(ProtoCol): @param event: @param msg: 接收到的下行数据 """ - # b'[SZKW*867387060319166*000A*KEYBRD]' - # print("SILENCETIME2!!!!!!!!!!!!!",msg) + class_in_buf = {"1": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []},\ + "0": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ + "3": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ + "2": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}} + + # class_in_buf.append({'start_hour': "16:54", 'week': [], 'idx': 0, 'enabled': 0, 'end_hour': "18:39"}) + msg = msg[1:-1] + msg_tmp = msg.decode('ascii') + msg_tmp_d = str(msg_tmp.split('SILENCETIME2,')[1]) + + count = 1 + k = 0 + + for i in range(len(str(msg_tmp_d))): + if msg_tmp_d[i] == ',': + count+=1 + + for x in range(count):#08:00-17:00-1-0111110,08:00-17:00-1-0111110 + week = [] + if count > 1: + msg_data = msg_tmp_d.split(',')[k] + # print("SILENCETIME count",msg_data) + k+= 1 + b = msg_data.find('-') + if b != -1: + data = msg_data.split('-')#-作为分隔符 + start_time = data[0] + end_time = data[1] + enable = int(data[2]) + week_day = data[3] + for i in range(0,7): + if week_day[i] != '0': + week.append(i) + tmp={} + tmp["start_time"] = start_time + tmp["end_time"] = end_time + tmp["week"] = week + tmp["enable"] = enable + class_in_buf["{}".format(x)] = tmp + else: + b = msg_tmp_d.find('-') + if b != -1: + data = msg_tmp_d.split('-')#-作为分隔符 + start_time = data[0] + end_time = data[1] + enable = int(data[2]) + week_day = data[3] + for i in range(0,7): + if week_day[i] != '0': + week.append(i) + tmp={} + tmp["start_time"] = start_time + tmp["end_time"] = end_time + tmp["week"] = week + tmp["enable"] = enable + class_in_buf["{}".format(x)] = tmp + + with open("/usr/static/storage_file/class_msg.json", 'w+',encoding='utf-8') as fd: + ujson.dump(class_in_buf,fd) + + + EventMesh.publish("set_class_time", class_in_buf) EventMesh.publish(constants.PROTOCOL.SILENCETIME2_SEND) + EventMesh.publish("get_class_in_time_page") #键盘开关 class KEYBRD_ProtoCol(ProtoCol): @@ -1361,7 +1554,7 @@ class ProtoColResolver(object): def handler(self, data): # 这里接收数据 - # print("handler -> {}".format(data)) + print("handler -> {}".format(data)) # if data.startswith('Init;'): # data = data[5:] # EventMesh.publish(constants.EVENT.SET_KEY, {"value": ujson.loads(data)['KEY']}) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py index 84a1125b..f9b9270c 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py @@ -4013,7 +4013,7 @@ class ContactsScreen(Screen): #contact_btn_label_1 = lv.label(contact_btn) self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_pos(5, 4) - self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_size(LCD_X-15, 20) + self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_size(LCD_X-15, 16) self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_text(key_tmp[4:]) self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_long_mode(lv.label.LONG.DOT) self.contact_detail_listt_dict[i]["contact_btn_label_1"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT) @@ -4026,7 +4026,7 @@ class ContactsScreen(Screen): #contact_btn_label_3 = lv.label(contact_btn) self.contact_detail_listt_dict[i]["contact_btn_label_3"].set_pos(5, 24) - self.contact_detail_listt_dict[i]["contact_btn_label_3"].set_size(LCD_X-15, 21) + self.contact_detail_listt_dict[i]["contact_btn_label_3"].set_size(LCD_X-15, 16) self.contact_detail_listt_dict[i]["contact_btn_label_3"].set_text(name) self.contact_detail_listt_dict[i]["contact_btn_label_3"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT) @@ -6328,7 +6328,7 @@ class sosScreen(Screen): sos_screen_label = lv.label(sos_screen) - sos_screen_label.set_text("是否拨打求助电话?") + sos_screen_label.set_text("是否拨打求助电话") sos_screen_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) sos_screen_label.set_size(128, 20) sos_screen_label.set_pos(0,2) @@ -6939,6 +6939,12 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面 class_mgr_popup_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) self.meta = class_mgr_popup_screen + sos_flag = EventMesh.publish("get_sos_flag") + if sos_flag == 1: + EventMesh.publish("set_sos_flag",0) + EventMesh.publish("set_sos_num",0) + EventMesh.publish("set_hangup_mode",0) + data = RTC().datetime() hour = data[4] min = data[5] @@ -6960,6 +6966,12 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面 def btn1_release(self): + state = EventMesh.publish("get_cur_class_time_state") + print("state:{}".format(state)) + if state != None: + if state == 0: + EventMesh.publish("load_screen", {"screen": "main_menu"}) + return flag = EventMesh.publish("get_lcd_state") if flag == 1: EventMesh.publish(constants.EVENT.SYSTEM_SLEEP) @@ -6967,6 +6979,12 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面 EventMesh.publish(constants.EVENT.SYSTEM_UP) def btn8_press(self): + state = EventMesh.publish("get_cur_class_time_state") + print("state:{}".format(state)) + if state != None: + if state == 0: + EventMesh.publish("load_screen", {"screen": "main_menu"}) + return flag = EventMesh.publish("get_lcd_state") if flag == 1: EventMesh.publish(constants.EVENT.SYSTEM_SLEEP) @@ -8852,10 +8870,10 @@ class restore_confirmScreen(Screen): self.timer1.start(1000,1,self.timer_cb_onescond) ret = 0 - ret = ql_fs.path_exists("/ext/static/storage_file")#电话本 + ret = ql_fs.path_exists("/usr/static/storage_file")#电话本 if ret == True: - ql_fs.rmdirs("/ext/static/storage_file") - ql_fs.mkdirs("/ext/static/storage_file") + ql_fs.rmdirs("/usr/static/storage_file") + ql_fs.mkdirs("/usr/static/storage_file") if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#已连接服务器发指令恢复出厂 EventMesh.publish(constants.PROTOCOL.DLT_SEND) @@ -9193,21 +9211,38 @@ class UI(object): def load_screen_cb(self, topic, msg): EventMesh.publish("publish_message_event_ui",{"func":self.load_screen,"data":msg}) + + # "dialing_noplay_popup" + # "dial_no_connect_popup" + # "on_call" + # "dialing" + # "incoming_call" + def load_screen(self, msg): print("msg1={} self.UI_high_priority_flag:{}".format(msg,self.UI_high_priority_flag)) + if self.UI_high_priority_flag == 1:#电话界面屏蔽其他界面 + return state = EventMesh.publish("get_cur_class_time_state") + print("state:{}".format(state)) if state != None: if state == 1: screen_NAME = EventMesh.publish("get_screen_NAME") if screen_NAME != None: - if screen_NAME == "class_time" :#在上课禁用界面打断其他操作界面 - print("class_time UI") - if msg["screen"] == "countdown_end": - print("countdown_end UI") - EventMesh.publish("close_count_show_info") - return - if self.UI_high_priority_flag == 1:#电话界面屏蔽其他界面 - return + if msg["screen"] == "charge_out" or msg["screen"] == "charge_in": + pass + else: + if screen_NAME == "class_time" :#在上课禁用界面打断其他操作界面 + print("class_time UI") + if msg["screen"] == "countdown_end": + # print("countdown_end UI") + EventMesh.publish("close_count_show_info") + return + else: + if screen_NAME != "dialing_noplay_popup" or screen_NAME != "dial_no_connect_popup" or \ + screen_NAME != "on_call" or screen_NAME != "dialing" or screen_NAME != "incoming_call" or \ + screen_NAME != "charge_in" or screen_NAME != "charge_out": + EventMesh.publish("load_screen", {"screen": "class_time"}) + if self.screen : if self.screen.NAME == msg["screen"]: return