-echo Version="%1_V1.0" > project\%1%\sdk\services\microPython\ports\quectel\core\versions.py
+echo Version="V1.0" > project\%1%\sdk\services\microPython\ports\quectel\core\versions.py
echo Build_Time="%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,8%" >> project\%1%\sdk\services\microPython\ports\quectel\core\versions.py
\ No newline at end of file
import _thread
import usys
+import versions
+MODEL = "CO6S_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
class EventStore(object):
def __init__(self):
version_label3.set_pos(10, 70)
version_label3.set_size(230, 30)
version_label3.set_long_mode(lv.label.LONG.WRAP)
-version_label3.set_text(versions.Version)
+version_label3.set_text(EventMesh.version)
version_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
version_label3.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
version_label6.set_pos(10, 160)
version_label6.set_size(230, 60)
version_label6.set_long_mode(lv.label.LONG.WRAP)
-version_label6.set_text(versions.Build_Time)
+version_label6.set_text(EventMesh.builTime)
version_label6.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
version_label6.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
-['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_HOME_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_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
\ No newline at end of file
+['audio_find_haixiu', 'R_ALARM_NEW', 'R_BLOOD_SUGAR', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HOME_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_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
\ No newline at end of file
import _thread
import usys
+import versions
+model = "D10_"
+# model = "G10W_DT_YBX_"
+
+softversion = "{}{}".format(model,versions.Version)
+builTime = "{}".format(versions.Build_Time)
+
class EventStore(object):
def __init__(self):
self.map = dict()
from queue import Queue
import _thread
import usys
-
+import sms
+from Gsensor import SC7A20
# motor_pin = Pin(Pin.GPIO20, Pin.OUT, Pin.PULL_PD, 0)
motor_pin = 1
def open_motor():
def close_motor():
motor_pin.write(0)
-audio_buf = ['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_HOME_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_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
+audio_buf = ['audio_find_haixiu', 'R_ALARM_NEW', 'R_BLOOD_SUGAR', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HOME_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_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
+
class call:
CALL_OUT = 1
CALL_IN = 2
self.find_timer1 = osTimer()
self.fall_flag = 0
+ self.factory_timer = osTimer()
+
+ self.restart_timer = osTimer()
+
self.aud = audio.Audio(0)
self.aud.set_pa(Pin.GPIO29)
self.aud.setVolume(11)
EventMesh.subscribe("play_spo2_value", self.play_spo2_value)#播放心率数值
EventMesh.subscribe("play_temp_value", self.play_temp_value)#播放体温数值
+ EventMesh.subscribe("play_sugar_value", self.play_sugar_value)#播放血糖数值
+
EventMesh.subscribe("set_usb", self.set_usb)#
EventMesh.subscribe("get_usb", self.get_usb)#
EventMesh.subscribe("reset_end_alarm_event", self.reset_end_alarm_event)#休息结束了
EventMesh.subscribe("get_fall_down_state", self.get_fall_down_state)#跌倒报警标识
+
+ EventMesh.subscribe("app_factory", self.app_factory)#app恢复出厂
+
+ EventMesh.subscribe("app_restart", self.app_restart)#远程重启
+
def interInfo_queue_thread(self):
audio_buf.index("R_READ_STEP_1"),audio_buf.index("R_READ_STEP_4"))
EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
else:
- step_tmp = str(step)
+ step_tmp = str(step)#500
bai_value = int(step_tmp[0])#百
shi_value = int(step_tmp[1])#十
ge_value = int(step_tmp[2])#个
audio_buf.index("R_READ_TIME_{}".format(ge_value)),audio_buf.index("R_READ_STEP_4"))
EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
else:
- str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(bai_value)),\
- audio_buf.index("R_READ_STEP_2"),audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(ge_value)),\
- audio_buf.index("R_READ_STEP_4"))
- EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ if shi_value == 0 and ge_value == 0:#500 600
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(bai_value)),\
+ audio_buf.index("R_READ_STEP_2"),audio_buf.index("R_READ_STEP_4"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ pass
+ else:
+
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(bai_value)),\
+ audio_buf.index("R_READ_STEP_2"),audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(ge_value)),\
+ audio_buf.index("R_READ_STEP_4"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
pass
elif step <= 10000:#千
if step == 10000:
if get_hr_state != 0:
EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
- if get_hr_state == 3 or get_hr_state == 1:
- EventMesh.publish("stop_led_timer")#设置参数
if get_hr_state == 1:
+ EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish("set_start_measure_time",0)#设置开始测量的时间戳时间
+
EventMesh.debug_log("stop debug8")
EventMesh.publish(constants.EVENT.STOP_HEART)
elif get_spo2_state != 0:
EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
- if get_spo2_state == 3 or get_spo2_state == 1:
+ if get_spo2_state == 1:
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
EventMesh.debug_log("stop debug13")
elif get_bp_state != 0:
EventMesh.publish("set_bp_state",0)#2代表后台进入测试
- if get_bp_state == 3 or get_bp_state == 1:
+ if get_bp_state == 1:
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_HEART)
EventMesh.debug_log("stop bp debug1")
elif get_bg_state != 0:
EventMesh.publish("set_bg_state",0)#2代表后台进入测试
- if get_bg_state == 3 or get_bg_state == 1:#手动开灯关闭灯
+ if get_bg_state == 1:#手动开灯关闭灯
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_HEART)
EventMesh.debug_log("stop BG debug14")
if get_temp_state != 0:
EventMesh.publish("set_temp_state",0)#2代表后台进入测试
- if get_temp_state == 1 or get_temp_state == 3:
- EventMesh.publish("stop_led_timer")#设置参数
if get_temp_state == 1:
+ EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish("get_start_temp_measure_time",0)#
EventMesh.publish(constants.EVENT.STOP_TEMP)
EventMesh.debug_log("stop temp debug14")
def get_usb(self, event, msg):
return self.usbState
+
+
+ def app_factory(self,event,msg):
+ if msg != None:
+ number = str(msg)
+ sms.sendPduMsg(number, 'fact# send ok', 'UCS2')
+ ret = 0
+ ret = ql_fs.path_exists("/usr/static/storage_file")#
+ if ret == True:
+ 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)
+
+ self.factory_timer.start(6*1000,0,self.factory_cb)
+ pass
+ def factory_cb(self,*argc):
+ self.aud.stopPlayStream()
+ Power.powerRestart()
+
+ def app_restart(self,event,msg):#远程发短信重启
+ if msg != None:
+ number = str(msg)
+ sms.sendPduMsg(number, 'rest# send ok', 'UCS2')
+ self.restart_timer.start(3*1000,0,self.app_restart_cb)
+ pass
+ def app_restart_cb(self,*argc):
+ Power.powerRestart()
+
def open_power_on(self, event, msg): #msg 1 开机 2 关机 3 重启 4恢复出厂设置 5静音关机
EventMesh.publish("close_timer_all")#
if msg == 1:
self.call_state = 0
voiceCall.callEnd()
step = EventMesh.publish("get_old_step_value")
+ # step1 = SC7A20().get_step()
+ # step1 = EventMesh.publish(constants.EVENT.GET_STEP)
+ # step2 = EventMesh.publish("get_storage_config","old_step")
self.read_data = EventMesh.publish("get_storage_data")
+ # EventMesh.publish("set_test_data5",[1,step,step1,step2])
if step != 0:
EventMesh.publish("set_storage_config",["old_step",step])
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)
+ # step3 = EventMesh.publish("get_old_step_value")
+ # step4 = SC7A20().get_step()
+ # step4 = EventMesh.publish(constants.EVENT.GET_STEP)
+ # step5 = EventMesh.publish("get_storage_config","old_step")
+ # EventMesh.publish("set_test_data6",[1,step3,step4,step5])
EventMesh.publish("set_storage_config",["old_time",time_tmp])#关机保存一个是时间
EventMesh.publish("set_storage_config",["power_state",0])
self.pwk_timer1.start(3000,0,self.power_off_audio_cb)
self.call_state = 0
voiceCall.callEnd()
step = EventMesh.publish("get_old_step_value")
+ # step1 = SC7A20().get_step()
+ # step1 = EventMesh.publish(constants.EVENT.GET_STEP)
+ # step2 = EventMesh.publish("get_storage_config","old_step")
self.read_data = EventMesh.publish("get_storage_data")
+ # EventMesh.publish("set_test_data7",[1,step,step1,step2])
if step != 0:
EventMesh.publish("set_storage_config",["old_step",step])
+
+ # step3 = EventMesh.publish("get_old_step_value")
+ # step4 = SC7A20().get_step()
+ # step4 = EventMesh.publish(constants.EVENT.GET_STEP)
+ # step5 = EventMesh.publish("get_storage_config","old_step")
+ # EventMesh.publish("set_test_data8",[1,step3,step4,step5])
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)
EventMesh.publish("set_storage_config",["old_time",time_tmp])#关机保存一个是时间
power_state = EventMesh.publish("get_storage_config","power_state")
if power_state == None:
power_state = 0
- print("power_state",power_state)
+ # print("power_state",power_state)
if power_state <= 0:
self.aud.play(1,1,'U:/static/R_POWER_OFF_1.mp3')
# str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1"))
# EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
EventMesh.publish("set_led_time_arg",[1,2,6*8,led_mode.FLASH_LIGHT_GREEN,6,3,led_mode.OTHER_MEASURE_MODE])#測量成功
# EventMesh.publish("set_led_time_arg",[1000,200,10,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数
- self.pwk_timer1.start(2000,0,self.clear_power_on_cb)
- self.pwk_timer2.start(6000,0,self.power_on_cb)
+ self.power_on_flag = 0
+ self.pwk_timer2.start(5000,0,self.power_on_cb)
def get_power_on_state(self, event, msg):
return self.power_on_flag
# str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1"))
# EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
EventMesh.publish("set_led_time_arg",[1,2,6*8,led_mode.FLASH_LIGHT_RED,6,3,led_mode.POWER_OFF_MODE])#
-
- self.pwk_timer1.start(2000,0,self.set_power_off_cb)
- self.pwk_timer2.start(7000,0,self.publish_power_down_event_cb)
+ self.power_off = 1
+ self.pwk_timer2.start(6000,0,self.publish_power_down_event_cb)
def power_off_no_audio_cb(self, msg):
EventMesh.debug_log("power_off_no_audio_cb")
EventMesh.publish("set_led_time_arg",[1,2,6*8,led_mode.FLASH_LIGHT_RED,6,3,led_mode.POWER_OFF_MODE])#
-
- self.pwk_timer1.start(2000,0,self.set_power_off_cb)
- self.pwk_timer2.start(7000,0,self.publish_power_down_event_cb)
+ self.power_off = 1
+ self.pwk_timer2.start(6000,0,self.publish_power_down_event_cb)
def set_power_off_cb(self, msg):
self.power_off = 1
get_bg_state = EventMesh.publish("get_bg_state")
get_bp_state = EventMesh.publish("get_bp_state")
if get_hr_state != None and get_spo2_state != None and get_temp_state != None and get_bg_state != None and get_bp_state != None:
- if get_hr_state == 1 or get_hr_state == 3:
+ if get_hr_state != 0:
EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
EventMesh.debug_log("sstop hr")
EventMesh.publish(constants.EVENT.STOP_HEART)
- if get_spo2_state == 1 or get_spo2_state == 3:
+ if get_spo2_state != 0 :
EventMesh.debug_log("stop spo2")
EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
- if get_temp_state == 1 or get_temp_state == 3:
+ if get_temp_state != 0:
EventMesh.debug_log("stop temp")
EventMesh.publish("set_temp_state",0)
EventMesh.publish(constants.EVENT.STOP_TEMP)#手动体温测试
- if get_bg_state == 1 or get_bg_state == 3:
+ if get_bg_state != 0:
EventMesh.publish("set_bg_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
EventMesh.debug_log("sstop bg")
EventMesh.publish(constants.EVENT.STOP_HEART)
- if get_bp_state == 1 or get_bp_state == 3:
+ if get_bp_state != 0:
EventMesh.publish("set_bp_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
EventMesh.debug_log("sstop bp")
EventMesh.publish(constants.EVENT.STOP_HEART)
EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ def play_sugar_value(self, event, msg): #播放血糖数值
+ flag = EventMesh.publish("get_call_state")
+ if msg != None:
+ if flag == 0 and self.fall_flag == 0:
+ EventMesh.publish("close_timer_all")#
+ if msg != 0:
+ # str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_HSENSOR_RESULT_OK"))
+ # EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ EventMesh.publish("set_hr_blood_led",2)#测量成功
+ # self.timer.start(2*1000,1,self.play_spo2_fun)
+ self.play_sugar_fun(msg)
+ else:
+ str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_HSENSOR_RESULT_FAILE"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ EventMesh.publish("set_hr_blood_led",3)#测量异常
+ else:
+ EventMesh.publish("set_hr_blood_led",3)#测量异常
+
+ def play_sugar_fun(self,argc):#播放血糖测试值
+ flag = EventMesh.publish("get_call_state")
+
+ if flag == 0 and self.fall_flag == 0:#电话通话中 或者呼叫中挂断中断
+ EventMesh.publish("close_timer_all")#
+ data = str(argc)
+ data_shi = 0
+ data_ge = 0
+ if data.find(".") != -1:
+ data_shi = int(data.split(".")[0])
+ data_ge = int(data.split(".")[1])
+ else:
+ data_shi = int(data)
+ data_ge = 0
+
+ if data_shi != 0 and data_ge != 0:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_BLOOD_SUGAR"),audio_buf.index("R_READ_TIME_{}".format(data_shi)),\
+ audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_{}".format(data_ge)))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ else:
+ EventMesh.publish("set_hr_blood_led",3)#测量异常
+
+
+
def play_spo2_value(self, event, msg): #播放血样数值
flag = EventMesh.publish("get_call_state")
if msg != None:
audio_buf.index("R_READ_STEP_2"))
EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
else:
- str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_HSENSOR_SPO2_TITLE"),audio_buf.index("R_READ_TIME_{}".format(data//10)),\
- audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(data%10)))
- EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ if data % 10 == 0:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_HSENSOR_SPO2_TITLE"),audio_buf.index("R_READ_TIME_{}".format(data//10)),\
+ audio_buf.index("R_READ_STEP_3"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ pass
+ else:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_HSENSOR_SPO2_TITLE"),audio_buf.index("R_READ_TIME_{}".format(data//10)),\
+ audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(data%10)))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
def set_sim_mode(self, event, msg): #mode 1 蓝灯闪烁 可识别卡 但未联网 2 可绑定appsim正常 3 手表不识别卡或者未插卡
elif self.old_hour <= 9:#8:09 9:20 9:45
if self.old_min <= 9:#9点09分
if self.old_min <= 0:
- str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(self.old_hour))\
+ str_data = 'mp3files={}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(self.old_hour))\
,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
pass
else:#12:0
- if self.old_min == 0:#12:00 13:00 15:00 20
+ if self.old_min == 0:#12:00 13:00 15:00 20 10 11 12 13 14 15
self.play_count+=1
hour_shi = self.old_hour//10
hour_ge = self.old_hour%10
else:
if self.old_hour < 20:#19:00
if self.old_min <= 9:#19:09
- str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_STEP_3")\
- ,audio_buf.index("R_READ_TIME_{}".format(self.old_hour % 10)),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT")\
- ,audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(self.old_min % 10))\
- ,audio_buf.index("R_READ_TIME_MIN"))
- EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ if self.old_min == 0:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_STEP_3")\
+ ,audio_buf.index("R_READ_TIME_{}".format(self.old_hour % 10)),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ pass
+ else:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_STEP_3")\
+ ,audio_buf.index("R_READ_TIME_{}".format(self.old_hour % 10)),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT")\
+ ,audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(self.old_min % 10))\
+ ,audio_buf.index("R_READ_TIME_MIN"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
else:#19:18 19:40 19:56
if self.old_min % 10 == 0:#十9点2十分 十9点3十分
#20:08 20:18 20:20
if hour_ge == 0:
if self.old_min <= 9:
- str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
- ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
- ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
- EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ if self.old_min == 0:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+ ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ pass
+ else:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+ ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
+ ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
else:
if min_ge == 0:#2十点2十分
else:#21:08 21:18
if self.old_min <= 9:
- str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
- ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(hour_ge))\
- ,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
- ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
- EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ if self.old_min == 0:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+ ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(hour_ge))\
+ ,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+ pass
+ else:
+ str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+ ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(hour_ge))\
+ ,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
+ ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
+ EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
else:
if min_ge == 0:#2十3点3十分
str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
if power_off != None:
if power_off == 1:
return
+ open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+ if open_power != None:
+ if open_power == 0:
+ return
fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识
if fall_down != None:
if fall_down != 0:
usys.print_exception(e)
if self.pwKey_press_count >= 1:
# EventMesh.debug_log("pwKey_timeout_cb:self.pwKey_press_count >= 1")
+
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish("dialing_out_event")#电话呼叫中voiceCall.callEnd()
EventMesh.publish("set_sos_flag",0)
EventMesh.publish("set_sos_num",0)
EventMesh.publish("set_hangup_mode",0)
-
EventMesh.publish("close_hr_sop2")#
flag = EventMesh.publish("get_call_state")
if flag != 1:
if power_off != None:
if power_off == 1:
return
+ open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+ if open_power != None:
+ if open_power == 0:
+ return
self.sosKey_status = self.sosKey.read_level()
# EventMesh.debug_log('### key22_extint_cb {} self.GPIO22_status:{}'.format(args,self.sosKey_status)) # args[0]:gpio号 args[1]:上升沿或下降沿
if self.WeChatKey_status != 0 and self.GPIO26_status != 0:
def wechatKey_extint_cb(self,args):
power_off = EventMesh.publish("get_power_off_state")#获取关机标识
if power_off != None:
- if power_off == 1:
+ if power_off != 0:
return
+ open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+ if open_power != None:
+ if open_power == 0:
+ return
+
self.WeChatKey_status = self.wechatKey.read_level()
# EventMesh.debug_log('### wechatKey_extint_cb {} self.WeChatKey_status:{}'.format(args,self.WeChatKey_status)) # args[0]:gpio号 args[1]:上升沿或下降沿
if self.sosKey_status != 0 and self.GPIO26_status != 0:
SLEEPTIME_SEND = "SLEEPTIME_SEND"
SLEEPTIME_RECV = "SLEEPTIME_RECV"
+
+ FACTORY_SEND = "FACTORY_SEND"
+ FACTORY_RECV = "FACTORY_RECV"
class EVENT:
else:
self.wechat_btn = 0
# if get_hr_state != 0 or get_spo2_state != 0 or temp_state != 0 or bp_state != 0 or bg_state != 0 :#心率血氧优先级高
- if get_hr_state == 1 or get_hr_state == 3 or get_spo2_state == 1 or get_spo2_state == 3 or temp_state == 1 or temp_state == 3 \
- or bp_state == 1 or bp_state == 3 or bg_state == 1 or bg_state == 3:
+ if get_hr_state == 1 or get_spo2_state == 1 or temp_state == 1 \
+ or bp_state == 1 or bg_state == 1:
if self.working_led_mode != led_mode.HEALTH_LED_MODE:#如果不在亮微聊模式需要亮微聊模式
# EventMesh.debug_log("set_hr_blood_led!!!!!!!!!!")
str_buf = [1,2,10*70*2,led_mode.FLASH_LIGHT_RED_GREEN,10,5,led_mode.HEALTH_LED_MODE]#測量成功
else:
# EventMesh.debug_log("set_hr_blood_led stop!!!!!!!!!!")
return
- if get_hr_state == 0 and get_spo2_state == 0 and temp_state == 0 and bp_state == 0 and bg_state == 0\
- and get_hr_state == 2 and get_spo2_state == 2 and temp_state == 2 and bp_state == 2 and bg_state == 2:
+ else:# 0 2都认为其他模式灯亮 不是测试健康灯
self.working_led_mode = led_mode.OTHER_MEASURE_MODE
-
self.open_timer(msg)
get_hr_state = EventMesh.publish("get_hr_state")
get_spo2_state = EventMesh.publish("get_spo2_state")
get_temp_state = EventMesh.publish("get_temp_state")
- if get_hr_state != None or get_spo2_state != None or get_temp_state != None:
- if get_hr_state == 1 or get_spo2_state == 1 or get_temp_state == 1:#手动触发
- if get_hr_state == 3 or get_spo2_state == 3 or get_temp_state == 3:
+ get_bp_state = EventMesh.publish("get_bp_state")
+ get_bg_state = EventMesh.publish("get_bg_state")
+ if get_hr_state != None and get_spo2_state != None and get_temp_state != None and get_bp_state != None and get_bg_state != None:
+ if get_hr_state == 1 or get_spo2_state == 1 or get_temp_state == 1 or get_bp_state == 1 or get_bg_state == 1:
EventMesh.publish("close_hr_sop2")
EventMesh.publish("close_led_pin")
return
def close_all_led(self, event, msg):
self.close_all_led_do(0)
- # EventMesh.debug_log("close_all_led!!2222222!!")
- # EventMesh.publish("publish_message_event_ledInfo",{"func":self.close_all_led_do,"data":0})
def close_all_led_do(self,data):
open_power = EventMesh.publish("get_power_on_state")#获取开机标识
if open_power != None:
bg_state = EventMesh.publish("get_bg_state")
# EventMesh.debug_log("get_hr_state",get_hr_state,get_spo2_state,wechat_state,self.working_led_mode)
if wechat_state != None: #获取微聊状态
- if wechat_state == 1 or get_spo2_state == 1 or get_spo2_state == 3 or get_hr_state == 1 or get_hr_state == 3 or temp_state == 1 or bp_state == 1 \
- or bg_state == 1 or bg_state == 3 or temp_state == 3 or bp_state == 3:
+ if wechat_state == 1 or get_spo2_state == 1 or get_hr_state == 1 or temp_state == 1 or bp_state == 1 \
+ or bg_state == 1 :
return
if self.timer_state == 1:
self.timer.stop()
# TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,Time_ProtoCol,TKS_ProtoCol,FALLDOWN_ProtoCol,\
# ProtoColResolver,SILENCETIME2_ProtoCol,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
import protocol
- import mgr as mgr
+ import mgr
EventMesh.debug_log("init7:{}".format(utime.localtime()))
- from mgr import ClockManager,deleteSmsManager,testSmsSetIPManager,ConfigStoreManager,sosInfoCallManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
- AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
+
EventMesh.debug_log("init8:{}".format(utime.localtime()))
# from appWechat import TK_ProtoCol,MESSAGE_ProtoCol
app = watchApp()
app.set_ui(ui)
- app.append_manager(getStorageDataManager())
+ app.append_manager(mgr.getStorageDataManager())
app.append_manager(mgr.AlarmVolumeLevelManager()) \
.append_manager(mgr.MsgVolumeLevelManager()) \
.append_manager(mgr.PhoneVolumeLevelManager()) \
# .append_manager(mgr.CountdownManager()) \
- app.append_manager(ConfigStoreManager())
+ app.append_manager(mgr.ConfigStoreManager())
app.append_manager(protocol.NetManager())
- app.append_manager(LocationManager())
- app.append_manager(AddrBookManager())
+ app.append_manager(mgr.LocationManager())
+ app.append_manager(mgr.AddrBookManager())
app.append_manager(mgr.MsgManager())
- app.append_manager(MsgdetailManager())
+ app.append_manager(mgr.MsgdetailManager())
app.append_manager(mgr.CallLogManager())
app.append_manager(mgr.getWeatherDataManager())
- app.append_manager(PhoneCallingManager())
- app.append_manager(ClockManager())
+ app.append_manager(mgr.PhoneCallingManager())
+ app.append_manager(mgr.ClockManager())
+ app.append_manager(mgr.sendDevinfoManager())
- app.append_manager(gethistoryDataManager())
- app.append_manager(getHrTimeManager())
- app.append_manager(getBrightnessManager())
+ app.append_manager(mgr.gethistoryDataManager())
+ app.append_manager(mgr.getHrTimeManager())
+ app.append_manager(mgr.getBrightnessManager())
- app.append_manager(getUpLoadDataManager())
- app.append_manager(getVolumSizeManager())
- app.append_manager(getTempTimeManager())
- app.append_manager(getplayAudiodStateManager())
- app.append_manager(getLowBatManager())
- app.append_manager(getBootOffManager())
- app.append_manager(getOldTimeManager())
- app.append_manager(getSosFlagManager())
- app.append_manager(CountdownManager())
- app.append_manager(sosInfoCallManager())
- app.append_manager(testSmsSetIPManager())
- app.append_manager(deleteSmsManager())
+ app.append_manager(mgr.getUpLoadDataManager())
+ app.append_manager(mgr.getVolumSizeManager())
+ app.append_manager(mgr.getTempTimeManager())
+ app.append_manager(mgr.getplayAudiodStateManager())
+ app.append_manager(mgr.getLowBatManager())
+ app.append_manager(mgr.getBootOffManager())
+ app.append_manager(mgr.getOldTimeManager())
+ app.append_manager(mgr.getSosFlagManager())
+ app.append_manager(mgr.CountdownManager())
+ app.append_manager(mgr.sosInfoCallManager())
+ app.append_manager(mgr.testSmsSetIPManager())
+ app.append_manager(mgr.deleteSmsManager())
EventMesh.debug_log("init21:{}".format(utime.localtime()))
pcr.add_support(protocol.REMIND_CH_REST_ProtoCol())
pcr.add_support(protocol.SLEEP_DATA_ProtoCol())
pcr.add_support(protocol.SLEEPTIME_ProtoCol())
+ pcr.add_support(protocol.FACTORY_ProtoCol())
sm = protocol.SockManager()
sm.add_support_resolver(pcr)
from misc import PWM
from led import led_mode,open_led_green,close_led_green,open_led_red,close_led_red,close_led_white
from queue import Queue
+
+heartbeat_time = 7*60 #心跳时间
+
def get_autoblood_value():#血压值
data = RTC().datetime()
hour = int(data[4])
self.bg_times = 0
+ self.bp_timeSecond = 0
+ self.bpauto_state = 0
+
+ self.spo2_timeSecond = 0
+ self.spo2auto_state = 0
+
self.vbat_count = 0
self.vbat_buf=[]
self.old_hr_time = 0
self.old_spo2_time = 0
self.BG_state = 0
+ self.bpauto_state = 0
+ self.spo2auto_state = 0
pass
def clear_temp_state(self,event,msg):
# EventMesh.publish(constants.EVENT.START_LOCATION,constants.PROTOCOL.UD_SEND) #开始UD定位
"""7分钟一次心跳"""
- if math.fabs(time_tmp - self.KA_time) > 7*60: #7分钟一次心跳
+ if math.fabs(time_tmp - self.KA_time) > heartbeat_time: #7分钟一次心跳
self.KA_time = time_tmp
EventMesh.publish(constants.PROTOCOL.KA_SEND)
#EventMesh.txt_log("NO status")
EventMesh.debug_log("NO status")
EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位
+
EventMesh.publish(constants.EVENT.PUSH_STEP, self.get_step_count())
"""电池平均值"""
data = RTC().datetime()
- hour = data[4]
- min = data[5]
+ hour = int(data[4])
+ min = int(data[5])
+
+
cur_month = int(data[1])
cur_day = int(data[2])
cur_year = int(data[0])
old_Timesec = EventMesh.publish("get_old_time_data")
- next_alarm_time = utime.localtime(int(old_Timesec))
- old_step_state = EventMesh.publish("get_old_step_data")
# EventMesh.debug_log("hour:{} {} cur_month:{} {} next_alarm_time:{} old_Timesec:{}".format(hour,min,cur_month,cur_day,next_alarm_time,old_Timesec))
- if old_step_state == None:
- old_step_state = 0
# EventMesh.debug_log("old_Timesec",old_Timesec)
- if old_Timesec != None and old_step_state != None:
- month = next_alarm_time[1] #00:00
- day = next_alarm_time[2]
- year = next_alarm_time[0]
+ if old_Timesec != None:
+ next_alarm_time = utime.localtime(int(old_Timesec))
+ month = int(next_alarm_time[1]) #00:00 18
+ day = int(next_alarm_time[2])
+ year = int(next_alarm_time[0])
if month != cur_month or day != cur_day or year != cur_year:#年 月 日只要其中一个都不一样就清零
- step = EventMesh.publish("get_old_step_value")
EventMesh.publish("set_old_time_data",time_tmp)
self.gsensor.reset_step()
+
EventMesh.publish("set_old_step_value",0)
hr = EventMesh.publish("get_old_hr_data")
spo2 = EventMesh.publish("get_old_spo2_data")
if spo2 != 0:
EventMesh.publish("set_old_spo2_data", 0)
- EventMesh.publish("set_old_step_data",[1,time_tmp])
EventMesh.debug_log("clear step1111")
else:
- EventMesh.publish("set_old_step_data",[4,time_tmp])
+ pass
if hour == 23:#清步数23:59
- if min <= 59 and min >= 58:#58 59
- clear_step_state = EventMesh.publish("get_old_step_data")
- if clear_step_state == None:
- clear_step_state = 0
- if self.clear_step == 0:
- self.clear_step = 1
- step = EventMesh.publish("get_old_step_value")
- EventMesh.publish("set_old_time_data",time_tmp)
- 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_step_data",[2,time_tmp])
- EventMesh.debug_log("clear step2222")
+ if min == 59:#58 59
+ # if self.clear_step == 0:
+ # self.clear_step = 1
+ EventMesh.publish("set_old_time_data",time_tmp)
+ 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.debug_log("clear step2222")
+
else:
- EventMesh.publish("set_old_step_data",[3,time_tmp])
self.clear_step = 0
else:
self.clear_step = 0
if battery[0] != '1':
self.no_smi_count+=10
# EventMesh.debug_log("self.no_smi_count",self.no_smi_count)
- if self.no_smi_count >= (15*60):
+ if self.no_smi_count >= (15*60):#(15*60)
self.no_smi_count = 0
- EventMesh.publish("open_power_on", 2)# #未检测到sim卡15分钟后关机
-
- if self.no_smi_state < 6:
- self.no_smi_state+=1
- if self.no_smi_state >= 6:#开机一分钟后提示未检测到sim卡
- EventMesh.publish("sim_no_cb")#未插卡
+ EventMesh.publish("open_power_on",2)# #未检测到sim卡15分钟后关机
else:
self.no_smi_count = 0
sms_data = sms.getSaveLoc()
sms_max = sms_data[0][2]
if msg_nums >= sms_max-1:
- EventMesh.publish("remove_all_sms_cb")#
+ EventMesh.publish("delete_sms_event")#
#佩戴检测
WEAR = EventMesh.publish(constants.EVENT.GET_WEAR)#佩戴数据
self.get_hr_state = 0
if self.get_spo2_state == None:
self.get_spo2_state = 0
-
- hr_time = {}
- hr_time = EventMesh.publish("get_time_hr_spo2")#获取时间是否大于0
-
- bg_time = {}
- bg_time = EventMesh.publish("get_bgauto_time")
call_state = EventMesh.publish("get_call_state")
if call_state == None:
# print("bp get_bp_state ",get_bp_state,self.old_bp_time)
+
+ if get_hr_state != None:
+ if get_hr_state == 3:
+ self.old_hr_time+=1
+ if self.old_hr_time == 1:
+ EventMesh.publish("set_hr_state",3)#2代表后台进入测试
+ # EventMesh.publish("set_hr_blood_led",1)
+ EventMesh.publish(constants.EVENT.START_HEART)
+ print("hr start 3")
+ elif self.old_hr_time > 6:
+ self.old_hr_time = 0
+ EventMesh.publish("set_hr_state",0)#2代表后台进入测试
+ EventMesh.debug_log("stop hr 3 debug3")
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+ EventMesh.debug_log("heart_value:{}".format(heart_value))
+ if heart_value > 50 and heart_value != None:
+ # EventMesh.publish("play_hr_value",heart_value)
+ EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
+ else:
+ # EventMesh.publish("play_hr_value",0)
+ pass
+ # EventMesh.publish("play_hr_value",0)
+ #获取心率数据上传数据app
+ EventMesh.debug_log("STOP_HEART:3")
+ else:
+ self.old_hr_time = 0
+ else:
+ self.old_hr_time = 0
+
+
+ if get_spo2_state != None:
+ if get_spo2_state == 3:
+ self.old_spo2_time+=1
+ if self.old_spo2_time == 1:
+ EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
+ # EventMesh.publish("set_hr_blood_led",1)
+ EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
+ print("spo2 start 3")
+ elif self.old_spo2_time > 6:
+ self.old_spo2_time = 0
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+ spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
+ if spo2_value > 85 and spo2_value != None:
+ # EventMesh.publish("play_spo2_value",spo2_value)
+ # EventMesh.publish("set_old_spo2_data",spo2_value)
+ EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+ else:
+ # EventMesh.publish("play_spo2_value",0)
+ print("spo2 stop 3")
+ else:
+ self.old_spo2_time = 0
+ else:
+ self.old_spo2_time = 0
+
+
if get_bp_state != None:
if get_bp_state == 3:
self.old_bp_time+=1
if self.old_bp_time == 1:
EventMesh.publish("set_bp_state",3)#2代表后台进入测试
- EventMesh.publish("set_hr_blood_led",1)
+ # EventMesh.publish("set_hr_blood_led",1)
EventMesh.publish(constants.EVENT.START_HEART)
print("bp start ")
elif self.old_bp_time > 6:
self.old_bp_time = 0
EventMesh.publish("set_bp_state",0)#2代表后台进入测试
- EventMesh.publish("stop_led_timer")#设置参数
+ # EventMesh.publish("stop_led_timer")#设置参数
blood_data = get_autoblood_value()
if blood_data == None:
blood_data[0] = 0
self.old_bg_time+=1
if self.old_bg_time == 1:
EventMesh.publish("set_bg_state",3)#2代表后台进入测试
- EventMesh.publish("set_hr_blood_led",1)
+ # EventMesh.publish("set_hr_blood_led",1)
EventMesh.publish(constants.EVENT.START_HEART)
print("bg start ")
elif self.old_bg_time > 6:
self.old_bg_time = 0
EventMesh.publish("set_bg_state",0)#2代表后台进入测试
- EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ # EventMesh.publish("stop_led_timer")#设置参数
bg_data = get_blood_sugar_value()
if bg_data == None:
bg_data = 0
if bg_data != 0:
+ # EventMesh.publish("play_sugar_value", bg_data)#播放血糖数值
EventMesh.publish(constants.PROTOCOL.BLOODGLUSOCE_SEND,bg_data)
- EventMesh.publish(constants.EVENT.STOP_HEART)
+ else:
+ # EventMesh.publish("play_sugar_value", 0)#播放血糖数值
+ pass
+
+
print("bg stop ")
else:
self.old_bg_time = 0
self.old_bg_time = 0
- if get_hr_state != None:
- if get_hr_state == 3:
- self.old_hr_time+=1
- if self.old_hr_time == 1:
- EventMesh.publish("set_hr_state",3)#2代表后台进入测试
- EventMesh.publish("set_hr_blood_led",1)
- EventMesh.publish(constants.EVENT.START_HEART)
- print("hr start 3")
- elif self.old_hr_time > 6:
- self.old_hr_time = 0
- EventMesh.publish("set_hr_state",0)#2代表后台进入测试
- EventMesh.debug_log("stop hr 3 debug3")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- EventMesh.debug_log("heart_value:{}".format(heart_value))
- if heart_value > 50 and heart_value != None:
- # EventMesh.publish("play_hr_value",heart_value)
- EventMesh.publish("set_history_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
- else:
- EventMesh.publish("stop_led_timer")#设置参数
- pass
- # EventMesh.publish("play_hr_value",0)
- #获取心率数据上传数据app
- EventMesh.debug_log("STOP_HEART:3")
- else:
- self.old_hr_time = 0
- else:
- self.old_hr_time = 0
-
-
- if get_spo2_state != None:
- if get_spo2_state == 3:
- self.old_spo2_time+=1
- if self.old_spo2_time == 1:
- EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
- EventMesh.publish("set_hr_blood_led",1)
- EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- print("spo2 start 3")
- elif self.old_spo2_time > 6:
- self.old_spo2_time = 0
- EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
- spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
- if spo2_value > 85 and spo2_value != None:
- # EventMesh.publish("play_spo2_value",0)
- EventMesh.publish("set_history_spo2_value",spo2_value)
- EventMesh.publish("set_old_spo2_data",spo2_value)
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- else:
- EventMesh.publish("stop_led_timer")#设置参数
- pass
- print("spo2 stop 3")
- # EventMesh.publish("play_spo2_value",0)
- else:
- self.old_spo2_time = 0
- else:
- self.old_spo2_time = 0
-
if get_temp_state != None:
if get_temp_state == 3:#单次测量
self.temp_one_state+=1
if self.temp_one_state == 1:
EventMesh.debug_log("AUTO one temp:2")
EventMesh.publish("set_temp_state",3)
- EventMesh.publish("set_hr_blood_led",1)
+ # EventMesh.publish("set_hr_blood_led",1)
EventMesh.publish(constants.EVENT.START_TEMP)
elif self.temp_one_state > 3:
self.temp_one_state = 0
if temp != None:
if temp != 0:
- EventMesh.publish("set_history_temp_value",temp)
+ # EventMesh.publish("set_history_temp_value",temp)
# EventMesh.publish("play_temp_value",temp)#播放体温数值
EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
else:
- EventMesh.publish("set_history_temp_value",0)
+ # EventMesh.publish("set_history_temp_value",0)
+ pass
# EventMesh.publish("play_temp_value",0)#播放体温数值
- EventMesh.publish("stop_led_timer")#设置参数
+ # EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_TEMP)
EventMesh.debug_log("AUTO once temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp))
+
# EventMesh.debug_log("get_temp_time:{} self.temp_one_state:{}".format(get_temp_time,self.temp_one_state))
if get_temp_time != None:#定时测量体温
else:
self.temp_state = 0
self.old_temp_time = 0
-
+ else:
+ temp_state = EventMesh.publish("get_temp_state")
+ if temp_state == 2:
+ EventMesh.publish("set_temp_state",0)#2代表后台进入测试
+ # EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.debug_log("temp stop debug3")
+ EventMesh.publish(constants.EVENT.STOP_TEMP)
+ self.temp_state = 0
+ self.temp_time = 0
+ self.old_temp_time = 0
+
+
+
+ hr_time = {}
+ hr_time = EventMesh.publish("get_time_hr_spo2")#获取时间是否大于0
+
if hr_time[0] != None:
self.mearsure_btn = int(hr_time[0])
self.mearsure_timer = int(hr_time[1])
EventMesh.debug_log("33stop debug3")
# EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_HEART)
-
+ get_spo2time = EventMesh.publish("get_spo2_time")#血压自动测试
+ # print("get_spo2time",get_spo2time)
+ if get_spo2time != None:#血压时间不为0
+ spo2_on = int(get_spo2time[0])
+ spo2_time = int(get_spo2time[1])
+ if spo2_on != 0 and spo2_time != 0:
+ get_hr_state = EventMesh.publish("get_hr_state")
+ get_spo2_state = EventMesh.publish("get_spo2_state")
+ get_bp_state = EventMesh.publish("get_bp_state")
+ get_bg_state = EventMesh.publish("get_bg_state")
+ # print("state bg2",get_hr_state,get_spo2_state,get_bp_state,get_bg_state)
+ if (get_hr_state == 0 and get_bp_state == 0 and get_bg_state == 0) and (get_spo2_state == 2 or get_spo2_state == 0):#心率血压血氧不在测试就测试血糖自动测量
+ if (time_tmp-self.spo2_timeSecond) >= spo2_time:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678
+ self.spo2_timeSecond = time_tmp
+ self.spo2auto_state = 0
+ # print("time_tmp spo2",time_tmp,self.spo2_timeSecond,time_tmp-self.spo2_timeSecond,self.bg_timer,self.bpauto_state)
+ if (time_tmp - self.spo2_timeSecond) == 0 and self.spo2auto_state == 0:
+ EventMesh.debug_log("START_spo2:auto")
+ EventMesh.publish("set_spo2_state",2)#2代表后台进入测试
+ EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
+ self.spo2auto_state = 1
+ elif (time_tmp - self.spo2_timeSecond) >= 60 and self.spo2auto_state == 1:
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+ spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
+ if spo2_value > 85 and spo2_value != None:
+ EventMesh.publish("set_old_spo2_data",spo2_value)
+ EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+ print("spo2 auto stop ")
+ self.spo2auto_state = 0
+ else:
+ self.spo2auto_state = 0
+ else:
+ self.spo2_timeSecond = 0
+ self.spo2auto_state = 0
+ spo2_state = EventMesh.publish("get_spo2_state")#心率
+ if spo2_state == 2:
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
+ EventMesh.debug_log("spo2 stop debug3")
+ # EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+
+
+ get_bptime = EventMesh.publish("get_bp_time")#血压自动测试
+ # print("get_bptime",get_bptime)
+ if get_bptime != None:#血压时间不为0
+ bp_on = int(get_bptime[0])
+ bp_time = int(get_bptime[1])
+ if bp_on != 0 and bp_time != 0:
+ get_hr_state = EventMesh.publish("get_hr_state")
+ get_spo2_state = EventMesh.publish("get_spo2_state")
+ get_bp_state = EventMesh.publish("get_bp_state")
+ get_bg_state = EventMesh.publish("get_bg_state")
+ # print("state bg2",get_hr_state,get_spo2_state,get_bp_state,get_bg_state)
+
+ if (get_hr_state == 0 and get_spo2_state == 0 and get_bg_state == 0) and (get_bp_state == 2 or get_bp_state == 0):#心率血压血氧不在测试就测试血糖自动测量
+ if (time_tmp-self.bp_timeSecond) >= bp_time:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678
+ self.bp_timeSecond = time_tmp
+ self.bpauto_state = 0
+ # print("time_tmp bp",time_tmp,self.bp_timeSecond,time_tmp-self.bp_timeSecond,self.bg_timer,self.bpauto_state)
+ if (time_tmp - self.bp_timeSecond) == 0 and self.bpauto_state == 0:
+ EventMesh.debug_log("START_bp:auto")
+ EventMesh.publish("set_bp_state",2)#2代表后台进入测试
+ # EventMesh.publish("set_hr_blood_led",1)
+ EventMesh.publish(constants.EVENT.START_HEART)
+ self.bpauto_state = 1
+ elif (time_tmp - self.bp_timeSecond) >= 60 and self.bpauto_state == 1:
+ EventMesh.publish("set_bp_state",0)#2代表后台进入测试
+ blood_data = get_autoblood_value()
+ if blood_data == None:
+ blood_data[0] = 0
+ blood_data[1] = 0
+
+ max_value = blood_data[0]
+ min_value = blood_data[1]
+ if max_value != 0 and min_value != 0:
+ EventMesh.publish("set_old_blood_data",[max_value,min_value])
+
+ EventMesh.publish(constants.PROTOCOL.BLOOD_SEND,[max_value,min_value])
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ print("bp auto stop ")
+ self.bpauto_state = 0
+ else:
+ self.bpauto_state = 0
+ else:
+ self.bp_timeSecond = 0
+ self.bpauto_state = 0
+ bp_state = EventMesh.publish("get_bp_state")#心率
+ if bp_state == 2:
+ EventMesh.publish("set_bp_state",0)#2代表后台进入测试
+ EventMesh.debug_log("bp stop debug3")
+ # EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+
+
+
+ bg_time = {}
+ bg_time = EventMesh.publish("get_bgauto_time")
if bg_time[0] != None:
- self.bg_btn = int(bg_time[0])
- self.bg_timer = int(bg_time[1])
+ bg_btn = int(bg_time[0])
+ bg_timer = int(bg_time[1])
# print("state bg2",self.bg_btn,self.bg_timer)
- if self.bg_btn >= 1 and self.bg_timer > 0:#开关打开并且时间大于0就可以测试血糖
+ if bg_btn >= 1 and bg_timer > 0:#开关打开并且时间大于0就可以测试血糖
get_hr_state = EventMesh.publish("get_hr_state")
get_spo2_state = EventMesh.publish("get_spo2_state")
get_bp_state = EventMesh.publish("get_bp_state")
# print("state bg2",get_hr_state,get_spo2_state,get_bp_state,get_bg_state)
if (get_hr_state == 0 and get_spo2_state == 0 and get_bp_state == 0) and (get_bg_state == 2 or get_bg_state == 0):#心率血压血氧不在测试就测试血糖自动测量
- if (time_tmp-self.bg_times) >= self.bg_timer:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678
+ if (time_tmp-self.bg_times) >= bg_timer:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678
self.bg_times = time_tmp
self.BG_state = 0
- # print("time_tmp bg",time_tmp,self.bg_times,time_tmp-self.bg_times,self.bg_timer,self.BG_state)
+ # print("time_tmp bg",time_tmp,self.bg_times,time_tmp-self.bg_times,bg_timer,self.BG_state)
if (time_tmp - self.bg_times) == 0 and self.BG_state == 0:
EventMesh.debug_log("START_bg:1")
EventMesh.publish("set_bg_state",2)#2代表后台进入测试
self.BG_state = 0
self.temp_time = time_tmp
+ self.bp_timeSecond = time_tmp
+ self.bpauto_state = 0
+
+ self.spo2_timeSecond = time_tmp
+ self.spo2auto_state = 0
+
self.temp_state = 0
self.temp_one_state = 0
self.old_temp_time = 0
if get_hr_state == 2 or get_hr_state == 3:
EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
- if get_hr_state == 3:
- EventMesh.publish("stop_led_timer")#设置参数
+ # if get_hr_state == 3:
+ # EventMesh.publish("stop_led_timer")#设置参数
EventMesh.debug_log("stop debug8")
EventMesh.publish(constants.EVENT.STOP_HEART)
elif get_spo2_state == 2 or get_spo2_state == 3:
EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
- if get_spo2_state == 3:
- EventMesh.publish("stop_led_timer")#设置参数
+ # if get_spo2_state == 3:
+ # EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
EventMesh.debug_log("stop debug13")
elif get_bp_state == 2 or get_bp_state == 3:
EventMesh.publish("set_bp_state",0)#2代表后台进入测试
- if get_bp_state == 3:
- EventMesh.publish("stop_led_timer")#设置参数
+ # if get_bp_state == 3:
+ # EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_HEART)
EventMesh.debug_log("stop debug14")
elif get_bg_state == 2 or get_bg_state == 3:
EventMesh.publish("set_bg_state",0)#2代表后台进入测试
- if get_bg_state == 3:
- EventMesh.publish("stop_led_timer")#设置参数
+ # if get_bg_state == 3:
+ # EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_HEART)
EventMesh.debug_log("stop debug15")
else:
EventMesh.publish("set_history_temp_value",0)
# EventMesh.publish("play_temp_value",0)#播放体温数值
- if get_temp_state == 3:
- EventMesh.publish("stop_led_timer")#设置参数
+ # if get_temp_state == 3:
+ # EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_TEMP)
# 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.normal_alarm()
#喝水提醒
self.drink_alarm()
#普通闹钟
def normal_alarm(self):
- date_tmp = utime.localtime()
- time_tmp = utime.mktime(date_tmp)
data = RTC().datetime()
hour = data[4]
min = data[5]
#吃药提醒
def medicine_alarm(self):
- date_tmp = utime.localtime()
- time_tmp = utime.mktime(date_tmp)
data = RTC().datetime()
hour = data[4]
min = data[5]
break
#该起床了
def wakeup_alarm(self):
- date_tmp = utime.localtime()
- time_tmp = utime.mktime(date_tmp)
data = RTC().datetime()
hour = data[4]
min = data[5]
#该睡觉了
def sleep_alarm(self):
- date_tmp = utime.localtime()
- time_tmp = utime.mktime(date_tmp)
data = RTC().datetime()
hour = data[4]
min = data[5]
j+=1
-
-
-
-
#该回家了
def home_alarm(self):
- date_tmp = utime.localtime()
- time_tmp = utime.mktime(date_tmp)
data = RTC().datetime()
hour = data[4]
min = data[5]
#该休息了
def reset_alarm(self):
- date_tmp = utime.localtime()
- time_tmp = utime.mktime(date_tmp)
data = RTC().datetime()
hour = data[4]
min = data[5]
"""
获取步数
"""
+ # print("11111:{}".format(EventMesh.publish("get_storage_config","clear_state3")))
XYZ = self.gsensor.get_x_y_z()
tmp = 0
-
+ step =[0,0,0,0]
tmp = self.gsensor.get_step()
# EventMesh.debug_log("x:%d,y:%d,z:%d tmp %d",XYZ[0],XYZ[1],XYZ[2],tmp)
- self.step[0]= tmp
- self.step[1] = XYZ[0]
- self.step[2] = XYZ[1]
- self.step[3] = XYZ[2]
-
- return self.step
+ step[0]= tmp
+ step[1] = XYZ[0]
+ step[2] = XYZ[1]
+ step[3] = XYZ[2]
+ # print("1222:{}".format(EventMesh.publish("get_storage_config","clear_state3")))
+ return step
def get_ic_cid(self, event, msg):
"""
ujson.dump(self.read_histroy_hr_data,fd)
pass
else:
+ EventMesh.publish("set_storage_config",["old_hr",msg])
pass
def set_old_step_value(self, event, msg):
self.oldstep = msg
+ EventMesh.publish("set_storage_config",["old_step",msg])
def get_old_step_value(self, event, msg):
EventMesh.subscribe("get_old_step_data", self.get_old_step_data)
EventMesh.subscribe("set_old_step_data", self.set_old_step_data)
+ EventMesh.subscribe("set_test_data1", self.set_test_data1)
+
+ EventMesh.subscribe("set_test_data2", self.set_test_data2)
+
+ EventMesh.subscribe("set_test_data3", self.set_test_data3)
+
+ EventMesh.subscribe("set_test_data4", self.set_test_data4)
+
+ EventMesh.subscribe("set_test_data5", self.set_test_data5)
+
+ EventMesh.subscribe("set_test_data6", self.set_test_data6)
+
+ EventMesh.subscribe("set_test_data7", self.set_test_data7)
+
+ EventMesh.subscribe("set_test_data8", self.set_test_data8)
+
+
+ def set_test_data1(self, event, msg):
+ EventMesh.publish("set_storage_config",["clear_state1",msg])
+
+
+ def set_test_data2(self, event, msg):
+
+ EventMesh.publish("set_storage_config",["clear_state2",msg])
+
+
+ def set_test_data3(self, event, msg):
+ EventMesh.publish("set_storage_config",["clear_state3",msg])
+
+ def set_test_data4(self, event, msg):
+ EventMesh.publish("set_storage_config",["clear_state4",msg])
+
+ def set_test_data5(self, event, msg):
+ EventMesh.publish("set_storage_config",["clear_state5",msg])
+
+ def set_test_data6(self, event, msg):
+ EventMesh.publish("set_storage_config",["clear_state6",msg])
+
+ def set_test_data7(self, event, msg):
+ EventMesh.publish("set_storage_config",["clear_state7",msg])
+
+ def set_test_data8(self, event, msg):
+ EventMesh.publish("set_storage_config",["clear_state8",msg])
+
+ # f = open("/usr/static/storage_file/config.json",'r',encoding="utf-8")
+ # print(f.read())
+
+ def get_old_step_data(self, event, msg):
+ return [self.time_step,self.step_second]
+
def get_old_time_data(self, event, msg):
return self.time_sec
if read_data != None:
self.set_time = read_data
- self.set_bptime = 0
+ self.get_bgstate = 0
self.get_bpstate = 0
- read_data = EventMesh.publish("get_storage_config","bp_time")
+ self.bptime_on = 0
+ self.bptime_time = 0
+ read_data=EventMesh.publish("get_storage_config","bpauto_btn")
if read_data != None:
- self.set_bptime = read_data
+ self.bptime_on = read_data
- self.set_bgtime = 0
- self.get_bgstate = 0
- read_data = EventMesh.publish("get_storage_config","bg_time")
+ EventMesh.publish("get_storage_config","bpauto_time")
+ if read_data != None:
+ self.bptime_time = read_data
+
+ self.spo2time_on = 0
+ self.spo2time_time = 0
+ read_data = EventMesh.publish("get_storage_config","spo2auto_btn")
+ if read_data != None:
+ self.spo2time_on = read_data
+ read_data = EventMesh.publish("get_storage_config","spo2auto_time")
if read_data != None:
- self.set_bgtime = read_data
+ self.spo2time_time = read_data
def post_processor_after_instantiation(self):
EventMesh.subscribe("set_temp_time", self.set_temp_time)
EventMesh.subscribe("set_bp_state", self.set_bp_state)
EventMesh.subscribe("get_bp_state", self.get_bp_state)
- EventMesh.subscribe("set_bg_time", self.set_bg_time)
- EventMesh.subscribe("get_bg_time", self.get_bg_time)
EventMesh.subscribe("set_bg_state", self.set_bg_state)
EventMesh.subscribe("get_bg_state", self.get_bg_state)
- def set_bg_time(self, event, msg):
- self.set_bgtime = msg
- EventMesh.publish("set_storage_config",["bg_time",self.set_time])
+ EventMesh.subscribe("set_spo2_time", self.set_spo2_time)
+ EventMesh.subscribe("get_spo2_time", self.get_spo2_time)
- def get_bg_time(self, event, msg):
- if self.set_bgtime:
- return self.set_bgtime
- else :
- return 0
def set_bg_state(self, event, msg):
self.get_bgstate = msg
else :
return 0
+ def set_spo2_time(self, event, msg):
+ self.spo2time_on = msg[0]
+ self.spo2time_time = msg[1]
+ EventMesh.publish("set_storage_config",["spo2auto_btn",self.spo2time_on])
+ EventMesh.publish("set_storage_config",["spo2auto_time",self.spo2time_time])
+ def get_spo2_time(self, event, msg):
+
+ return [self.spo2time_on,self.spo2time_time]
+
def set_bp_time(self, event, msg):
- self.set_bptime = msg
- EventMesh.publish("set_storage_config",["bp_time",self.set_time])
+ self.bptime_on = msg[0]
+ self.bptime_time = msg[1]
+ EventMesh.publish("set_storage_config",["bpauto_btn",self.bptime_on])
+ EventMesh.publish("set_storage_config",["bpauto_time",self.bptime_time])
def get_bp_time(self, event, msg):
- if self.set_bptime:
- return self.set_bptime
- else :
- return 0
+ if self.bptime_on == None:
+ self.bptime_on = 0
+ if self.bptime_time == None:
+ self.bptime_time = 0
+ return [self.bptime_on,self.bptime_time]
+
def set_bp_state(self, event, msg):
self.get_bpstate = msg
# EventMesh.debug_log("set_storage_key_data2:{}".format(self.config_data[msg[0]]))
EventMesh.publish("publish_message_event_ui",{"func":self.set_storage_save,"data":0})
def set_storage_save(self, data):
- with open("/usr/static/storage_file/config.json",'w+',encoding="utf-8") as fd:
- ujson.dump(self.config_data,fd)
+ with open("/usr/static/storage_file/config.json",'w+',encoding="utf-8") as fd:
+ ujson.dump(self.config_data,fd)
def get_storage_data(self, event, msg):
# EventMesh.debug_log("get_storage_data:{}".format(self.config_data))
return self.config_data
#定位频率
class getUpLoadDataManager(Abstract):#
def __init__(self):
- self.upload_time = 1800
+ self.upload_time = 2*60*60
read_data = EventMesh.publish("get_storage_config","upload_time")
if read_data != None:
self.upload_time = read_data
-
def post_processor_after_instantiation(self):
EventMesh.subscribe("set_upload_data", self.set_upload_data)
self.upload_time = msg
def get_upload_data(self, event, msg):
+ if self.upload_time == None:
+ self.upload_time = 2*60*60
return self.upload_time
class getplayAudiodStateManager(Abstract):#获取设置播放音频状态
if read_data != None:
self.poweroff_time = read_data
else:
- self.poweroff_time = [{"poweroff_on":1,"start_hour":6,"start_min":0,"end_hour":0,"end_min":0}]
+ self.poweroff_time = [{"poweroff_on":0,"start_hour":6,"start_min":0,"end_hour":0,"end_min":0}]
def set_boot_off_time(self, event, msg):
EventMesh.debug_log("set_boot_off_time",msg)
+
EventMesh.publish("set_storage_config",["poweroff_alarm",msg])
self.poweroff_time = msg
EventMesh.publish("set_rtc_alarm")
return [self.newip,self.newcom]
+# MMI Version:UIX8910_C55_DS_D12G_PRO18_FZD_V1.0_Release
+# Build:07-07-2022 16:12:58
+# IMEI:861218001025267
+# IP:api.xcloudtech.com
+# PORT:9000
+# UPLOAD:300
+# Battery:3948, 64
+# Udebug: 0
+# ConnectTime: 7
+import protocol
+
+class sendDevinfoManager(Abstract):#发送设备信息
+ def __init__(self):
+ self.timer = osTimer()
+ pass
+
+ def post_processor_after_instantiation(self):
+ EventMesh.subscribe("send_devinfo_event", self.send_devinfo_event)#删除短信
+
+ def send_devinfo_event(self, event, msg):
+ number = str(msg)
+ versions = EventMesh.softversion
+ Build = EventMesh.builTime
+ IMEI = EventMesh.publish(constants.EVENT.GET_IMEI)
+ IP = ""
+ new_ip = EventMesh.publish("get_storage_config","set_new_ip_addr")
+ new_com = EventMesh.publish("get_storage_config","set_new_com")
+ server_data = protocol.server_init()
+
+ if new_ip != None:
+ if len(new_ip) != 0:
+ IP = new_ip
+ else:
+ IP = server_data[0]
+ else:
+ IP = server_data[0]
+
+ PORT = ''
+ if new_com != None:
+ if len(new_com) != 0:
+ PORT = new_com
+ else:
+ PORT = server_data[1]
+ else:
+ PORT = server_data[1]
+
+ UPLOAD = EventMesh.publish("get_upload_data")
+
+ level = EventMesh.publish("get_curr_battery_level")
+ if level == None:
+ level = 4200
+ bat = EventMesh.publish("screen_get_battery")[1]
+ if bat == None:
+ bat = 100
+ Battery = str(level) +',' + str(bat)
+
+ ConnectTime = heartbeat_time//60
+ data1 = "Version:{}\nBuild:{}".format(versions,Build)
+
+ data2 = "IMEI:{}\nIP:{}\nPORT:{}".format(IMEI,IP,PORT)
+
+ data3 = "UPLOAD:{}\nBattery:{}\nConnectTime:{}".format(UPLOAD,Battery,ConnectTime)
+
+ send_state1 = -1
+ send_state2 = -1
+ # print("data",data1,data2,data3)
+ send_state1 = sms.sendPduMsg(number, data1, 'UCS2')
+
+ if send_state1 == 0:
+ send_state2 = sms.sendPduMsg(number, data2, 'UCS2')
+
+ if send_state2 == 0:
+ sms.sendPduMsg(number, data3, 'UCS2')
+
+
class deleteSmsManager(Abstract):#删除信息
def __init__(self):
self.timer = osTimer()
if end_min_total == current_minute:#结束的时间分钟等于关机时间分钟数则关机
ubs_state = EventMesh.publish("get_usb")#'
-
+ if ubs_state == 2 or ubs_state == 0:
- if next_minute >= current_minute:#开机时间大于当前时间 9:00 > = 8:00
- interval_minute = next_minute - current_minute
+ if next_minute > current_minute:#开机时间大于当前时间 9:00 > = 8:00
+ interval_minute = next_minute - current_minute
+
+ EventMesh.debug_log("开机距离下一次响铃的的分钟数:", interval_minute,next_minute)
+ else:#8:00 9:00
+ #7*60*24 7天一个周期 7*60*24 -
+ interval_minute = next_minute + (24*60-current_minute)
+ EventMesh.debug_log("开机08888距离下一次响铃的的分钟数:", interval_minute,next_minute)
+
+ #反向获取时间戳
+ time = utime.localtime()
+ EventMesh.debug_log("开机9获取utime的时间戳:", time)
+ rtc_mktime = utime.mktime(time)-time[5]
+ EventMesh.debug_log("开机10反向获取utime的mktime:", rtc_mktime)
+
+ #加上下一次响铃需要的时间
+ next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
+ EventMesh.debug_log("开机11下一次响铃的mktime:", next_alarm_mktime)
+
+ #格式化时间戳,得到下一次闹钟的时间
+ next_alarm_time = utime.localtime(next_alarm_mktime)
+ EventMesh.debug_log("开机12下一次响铃的准确时间:", next_alarm_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_e=tuple(data_l)
+ EventMesh.debug_log("开机13将该时间转换为RTC元组:", data_e)
- EventMesh.debug_log("开机距离下一次响铃的的分钟数:", interval_minute,next_minute)
- else:#8:00 9:00
- #7*60*24 7天一个周期 7*60*24 -
- interval_minute = next_minute + (24*60-current_minute)
- EventMesh.debug_log("开机08888距离下一次响铃的的分钟数:", interval_minute,next_minute)
-
- #反向获取时间戳
- time = utime.localtime()
- EventMesh.debug_log("开机9获取utime的时间戳:", time)
- rtc_mktime = utime.mktime(time)-time[5]
- EventMesh.debug_log("开机10反向获取utime的mktime:", rtc_mktime)
-
- #加上下一次响铃需要的时间
- next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
- EventMesh.debug_log("开机11下一次响铃的mktime:", next_alarm_mktime)
-
- #格式化时间戳,得到下一次闹钟的时间
- next_alarm_time = utime.localtime(next_alarm_mktime)
- EventMesh.debug_log("开机12下一次响铃的准确时间:", next_alarm_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_e=tuple(data_l)
- EventMesh.debug_log("开机13将该时间转换为RTC元组:", data_e)
-
- self.rtc.register_callback(self._rtc_callback)
+ self.rtc.register_callback(self._rtc_callback)
- FLAG = self.rtc.set_alarm(data_e)
- if FLAG == 0:
- EventMesh.debug_log("开机11成功设置rtc的到期时间:", data_e)
- else:
- EventMesh.debug_log("开机时设置rtc的到期时间失败:", data_e)
- self.rtc.enable_alarm(1)
- if ubs_state == 2 or ubs_state == 0:
+ FLAG = self.rtc.set_alarm(data_e)
+ if FLAG == 0:
+ EventMesh.debug_log("开机11成功设置rtc的到期时间:", data_e)
+ else:
+ EventMesh.debug_log("开机时设置rtc的到期时间失败:", data_e)
+ self.rtc.enable_alarm(1)
+
EventMesh.debug_log("结束时设置rtc的到期时间失败:", data_e)
EventMesh.publish("open_power_on", 5)#静音关机
return
else:
- EventMesh.debug_log("充电关机失败:", data_e)
+ EventMesh.publish("set_rtc_alarm")
#self.rtc.datetime([2023, 12, 1, 5, 5, 59, 30, 0])
return
msg_data = EventMesh.publish("get_boot_off_time")
if msg_data != None:
power_offdata = msg_data[0]
- start_hour = power_offdata["start_hour"]
- start_min = power_offdata["start_min"]
- end_hour = power_offdata["end_hour"]
- end_min = power_offdata["end_min"]
-
- next_minute = start_hour*60+start_min #10:11
-
- start_total = start_hour*60+start_min #10:11
- end_total = end_hour*60+end_min #10:11
- rtc_now_time = self.rtc.datetime()
- current_minute = rtc_now_time[4]*60 + rtc_now_time[5]#当前时间
-
- minute_list = []
- minute_list.append(start_total)#23*60=
- minute_list.append(end_total)
- minute_list.append(current_minute)#[460,480,340]
- minute_list = sorted(minute_list)
- current_index = minute_list.index(current_minute)
- # print("minute_list",minute_list,start_total,end_total,current_index,power_offdata)
-
-
- 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)
+ start_hour = int(power_offdata["start_hour"])
+ start_min = int(power_offdata["start_min"])
+ end_hour = int(power_offdata["end_hour"])
+ end_min = int(power_offdata["end_min"])
+ off_on = int(power_offdata["poweroff_on"])
+ if off_on == 1:
+ next_minute = start_hour*60+start_min #10:11
+
+ start_total = start_hour*60+start_min #10:11
+ end_total = end_hour*60+end_min #10:11
+ rtc_now_time = self.rtc.datetime()
+ current_minute = rtc_now_time[4]*60 + rtc_now_time[5]#当前时间
+
+
+ minute_list = []
+ if start_total != current_minute:
+ minute_list.append(start_total)#23*60=
+ if end_total != current_minute:
+ minute_list.append(end_total)
+ minute_list.append(current_minute)#[927,927,930]
+ minute_list = sorted(minute_list)
+ current_index = minute_list.index(current_minute)
+ print("minute_list",minute_list,start_total,end_total,current_index,power_offdata)
+
+
+ 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("08下一个闹钟的分钟数:", next_minute)
- if next_minute >= current_minute:
- interval_minute = next_minute - current_minute
- print("08距离下一次响铃的的分钟数:", interval_minute)
- else:
- interval_minute = (24*60 - current_minute) + next_minute
- print("08距离下一次响铃的的分钟数:", interval_minute)
-
-
- #反向获取时间戳
- time = utime.localtime()
- EventMesh.debug_log("关机09获取utime的时间戳:", time)
- time
- rtc_mktime = utime.mktime(time)-time[5]
- EventMesh.debug_log("关机10反向获取utime的mktime:", rtc_mktime)
-
- #加上下一次响铃需要的时间
- next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
- EventMesh.debug_log("关机11下一次响铃的mktime:", next_alarm_mktime)
-
- #格式化时间戳,得到下一次闹钟的时间
- next_alarm_time = utime.localtime(next_alarm_mktime)
- EventMesh.debug_log("关机12下一次响铃的准确时间:", next_alarm_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_e=tuple(data_l)
- EventMesh.debug_log("关机13将该时间转换为RTC元组:", data_e)
-
- self.rtc.register_callback(self._rtc_callback)
+ print("minute_list1",minute_list,current_index,next_minute)
+ if next_minute > current_minute:
+ interval_minute = next_minute - current_minute
+ print("09距离下一次响铃的的分钟数:", interval_minute)#14 31 14 29 14 31 24*60-
+ else:
+ interval_minute = (24*60 - current_minute) + next_minute
+ print("10距离下一次响铃的的分钟数:", interval_minute)
+
+
+ #反向获取时间戳
+ time = utime.localtime()
+ EventMesh.debug_log("关机09获取utime的时间戳:", time)
+ time
+ rtc_mktime = utime.mktime(time)-time[5]
+ EventMesh.debug_log("关机10反向获取utime的mktime:", rtc_mktime)
+
+ #加上下一次响铃需要的时间
+ next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
+ EventMesh.debug_log("关机11下一次响铃的mktime:", next_alarm_mktime)
+
+ #格式化时间戳,得到下一次闹钟的时间
+ next_alarm_time = utime.localtime(next_alarm_mktime)
+ EventMesh.debug_log("关机12下一次响铃的准确时间:", next_alarm_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_e=tuple(data_l)
+ EventMesh.debug_log("关机13将该时间转换为RTC元组:", data_e)
+
+ self.rtc.register_callback(self._rtc_callback)
- FLAG = self.rtc.set_alarm(data_e)
- if FLAG == 0:
- EventMesh.debug_log("关机11成功设置rtc的到期时间:", data_e)
+ FLAG = self.rtc.set_alarm(data_e)
+ if FLAG == 0:
+ EventMesh.debug_log("关机11成功设置rtc的到期时间:", data_e)
+ else:
+ EventMesh.debug_log("关机时设置rtc的到期时间失败:", data_e)
+ self.rtc.enable_alarm(1)
else:
- EventMesh.debug_log("关机时设置rtc的到期时间失败:", data_e)
- self.rtc.enable_alarm(1)
+ self.rtc.enable_alarm(0)
def server_init(server_type = None):
- #服务器选择1,防走丢,2大锤,3三基同创,4童信,5云米,6荣为 8:ds未知 dey.hinwatch. com:9968 9:183.62.239.121:31869
+ #服务器选择1,防走丢,2大锤,3三基同创,4童信,5云米,6荣为 8:ds未知 dey.hinwatch. com:9968 9:183.62.239.121:31869 10:183.62.239.121:33461
if server_type == None:
server_type = 1
#EventMesh.debug_log("server_init:server_type:{}".format(server_type))
elif server_type == 9:
d_server_addr = "183.62.239.121"
d_server_port = 31869
+ elif server_type == 10:
+ d_server_addr = "183.62.239.121"
+ d_server_port = 33461
return [d_server_addr,d_server_port,d_md5_key,d_PID]
from queue import Queue
utime.sleep(1)
def send(self, topic, msg):
- EventMesh.debug_log("TCP:send data:{}".format(msg))
+ # EventMesh.debug_log("TCP:send data:{}".format(msg))
if EventMesh.publish("get_sim_Status") != 1: #没sim,则不发送
EventMesh.publish(constants.EVENT.SET_CONNECT, 0)#标记断网
EventMesh.debug_log("dataCall not connect")
self.roll_count = 0
- # EventMesh.debug_log("ka roll_count:",roll_count)
+ # EventMesh.debug_log("ka roll_count:",self.roll_count)
battery_caption = bat_tmp[1]
msg_tmp = msg_tmp[1]
EventMesh.debug_log("HRSTART_ProtoCol RECV msg:{} msg_:{}".format(msg,msg_tmp))
hrTotal = int(msg_tmp)
- if hrTotal == 0:#关闭自动测量
- EventMesh.debug_log("HRSTART_ 1")
- EventMesh.publish("set_time_hr_spo2",[0,0])
+ if hrTotal == 1:#单次测量
+ EventMesh.debug_log("HRSTART_ 2".format(hrTotal))
+ get_hr_state = EventMesh.publish("get_hr_state")
+ get_spo2_state = EventMesh.publish("get_spo2_state")
+ get_bp_state = EventMesh.publish("get_bp_state")
+ get_bg_state = EventMesh.publish("get_bg_state")
+ # if (get_hr_state == 3 ) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
+ if (get_spo2_state == 0 and get_hr_state == 0 and get_bg_state == 0 and get_bp_state == 0):
+ battery = EventMesh.publish("screen_get_battery")
+ if battery != None:
+ if battery[0] != "1":
+ EventMesh.publish("set_hr_state",3)#3代表单次测量
+ pass
else:
- if hrTotal == 1:#单次测量
- EventMesh.debug_log("HRSTART_ 2".format(hrTotal))
- get_hr_state = EventMesh.publish("get_hr_state")
- get_spo2_state = EventMesh.publish("get_spo2_state")
- # if (get_hr_state == 3 ) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
- if (get_spo2_state == 0 and get_hr_state == 0):
- battery = EventMesh.publish("screen_get_battery")
- if battery != None:
- if battery[0] != "1":
- EventMesh.publish("set_hr_state",3)#3代表单次测量
- pass
- else:
- if hrTotal > 0 and hrTotal <= 300:
- hrTotal = 300
- elif hrTotal >= 65536:
- hrTotal = 65536
- EventMesh.debug_log("HRSTART_ 3".format(hrTotal))
- EventMesh.publish("set_time_hr_spo2",[1,hrTotal])
+ if hrTotal > 0 and hrTotal <= 300:
+ hrTotal = 300
+ elif hrTotal >= 65536:
+ hrTotal = 65536
+ EventMesh.debug_log("HRSTART_ 3".format(hrTotal))
+ on = 0
+ if hrTotal != 0:
+ on = 1
+ EventMesh.publish("set_time_hr_spo2",[on,hrTotal])
EventMesh.publish(constants.PROTOCOL.HRTSTART_SEND)
msg_tmp = msg.decode('ascii')
msg_tmp = msg_tmp.split(',')
msg_tmp = msg_tmp[1]
- state = int(msg_tmp)
- get_hr_state = EventMesh.publish("get_hr_state")
- get_spo2_state = EventMesh.publish("get_spo2_state")
- if state == 1:
- # if (get_hr_state == 3 ) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
- if (get_spo2_state == 0 and get_hr_state == 0):
+
+ oxstartTotal = int(msg_tmp)
+ # oxstartTotal = 300
+ print("oxstartTotal:{}".format(oxstartTotal))
+ if oxstartTotal == 1:#单次测量
+ get_bp_state = EventMesh.publish("get_bp_state")
+ get_hr_state = EventMesh.publish("get_hr_state")
+ get_spo2_state = EventMesh.publish("get_spo2_state")
+ get_bg_state = EventMesh.publish("get_bp_state")
+ print("get_bp_state:{}".format(get_bp_state))
+ if get_bp_state == 0 and get_hr_state == 0 and get_spo2_state == 0 and get_bg_state == 0:#只要两个不在测量 单次优先级最低
battery = EventMesh.publish("screen_get_battery")
if battery != None:
if battery[0] != "1":
EventMesh.publish("set_spo2_state",3)#3代表单次测量
+ else:
+ if oxstartTotal > 0 and oxstartTotal <= 300:
+ oxstartTotal = 300
+ elif oxstartTotal >= 65536:
+ oxstartTotal = 65536
+
+ # if oxstartTotal == 0:#关闭自动测量
+ # EventMesh.debug_log("bpSTART_ 1")
+ # EventMesh.publish("set_spo2_time",[0,0])
+ # else:
+ on = 0
+ if oxstartTotal != 0:
+ on = 1
+ EventMesh.publish("set_spo2_time",[on,oxstartTotal])
+
EventMesh.publish(constants.PROTOCOL.OXSTART_SEND)
class TEMP_ProtoCol(ProtoCol):
msg_tmp = msg_tmp[1]
bldstartTotal = int(msg_tmp)
+ # bldstartTotal = 300
print("bldstartTotal:{}".format(bldstartTotal))
if bldstartTotal == 1:#单次测量
get_bp_state = EventMesh.publish("get_bp_state")
get_hr_state = EventMesh.publish("get_hr_state")
get_spo2_state = EventMesh.publish("get_spo2_state")
+ get_bg_state = EventMesh.publish("get_bg_state")
print("get_bp_state:{}".format(get_bp_state))
- if get_bp_state == 0 and get_hr_state == 0 and get_spo2_state == 0:#只要两个不在测量 单次优先级最低
+ if get_bp_state == 0 and get_hr_state == 0 and get_spo2_state == 0 and get_bg_state == 0:#只要两个不在测量 单次优先级最低
battery = EventMesh.publish("screen_get_battery")
if battery != None:
if battery[0] != "1":
bldstartTotal = 300
elif bldstartTotal >= 65536:
bldstartTotal = 65536
- EventMesh.publish("set_bp_time", bldstartTotal)
+
+ on = 0
+ if bldstartTotal != 0:#关闭自动测量
+ on = 1
+ print("on:{} bldstartTotal:{} ".format(on,bldstartTotal))
+ EventMesh.publish("set_bp_time",[on,bldstartTotal])
EventMesh.publish(constants.PROTOCOL.BLDSTART_SEND)
elif bgstartTotal >= 65536:
bgstartTotal = 65536
- if bgstartTotal == 0:#关闭自动测量
- EventMesh.debug_log("bgSTART_ 1")
- EventMesh.publish("set_bgauto_time",[0,0])
- else:
- EventMesh.publish("set_bgauto_time",[1,bgstartTotal])
+ # if bgstartTotal == 0:#关闭自动测量
+ # EventMesh.debug_log("bgSTART_ 1")
+ # EventMesh.publish("set_bgauto_time",[0,0])
+ # else:
+ on = 0
+ if bgstartTotal != 0:
+ on = 1
+ EventMesh.publish("set_bgauto_time",[on,bgstartTotal])
EventMesh.publish(constants.PROTOCOL.BGSTART_SEND)
# EventMesh.debug_log("sosHome_dial_ProtoCol:send data :{} {}".format(len(msg_tmp),msg_tmp))
#b'[SZKW*860132060006970*0015*sosHome_dial_ProtoCol,15521469561,10086,15521469561]'
+ # print("sosnumber msg_tmp",msg_tmp)
i = 0
for i in range(len(msg_tmp)-1):
# EventMesh.debug_log("sos:send data :{}".format(msg_tmp[i+1]))
if len(msg_tmp[i+1]) != 0:
EventMesh.publish("set_storage_config",["SOS_NUMBER{}".format(i+1),msg_tmp[i+1]])
- # EventMesh.debug_log("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]])
timeSecond = int(msg_data[1])
#EventMesh.debug_log("type {} timeSecond {}".format((msg_data[1]),timeSecond))
+ # timeSecond = 1703001360
next_alarm_time = utime.localtime(timeSecond)
#EventMesh.debug_log("next_alarm_time",next_alarm_time)
#EventMesh.debug_log("local time",msg)
EventMesh.publish(constants.PROTOCOL.SLEEPTIME_SEND)
+# 平台发送:
+# [XT*YYYYYYYYYYYYYYY*LEN*FACTORY]
+# 实例:[XT*334588000000156*0007*FACTORY]
+# 终端回复:
+# [XT*YYYYYYYYYYYYYYY*LEN*FACTORY]
+# 实例:[XT*334588000000156*0007*FACTORY]
+# 说明:终端恢复出厂设置,里面设置的号码都将清空
+class FACTORY_ProtoCol(ProtoCol):#睡眠时间
+ """
+ 实例:[XT*334588000000156*0008*FACTORY]
+ 终端回复
+ [XT*YYYYYYYYYYYYYYY*LEN*WLKEY]
+ 实例:[XT*334588000000156*0006*FACTORY]
+ """
+ TYPE = "FACTORY"
+
+ def send(self, event, msg):
+ send_data = self.PID+"*%s*0007*FACTORY"%(self.imei)
+ MD5_SIGN = self.pack_MD5_head(send_data)
+ data = "[%s%s,%s]"%(str(MD5_SIGN),send_data,msg)
+ EventMesh.debug_log("FACTORY:send:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+ def recv(self, event, msg):
+
+ EventMesh.debug_log("FACTORY!!!!!!!!!")
+ # msg = msg[1:-1]
+ # msg_tmp = msg.decode('ascii')
+ # msg_data = msg_tmp.split(',')
+ # EventMesh.debug_log("WLKEY_ProtoCol".format(msg_data[1]))
+ # EventMesh.publish("set_storage_config",["WLKEY",msg_data[1]])
+
+ EventMesh.publish(constants.PROTOCOL.FACTORY_SEND)
+ EventMesh.publish("app_factory",None)#app恢复出厂
+
class ProtoColResolver(object):
def __init__(self):
self.protocol_list = []
tmp = sms.searchTextMsg(index)
detail = tmp[1]#内容
# EventMesh.debug_log("msg_cb:detail {}".format,detail)
+
if detail.find("SETIP:") != -1:#寻找是否有这个字符串
tmp_test = detail.split("SETIP:")[1]
if tmp_test.find(":") != -1:
new_com = tmp_test.split(':')[1]
# new_md5 = detail.split(':')[3]
if len(new_ip) > 0 and len(new_com) > 0:
- EventMesh.publish("set_new_ip", [new_ip,new_com,tmp[0]])#设置关机时间
+ EventMesh.publish("set_new_ip", [new_ip,new_com,tmp[0]])#
# EventMesh.publish("set_new_ip", [new_ip,new_com,new_md5])#设置关机时间
+ if detail.find("ts#") != -1:
+ EventMesh.publish("send_devinfo_event", tmp[0])#删除短信
+ pass
+ if detail.find("fact#") != -1:#恢复出厂设置
+ EventMesh.publish("app_factory",tmp[0])#app恢复出厂
+
+ if detail.find("rest#") != -1:#重启
+ EventMesh.publish("app_restart",tmp[0])#
if index >= sms_max-1:#删除短信
EventMesh.publish("delete_sms_event")#删除短信
import usys
import uos
import utime
+import versions
+
+MODEL = "K01_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
+
+
+
+
class EventStore(object):
def __init__(self):
self.map = dict()
version_label3.set_pos(10, 25)
version_label3.set_size(118, 40)
version_label3.set_long_mode(lv.label.LONG.WRAP)
-version_label3.set_text(versions.Version)
+version_label3.set_text(EventMesh.version)
version_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 10)
version_label3.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
version_label6.set_pos(10, 75)
version_label6.set_size(118, 40)
version_label6.set_long_mode(lv.label.LONG.WRAP)
-version_label6.set_text(versions.Build_Time)
+version_label6.set_text(EventMesh.builTime)
version_label6.set_style_text_align(lv.TEXT_ALIGN.LEFT, 10)
version_label6.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
import _thread
import usys
+import versions
+
+MODEL = "K5_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
class EventStore(object):
def __init__(self):
version_label3.set_pos(10, 70)
version_label3.set_size(230, 30)
version_label3.set_long_mode(lv.label.LONG.WRAP)
-version_label3.set_text(versions.Version)
+version_label3.set_text(EventMesh.version)
version_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
version_label3.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
version_label6.set_pos(10, 160)
version_label6.set_size(230, 60)
version_label6.set_long_mode(lv.label.LONG.WRAP)
-version_label6.set_text(versions.Build_Time)
+version_label6.set_text(EventMesh.builTime)
version_label6.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
version_label6.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
import _thread
import usys
+import versions
+MODEL = "S6_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
class EventStore(object):
def __init__(self):