wechat_obj.add_flag(lv.obj.FLAG.HIDDEN)
wechat_btn.add_flag(lv.obj.FLAG.CLICKABLE)
wechat_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.play_label_cb(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
self.wechat_list_dict.append({"num":i,"wechat_obj":wechat_obj,"wechat_btn":wechat_btn,"_btn_label1":_btn_label1,"_btn_label2":_btn_label2,"_btn_img":_btn_img})
EventMesh.subscribe("wechat_updata_list_show", self.wechat_updata_list_show)
buf = bytearray(ql_fs.path_getsize(path))
fd.readinto(buf)
senddata = [self.countdown_old,buf]
- EventMesh.publish(constants.PROTOCOL.TK_SEND,senddata)
+ EventMesh.publish(constants.PROTOCOL.TKS_SEND,senddata)
Wechat_log("sending2")
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
elif get_bp_state > 1:
EventMesh.publish("set_bp_state",0)#2代表后台进入测试
+ self.old_bp_time = 0
EventMesh.publish(constants.EVENT.STOP_HEART)
get_hr_state = EventMesh.publish("get_hr_state")
get_spo2_state = EventMesh.publish("get_spo2_state")
get_bp_state = EventMesh.publish("get_bp_state")
+
+ if get_hr_state == None:
+ get_hr_state = 0
+
+ if get_spo2_state == None:
+ get_spo2_state = 0
+
+ if get_bp_state == None:
+ get_bp_state = 0
+
+
if get_bp_state != None:
if get_bp_state == 3:
self.old_bp_time+=1
EventMesh.publish(constants.EVENT.STOP_TEMP)
print("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.publish("set_temp_state",0)
-
- self.mearsure_btn = int(hr_time[0])
- self.mearsure_timer = int(hr_time[1])
- if self.mearsure_btn != None and self.mearsure_timer != None:
- if get_hr_state != None and get_bp_state != None:
- if get_bp_state == 0:
- print("hr......01....{} {}\r\n".format(hr_time[0],hr_time[1]))
- if self.mearsure_btn > 0:
- if self.mearsure_timer > 0:
- #print("get_hr_state:{} get_spo2_state:{} self.old_time:{} mearsure_timer:{}".format(self.get_hr_state,self.get_spo2_state,self.old_time,mearsure_timer))
- if self.get_hr_state != 1 and self.get_spo2_state != 1:
- if self.get_hr_state == 0 and self.get_spo2_state == 0:
- if self.HR_state == 0 or self.HR_state == 3:
+
+ if hr_time[0] != None:
+ self.mearsure_btn = int(hr_time[0])
+ self.mearsure_timer = int(hr_time[1])
+ if self.mearsure_btn != None and self.mearsure_timer != None:
+ if get_hr_state != None and get_bp_state != None:
+ if get_bp_state == 0:
+ print("hr......01....{} {}\r\n".format(hr_time[0],hr_time[1]))
+ if self.mearsure_btn > 0:
+ if self.mearsure_timer > 0:
+ #print("get_hr_state:{} get_spo2_state:{} self.old_time:{} mearsure_timer:{}".format(self.get_hr_state,self.get_spo2_state,self.old_time,mearsure_timer))
+ if self.get_hr_state != 1 and self.get_spo2_state != 1:
+ if self.get_hr_state == 0 and self.get_spo2_state == 0:
+ if self.HR_state == 0 or self.HR_state == 3:
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+
+ if self.old_time != self.mearsure_timer:#重复修改测量间隔时间
+ self.SENSOR_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量
+ if self.get_hr_state == 2 and self.HR_state == 1:#自动检测的心率还在测量立马关了测试
+ heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+ if heart_value > 50 and heart_value != None:
+ EventMesh.publish("set_old_hr_data",heart_value)
+ EventMesh.publish("set_history_hr_value",heart_value)
+ EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)
+ print("stop debug1")
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ self.HR_state = 0
+ elif self.get_spo2_state == 2 and self.HR_state == 2:
+ self.HR_state = 0
+ 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("set_history_spo2_value",spo2_value)
+ EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+ self.old_time = self.mearsure_timer
+
+ if self.HR_state == 3 or self.HR_state == 0:#
+ if (time_tmp - self.SENSOR_time) >= self.mearsure_timer:
+ if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量没有完毕优先测量间隔时间测量的
+ if self.get_hr_state == 3:
+ print("stop debug2")
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+ if heart_value > 50 and heart_value != None:
+ EventMesh.publish("set_old_hr_data",heart_value)
+ EventMesh.publish("set_history_hr_value",heart_value)
+ EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)
+
+ elif self.get_spo2_state == 3:
+ 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_history_spo2_value",spo2_value)
+ EventMesh.publish("set_old_spo2_data",spo2_value)
+ EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+
+ self.HR_state = 0
+ self.SENSOR_time = time_tmp
+ self.SENSOR_time = time_tmp
+ self.HR_state = 0
+
+ #print("time_tmp :{} self.SENSOR_time :{} time_tmp - self.SENSOR_time:{} self.HR_state:{}".format(time_tmp,self.SENSOR_time,time_tmp - self.SENSOR_time,self.HR_state))
+ if (time_tmp - self.SENSOR_time) == 0 and self.HR_state == 0:
+ print("START_HEART:1")
+ EventMesh.publish("set_hr_state",2)#2代表后台进入测试
+ EventMesh.publish(constants.EVENT.START_HEART)
+ self.HR_state = 1
self.HR_Onestate = 0
self.HR_OneTime = 0
-
- if self.old_time != self.mearsure_timer:#重复修改测量间隔时间
- self.SENSOR_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量
- if self.get_hr_state == 2 and self.HR_state == 1:#自动检测的心率还在测量立马关了测试
+ elif (time_tmp - self.SENSOR_time) >= 60 and self.HR_state == 1:
+ EventMesh.publish("set_hr_state",0)#2代表后台进入测试
+ print("stop debug3")
+ EventMesh.publish(constants.EVENT.STOP_HEART)
heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+ print("heart_value:{}".format(heart_value))
if heart_value > 50 and heart_value != None:
EventMesh.publish("set_old_hr_data",heart_value)
EventMesh.publish("set_history_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)
- print("stop debug1")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- self.HR_state = 0
- elif self.get_spo2_state == 2 and self.HR_state == 2:
+ EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
+ #获取心率数据上传数据app
+ print("STOP_HEART:")
+
+ self.HR_state = 3
+ # EventMesh.publish("set_spo2_state",2)#2代表后台进入血氧测试
+ # EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
+ # print("START_BLOOD_OXYGEN:")
+ # elif (time_tmp - self.SENSOR_time) >= 120 and self.HR_state == 2:#有需要再打开
+ # print("STOP_BLOOD_OXYGEN:")
+ # EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
+ # EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#停止血氧测试
+ # spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
+ # print("spo2_value:{}".format(spo2_value))
+ # if spo2_value > 85 and spo2_value != None:
+ # EventMesh.publish("set_old_spo2_data",spo2_value)
+ # EventMesh.publish("set_history_spo2_value",spo2_value)
+ # EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+ # self.HR_state = 3
+ else:
+ self.HR_state = 0
+ self.old_time = self.mearsure_timer
+
+ if self.HR_state == 3 or self.HR_state == 0:#只有不在测量的时候才测单次的
+ if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
self.HR_state = 0
- 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("set_history_spo2_value",spo2_value)
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
- self.old_time = self.mearsure_timer
-
- if self.HR_state == 3 or self.HR_state == 0:#
- if (time_tmp - self.SENSOR_time) >= self.mearsure_timer:
- if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量没有完毕优先测量间隔时间测量的
+ self.HR_OneTime+=1
+ if self.HR_OneTime == 1 and self.HR_Onestate == 0:
+ print("hr..........\r\n")
if self.get_hr_state == 3:
- print("stop debug2")
+ self.Hr_Need_Open = 1
+ EventMesh.publish("set_hr_state",3)#2代表后台进入测试
+ EventMesh.publish(constants.EVENT.START_HEART)
+ else:
+ self.Hr_Need_Open = 0
+
+ if self.get_spo2_state == 3 and self.Hr_Need_Open == 0:
+ self.Spo2_Need_Open = 1
+ EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
+ EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
+ else:
+ self.Spo2_Need_Open = 0
+ self.HR_Onestate = 1
+ # print("self.HR_Onestate....3..:{} {} {} {} {}".format(self.HR_Onestate,self.get_hr_state,self.get_spo2_state,self.Hr_Need_Open,self.Spo2_Need_Open))
+ elif self.HR_OneTime > 6 and self.HR_Onestate == 1:
+ # print("self.HR_Onestate...4....:{} {} {} {} {}".format(self.HR_Onestate,self.get_hr_state,self.get_spo2_state,self.Hr_Need_Open,self.Spo2_Need_Open))
+ if self.Hr_Need_Open == 1:#需要关闭心率测量
+ print("stop debug4")
EventMesh.publish(constants.EVENT.STOP_HEART)
heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
if heart_value > 50 and heart_value != None:
- EventMesh.publish("set_old_hr_data",heart_value)
EventMesh.publish("set_history_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)
+ EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
+ EventMesh.publish("set_old_hr_data",heart_value)
+
+ if self.Spo2_Need_Open == 0 and self.get_spo2_state == 3:
+ EventMesh.publish("set_spo2_state",3)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
+
+ self.HR_Onestate = 2
+ self.set_hsenor_crt = 2#血氧关闭
+ else:
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+ self.set_hsenor_crt = 0#
- elif self.get_spo2_state == 3:
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+ EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
+ else:
+ if self.Spo2_Need_Open == 1:#停止测试血氧
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#K开血氧
+ spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
+
+ if spo2_value > 85 and spo2_value != None:
+ EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+ EventMesh.publish("set_old_spo2_data",spo2_value)
+ EventMesh.publish("set_history_spo2_value",spo2_value)
+ if self.Hr_Need_Open == 0 and self.get_hr_state == 3:
+ EventMesh.publish("set_hr_state",3)#2代表后台进入测试
+ EventMesh.publish(constants.EVENT.START_HEART)
+ self.HR_Onestate = 2
+ self.set_hsenor_crt = 1#心率
+ else:
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+ self.set_hsenor_crt = 2#血氧关闭
+
+
+ elif self.HR_OneTime > 6+6 and self.HR_Onestate == 2:
+ print("HR_OneTime:....05")
+ if self.set_hsenor_crt == 2:
+ 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_history_spo2_value",spo2_value)
- EventMesh.publish("set_old_spo2_data",spo2_value)
EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
-
- self.HR_state = 0
- self.SENSOR_time = time_tmp
- self.SENSOR_time = time_tmp
+ EventMesh.publish("set_old_spo2_data",spo2_value)
+ elif self.set_hsenor_crt == 1:
+ EventMesh.publish("set_hr_state",0)#0代表g关闭测试
+ print("stop debug5")
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+ if heart_value > 50 and heart_value != None:
+ EventMesh.publish("set_history_hr_value",heart_value)
+ EventMesh.publish("set_old_hr_data",heart_value)
+ EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
+ self.HR_Onestate = 0
+ else:
+ if self.get_spo2_state == 2 or self.get_hr_state == 2:#单次测量
+ if self.get_hr_state == 2:
+ EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ elif self.get_spo2_state == 2:
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
self.HR_state = 0
-
- #print("time_tmp :{} self.SENSOR_time :{} time_tmp - self.SENSOR_time:{} self.HR_state:{}".format(time_tmp,self.SENSOR_time,time_tmp - self.SENSOR_time,self.HR_state))
- if (time_tmp - self.SENSOR_time) == 0 and self.HR_state == 0:
- print("START_HEART:1")
- EventMesh.publish("set_hr_state",2)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_HEART)
- self.HR_state = 1
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- elif (time_tmp - self.SENSOR_time) >= 60 and self.HR_state == 1:
- EventMesh.publish("set_hr_state",0)#2代表后台进入测试
- print("stop debug3")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- print("heart_value:{}".format(heart_value))
- if heart_value > 50 and heart_value != None:
- EventMesh.publish("set_old_hr_data",heart_value)
- EventMesh.publish("set_history_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
- #获取心率数据上传数据app
- print("STOP_HEART:")
-
- self.HR_state = 3
- # EventMesh.publish("set_spo2_state",2)#2代表后台进入血氧测试
- # EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- # print("START_BLOOD_OXYGEN:")
- # elif (time_tmp - self.SENSOR_time) >= 120 and self.HR_state == 2:#有需要再打开
- # print("STOP_BLOOD_OXYGEN:")
- # EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- # EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#停止血氧测试
- # spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
- # print("spo2_value:{}".format(spo2_value))
- # if spo2_value > 85 and spo2_value != None:
- # EventMesh.publish("set_old_spo2_data",spo2_value)
- # EventMesh.publish("set_history_spo2_value",spo2_value)
- # EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- # self.HR_state = 3
- else:
- self.HR_state = 0
- self.old_time = self.mearsure_timer
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+ self.set_hsenor_crt = 0
+ else:
+ #print("hr......01....{} {} self.HR_Onestate {} {}".format(self.get_hr_state,self.get_spo2_state,self.HR_OneTime,self.HR_Onestate))
+ self.SENSOR_time = time_tmp#进入最后一次的时间戳
+ self.old_time = 0
- if self.HR_state == 3 or self.HR_state == 0:#只有不在测量的时候才测单次的
+ self.set_hsenor_crt = 0
+ if self.get_hr_state != 1 and self.get_spo2_state != 1:#没有设置间隔时间单次测量
if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
self.HR_state = 0
self.HR_OneTime+=1
if self.HR_OneTime == 1 and self.HR_Onestate == 0:
- print("hr..........\r\n")
if self.get_hr_state == 3:
self.Hr_Need_Open = 1
EventMesh.publish("set_hr_state",3)#2代表后台进入测试
else:
self.Spo2_Need_Open = 0
self.HR_Onestate = 1
- # print("self.HR_Onestate....3..:{} {} {} {} {}".format(self.HR_Onestate,self.get_hr_state,self.get_spo2_state,self.Hr_Need_Open,self.Spo2_Need_Open))
+
elif self.HR_OneTime > 6 and self.HR_Onestate == 1:
- # print("self.HR_Onestate...4....:{} {} {} {} {}".format(self.HR_Onestate,self.get_hr_state,self.get_spo2_state,self.Hr_Need_Open,self.Spo2_Need_Open))
+ print("stop_heart Onec ")
if self.Hr_Need_Open == 1:#需要关闭心率测量
- print("stop debug4")
+ print("stop debug6")
EventMesh.publish(constants.EVENT.STOP_HEART)
heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+ print("stop_heart heart_value:{}".format(heart_value))
if heart_value > 50 and heart_value != None:
+ EventMesh.publish("set_old_hr_data",heart_value)
EventMesh.publish("set_history_hr_value",heart_value)
EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
- EventMesh.publish("set_old_hr_data",heart_value)
-
if self.Spo2_Need_Open == 0 and self.get_spo2_state == 3:
EventMesh.publish("set_spo2_state",3)#2代表后台进入血氧测试
EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
-
self.HR_Onestate = 2
self.set_hsenor_crt = 2#血氧关闭
else:
self.HR_Onestate = 0
self.HR_OneTime = 0
self.set_hsenor_crt = 0#
-
EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
else:
EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#K开血氧
spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
-
+ print("spo2_value:{}.......01..".format(spo2_value))
if spo2_value > 85 and spo2_value != None:
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
EventMesh.publish("set_old_spo2_data",spo2_value)
EventMesh.publish("set_history_spo2_value",spo2_value)
+ EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
if self.Hr_Need_Open == 0 and self.get_hr_state == 3:
EventMesh.publish("set_hr_state",3)#2代表后台进入测试
EventMesh.publish(constants.EVENT.START_HEART)
self.HR_Onestate = 0
self.HR_OneTime = 0
self.set_hsenor_crt = 2#血氧关闭
-
+ print("STOP_BLOOD_OXYGEN:....06.....")
elif self.HR_OneTime > 6+6 and self.HR_Onestate == 2:
- print("HR_OneTime:....05")
if self.set_hsenor_crt == 2:
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("set_history_spo2_value",spo2_value)
EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- EventMesh.publish("set_old_spo2_data",spo2_value)
elif self.set_hsenor_crt == 1:
EventMesh.publish("set_hr_state",0)#0代表g关闭测试
- print("stop debug5")
+ print("stop debug7")
EventMesh.publish(constants.EVENT.STOP_HEART)
heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
if heart_value > 50 and heart_value != None:
- EventMesh.publish("set_history_hr_value",heart_value)
EventMesh.publish("set_old_hr_data",heart_value)
+ EventMesh.publish("set_history_hr_value",heart_value)
EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
self.HR_Onestate = 0
else:
elif self.get_spo2_state == 2:
EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
- self.HR_state = 0
self.HR_Onestate = 0
self.HR_OneTime = 0
- self.set_hsenor_crt = 0
+ self.old_time = 0
else:
- #print("hr......01....{} {} self.HR_Onestate {} {}".format(self.get_hr_state,self.get_spo2_state,self.HR_OneTime,self.HR_Onestate))
- self.SENSOR_time = time_tmp#进入最后一次的时间戳
+ self.old_temp_time = 0
self.old_time = 0
-
+ self.SENSOR_time = time_tmp
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+ self.HR_state = 0
+ self.old_time = 0
self.set_hsenor_crt = 0
- if self.get_hr_state != 1 and self.get_spo2_state != 1:#没有设置间隔时间单次测量
- if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
- self.HR_state = 0
- self.HR_OneTime+=1
- if self.HR_OneTime == 1 and self.HR_Onestate == 0:
- if self.get_hr_state == 3:
- self.Hr_Need_Open = 1
- EventMesh.publish("set_hr_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_HEART)
- else:
- self.Hr_Need_Open = 0
-
- if self.get_spo2_state == 3 and self.Hr_Need_Open == 0:
- self.Spo2_Need_Open = 1
- EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- else:
- self.Spo2_Need_Open = 0
- self.HR_Onestate = 1
-
- elif self.HR_OneTime > 6 and self.HR_Onestate == 1:
- print("stop_heart Onec ")
- if self.Hr_Need_Open == 1:#需要关闭心率测量
- print("stop debug6")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- print("stop_heart heart_value:{}".format(heart_value))
- if heart_value > 50 and heart_value != None:
- EventMesh.publish("set_old_hr_data",heart_value)
- EventMesh.publish("set_history_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
- if self.Spo2_Need_Open == 0 and self.get_spo2_state == 3:
- EventMesh.publish("set_spo2_state",3)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- self.HR_Onestate = 2
- self.set_hsenor_crt = 2#血氧关闭
- else:
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.set_hsenor_crt = 0#
- EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- else:
- if self.Spo2_Need_Open == 1:#停止测试血氧
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#K开血氧
- spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
- print("spo2_value:{}.......01..".format(spo2_value))
- if spo2_value > 85 and spo2_value != None:
- EventMesh.publish("set_old_spo2_data",spo2_value)
- EventMesh.publish("set_history_spo2_value",spo2_value)
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- if self.Hr_Need_Open == 0 and self.get_hr_state == 3:
- EventMesh.publish("set_hr_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_HEART)
- self.HR_Onestate = 2
- self.set_hsenor_crt = 1#心率
- else:
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.set_hsenor_crt = 2#血氧关闭
- print("STOP_BLOOD_OXYGEN:....06.....")
-
- elif self.HR_OneTime > 6+6 and self.HR_Onestate == 2:
- if self.set_hsenor_crt == 2:
- 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("set_history_spo2_value",spo2_value)
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- elif self.set_hsenor_crt == 1:
- EventMesh.publish("set_hr_state",0)#0代表g关闭测试
- print("stop debug7")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- if heart_value > 50 and heart_value != None:
- EventMesh.publish("set_old_hr_data",heart_value)
- EventMesh.publish("set_history_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
- self.HR_Onestate = 0
- else:
- if self.get_spo2_state == 2 or self.get_hr_state == 2:#单次测量
- if self.get_hr_state == 2:
- EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_HEART)
- elif self.get_spo2_state == 2:
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.old_time = 0
- else:
- self.old_temp_time = 0
- self.old_time = 0
- self.SENSOR_time = time_tmp
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.HR_state = 0
- self.old_time = 0
- self.set_hsenor_crt = 0
-
+
else:
if battery[0] == "1":
get_hr_state = EventMesh.publish("get_hr_state")
pass
def post_processor_after_instantiation(self):
- EventMesh.subscribe("set_storage_data", self.set_storage_data)
EventMesh.subscribe("set_storage_config", self.set_storage_config)
- EventMesh.subscribe("get_storage_data", self.get_storage_data)
EventMesh.subscribe("get_storage_config", self.get_storage_config)
def set_storage_data(self, event, msg):
- # print("set_storage_data:{}".format(msg))
+ print("set_storage_data:{}".format(msg))
if msg != None:
self.config_data = msg
with open("/ext/static/storage_file/config.json",'w+',encoding="utf-8") as fd:
# print("get_storage_key_data1:{}".format(msg))
b = msg in self.config_data.keys()
if b == True:
- # print("get_storage_key_data2:{}".format(self.config_data[msg]))
+ print("get_storage_key_data2:{}".format(self.config_data[msg]))
return self.config_data[msg]
else :
return None
line_len = 6
set_x = int(188+line_len//2)
watchface1_res_stat_battery_line.set_pos(int(set_x),int(18))
- watchface1_res_stat_battery_line.set_size(line_len,15)
+ watchface1_res_stat_battery_line.set_size(line_len,5)
watchface1_res_stat_battery_line.set_style_line_width(line_len,lv.PART.MAIN)
if line_len <= 6:
watchface1_res_stat_battery_line.set_style_line_color(lv.color_make(0xff,0x00,0x00),0)
if line_len <= 6:
line_len = 6
set_x = int(188+line_len//2)
- watchface2_res_stat_battery_line.set_pos(int(set_x),int(20))
+ watchface2_res_stat_battery_line.set_pos(int(set_x),int(18))
watchface2_res_stat_battery_line.set_size(line_len,5)
watchface2_res_stat_battery_line.set_style_line_width(line_len,lv.PART.MAIN)
if line_len <= 6:
Watchface3.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
Watchface3.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
+watchface3_mpsignal_img = lv.img(Watchface3)
+watchface3_mpsignal_img.set_pos(int(20),int(15))
+watchface3_mpsignal_img.set_size(30,22)
+watchface3_mpsignal_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+watchface3_mpsignal_img.add_flag(lv.obj.FLAG.CLICKABLE)
+watchface3_mpsignal_img.set_src("E:/static/mpsignal5.png")
+watchface3_mpsignal_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+watchface3_res_stat_battery_img = lv.img(Watchface3)
+watchface3_res_stat_battery_img.set_pos(int(185),int(15))
+watchface3_res_stat_battery_img.set_size(40,22)
+watchface3_res_stat_battery_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+watchface3_res_stat_battery_img.add_flag(lv.obj.FLAG.CLICKABLE)
+watchface3_res_stat_battery_img.set_src("E:/static/vbat_0.png")
+watchface3_res_stat_battery_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+watchface3_res_stat_battery_line = lv.line(Watchface3)
+watchface3_res_stat_battery_line.set_points(power_line_points,2)
+watchface3_res_stat_battery_line.set_pos(int(188),int(20))
+watchface3_res_stat_battery_line.set_size(0,10)#高度12
+watchface3_res_stat_battery_line.add_style(power_line_red,0)
#时间
watchface3_time1_text = lv.label(Watchface3)
-watchface3_time1_text.set_pos(20, 20)
+watchface3_time1_text.set_pos(20, 55)
watchface3_time1_text.set_size(190, 71)
watchface3_time1_text.set_style_text_align(lv.TEXT_ALIGN.CENTER,0)
watchface3_time1_text.set_text("{}:{}".format("%02d"%(hour),"%02d"%(min)))
#日期
watchface3_week_span = lv.label(Watchface3)
-watchface3_week_span.set_pos(0, 100)
-watchface3_week_span.set_size(240, 30)
+watchface3_week_span.set_pos(0, 125)
+watchface3_week_span.set_size(240, 20)
watchface3_week_span.set_style_text_align(lv.TEXT_ALIGN.CENTER,0)
watchface3_week_span.set_text("%02d/%02d 周%s"%(date1,date2,get_week(week)))
watchface3_week_span.add_style(style_font_youyuan_20_white, lv.PART.MAIN|lv.STATE.DEFAULT)
watchface3_school_label = lv.label(Watchface3)
-watchface3_school_label.set_pos(0, 145)
-watchface3_school_label.set_size(240, 30)
+watchface3_school_label.set_pos(0, 165)
+watchface3_school_label.set_size(240, 20)
watchface3_school_label.set_style_text_align(lv.TEXT_ALIGN.CENTER,0)
-watchface3_school_label.set_text("深圳市第一小学")
+watchface3_school_label.set_text(" ")
watchface3_school_label.add_style(style_font_youyuan_20_white, lv.PART.MAIN|lv.STATE.DEFAULT)
# watchface3_HB_span.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFAULT)
watchface3_class_label = lv.label(Watchface3)
-watchface3_class_label.set_pos(0, 185)
-watchface3_class_label.set_size(240, 30)
-watchface3_class_label.set_text("三年级一班")
+watchface3_class_label.set_pos(0, 200)
+watchface3_class_label.set_size(240, 20)
+watchface3_class_label.set_text(" ")
watchface3_class_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
watchface3_class_label.add_style(style_font_youyuan_20_white, lv.PART.MAIN | lv.STATE.DEFAULT)
watchface3_fullname_label = lv.label(Watchface3)
-watchface3_fullname_label.set_pos(0, 225)
-watchface3_fullname_label.set_size(240, 30)
-watchface3_fullname_label.set_text("张三")
+watchface3_fullname_label.set_pos(0, 235)
+watchface3_fullname_label.set_size(240, 20)
+watchface3_fullname_label.set_text(" ")
watchface3_fullname_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
watchface3_fullname_label.add_style(style_font_youyuan_20_white, lv.PART.MAIN|lv.STATE.DEFAULT)
self.update_screen_show(None, None)
+ signal = EventMesh.publish("screen_get_sig")
+ if signal:
+ self.__signal(None, signal)
+ # 获取电池电量
+ battery = EventMesh.publish("screen_get_battery")
+ if battery:
+ self.__battery(None, battery)
+
def timerout_update(self):
time = EventMesh.publish("screen_get_time")
self.update_screen_show(None, None)
+ signal = EventMesh.publish("screen_get_sig")
+ if signal:
+ self.__signal(None, signal)
+ # 获取电池电量
+ battery = EventMesh.publish("screen_get_battery")
+ if battery:
+ self.__battery(None, battery)
+
+ def __signal(self, event, msg):
+ #print("__signal_cb:",str(msg))
+ # 信号强度值范围0 ~ 31,值越大表示信号强度越好
+ #print("__signal_cb:{}".format(msg//8))
+ if msg:
+ if msg >= 0 and msg<=31 :
+ watchface3_mpsignal_img.set_src("E:/static/mpsignal{}.png".format(msg//8+1))
+ else :
+ watchface3_mpsignal_img.set_src("E:/static/mpsignal5.png")
+
+ def __battery(self, event, msg):
+ #print("__battery_cb:",str(msg))
+ #print(msg)
+ if msg[0] == '1':
+
+ watchface3_res_stat_battery_line.set_pos(int(0),int(15))
+ watchface3_res_stat_battery_line.set_size(0,0)
+ watchface3_res_stat_battery_line.set_style_line_width(0,lv.PART.MAIN)
+ watchface3_res_stat_battery_img.set_src("E:/static/charge_ing.png")
+ else:
+ watchface3_res_stat_battery_img.set_src("E:/static/vbat_0.png")
+ level = msg[1]
+ if level >= 99:
+ level = 100
+ line_len = int(level*(30/100))
+ # print("__battery_cb:",level,line_len,30/100)
+ if line_len >= 30:
+ line_len = 30
+ if line_len <= 3:
+ line_len = 3
+ set_x = int(188+line_len//2)
+
+ line_points = [
+ {"x":0, "y":5},
+ {"x":line_len, "y":5},
+ ]
+ watchface3_res_stat_battery_line.set_size(int(line_len),int(10))
+ watchface3_res_stat_battery_line.set_pos(int(188),int(21))
+ watchface3_res_stat_battery_line.set_points(line_points, 2)
+ watchface3_res_stat_battery_line.set_style_line_width(15,lv.PART.MAIN)
+
+
+ # watchface3_res_stat_battery_line.set_pos(int(set_x),int(18))
+ # watchface3_res_stat_battery_line.set_size(line_len,5)
+ # watchface3_res_stat_battery_line.set_style_line_width(line_len,lv.PART.MAIN)
+ if line_len <= 3:
+ watchface3_res_stat_battery_line.set_style_line_color(lv.color_make(0xff,0x00,0x00),0)
+ else:
+ watchface3_res_stat_battery_line.set_style_line_color(lv.color_make(0x00,0xff,0x00),0)
+
def __time(self, event, msg):
data = RTC().datetime()
watchface3_week_span.set_text("%02d/%02d 周%s"%(date1,date2,get_week(week)))
def update_screen_show(self, event, msg):
+ pass
school=EventMesh.publish("get_schoolname")
if school != None:
watchface3_school_label.set_text(str(school))
self.MainMenu_til = None
self.MainMenu_num = None
self.watchface = None
- self.set_mainmenu(msg = "2")
-
- self.watchface = WatchFace(self.MainMenu_Watchface )
-
read_data = EventMesh.publish("get_storage_config","MainMenu")
+ print("set_mainmenu:MainMenu:{}".format(read_data))
if read_data != None:
self.set_mainmenu(msg = [read_data,0])
+ else:
+ self.set_mainmenu(msg = ["1",0])
+ self.watchface = WatchFace(self.MainMenu_Watchface )
+
+
EventMesh.subscribe("set_mainmenu", self.set_mainmenu)
self.menu_id = "0"
self.MainMenu_num = MainMenu1_num
#self.watchface = MainMenu1_watchface
msg[0] = "1"
-
+
EventMesh.publish("set_storage_config",["MainMenu",msg[0]])
+ print("set_mainmenu:MainMenu:{}".format(msg[0]))
if self.watchface != None:
self.watchface.set_parent(self.MainMenu_Watchface)#切换父对象,比较危险
self.watchface.initialization()
self.level = 0
self.meta = phonering_screen
phonering_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
phonering_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
phonering_add_imgbtn.set_ext_click_area(20)
phonering_reduce_imgbtn.set_ext_click_area(20)
self.level = 0
self.meta = alarmvolume_screen
alarmvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
alarmvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
def add_level(self, e):
EventMesh.publish("push_add_alarmvolume_level")
self.level = 0
self.meta = msgvolume_screen
msgvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
msgvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
def add_level(self, e):
EventMesh.publish("push_add_msgvolume_level")
super().__init__()
self.meta = volume_adjust_screen
totalvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_volum_size(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
totalvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_volum_size(e)),
- lv.EVENT.CLICKED, None)
+ lv.EVENT.SHORT_CLICKED, None)
self.volum_size = 8
self.aud = audio.Audio(0)
if power_off == 1:
return
flag = EventMesh.publish("get_call_state")
-
+ 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 msg == 1:
+ if get_hr_state != None and get_spo2_state != None and get_bp_state != None and get_bg_state != None:
+ if get_hr_state == 2 or get_hr_state == 3:
+
+ EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
+ 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代表后台进入测试
+ 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代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ EventMesh.debug_log("stop bp debug1")
+ elif get_bg_state == 2 or get_bg_state == 3:
+ EventMesh.publish("set_bg_state",0)#2代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ EventMesh.debug_log("stop BG debug14")
if msg == 1:
self.usbState = msg
str_buf = [1,1,10,led_mode.LONG_LIGHT_RED,4,2,led_mode.CHARGE_IN_MODE]
EventMesh.publish("set_hr_state",1)
EventMesh.publish("set_start_measure_time")#设置开始测量的时间戳时间
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN) #停止测试血氧
+ EventMesh.publish("set_hr_blood_led",1)
EventMesh.publish(constants.EVENT.START_HEART) #手动心率测试
elif msg == 2:
if get_hr_state == 0:
EventMesh.debug_log("set_manual_measure_mode",msg)
EventMesh.publish("set_spo2_state",1)
EventMesh.publish("set_start_measure_time")#设置开始测量的时间戳时间
+ EventMesh.publish("set_hr_blood_led",1)
EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN) #手动血氧测试
elif msg == 3:
if get_temp_state != 1:
EventMesh.debug_log("set_manual_measure_mode",msg)
EventMesh.publish("set_temp_state",1)
EventMesh.publish("set_start_temp_measure_time")#设置开始测量的时间戳时间
+ EventMesh.publish("set_hr_blood_led",1)
EventMesh.publish(constants.EVENT.START_TEMP)#手动体温测试
pass
self.pwKey_press_count = 0
self.led_state = 0
EventMesh.publish("open_power_on", 2)#
+ return
if self.GPIO26_status == 1:#松开
REMOVE_SEND = "REMOVE_SEND"
REMOVE_RECV = "REMOVE_RECV"
+
+ BLOOD_SEND = "blood_SEND"
+ BLOOD_RECV = "blood_RECV"
+
+ BLDSTART_SEND ="bldstart_SEND"
+ BLDSTART_RECV = "bldstart_RECV"
+
+ BGSTART_SEND = "bgstart_SEND"
+ BGSTART_RECV = "bgstart_RECV"
+
+ BLOODGLUSOCE_SEND = "bloodglucose_SEND"
+ BLOODGLUSOCE_RECV = "bloodglucose_RECV"
class EVENT:
wechat_state = EventMesh.publish("get_wechat_state")
temp_state = EventMesh.publish("get_temp_state")
+ bp_state = EventMesh.publish("get_bg_state")
+ bg_state = EventMesh.publish("get_bg_state")
EventMesh.debug_log("get_hr_state",get_hr_state,get_spo2_state,temp_state,wechat_state,self.working_led_mode)
if wechat_state != None: #获取微聊状态
if wechat_state == 1:
else:
self.wechat_btn = 0
- if get_hr_state != 0 or get_spo2_state != 0 or temp_state != 0 :#心率血氧优先级高
+ if get_hr_state != 0 or get_spo2_state != 0 or temp_state != 0 or bp_state != 0 or bg_state != 0 :#心率血氧优先级高
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:
+ if get_hr_state == 0 and get_spo2_state == 0 and temp_state == 0 and bp_state == 0 and bg_state == 0:
self.working_led_mode = led_mode.OTHER_MEASURE_MODE
self.open_timer(msg)
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 == 1 or get_spo2_state == 1 or get_temp_state == 1:#手动触发
EventMesh.publish("close_hr_sop2")
EventMesh.publish("close_led_pin")
return
wechat_state = EventMesh.publish("get_wechat_state")
temp_state = EventMesh.publish("get_temp_state")
+ bp_state = EventMesh.publish("get_bp_state")
+ 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 != 0 or get_hr_state != 0 or temp_state != 0:
+ if wechat_state == 1 or get_spo2_state != 0 or get_hr_state != 0 or temp_state != 0 or bp_state != 0 or bg_state != 0:
return
if self.timer_state == 1:
self.timer.stop()
uos.mount(ldev,'/ext')
res = uos.statvfs("/ext")
res = list(res)
- EventMesh.debug_log('总ext空间:{} MB,剩余空间:{} MB'.format((((res[0] * res[2]) / 1024 / 1024)),((res[0] * res[3]) / 1024 / 1024)))
- EventMesh.debug_log("init1:{}".format(utime.localtime()))
+ print('总ext空间:{} MB,剩余空间:{} MB'.format((((res[0] * res[2]) / 1024 / 1024)),((res[0] * res[3]) / 1024 / 1024)))
+ print("init1:{}".format(utime.localtime()))
import EventMesh
from common import Abstract
- EventMesh.debug_log("init2:{}".format(utime.localtime()))
+ print("init2:{}".format(utime.localtime()))
from lcd import tp_cst816
- EventMesh.debug_log("init3:{}".format(utime.localtime()))
+ print("init3:{}".format(utime.localtime()))
from usr.ui_main_menu import MainMenuScreen
# from ui_WatchFaceScreen import WatchFaceScreen
from appFactoryMode import FactoryModeLocationScreen,FactoryModeScreen ,FactoryModeAlipayInitScreen
import ui as _ui
# import ui as _ui
- EventMesh.debug_log("init4:{}".format(utime.localtime()))
+ print("init4:{}".format(utime.localtime()))
ui = _ui.UI()
ui.post_processor_after_instantiation()
ui.add_screen(MainMenuScreen())
EventMesh.publish("load_screen", {"screen": "main_menu"})
- EventMesh.debug_log("init5:{}".format(utime.localtime()))
+ print("init5:{}".format(utime.localtime()))
ui.add_screen(_ui.PopupScreen())
ui.add_screen(_ui.PhoneScreen())
ui.add_screen(_ui.ContactsScreen())
from appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol,NewWechatPopupScreen
ui.add_screen(WechatScreen())
- from alarm import ClkListScreen,ClockManager,NewEditClk,CLKTimeScreen,ClkPeriod,PopupAlarmScreen
- from ui_health import HealthScreen
+ from alarm import ClkListScreen,NewEditClk,CLKTimeScreen,ClkPeriod,PopupAlarmScreen
+
ui.add_screen(ClkListScreen())
ui.add_screen(_ui.CountdownEndScreen())
ui.add_screen(NewEditClk())
ui.add_screen(NewWechatPopupScreen())
ui.add_screen(HealthScreen())
# ui.add_screen(_ui.Setting3Screen())
- EventMesh.debug_log("init6:{}".format(utime.localtime()))
+ print("init6:{}".format(utime.localtime()))
from protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,\
ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
import mgr as mgr
- EventMesh.debug_log("init7:{}".format(utime.localtime()))
+ print("init7:{}".format(utime.localtime()))
from mgr import ConfigStoreManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
- EventMesh.debug_log("init8:{}".format(utime.localtime()))
+ print("init8:{}".format(utime.localtime()))
#from ui_WatchFaceScreen import WatchFaceScreen
# from usr.test_sms import HRSTART_ProtoCol,getHrTimeManager,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,getBrightnessManager,\
# getStorageDataManager
- EventMesh.debug_log("init9:{}".format(utime.localtime()))
+ print("init9:{}".format(utime.localtime()))
#from usr.ui_wechat import WechatScreen,TK_ProtoCol
- EventMesh.debug_log("init10:{}".format(utime.localtime()))
+ print("init10:{}".format(utime.localtime()))
app = watchApp()
app.append_manager(getSosFlagManager())
app.append_manager(CountdownManager())
- EventMesh.debug_log("init21:{}".format(utime.localtime()))
+ print("init21:{}".format(utime.localtime()))
- EventMesh.debug_log("init11:{}".format(utime.localtime()))
+ print("init11:{}".format(utime.localtime()))
pcr = ProtoColResolver()
pcr.add_support(LK_ProtoCol())
pcr.add_support(PING_ProtoCol())
sm = SockManager()
sm.add_support_resolver(pcr)
app.append_manager(sm)
- EventMesh.debug_log("init11.0:{}".format(utime.localtime()))
+ print("init11.0:{}".format(utime.localtime()))
app.start()
sms_data = sms.getSaveLoc()
sms_lacv = sms_data[0][0]
if sms_lacv != 'SM':#每次开机设置一下短信的存储位置
sms.setSaveLoc('SM', 'SM', 'SM')
- EventMesh.debug_log("init12:{}".format(utime.localtime()))
+ print("init12:{}".format(utime.localtime()))
import atcmd
resp=bytearray(50)
atcmd.sendSync('AT+log=52,1\r\n',resp,'',20)
- EventMesh.debug_log("AT+log=52,1:{}".format(resp))
+ print("AT+log=52,1:{}".format(resp))
pcr.add_support(protocol.HELP_ProtoCol())
pcr.add_support(protocol.REMOVE_ProtoCol())
pcr.add_support(protocol.UD_ProtoCol())
+ pcr.add_support(protocol.bldstart_ProtoCol())
+ pcr.add_support(protocol.blood_ProtoCol())
+ pcr.add_support(protocol.bgstart_ProtoCol())
+ pcr.add_support(protocol.bloodglucose_ProtoCol())
+
sm = protocol.SockManager()
sm.add_support_resolver(pcr)
app.append_manager(sm)
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
+def get_autoblood_value():#血压值
+ data = RTC().datetime()
+ hour = int(data[4])
+ blood_Maxvalue = 0
+ blood_Minvalue = 0
+ if hour >= 6 and hour <= 10:
+ random_numMax = urandom.randint(0, 30)
+ random_numMin = urandom.randint(0, 20)
+ blood_Maxvalue = 120+random_numMax
+ blood_Minvalue = 75+random_numMin
+
+ print("get_autoblood_value 6 -10",blood_Maxvalue,blood_Minvalue)
+ # return [self.blood_Maxvalue,self.blood_Minvalue]
+ elif hour > 10 and hour <= 14:#10-14(10,14]
+ random_numMax = urandom.randint(0, 20)
+ random_numMin = urandom.randint(0, 25)
+ blood_Maxvalue = 115+random_numMax
+ blood_Minvalue = 60+random_numMin
+ print("get_autoblood_value 10 -14",blood_Maxvalue,blood_Minvalue)
+ # return [self.blood_Maxvalue,self.blood_Minvalue]
+ elif hour > 14 and hour <= 18:#14-18
+ random_numMax = urandom.randint(0, 25)
+ random_numMin = urandom.randint(0, 15)
+ blood_Maxvalue = 115+random_numMax
+ blood_Minvalue = 70+random_numMin
+
+ print("get_autoblood_value 14 -18",blood_Maxvalue,blood_Minvalue)
+ # return [self.blood_Maxvalue,self.blood_Minvalue]
+ elif hour > 2 and hour < 6:#2-6
+ random_numMax = urandom.randint(0, 30)
+ random_numMin = urandom.randint(0, 20)
+ blood_Maxvalu = 105+random_numMax
+ blood_Minvalue = 65+random_numMin
+
+
+ print("get_autoblood_value 2 -6",blood_Maxvalue,blood_Minvalue)
+ # return [self.blood_Maxvalue,self.blood_Minvalue]
+ else:#18-2 19 20 21 22 23 1 2
+ random_numMax = urandom.randint(0, 30)
+ random_numMin = urandom.randint(0, 20)
+ blood_Maxvalue = 100+random_numMax
+ blood_Minvalue = 60+random_numMin
+ print("get_autoblood_value 18 -2",blood_Maxvalue,blood_Minvalue)
+ return [blood_Maxvalue,blood_Minvalue]
+
+def get_blood_sugar_value():#血糖值
+ data = RTC().datetime()
+ hour = int(data[4])
+ blood_sugar = 0
+ if (hour >= 6 and hour <= 8) or (hour >= 12 and hour <= 13) or (hour >= 18 and hour <= 19):#6-8 12-13 18-19
+ random_value = urandom.randint(39, 61)
+ blood_sugar = random_value/10
+ print("get_blood_sugar_value 6 -10",blood_sugar)
+ # return [self.blood_Maxvalue,self.blood_Minvalue]
+ elif (hour > 8 and hour <= 9) or (hour >= 14 and hour <= 15) or (hour >= 20 and hour <= 21):#8-9 14-15 20-21
+ random_value = urandom.randint(67, 90)
+ blood_sugar = random_value/10
+ print("get_blood_sugar_value 10 -14",blood_sugar)
+ else:#18-2 19 20 21 22 23 1 2 10-11 16-17 21-22
+ random_value = urandom.randint(39, 78)
+ blood_sugar = random_value/10
+ print("get_blood_sugar_value 18 -2",blood_sugar)
+ return blood_sugar
+
+
+
class PhoneVolumeLevelManager(Abstract):
def __init__(self):
self.level = 0
self.temp_one_state = 0
self.temp_warning = 0
+ self.bg_times = 0
+
self.vbat_count = 0
self.vbat_buf=[]
self.mearsure_btn = 0
self.mearsure_timer = 0
+ self.old_hr_time = 0
+ self.old_spo2_time = 0
+
self.no_smi_count = 0
self.no_smi_state = 0
+ self.old_bp_time = 0
+
self.charge_full_count = 0
self.GPS_step_t = 0#记录步数
self.usb = USB()
self.stop_temp( None, None)
self.dev_state = 0
self.wear = 1
+ self.BG_state = 0
+ self.old_bg_time = 0
+
+ self.pull_time = 0
+
+
def post_processor_after_instantiation(self):
EventMesh.debug_log("post_processor_after_instantiation:1")
"""订阅此类所有的事件到 EventMesh中"""
EventMesh.subscribe("get_boot_time_count", self.get_boot_time_count)
EventMesh.subscribe("get_dev_state", self.get_dev_state)
EventMesh.subscribe("set_dev_state", self.set_dev_state)
+
+ EventMesh.subscribe("clear_health_state", self.clear_health_state)
EventMesh.debug_log("post_processor_after_instantiation:2")
self.timer_push_schedule.start(10000, 1, self.publish_event_cb)
self.temp_warning -= 1
return temp
+ def clear_health_state(self,event,msg):
+ print("clear_health_state")
+ self.old_bp_time = 0#关闭心率 血压 血氧 体温清除标志
+ self.old_time = 0
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+ self.HR_state = 0
+ self.set_hsenor_crt = 0
+ self.old_bg_time = 0
+ self.old_hr_time = 0
+ self.old_spo2_time = 0
+ self.BG_state = 0
+ pass
+
+ def clear_temp_state(self,event,msg):
+ print("clear_temp_state")
+ self.temp_state = 0
+ self.temp_one_state = 0
+ self.old_temp_time = 0
+ pass
+
def publish_event(self,data):
"""
定时事件处理
:return:
"""
-
- self.timer_push = self.timer_push+1
-
- #if self.timer_push > 10 :
- # EventMesh.publish("time", self.get_time())
- # EventMesh.publish("battery", self.get_battery())
- # EventMesh.publish("signal", self.get_signal())
-
- self.timer_push = 0
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)
# EventMesh.debug_log("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
self.get_spo2_state = EventMesh.publish("get_spo2_state")
get_temp_time = EventMesh.publish("get_temp_time")
get_temp_state = EventMesh.publish("get_temp_state")
+ get_bp_state = EventMesh.publish("get_bp_state")
+ get_bg_state = EventMesh.publish("get_bg_state")
+ if get_bg_state == None:
+ get_bg_state = 0
+ if get_bp_state == None:
+ get_bp_state = 0
+
+ if get_temp_state == None:
+ get_temp_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:
call_state = 0
- # if battery[0] != "1":
- # if get_temp_state != None and call_state != None: #突然脱腕
- # if get_temp_state > 1 and WEAR != 1 or (call_state != 0):
- # EventMesh.publish(constants.EVENT.STOP_TEMP)
- # EventMesh.publish("set_temp_state",0)
- # if (self.get_hr_state > 1 or self.get_spo2_state > 1) and WEAR != 1 or (call_state != 0):
- # if self.get_hr_state > 1 :
- # EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
- # EventMesh.publish(constants.EVENT.STOP_HEART)
- # elif self.get_spo2_state > 1:
- # EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
- # EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
-
- if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:
- # if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[0] != "1" and WEAR == 1 and call_state == 0:
-
- # EventMesh.debug_log("get_temp_time:{} self.temp_one_state:{}".format(get_temp_time,self.temp_one_state))
- if get_temp_time != None:#定时测量体温
- if get_temp_time > 0:
- if get_temp_state != None:
- if get_temp_state == 0 or get_temp_state == 2 or get_temp_state == 3 :
- if (time_tmp-self.temp_time) >= get_temp_time:#大于一个周期的时间,重新赋值
- self.temp_one_state = 0
- self.temp_state = 0
- self.temp_time = time_tmp
-
- if self.old_temp_time != get_temp_time:#重复修改测量间隔时间
- self.temp_one_state = 0
- self.temp_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量
- self.temp_state = 0
- self.old_temp_time = get_temp_time
+ if battery[0] != "1":
+ if get_temp_state != None and call_state != None: #突然脱腕
+
+ if get_temp_state > 1 and (WEAR != 1 or call_state != 0):
+ EventMesh.publish(constants.EVENT.STOP_TEMP)
+ EventMesh.publish("set_temp_state",0)
+ EventMesh.publish("stop_led_timer")#设置参数
+ if (self.get_hr_state > 1 or self.get_spo2_state > 1 or get_bp_state > 1 or get_bg_state > 1) and (WEAR != 1 or call_state != 0):
+ print("wear faile")
+ if self.get_hr_state > 1 :
+ EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+
+ elif self.get_spo2_state > 1:
+ EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+
+ elif get_bp_state > 1:
+ EventMesh.publish("set_bp_state",0)#2代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+
+ elif get_bg_state > 1:
+ EventMesh.publish("set_bg_state",0)#2代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+
+
- if (time_tmp-self.temp_time) == 0 and self.temp_state == 0:#一开始就测量 测量一分钟停止测量体温
- self.temp_state = 1
- self.temp_one_state = 0
- EventMesh.publish("set_temp_state",2)
- EventMesh.debug_log("AUTO temp:")
- EventMesh.publish(constants.EVENT.START_TEMP)
+ # if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#已联网 并且不在充电 佩戴正常 不在通话就给测试心率
+ if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[0] != "1" and WEAR == 1 and call_state == 0:
+ if self.pull_time == 0:
+ self.pull_time = time_tmp
+ if time_tmp - self.pull_time >= 30:
- elif (time_tmp-self.temp_time) >= 30 and self.temp_state == 1:
- self.temp_state = 0
- self.temp_one_state = 0
- temp = EventMesh.publish(constants.EVENT.GET_TEMP)
- temp = self.optimize_temp(temp)
- EventMesh.publish("set_temp_state",0)
- tmp_f_tmp = 0
- tmp_d_tmp = 0
- if str(temp).find(".") != -1:
- tmp_f = str(temp).split('.')[0]
- tmp_f_tmp = int(tmp_f)
-
- tmp_d = str(temp).split('.')[1][:1]
- tmp_d_tmp = int(tmp_d)
- else:
- tmp_f_tmp = temp
-
- if temp != None:
- if temp != 0:
- 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("play_temp_value",0)#播放体温数值
- EventMesh.publish(constants.EVENT.STOP_TEMP)
- EventMesh.debug_log("AUTO temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp))
-
+ 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")
+ get_temp_state = EventMesh.publish("get_temp_state")
+ if get_hr_state == None:
+ get_hr_state = 0
+ self.old_hr_time = 0
+
+ if get_spo2_state == None:
+ get_spo2_state = 0
+ self.old_spo2_time = 0
+
+ if get_temp_state == None:
+ get_temp_state = 0
+ self.temp_one_state = 0
+
+ if get_bp_state == None:
+ get_bp_state = 0
+ self.old_bp_time = 0
+
+ if get_bg_state == None:
+ get_bg_state = 0
+ self.old_bg_time = 0
+
+ # print("bp get_bp_state ",get_bp_state,self.old_bp_time)
+
+ 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(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")#设置参数
+ 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 stop ")
+ else:
+ self.old_bp_time = 0
+ else:
+ self.old_bp_time = 0
+
+ if get_bg_state != None:
+ if get_bg_state == 3:
+ 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(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")#设置参数
+ bg_data = get_blood_sugar_value()
+ if bg_data == None:
+ bg_data = 0
+ if bg_data != 0:
+ EventMesh.publish(constants.PROTOCOL.BLOODGLUSOCE_SEND,bg_data)
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ print("bg stop ")
+ else:
+ self.old_bg_time = 0
+ else:
+ self.old_bg_time = 0
- if self.temp_state == 0 or get_temp_state == 3:#只有不在测量的时候才测单次的
- if get_temp_state == 3:#单次测量
- self.temp_one_state+=1
- if self.temp_one_state == 1:
- EventMesh.publish("set_temp_state",3)
- EventMesh.debug_log("AUTO one temp:1")
- EventMesh.publish(constants.EVENT.START_TEMP)
- elif self.temp_one_state > 3:
- self.temp_one_state = 0
- temp = EventMesh.publish(constants.EVENT.GET_TEMP)
- temp = self.optimize_temp(temp)
-
- EventMesh.publish("set_temp_state",0)
- tmp_f_tmp = 0
- tmp_d_tmp = 0
- if str(temp).find(".") != -1:
- tmp_f = str(temp).split('.')[0]
- tmp_f_tmp = int(tmp_f)
-
- tmp_d = str(temp).split('.')[1][:1]
- tmp_d_tmp = int(tmp_d)
- else:
- tmp_f_tmp = temp
-
- if temp != None:
- if temp != 0:
- 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("play_temp_value",0)#播放体温数值
- EventMesh.publish(constants.EVENT.STOP_TEMP)
- EventMesh.debug_log("once temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp))
-
- else:
- self.temp_one_state = 0
- self.temp_state = 0
- self.old_temp_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_temp_time = 0
- get_temp_end_state = EventMesh.publish("get_temp_state")
- if self.temp_state != 0:
- if self.temp_state == 2:
- self.temp_state = 0
- EventMesh.publish(constants.EVENT.STOP_TEMP)
- if get_temp_end_state == 1:
- self.temp_one_state = 0
+ 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_end_state == 3:#单次测量
+ 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(constants.EVENT.START_TEMP)
elif self.temp_one_state > 3:
self.temp_one_state = 0
else:
EventMesh.publish("set_history_temp_value",0)
# EventMesh.publish("play_temp_value",0)#播放体温数值
+ 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))
-
- if hr_time[0] != None:
- self.mearsure_btn = int(hr_time[0])
- self.mearsure_timer = int(hr_time[1])
- if self.mearsure_btn != None and self.mearsure_timer != None:
- # EventMesh.debug_log("hr......01....{} {}\r\n".format(hr_time[0],hr_time[1]))
- if self.mearsure_btn > 0:
- if self.mearsure_timer > 0:
- #EventMesh.debug_log("get_hr_state:{} get_spo2_state:{} self.old_time:{} mearsure_timer:{}".format(self.get_hr_state,self.get_spo2_state,self.old_time,mearsure_timer))
- if self.get_hr_state != 1 and self.get_spo2_state != 1:
- if self.get_hr_state == 0 and self.get_spo2_state == 0:
- if self.HR_state == 0 or self.HR_state == 3:
- self.HR_Onestate = 0
- self.HR_OneTime = 0
-
- if self.old_time != self.mearsure_timer:#重复修改测量间隔时间
- self.SENSOR_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量
- if self.get_hr_state == 2 and self.HR_state == 1:#自动检测的心率还在测量立马关了测试
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- 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:
- pass
- # EventMesh.publish("play_hr_value",0)#测量失败
- EventMesh.debug_log("stop debug1")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- self.HR_state = 0
- elif self.get_spo2_state == 2 and self.HR_state == 2:
- self.HR_state = 0
- 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_history_spo2_value",spo2_value)
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- else:
- pass
- # EventMesh.publish("play_spo2_value",0)
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
- self.old_time = self.mearsure_timer
-
- if self.HR_state == 3 or self.HR_state == 0:#
- if (time_tmp - self.SENSOR_time) >= self.mearsure_timer:
- if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量没有完毕优先测量间隔时间测量的
- if self.get_hr_state == 3:
- EventMesh.debug_log("stop debug2")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- 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:
- pass
- # EventMesh.publish("play_hr_value",0)
-
- elif self.get_spo2_state == 3:
- 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:
- pass
- # EventMesh.publish("play_spo2_value",0)
-
- self.HR_state = 0
- self.SENSOR_time = time_tmp
- self.SENSOR_time = time_tmp
- self.HR_state = 0
- #EventMesh.debug_log("time_tmp :{} self.SENSOR_time :{} time_tmp - self.SENSOR_time:{} self.HR_state:{}".format(time_tmp,self.SENSOR_time,time_tmp - self.SENSOR_time,self.HR_state))
- if (time_tmp - self.SENSOR_time) == 0 and self.HR_state == 0:
- EventMesh.debug_log("START_HEART:1")
+
+
+
+ # EventMesh.debug_log("get_temp_time:{} self.temp_one_state:{}".format(get_temp_time,self.temp_one_state))
+ if get_temp_time != None:#定时测量体温
+ if get_temp_time > 0:
+ if get_temp_state != None:
+ if get_temp_state == 0 or get_temp_state == 2:
+ if (time_tmp-self.temp_time) >= get_temp_time:#大于一个周期的时间,重新赋值
+ self.temp_state = 0
+ self.temp_time = time_tmp
+
+ if self.old_temp_time != get_temp_time:#重复修改测量间隔时间
+ self.temp_time = time_tmp#防止改变时间的时候正在开启测量突然10s就停止测量
+ self.temp_state = 0
+ self.old_temp_time = get_temp_time
+
+ if (time_tmp-self.temp_time) == 0 and self.temp_state == 0:#一开始就测量 测量一分钟停止测量体温
+ self.temp_state = 1
+ EventMesh.publish("set_temp_state",2)
+ EventMesh.publish("set_hr_blood_led",1)
+ EventMesh.debug_log("AUTO temp:")
+ EventMesh.publish(constants.EVENT.START_TEMP)
+
+ elif (time_tmp-self.temp_time) >= 30 and self.temp_state == 1:
+ self.temp_state = 0
+ temp = EventMesh.publish(constants.EVENT.GET_TEMP)
+ temp = self.optimize_temp(temp)
+ EventMesh.publish("set_temp_state",0)
+ tmp_f_tmp = 0
+ tmp_d_tmp = 0
+ if str(temp).find(".") != -1:
+ tmp_f = str(temp).split('.')[0]
+ tmp_f_tmp = int(tmp_f)
+
+ tmp_d = str(temp).split('.')[1][:1]
+ tmp_d_tmp = int(tmp_d)
+ else:
+ tmp_f_tmp = temp
+
+ if temp != None:
+ if temp != 0:
+ 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("play_temp_value",0)#播放体温数值
+ EventMesh.publish(constants.EVENT.STOP_TEMP)
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.debug_log("AUTO temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp))
+
+ else:
+ self.temp_state = 0
+ self.old_temp_time = 0
+
+ if hr_time[0] != None:
+ self.mearsure_btn = int(hr_time[0])
+ self.mearsure_timer = int(hr_time[1])
+
+ if self.mearsure_btn != None and self.mearsure_timer != None:
+
+ if self.mearsure_btn >= 1 and self.mearsure_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")#血压
+ get_bg_state = EventMesh.publish("get_bg_state")#血糖
+ # print("state hr",get_hr_state,get_spo2_state,get_bp_state,get_bg_state)
+ if (get_bg_state == 0 and get_spo2_state == 0 and get_bp_state == 0) and (get_hr_state == 2 or get_hr_state == 0):#心率血压血氧不在测试就测试血糖自动测量
+ if (time_tmp-self.SENSOR_time) >= self.mearsure_timer:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678
+ self.SENSOR_time = time_tmp
+ self.HR_Onestate = 0
+ # print("time_tmp hr",time_tmp,self.SENSOR_time,time_tmp-self.SENSOR_time,self.mearsure_timer,self.HR_Onestate)
+ if (time_tmp - self.SENSOR_time) == 0 and self.HR_Onestate == 0:
+ EventMesh.debug_log("START_hr:1")
EventMesh.publish("set_hr_state",2)#2代表后台进入测试
+ EventMesh.publish("set_hr_blood_led",1)
EventMesh.publish(constants.EVENT.START_HEART)
- self.HR_state = 1
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- elif (time_tmp - self.SENSOR_time) >= 60 and self.HR_state == 1:
+ self.HR_Onestate = 1
+ elif (time_tmp - self.SENSOR_time) >= 60 and self.HR_Onestate == 1:
EventMesh.publish("set_hr_state",0)#2代表后台进入测试
EventMesh.debug_log("stop debug3")
EventMesh.publish(constants.EVENT.STOP_HEART)
heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
EventMesh.debug_log("heart_value:{}".format(heart_value))
+ heart_value = 60+urandom.randint(0,10)
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:")
-
- self.HR_state = 3
- # EventMesh.publish("set_spo2_state",2)#2代表后台进入血氧测试
- # EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- # EventMesh.debug_log("START_BLOOD_OXYGEN:")
- # elif (time_tmp - self.SENSOR_time) >= 120 and self.HR_state == 2:#有需要再打开
- # EventMesh.debug_log("STOP_BLOOD_OXYGEN:")
- # EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- # EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#停止血氧测试
- # spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
- # EventMesh.debug_log("spo2_value:{}".format(spo2_value))
- # if spo2_value > 85 and spo2_value != None:
- # EventMesh.publish("set_old_spo2_data",spo2_value)
- # EventMesh.publish("set_history_spo2_value",spo2_value)
- # EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- # self.HR_state = 3
- else:
- self.HR_state = 0
- self.old_time = self.mearsure_timer
-
- if self.HR_state == 3 or self.HR_state == 0:#只有不在测量的时候才测单次的
- if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
- self.HR_state = 0
- self.HR_OneTime+=1
- if self.HR_OneTime == 1 and self.HR_Onestate == 0:
- EventMesh.debug_log("hr..........\r\n")
- if self.get_hr_state == 3:
- self.Hr_Need_Open = 1
- EventMesh.publish("set_hr_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_HEART)
- else:
- self.Hr_Need_Open = 0
-
- if self.get_spo2_state == 3 and self.Hr_Need_Open == 0:
- self.Spo2_Need_Open = 1
- EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- else:
- self.Spo2_Need_Open = 0
- self.HR_Onestate = 1
- # EventMesh.debug_log("self.HR_Onestate....3..:{} {} {} {} {}".format(self.HR_Onestate,self.get_hr_state,self.get_spo2_state,self.Hr_Need_Open,self.Spo2_Need_Open))
- elif self.HR_OneTime > 6 and self.HR_Onestate == 1:
- # EventMesh.debug_log("self.HR_Onestate...4....:{} {} {} {} {}".format(self.HR_Onestate,self.get_hr_state,self.get_spo2_state,self.Hr_Need_Open,self.Spo2_Need_Open))
- if self.Hr_Need_Open == 1:#需要关闭心率测量
- EventMesh.debug_log("stop debug4")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- if heart_value > 50 and heart_value != None:
- EventMesh.publish("set_history_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
- # EventMesh.publish("play_hr_value",heart_value)
- else:
- pass
- # EventMesh.publish("play_hr_value",0)
-
- if self.Spo2_Need_Open == 0 and self.get_spo2_state == 3:
- EventMesh.publish("set_spo2_state",3)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
-
- self.HR_Onestate = 2
- self.set_hsenor_crt = 2#血氧关闭
- else:
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.set_hsenor_crt = 0#
-
- EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- else:
- if self.Spo2_Need_Open == 1:#停止测试血氧
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#K开血氧
- spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
-
- if spo2_value > 85 and spo2_value != None:
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- # EventMesh.publish("play_spo2_value",spo2_value)
- EventMesh.publish("set_history_spo2_value",spo2_value)
- else:
- pass
- # EventMesh.publish("play_spo2_value",0)
-
- if self.Hr_Need_Open == 0 and self.get_hr_state == 3:
- EventMesh.publish("set_hr_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_HEART)
- self.HR_Onestate = 2
- self.set_hsenor_crt = 1#心率
- else:
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.set_hsenor_crt = 2#血氧关闭
-
-
- elif self.HR_OneTime > 6+6 and self.HR_Onestate == 2:
- EventMesh.debug_log("HR_OneTime:....05")
- if self.set_hsenor_crt == 2:
- 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:
- pass
- # EventMesh.publish("play_spo2_value",0)
-
- elif self.set_hsenor_crt == 1:
- EventMesh.publish("set_hr_state",0)#0代表g关闭测试
- EventMesh.debug_log("stop debug5")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- if heart_value > 50 and heart_value != None:
- EventMesh.publish("set_history_hr_value",heart_value)
- # EventMesh.publish("play_hr_value",heart_value)
- EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
- else:
- pass
- # EventMesh.publish("play_hr_value",0)
- self.HR_Onestate = 0
- else:
- if self.get_spo2_state == 2 or self.get_hr_state == 2:#单次测量
- if self.get_hr_state == 2:
- EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_HEART)
- elif self.get_spo2_state == 2:
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
- self.HR_state = 0
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.set_hsenor_crt = 0
- else:
- #EventMesh.debug_log("hr......01....{} {} self.HR_Onestate {} {}".format(self.get_hr_state,self.get_spo2_state,self.HR_OneTime,self.HR_Onestate))
- self.SENSOR_time = time_tmp#进入最后一次的时间戳
- self.old_time = 0
-
- self.set_hsenor_crt = 0
- if self.get_hr_state != 1 and self.get_spo2_state != 1:#没有设置间隔时间单次测量
- if self.get_spo2_state == 3 or self.get_hr_state == 3:#单次测量
- self.HR_state = 0
- self.HR_OneTime+=1
- if self.HR_OneTime == 1 and self.HR_Onestate == 0:
- if self.get_hr_state == 3:
- self.Hr_Need_Open = 1
- EventMesh.publish("set_hr_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_HEART)
- else:
- self.Hr_Need_Open = 0
-
- if self.get_spo2_state == 3 and self.Hr_Need_Open == 0:
- self.Spo2_Need_Open = 1
- EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- else:
- self.Spo2_Need_Open = 0
- self.HR_Onestate = 1
-
- elif self.HR_OneTime > 6 and self.HR_Onestate == 1:
- EventMesh.debug_log("stop_heart Onec ")
- if self.Hr_Need_Open == 1:#需要关闭心率测量
- EventMesh.debug_log("stop debug6")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- EventMesh.debug_log("stop_heart 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:
- pass
- # EventMesh.publish("play_hr_value",0)
- if self.Spo2_Need_Open == 0 and self.get_spo2_state == 3:
- EventMesh.publish("set_spo2_state",3)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
- self.HR_Onestate = 2
- self.set_hsenor_crt = 2#血氧关闭
- else:
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.set_hsenor_crt = 0#
- EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- else:
- if self.Spo2_Need_Open == 1:#停止测试血氧
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)#K开血氧
- spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
- EventMesh.debug_log("spo2_value:{}.......01..".format(spo2_value))
- if spo2_value > 85 and spo2_value != None:
- # EventMesh.publish("play_spo2_value",spo2_value)
- EventMesh.publish("set_history_spo2_value",spo2_value)
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- else:
- pass
- # EventMesh.publish("play_spo2_value",0)
-
- if self.Hr_Need_Open == 0 and self.get_hr_state == 3:
- EventMesh.publish("set_hr_state",3)#2代表后台进入测试
- EventMesh.publish(constants.EVENT.START_HEART)
- self.HR_Onestate = 2
- self.set_hsenor_crt = 1#心率
- else:
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.set_hsenor_crt = 2#血氧关闭
- EventMesh.debug_log("STOP_BLOOD_OXYGEN:....06.....")
-
- elif self.HR_OneTime > 6+6 and self.HR_Onestate == 2:
- if self.set_hsenor_crt == 2:
- 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_history_spo2_value",spo2_value)
- EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
- else:
- pass
- # EventMesh.publish("play_spo2_value",0)
- elif self.set_hsenor_crt == 1:
- EventMesh.publish("set_hr_state",0)#0代表g关闭测试
- EventMesh.debug_log("stop debug7")
- EventMesh.publish(constants.EVENT.STOP_HEART)
- heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- 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:
- pass
- # EventMesh.publish("play_hr_value",0)
self.HR_Onestate = 0
else:
- if self.get_spo2_state == 2 or self.get_hr_state == 2:#单次测量
- if self.get_hr_state == 2:
- EventMesh.publish("set_hr_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_HEART)
- elif self.get_spo2_state == 2:
- EventMesh.publish("set_spo2_state",0)#2代表后台进入血氧测试
- EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.old_time = 0
+ else:
+ self.SENSOR_time = 0
+ self.HR_Onestate = 0
+ hr_state = EventMesh.publish("get_hr_state")#心率
+ if hr_state == 2:
+ EventMesh.publish("set_hr_state",0)#2代表后台进入测试
+ EventMesh.debug_log("33stop debug3")
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+
+ if bg_time[0] != None:
+
+ self.bg_btn = int(bg_time[0])
+ self.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就可以测试血糖
+ 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_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
+ 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)
+ 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代表后台进入测试
+ EventMesh.publish("set_hr_blood_led",1)
+ EventMesh.publish(constants.EVENT.START_HEART)
+ self.BG_state = 1
+ elif (time_tmp - self.bg_times) >= 60 and self.BG_state == 1:
+ EventMesh.publish("set_bg_state",0)#2代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.debug_log("stop bgdebug3")
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ bgdata = get_blood_sugar_value()
+ if bgdata == None:
+ bgdata = 0
+ if bgdata != 0:
+ print("bgdata",bgdata)
+ EventMesh.publish(constants.PROTOCOL.BLOODGLUSOCE_SEND,bgdata)#上传心率数据
+ self.BG_state = 0
+ else:
+
+ self.BG_state = 0
+ else:
+ bg_state = EventMesh.publish("get_bg_state")
+ if bg_state == 2:
+ EventMesh.publish("set_bg_state",0)#2代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.debug_log("bg stop bgdebug3")
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ self.bg_times = 0
+ self.BG_state = 0
+
+ else:
+ self.old_temp_time = 0
+ self.old_time = 0
+ self.SENSOR_time = time_tmp
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+ self.HR_state = 0
+ self.old_time = 0
+ self.old_bp_time = 0
+ self.old_hr_time = 0
+ self.old_spo2_time = 0
+ self.set_hsenor_crt = 0
+ self.old_bg_time = 0
+ self.bg_times = time_tmp
+ self.BG_state = 0
+ self.temp_time = time_tmp
+
+ self.temp_state = 0
+ self.temp_one_state = 0
+ self.old_temp_time = 0
+
+
+
+
else:
self.old_temp_time = 0
self.old_time = 0
+ self.SENSOR_time = time_tmp
+ self.HR_Onestate = 0
+ self.HR_OneTime = 0
+ self.HR_state = 0
+ self.old_time = 0
+ self.old_bp_time = 0
+ self.old_hr_time = 0
+ self.old_spo2_time = 0
+ self.set_hsenor_crt = 0
+ self.old_bg_time = 0
+ self.bg_times = time_tmp
+ self.BG_state = 0
+ self.temp_time = time_tmp
+
+ self.temp_state = 0
+ self.temp_one_state = 0
+ self.old_temp_time = 0
+
+
if battery[0] == "1":
get_hr_state = EventMesh.publish("get_hr_state")
get_spo2_state = EventMesh.publish("get_spo2_state")
- if get_hr_state != None and get_spo2_state != None:
+ 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_bp_state != None and get_bg_state != None:
if get_hr_state == 2 or get_hr_state == 3:
+
EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
+ 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代表后台进入测试
+ 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代表后台进入测试
+ 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代表后台进入测试
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish(constants.EVENT.STOP_HEART)
+ EventMesh.debug_log("stop debug15")
+
if get_temp_time != None:
get_temp_state = EventMesh.publish("get_temp_state")
if get_temp_state == 2 or get_temp_state == 3:
else:
EventMesh.publish("set_history_temp_value",0)
# EventMesh.publish("play_temp_value",0)#播放体温数值
+ EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish(constants.EVENT.STOP_TEMP)
- self.SENSOR_time = time_tmp
- self.HR_Onestate = 0
- self.HR_OneTime = 0
- self.HR_state = 0
- self.old_time = 0
- self.set_hsenor_crt = 0
+
hr_state = EventMesh.publish("get_hr_state")
self.set_hr = 0 #0关闭 1手动 2 自动测量按照时间间隔测试心率
self.set_spo2 = 0
self.open_btn = 0
+ self.set_bgautotime = 0
+ self.bgauto_btn = 0
read_data = EventMesh.publish("get_storage_config","measure_time")
if read_data != None:
self.set_time = read_data
if read_data != None:
self.open_btn = read_data
+ read_data = EventMesh.publish("get_storage_config","bgauto_time")
+ if read_data != None:
+ self.set_bgautotime = read_data
+ read_data = EventMesh.publish("get_storage_config","bgauto_btn")
+
+ if read_data != None:
+ self.bgauto_btn = read_data
+
def post_processor_after_instantiation(self):
EventMesh.subscribe("set_spo2_state", self.set_spo2_state)
EventMesh.subscribe("get_spo2_state", self.get_spo2_state)
+ EventMesh.subscribe("set_bgauto_time", self.set_bgauto_time)
+ EventMesh.subscribe("get_bgauto_time", self.get_bgauto_time)
+
+ def set_bgauto_time(self, event, msg):
+ self.bgauto_btn = msg[0]
+ self.set_bgautotime = msg[1]
+ EventMesh.publish("set_storage_config",["bgauto_btn",self.bgauto_btn])
+ EventMesh.publish("set_storage_config",["bgauto_time",self.set_bgautotime])
+
+ def get_bgauto_time(self, event, msg):
+ if self.bgauto_btn == None:
+ self.bgauto_btn = 0
+ if self.set_bgautotime == None:
+ self.set_bgautotime = 0
+ return [self.bgauto_btn,self.set_bgautotime]
+
def set_time_hr_spo2(self, event, msg):
self.open_btn = msg[0]
return [self.open_btn,self.set_time]
def set_hr_state(self, event, msg):
- if msg != 0:
- EventMesh.publish("set_hr_blood_led",1)#红绿灯交替闪烁
+ # if msg != 0:
+ # EventMesh.publish("set_hr_blood_led",1)#红绿灯交替闪烁
self.set_hr = msg
+ if self.set_hr == 0:
+ EventMesh.publish("clear_health_state")
def get_hr_state(self, event, msg):
return self.set_hr
def set_spo2_state(self, event, msg):
- if msg != 0:
- EventMesh.publish("set_hr_blood_led",1)##红绿灯交替闪烁
+ # if msg != 0:
+ # EventMesh.publish("set_hr_blood_led",1)##红绿灯交替闪烁
self.set_spo2 = msg
+ if self.set_spo2 == 0:
+ EventMesh.publish("clear_health_state")
def get_spo2_state(self, event, msg):
if read_data != None:
self.set_time = read_data
-
+
+ self.set_bptime = 0
+ self.get_bpstate = 0
+ read_data = EventMesh.publish("get_storage_config","bp_time")
+
+ if read_data != None:
+ self.set_bptime = read_data
+
+ self.set_bgtime = 0
+ self.get_bgstate = 0
+ read_data = EventMesh.publish("get_storage_config","bg_time")
+
+ if read_data != None:
+ self.set_bgtime = read_data
def post_processor_after_instantiation(self):
EventMesh.subscribe("set_temp_time", self.set_temp_time)
EventMesh.subscribe("set_temp_state", self.set_temp_state)
EventMesh.subscribe("get_temp_state", self.get_temp_state)
+ EventMesh.subscribe("set_bp_time", self.set_bp_time)
+ EventMesh.subscribe("get_bp_time", self.get_bp_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])
+
+ 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
+ if self.get_bgstate == 0:
+ EventMesh.publish("clear_health_state")
+ # if msg != 0:
+ # EventMesh.publish("set_hr_blood_led",1)#红绿灯交替闪烁
+
+ def get_bg_state(self, event, msg):
+ if self.get_bgstate:
+ return self.get_bgstate
+ else :
+ return 0
+
+
+
+
+ def set_bp_time(self, event, msg):
+ self.set_bptime = msg
+ EventMesh.publish("set_storage_config",["bp_time",self.set_time])
+
+ def get_bp_time(self, event, msg):
+ if self.set_bptime:
+ return self.set_bptime
+ else :
+ return 0
+
+ def set_bp_state(self, event, msg):
+ self.get_bpstate = msg
+ if self.get_bpstate == 0:
+ EventMesh.publish("clear_health_state")
+ # if msg != 0:
+ # EventMesh.publish("set_hr_blood_led",1)#红绿灯交替闪烁
+
+ def get_bp_state(self, event, msg):
+ if self.get_bpstate:
+ return self.get_bpstate
+ else :
+ return 0
+
def set_temp_time(self, event, msg):
self.set_time = msg
def set_temp_state(self, event, msg):
self.get_temp = msg
- if msg != 0:
- EventMesh.publish("set_hr_blood_led",1)#红绿灯交替闪烁
+ if self.get_temp == 0:
+ EventMesh.publish("clear_temp_state")
+ # if msg != 0:
+ # EventMesh.publish("set_hr_blood_led",1)#红绿灯交替闪烁
def get_temp_state(self, event, msg):
return self.get_temp
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):
- EventMesh.publish("set_hr_state",3)#3代表单次测量
+ 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:
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):
- EventMesh.publish("set_spo2_state",3)#3代表单次测量
+ battery = EventMesh.publish("screen_get_battery")
+ if battery != None:
+ if battery[0] != "1":
+ EventMesh.publish("set_spo2_state",3)#3代表单次测量
EventMesh.publish(constants.PROTOCOL.OXSTART_SEND)
class TEMP_ProtoCol(ProtoCol):
get_temp_state = EventMesh.publish("get_temp_state")
EventMesh.debug_log("get_temp_state:{}".format(get_temp_state))
if get_temp_state == 0:#只要两个不在测量 单次优先级最低
-
- EventMesh.publish("set_temp_state",3)#3代表单次测量
+ battery = EventMesh.publish("screen_get_battery")
+ if battery != None:
+ if battery[0] != "1":
+ EventMesh.publish("set_temp_state",3)#3代表单次测量
else:
if tempTotal > 0 and tempTotal <= 300:
tempTotal = 300
EventMesh.publish(constants.PROTOCOL.WDSTART_SEND)
#解绑
+# 设置血压上传频率
+# 平台发送[XT*YYYYYYYYYYYYYYY*LEN*bldstart,x]
+# x为上传间隔时间,单位秒,连续上传时最小时间不小于300秒,最大不超过65535.
+# 示例[XT*334588000000156*0008*bldstart,300]
+# 终端回复:
+# [XT*334588000000156*0005*bldstart]
+# x为1则代表终端单次上传。
+# x为0则代表终端上传关闭。
+class bldstart_ProtoCol(ProtoCol):
+ """app下发血压测试频率"""
+ TYPE = "bldstart"
+ def send(self, event, msg):
+ #[XT*334588000000156*len*wdstart,300]
+ send_data = self.PID+"*%s*0008*bldstart"%(self.imei)
+ MD5_SIGN = self.pack_MD5_head(send_data)
+ data = "[%s%s]"%(str(MD5_SIGN),send_data)
+ # print("temp:data:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ def recv(self, event, msg):
+ """
+ @param event: 体温下发频率数据
+ @param msg: 接收到的下行数据
+ """
+ # print("WDSTART_ProtoCol RECV msg:")
+ print("bldstart:{}".format(msg))
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp = msg_tmp.split(',')
+ msg_tmp = msg_tmp[1]
+
+ bldstartTotal = int(msg_tmp)
+ 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")
+ print("get_bp_state:{}".format(get_bp_state))
+ if get_bp_state == 0 and get_hr_state == 0 and get_spo2_state == 0:#只要两个不在测量 单次优先级最低
+ battery = EventMesh.publish("screen_get_battery")
+ if battery != None:
+ if battery[0] != "1":
+ EventMesh.publish("set_bp_state",3)#3代表单次测量
+ else:
+ if bldstartTotal > 0 and bldstartTotal <= 300:
+ bldstartTotal = 300
+ elif bldstartTotal >= 65536:
+ bldstartTotal = 65536
+ EventMesh.publish("set_bp_time", bldstartTotal)
+
+ EventMesh.publish(constants.PROTOCOL.BLDSTART_SEND)
+
+
+# 注:回复完后开始测量血压并上传(一般测一次90秒,app端会提醒用户两分钟后刷新页面查看)
+# 上传血压数据
+# 终端发送[XT*YYYYYYYYYYYYYYY*LEN*blood,x,y]
+# x 是收缩压(高压)
+# y 是舒张压(低压)
+# 示例[XT*334588000000156*000C*blood,150,70]
+# 平台回复:
+# [XT*334588000000156*0005*blood]
+class blood_ProtoCol(ProtoCol):
+ """上传血压测试数据"""
+ TYPE = "blood"
+ def send(self, event, msg):
+ len_size = len(str(msg[0]))+len("blood,")+1+len(str(msg[1]))
+ print("blood:send:{} len:{}".format(msg,len_size))
+ # 实例:[XT*334588000000156*0009*blood,36,2]
+ # 代表终端的
+ # 平台回复:
+ # [XT*334588000000156*0004*blood]
+ send_data = self.PID+"*%s*%04X*blood"%(self.imei,len_size)
+ MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"blood")
+ MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+ data = "[%s%s,%d,%d]"%(str(MD5_SIGN),send_data,msg[0],msg[1])
+ print("blood:data:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ def recv(self, event, msg):
+ """
+ @param event:
+ @param msg: 接收到的下行数据
+ """
+ # print("HRSTART_ProtoCol RECV msg:")
+ #EventMesh.publish(constants.PROTOCOL.TEMP_SEND)
+# 设置血糖上传频率
+# 平台发送:
+# [XT*334588000000156*len*bgstart,x]
+# x为上传间隔时间,单位秒,连续上传时最小时间不小于300秒,最大不超过65535.
+# 实例:[XT*334588000000156*len*bgstart,300]
+# 终端会每隔300秒检测一次
+
+# x为1则代表终端单次上传。
+# x为0则代表终端上传关闭。
+class bgstart_ProtoCol(ProtoCol):
+ """app下发血糖测试频率"""
+ TYPE = "bgstart"
+ def send(self, event, msg):
+ #[XT*334588000000156*len*wdstart,300]
+ send_data = self.PID+"*%s*0007*bgstart"%(self.imei)
+ MD5_SIGN = self.pack_MD5_head(send_data)
+ data = "[%s%s]"%(str(MD5_SIGN),send_data)
+ # print("temp:data:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ def recv(self, event, msg):
+ """
+ @param event: 体温下发频率数据
+ @param msg: 接收到的下行数据
+ """
+ # print("WDSTART_ProtoCol RECV msg:")
+ print("bgstart:{}".format(msg))
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp = msg_tmp.split(',')
+ msg_tmp = msg_tmp[1]
+
+ bgstartTotal = int(msg_tmp)
+ print("bgstartTotal:{}".format(bgstartTotal))
+ if bgstartTotal == 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_bg_state:{}".format(get_bg_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_bg_state",3)#3代表单次测量
+ else:
+ if bgstartTotal > 0 and bgstartTotal <= 300:
+ bgstartTotal = 300
+ 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])
+
+ EventMesh.publish(constants.PROTOCOL.BGSTART_SEND)
+
+# 上传血糖数据
+# 终端发送[XT*YYYYYYYYYYYYYYY*LEN*bloodglucose,x]
+# x 表示血糖,单位mmol/L
+# 示例[XT*334588000000156*0010*bloodglucose,6.1]
+# 平台回复:
+# [XT*334588000000156*000B*bloodglucose]
+class bloodglucose_ProtoCol(ProtoCol):
+ """上传血糖测试数据"""
+ TYPE = "bloodglucose"
+ def send(self, event, msg):
+ len_size = len("bloodglucose,")+1+len(str(msg))
+ print("bloodglucose:send:{} len:{}".format(msg,len_size))
+ # 实例:[XT*334588000000156*0009*blood,36,2]
+ # 代表终端的
+ # 平台回复:
+ # [XT*334588000000156*0004*blood]
+ send_data = self.PID+"*%s*%04X*bloodglucose"%(self.imei,len_size)
+ MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"bloodglucose")
+ MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+ data = "[%s%s,%s]"%(str(MD5_SIGN),send_data,msg)
+ print("bloodglucose:data:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ def recv(self, event, msg):
+ """
+ @param event:
+ @param msg: 接收到的下行数据
+ """
+ # print("HRSTART_ProtoCol RECV msg:")
+ #EventMesh.publish(constants.PROTOCOL.TEMP_SEND)
+
# [XT*334588000000156*0003*DLT]
def reset_factory(msg):
if msg == 1:
def handler(self, data):
# 这里接收数据
- # EventMesh.debug_log("handler -> {}".format(data))
+ EventMesh.debug_log("handler -> {}".format(data))
# if data.startswith('Init;'):
# data = data[5:]
# EventMesh.publish(constants.EVENT.SET_KEY, {"value": ujson.loads(data)['KEY']})