else:
num = EventMesh.publish("get_sos_num")
number = EventMesh.publish("get_dial_sos_number")
- if len(number) > 0:
- if num == None:
- num = 0
- num+=1
- num_len = 0
-
- if len(number) == 1:
- num_len = len(number)
- elif len(number) == 2:
- num_len = len(number)+1
- elif len(number) == 3:
- num_len = len(number)+2
- # print("number:{} number_len :{} num:{} num_len:{}".format(number,len(number),num,num_len))
- if num > num_len :
- EventMesh.publish("set_sos_flag",0)
- EventMesh.publish("set_sos_num",0)
- else:
- # print("number:{} number_len :{}".format(number,len(number)))
- EventMesh.publish("set_sos_num",num)
+ if number != None:
+ if len(number) > 0:
+ if num == None:
+ num = 0
+ num+=1
+ num_len = 0
+
if len(number) == 1:
- EventMesh.publish("set_callnumer_cb",number[0])
- print("phone 1")
+ num_len = len(number)
elif len(number) == 2:
- if num == 1 or num == 3:
- print("phone 2")
- EventMesh.publish("set_callnumer_cb",number[1])
- elif num == 2:
- print("phone 3")
- EventMesh.publish("set_callnumer_cb",number[0])
+ num_len = len(number)+1
elif len(number) == 3:
- if num == 1 or num == 4:
- EventMesh.publish("set_callnumer_cb",number[1])
- print("phone 4")
- elif num == 2 or num == 5:
- print("phone 5")
- EventMesh.publish("set_callnumer_cb",number[2])
- elif num == 3:
- print("phone 6")
+ num_len = len(number)+2
+ # print("number:{} number_len :{} num:{} num_len:{}".format(number,len(number),num,num_len))
+ if num > num_len :
+ EventMesh.publish("set_sos_flag",0)
+ EventMesh.publish("set_sos_num",0)
+ else:
+ # print("number:{} number_len :{}".format(number,len(number)))
+ EventMesh.publish("set_sos_num",num)
+ if len(number) == 1:
EventMesh.publish("set_callnumer_cb",number[0])
+ print("phone 1")
+ elif len(number) == 2:
+ if num == 1 or num == 3:
+ print("phone 2")
+ EventMesh.publish("set_callnumer_cb",number[1])
+ elif num == 2:
+ print("phone 3")
+ EventMesh.publish("set_callnumer_cb",number[0])
+ elif len(number) == 3:
+ if num == 1 or num == 4:
+ EventMesh.publish("set_callnumer_cb",number[1])
+ print("phone 4")
+ elif num == 2 or num == 5:
+ print("phone 5")
+ EventMesh.publish("set_callnumer_cb",number[2])
+ elif num == 3:
+ print("phone 6")
+ EventMesh.publish("set_callnumer_cb",number[0])
print('voicecall disconnect end')
print("post_processor_after_instantiation:2")
self.timer_push_schedule.start(10000, 1, self.publish_event)
+ # self.timer_push_schedule.start(1000, 1, self.publish_test)
# self.battery_push_schedule.start(3000, 1, self.__check_battery)
self.log.debug("post_processor_after_instantiation finished")
#EventMesh.publish(constants.EVENT.START_HEART)
# 设备开机立刻更新一次参数
self.publish_event()
print("post_processor_after_instantiation:3")
-
+ def publish_test(self, *args, **kwargs):
+ pass
+ # self.read_data = {}
+ # check = ql_fs.path_exists("/ext/static/storage_file/config.json")
+ # if check == True:
+ # with open("/ext/static/storage_file/config.json","r") as fd:
+ # self.read_data = ujson.load(fd)
+ # self.read_data["test"] = "7817871837381378"
+ # with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
+ # ujson.dump(self.read_data,fd)
+
def publish_event(self, *args, **kwargs):
"""
self.timer_push = 0
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)
- print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
+ # print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
if math.fabs(time_tmp - self.KA_time) > 7*60: #7分钟一次心跳
self.KA_time = time_tmp
self.sos_flag = msg
if self.sos_flag == 1:
number = EventMesh.publish("get_dial_sos_number")
- if len(number) > 0 and number != None:
- EventMesh.publish("save_phonename",number[0])
- EventMesh.publish("save_phonenum",number[0])
- voiceCall.callStart(str(number[0]))
+ if number != None:
+ if len(number) > 0:
+ EventMesh.publish("save_phonename",number[0])
+ EventMesh.publish("save_phonenum",number[0])
+ voiceCall.callStart(str(number[0]))
def set_callnumer_cb(self, event, msg):
def get_dial_sos_number(self, event, msg):
return self.sos_numer1
-
+# date_tmp......01....(2023, 5, 12, 10, 4, 22, 4, 132) time_tmp:1683857062
+# 1683857062 + 360 + 244*60
+# 1440 * 60 = 86400
+# 244*60 = 14640
+# 2023 5 13 6:00
+#10*60 + 4 = 604
+# 1683958102
+#6*60 = 360
+# 604-360 = 244
+# e = 10080
+# c = 604
+# n =
+# 1683975862
+#836+600
+#1440 - 604 + 360 s = 71760
class getBootOffManager(Abstract):#开关机时间
def __init__(self):
self.read_data = {}
EventMesh.subscribe("get_boot_off_time", self.get_boot_off_time)
# def _rtc_callback(self,args):
- # print("---!!!!!!alarm_ring!!!!!!!---,idx:",args)
+ # msg_tmp = self.off_msg
+ # off_tmp1 = msg_tmp[1]
+ # msg_tmp1 = off_tmp1.split(':')
+ # start_min = msg_tmp1[0]*60+msg_tmp1[1]
+
+
+ # off_tmp2 = msg_tmp[2]
+ # msg_tmp2 = off_tmp2.split(':')
+ # end_min = off_tmp2[0]*60+msg_tmp2[1]
+
+ # rtc_now_time = self.rtc.datetime()
+ # current = rtc_now_time[4]*60+rtc_now_time[5]
+ # # if current == start_min:
+
+ # # if current == start_min:
+
+ # # print("---!!!!!!alarm_ring!!!!!!!---,idx:",args)
# def set_boot_off_time(self, event, msg):
# # data = RTC().datetime()
# # hour = data[4]
# # min = data[5]
-
+ # #反向获取时间戳
+ # def_time = 24*60 #一天的总分钟数
+ # time = utime.localtime()
+ # print("09获取utime的时间戳:", time)
+ # rtc_mktime = utime.mktime(time)
+ # print("10反向获取utime的mktime:", rtc_mktime)
# current_minute = rtc_now_time[4]*60 + rtc_now_time[5] #当前的分钟数不包含年月日
# start_min = msg_tmp1[0]*60+msg_tmp1[1]
# end_min = msg_tmp2[0]*60+msg_tmp2[1]
# #9:00 6:00
+ # next_off_mktime = 0 #关机的时间戳
+ # next_on_mktime = 0 #开机的时间戳
# if current_minute > start_min:#如果当前的分钟数 大于开始的关机时间分钟数 则认为是第二天6:00需要开机 23:00需要关机
- # next_alarm_time = utime.localtime(next_alarm_mktime)
+ # next_off_mktime = rtc_mktime+((def_time - current_minute)+start_min)*60#算到下一个开机时间
# pass
-
-
- # print("04当前的rtc_total_minutes:{}".format(current_minute))
-
- # if current_minute in minute_list:
- # print("当前时间和闹钟列表时间重复,删除重复的时间")
- # minute_list.remove(current_minute)
-
- # minute_list.append(current_minute)
-
- # # 对分钟数列表进行排序,并获取当前时间分钟数所在的位置
- # minute_list = sorted(minute_list)
- # current_index = minute_list.index(current_minute)
-
- # print("05将当前时间插入min_list后的min_list:{}".format(minute_list))
- # print("06当前时间所在位置:{}".format(current_index))
-
- # next_index = current_index + 1
- # if next_index >= len(minute_list):
- # next_minute = minute_list[0]
- # print("07下一个闹钟的分钟数:", next_minute)
- # else:
- # next_minute = minute_list[next_index]
- # print("07下一个闹钟的分钟数:", next_minute)
-
- # if next_minute >= current_minute:
- # interval_minute = next_minute - current_minute
- # print("08距离下一次响铃的的分钟数:", interval_minute)
# else:
- # interval_minute = end_minute - current_minute + next_minute
- # print("08距离下一次响铃的的分钟数:", interval_minute)
- # #反向获取时间戳
- # time = utime.localtime()
- # print("09获取utime的时间戳:", time)
- # rtc_mktime = utime.mktime(time)
- # print("10反向获取utime的mktime:", rtc_mktime)
+ # pass
- # #加上下一次响铃需要的时间
- # next_alarm_mktime = rtc_mktime + interval_minute*60
- # print("11下一次响铃的mktime:", next_alarm_mktime)
# #格式化时间戳,得到下一次闹钟的时间
- # next_alarm_time = utime.localtime(next_alarm_mktime)
- # print("12ä¸\8bä¸\80次å\93\8dé\93\83ç\9a\84å\87\86ç¡®æ\97¶é\97´ï¼\9a", next_alarm_time)
+ # next_time = utime.localtime(next_off_mktime)
+ # print("12ä¸\8bä¸\80次å¼\80æ\9cºæ\97¶é\97´ç\9a\84å\87\86ç¡®æ\97¶é\97´ï¼\9a", next_time)
# #将时间转换为rtc的格式
# data_l = [2021, 7, 9, 5, 12, 30, 0, 0]
# #给rtc时间赋值
- # data_l[0] = next_alarm_time[0] #year
- # data_l[1] = next_alarm_time[1] #month
- # data_l[2] = next_alarm_time[2] #day
- # data_l[4] = next_alarm_time[3] #hour
- # data_l[5] = next_alarm_time[4] #minute
+ # data_l[0] = next_time[0] #year
+ # data_l[1] = next_time[1] #month
+ # data_l[2] = next_time[2] #day
+ # data_l[4] = next_time[3] #hour
+ # data_l[5] = next_time[4] #minute
# #转换为元组
# data_e=tuple(data_l)
# print("13将该时间转换为RTC元组:", data_e)