From: dxy15521469561 <1731678236@qq.com> Date: Thu, 7 Dec 2023 11:02:38 +0000 (+0800) Subject: D10: X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=99ce1b593065fe1c9d8a3302e795d5037a69f5ce;p=mirrors%2FASR1603_G5.git D10: 优化 --- diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py index fed87f6b..b36730e2 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_health.py @@ -415,7 +415,7 @@ class TemperatureScreen(Screen): global temp_line1,temp_line2,temp_line3,temp_line4,temp_line5,temp_line6,temp_line7 read_data = {} read_data = EventMesh.publish("get_history_temp_value") - # print("hr get_history_temp_value",read_data) + print("hr get_history_temp_value",read_data) if read_data != None: if len(read_data) != 0: sort_new = {} @@ -426,7 +426,6 @@ class TemperatureScreen(Screen): print(int(sort_new[i]["temp"])) print("hr history read_data",read_data) value_float = sort_new[i]["temp"] - value_float = 29 value = 0 value_dot = 0 line_value = 0 diff --git a/2.sdk/project/D10/audio.bin b/2.sdk/project/D10/audio.bin index df7bebda..65b68310 100644 Binary files a/2.sdk/project/D10/audio.bin and b/2.sdk/project/D10/audio.bin differ diff --git a/2.sdk/project/D10/audio/R_DRINK_ALARM.mp3 b/2.sdk/project/D10/audio/R_DRINK_ALARM.mp3 new file mode 100644 index 00000000..63226453 Binary files /dev/null and b/2.sdk/project/D10/audio/R_DRINK_ALARM.mp3 differ diff --git a/2.sdk/project/D10/audio/R_MEDICINE_ALARM.mp3 b/2.sdk/project/D10/audio/R_MEDICINE_ALARM.mp3 new file mode 100644 index 00000000..36061123 Binary files /dev/null and b/2.sdk/project/D10/audio/R_MEDICINE_ALARM.mp3 differ diff --git a/2.sdk/project/D10/list.json b/2.sdk/project/D10/list.json index 50b4991e..a314d60c 100644 --- a/2.sdk/project/D10/list.json +++ b/2.sdk/project/D10/list.json @@ -1 +1 @@ -['audio_find_haixiu', 'R_ALARM_NEW', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_FALL_ALARM', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WECHAT_RECV'] \ No newline at end of file +['audio_find_haixiu', 'R_ALARM_NEW', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_MEDICINE_ALARM', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WECHAT_RECV'] \ No newline at end of file diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py index 3dd8d546..3983bbd3 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py @@ -113,6 +113,12 @@ class PROTOCOL: BLOODGLUSOCE_SEND = "bloodglucose_SEND" BLOODGLUSOCE_RECV = "bloodglucose_RECV" + + REMIND_CH_DRINK_SEND = "REMIND_CH_DRINK_SEND" + REMIND_CH_DRINK_RECV = "REMIND_CH_DRINK_RECV" + + REMIND_CH_MEDICINE2_SEND = "REMIND_CH_MEDICINE2_SEND" + REMIND_CH_MEDICINE2_RECV = "REMIND_CH_MEDICINE2_RECV" class EVENT: diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py index cb168164..bafb4056 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py @@ -186,6 +186,8 @@ def main_init(): pcr.add_support(protocol.blood_ProtoCol()) pcr.add_support(protocol.bgstart_ProtoCol()) pcr.add_support(protocol.bloodglucose_ProtoCol()) + pcr.add_support(protocol.REMIND_CHDRINK_ProtoCol()) + pcr.add_support(protocol.REMIND_CHMEDICINE2_ProtoCol()) sm = protocol.SockManager() sm.add_support_resolver(pcr) diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py index 9a3a5044..d0577c63 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py @@ -108,6 +108,7 @@ def get_blood_sugar_value():#血糖值 + class PhoneVolumeLevelManager(Abstract): def __init__(self): self.level = 0 @@ -780,6 +781,9 @@ class DeviceInfoManager(Abstract): self.no_smi_state = 0 self.old_bp_time = 0 + + self.alarm_count = 0 + self.alarm_flag = 0 self.charge_full_count = 0 self.GPS_step_t = 0#记录步数 @@ -825,6 +829,8 @@ class DeviceInfoManager(Abstract): self.pull_time = 0 + self.drink_time = 0 + def post_processor_after_instantiation(self): EventMesh.debug_log("post_processor_after_instantiation:1") @@ -1798,6 +1804,97 @@ class DeviceInfoManager(Abstract): EventMesh.publish("set_led_time_arg",[1,2,20*11,led_mode.FLASH_LIGHT_RED,20,10,led_mode.OTHER_MEASURE_MODE])#測量成功 # EventMesh.publish("set_led_time_arg",[1000,400,52,led_mode.FLASH_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#開始測量 + + #喝水提醒 + self.drink_alarm() + #该吃药了 + self.medicine_alarm() + + + #喝水提醒 + def drink_alarm(self): + date_tmp = utime.localtime() + time_tmp = utime.mktime(date_tmp) + + if self.drink_time == 0: + self.drink_time = time_tmp + + on = EventMesh.publish("get_storage_config","drink_on") + time = EventMesh.publish("get_storage_config","drink_time") + print("drink info2",on,time) + if on != None and time != None: + if on != 0 and time != 0: + if (time_tmp - self.drink_time) >= (time*60*60):#需要转换成小时3600 + self.drink_time = time_tmp + EventMesh.publish("drink_alarm_event")#跌倒报警启动中 + #该喝水了 + else: + self.drink_time = 0 + else: + self.drink_time = 0 + + #吃药提醒 + def medicine_alarm(self): + date_tmp = utime.localtime() + time_tmp = utime.mktime(date_tmp) + data = RTC().datetime() + hour = data[4] + min = data[5] + + week = int(data[3]) + + date1 = data[1] + date2 = data[2] + cur_total_min = int(hour)*60+int(min) + medicine = EventMesh.publish("get_storage_config","medicine") + print("medicine info2",medicine,cur_total_min) + if self.alarm_flag == 1:#表示闹钟响过清除标志 + self.alarm_count+=1 + if self.alarm_count > 6: + self.alarm_count = 0 + self.alarm_flag = 0 + if medicine != None: + if len(medicine) != 0 and medicine != []: + for i in range(len(medicine)): + alarm_hour = medicine[i]["hour"] + alarm_min = medicine[i]["min"] + alarm_day = medicine[i]["day"] + alarm_enale = medicine[i]["enable"] + alarm_totalmin = int(alarm_hour)*60+int(alarm_min) + if alarm_day == []: + if alarm_enale != 0: + if alarm_totalmin >= cur_total_min and self.alarm_flag == 0:#14:00 + self.alarm_count = 0 + self.alarm_flag = 1 + break + else: + if alarm_enale != 0: + if alarm_totalmin >= cur_total_min and self.alarm_flag == 0:#14:00 + self.alarm_count = 0 + self.alarm_flag = 1 + break + + + pass + # if self.medicine_time == 0: + # self.medicine_time = time_tmp + + # on = EventMesh.publish("get_storage_config","drink_on") + # time = EventMesh.publish("get_storage_config","drink_time") + # print("medicine_time info2",on,time) + # if on != None and time != None: + # if on != 0 and time != 0: + # if (time_tmp - self.medicine_time) >= (time*60*60):#需要转换成小时3600 + # self.medicine_time = time_tmp + # EventMesh.publish("drink_alarm_event")#跌倒报警启动中 + # #该吃药了 + # else: + # self.medicine_time = 0 + # else: + # self.medicine_time = 0 + + + def get_sim_Status(self, event, msg): return sim.getStatus() diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py index b95abbfa..33ea9ab6 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py @@ -1720,7 +1720,7 @@ class TK_ProtoCol(ProtoCol): datalen = len(arm) + 4+len(str(arm_sec))+1 #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1)) - send_data = bytearray("SZKW*%s*%04X*TK,%d,"%(self.imei,datalen,arm_sec)) + send_data = bytearray(self.PID+"*%s*%04X*TK,%d,"%(self.imei,datalen,arm_sec)) send_data.extend(arm) MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,datalen,"TK") MD5_SIGN = self.pack_MD5_head(MD5_head_data) @@ -1846,7 +1846,7 @@ class TKS_ProtoCol(ProtoCol): datalen = len(arm) + 4+len(str(arm_sec))+1 #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1)) - send_data = bytearray("SZKW*%s*%04X*TKS,%d,"%(self.imei,datalen,arm_sec)) + send_data = bytearray(self.PID+"*%s*%04X*TKS,%d,"%(self.imei,datalen,arm_sec)) send_data.extend(arm) MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,datalen,"TKS") MD5_SIGN = self.pack_MD5_head(MD5_head_data) @@ -1940,9 +1940,8 @@ class MESSAGE_ProtoCol(ProtoCol): def send(self, event, msg): - #[XT*334588000000156*0007*MESSAGE] - send_data = "SZKW*%s*0007*MESSAGE"%(self.imei) + send_data = self.PID+"*%s*0007*MESSAGE"%(self.imei) MD5_SIGN = self.pack_MD5_head(send_data) data = "[%s%s]"%(str(MD5_SIGN),send_data) #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) @@ -2009,7 +2008,7 @@ class FALLDOWN_ProtoCol(ProtoCol): def send(self, event, msg): #[XT*334588000000156*LEN*FALLDOWN] - send_data = "SZKW*%s*0008*FALLDOWN"%(self.imei) + send_data = self.PID+"*%s*0008*FALLDOWN"%(self.imei) MD5_SIGN = self.pack_MD5_head(send_data) data = "[%s%s]"%(str(MD5_SIGN),send_data) #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) @@ -2042,7 +2041,7 @@ class REMOVE_ProtoCol(ProtoCol): TYPE = "REMOVE" def send(self, event, msg): - send_data = "SZKW*%s*0006*REMOVE"%(self.imei) + send_data = self.PID+"*%s*0006*REMOVE"%(self.imei) MD5_SIGN = self.pack_MD5_head(send_data) data = "[%s%s]"%(str(MD5_SIGN),send_data) #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) @@ -2072,7 +2071,7 @@ class HELP_ProtoCol(ProtoCol): def send(self, event, msg): #[XT*334588000000156*LEN*FALLDOWN] - send_data = "SZKW*%s*0008*HELP,%d"%(self.imei,msg) + send_data = self.PID+"*%s*0008*HELP,%d"%(self.imei,msg) MD5_SIGN = self.pack_MD5_head(send_data) data = "[%s%s]"%(str(MD5_SIGN),send_data) #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) @@ -2086,6 +2085,158 @@ class HELP_ProtoCol(ProtoCol): pass + +#喝水闹钟提示 +# 喝水闹钟设置指令 +# 平台发送: +# [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_DRINK,时间间隔(小时),开关(0为关,1为开)] +# 实例: +# [XT*334588000000156*0026*REMIND_CH_DRINK,4,0] +# 终端回复: +# [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_DRINK] +# 实例:[XT*334588000000156*000E*REMIND_CH_DRINK] +class REMIND_CHDRINK_ProtoCol(ProtoCol): + """ + + 平台发送: + [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_DRINK,时间间隔(小时),开关(0为关,1为开)] + 实例:[XT*334588000000156*0008*REMIND_CH_DRINK,时间间隔(小时),开关(0为关,1为开)] + 终端回复: + [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_DRINK] + """ + TYPE = "REMIND_CH_DRINK" + + def send(self, event, msg): + send_data = self.PID+"*%s*000F*REMIND_CH_DRINK"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) + # 通过socket发送到服务器端 + EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) + + def recv(self, event, msg): + # SZKW*860132060346475*0013*REMIND_CH_DRINK,4-1 + msg = msg[1:-1] + msg_tmp = msg.decode('ascii') + msg_data = msg_tmp.split(',') + data = str(msg_data[1]) + hour = int(data.split('-')[0]) + btn_on = int(data.split('-')[1]) + + EventMesh.debug_log("recv REMIND_CH_DRINK:{}-{}-{}".format(hour,btn_on,msg)) + EventMesh.publish("set_storage_config",["drink_on",btn_on]) + EventMesh.publish("set_storage_config",["drink_time",hour]) + EventMesh.publish(constants.PROTOCOL.REMIND_CH_DRINK_SEND) + +# 自定义服药闹钟设置指令 +# 平台发送: +# [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_MEDICINE2,时间1-开关,时间2-开关,周几] +# 实例: +# [XT*334588000000156*0026*REMIND_CH_MEDICINE2,08:10-0,09:10-0,1000001] +# 终端回复: +# [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_MEDICINE2] +# 实例:[XT*334588000000156*000E*REMIND_CH_MEDICINE2] +# 说明:闹铃格式为:时间-开关(0/1),周几(周六到周日) + +#REMIND_CH_MEDICINE2,09:00-1,14:00-0,18:00-0,1111111]'",) +class REMIND_CHMEDICINE2_ProtoCol(ProtoCol):#吃药提醒 + """ + + 平台发送: + [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_MEDICINE2,,时间1-开关,时间2-开关,周几] + 实例:[XT*334588000000156*0008*REMIND_CH_MEDICINE2,,时间1-开关,时间2-开关,周几] + 终端回复: + [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_DRINK] + """ + TYPE = "REMIND_CH_MEDICINE2" + + def send(self, event, msg): + send_data = self.PID+"*%s*00013*REMIND_CH_MEDICINE2"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) + # 通过socket发送到服务器端 + EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) + + def recv(self, event, msg): + # SZKW*860132060346475*0013*REMIND_CH_MEDICINE2,4-1 + msg = msg[1:-1] + msg_tmp = msg.decode('ascii') + msg_data = msg_tmp.split(',') + + medicin_data = [] + + medicine_alarmday = str(msg_data[4]) + alarmday=[] + + for i in range(1,4):#默认是三个时间多了也不保存 + print("i",i) + medicine_alarm = str(msg_data[i]) + on = int(medicine_alarm.split('-')[1]) + if on != 0: + alarmday = [] + data = str(medicine_alarm.split('-')[0]) + hour = int(data.split(":")[0]) + min = int(data.split(":")[1]) + for i in range(0,7): + print("medicine_alarmday",medicine_alarmday,medicine_alarmday[i]) + if medicine_alarmday[i] != '0': + alarmday.append(i) + enable = 1 + medicin_data.append({"hour":hour,"min":min,"day":alarmday,"enable":enable}) + + EventMesh.publish("set_storage_config",["medicine",medicin_data]) + medicine = EventMesh.publish("get_storage_config","medicine") + print("get medicine",medicine,type(medicine)) + + # medicine_alarm1 = str(msg_data[1]) + # on1 = int(medicine_alarm1.split('-')[1]) + # if on1 != 0: + # data = str(medicine_alarm1.split('-')[0]) + # hour = int(data.split(":")[0]) + # min = int(data.split(":")[1]) + # for i in range(0,7): + # if medicine_alarmday[i] != '0': + # alarmday.append(i) + # enable = 1 + # medicin_data.append({"hour":hour,"min":min,"day":alarmday,"enable":enable}) + + # medicine_alarm2 = str(msg_data[2]) + # on2 = int(medicine_alarm2.split('-')[1]) + # if on2 != 0: + # alarmday = [] + # data = str(medicine_alarm2.split('-')[0]) + # hour = int(data.split(":")[0]) + # min = int(data.split(":")[1]) + # for i in range(0,7): + # if medicine_alarmday[i] != '0': + # alarmday.append(i) + # enable = 1#1是重复 0单次 + # medicin_data.append({"hour":hour,"min":min,"day":alarmday,"enable":enable}) + + # medicine_alarm3 = str(msg_data[3]) + # on3 = int(medicine_alarm3.split('-')[1]) + # if on3 != 0: + # alarmday = [] + # data = str(medicine_alarm3.split('-')[0]) + # hour = int(data.split(":")[0]) + # min = int(data.split(":")[1]) + # for i in range(0,7): + # if medicine_alarmday[i] != '0': + # alarmday.append(i) + # enable = 1#1是重复 0单次 + + # medicin_data.append({"hour":hour,"min":min,"day":alarmday,"enable":enable}) + + + + EventMesh.debug_log("recv REMIND_CH_MEDICINE2:{} medicin_data ;{}".format(msg,medicin_data)) + + EventMesh.publish(constants.PROTOCOL.REMIND_CH_MEDICINE2_SEND) + + + + class ProtoColResolver(object): def __init__(self): self.protocol_list = [] diff --git a/2.sdk/project/D10/usr/static/audio.bin b/2.sdk/project/D10/usr/static/audio.bin index df7bebda..65b68310 100644 Binary files a/2.sdk/project/D10/usr/static/audio.bin and b/2.sdk/project/D10/usr/static/audio.bin differ