self.vbat_count = 0
+ self.vbat_buf=[]
+
+ self.curr_battery_level = 4200
+ self.bat_count = 0
+
self.usb = USB()
self.usb.setCallback(self.usb_event_cb)
self.log = LogAdapter(self.__class__.__name__)
EventMesh.subscribe("about_get_iccid", self.get_ic_cid)
EventMesh.subscribe("about_get_phonenum", self.get_phone_num)
EventMesh.subscribe("screen_get_battery", self.get_battery)
+ EventMesh.subscribe("set_curr_battery_level", self.set_curr_battery_level)
+ EventMesh.subscribe("get_curr_battery_level", self.get_curr_battery_level)
EventMesh.subscribe("get_fw_version", self.get_device_fw_version)
EventMesh.subscribe("get_standby_time", self.get_standby_time)
EventMesh.subscribe(constants.EVENT.GET_STEP, self.get_step_count)
EventMesh.publish(constants.EVENT.START_LOCATION) #开始定位
EventMesh.publish(constants.EVENT.PUSH_STEP, self.get_step_count())
+ temp = Power.getVbatt()
+ self.bat_count+=1
+ self.vbat_buf.append(temp)
+
+ curr_count = len(self.vbat_buf)
+ bat_total_value = 0
+ for i in range(curr_count):
+ bat_total_value += self.vbat_buf[i]
+
+ bat_total_value = bat_total_value//curr_count#一分钟更新一次电量 10个平均值
+
+ EventMesh.publish("set_curr_battery_level",bat_total_value)
+ # print("self.vbat_buf:{} curr_count :{} bat_total_value:{}".format(self.vbat_buf,curr_count,bat_total_value))
+ if self.bat_count >= 10:
+ self.bat_count = 0
+ self.vbat_buf = []
bat_tmp = EventMesh.publish("screen_get_battery")
self.vbat_count+=10
get_temp_time = EventMesh.publish("get_temp_time")
get_temp_state = EventMesh.publish("get_temp_state")
hr_time = EventMesh.publish("get_time_hr_spo2")#获取时间是否大于0
- if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[1] != 1:
+ if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and battery[0] != "1":
# print("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:
self.HR_Onestate = 0
self.HR_OneTime = 0
else:
- if self.get_hr_state != None and self.get_spo2_state != None:
- if self.get_hr_state ==3 or self.get_spo2_state ==3:#3单次测量
- if self.get_hr_state != 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:
+ if get_hr_state == 2 or get_hr_state == 3:
EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率
print("stop debug8")
EventMesh.publish(constants.EVENT.STOP_HEART)
- elif self.get_spo2_state != 0:
+ elif get_spo2_state == 2 or get_spo2_state == 3:
EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
-
- if get_temp_time != None:
- if get_temp_state != 0:
- self.temp_one_state = 0
- self.temp_state = 0
- temp = EventMesh.publish(constants.EVENT.GET_TEMP)
- 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)
- EventMesh.publish("set_temp_state",0)
- if temp != None:
- if temp != 0:
- EventMesh.publish("set_history_temp_value",temp)
- EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
- EventMesh.publish(constants.EVENT.STOP_TEMP)
+
+ if get_temp_time != None:
+ get_temp_state = EventMesh.publish("get_temp_state")
+ if get_temp_state == 2 or get_temp_state == 3:
+ self.temp_one_state = 0
+ self.temp_state = 0
+ temp = EventMesh.publish(constants.EVENT.GET_TEMP)
+ 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)
+ EventMesh.publish("set_temp_state",0)
+ if temp != None:
+ if temp != 0:
+ EventMesh.publish("set_history_temp_value",temp)
+ EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
+ EventMesh.publish(constants.EVENT.STOP_TEMP)
self.SENSOR_time = time_tmp
self.HR_Onestate = 0
self.HR_OneTime = 0
else:
charge_state = '0'
- vbat = 0
- temp = Power.getVbatt()
- if temp <= 3505:
- vbat = 0
- elif temp <= 3699:
- vbat = 20 #"E:/vbat_20.jpg"
- elif temp <= 3772:
- vbat = 40 #"E:/vbat_40.jpg"
- elif temp <= 3882:
- vbat = 60 #"E:/vbat_60.jpg"
- elif temp <= 4070:
- vbat = 80 #"E:/vbat_80.jpg"
+ #temp = Power.getVbatt()
+ temp = EventMesh.publish("get_curr_battery_level")
+ if temp != None :
+ if temp <= 3505:
+ vbat = 0
+ elif temp <= 3699:
+ vbat = 20 #"E:/vbat_20.jpg"
+ elif temp <= 3772:
+ vbat = 40 #"E:/vbat_40.jpg"
+ elif temp <= 3882:
+ vbat = 60 #"E:/vbat_60.jpg"
+ elif temp <= 4070:
+ vbat = 80 #"E:/vbat_80.jpg"
+ else:
+ vbat = 100 #"E:/vbat_100.jpg"
else:
- vbat = 100 #"E:/vbat_100.jpg"
+ vbat = 100
result = [charge_state, vbat]
return result
+ #Set the current average battery level
+ def set_curr_battery_level(self, event=None, msg=None):
+ self.curr_battery_level = msg
+
+ def get_curr_battery_level(self, event=None, msg=None):
+ return self.curr_battery_level
def get_device_fw_version(self, *args):
'''
return self.read_histroy_spo2_data
def set_history_spo2_value(self, event, msg):
- if msg > 0:
- self.read_histroy_spo2_data = EventMesh.publish("get_history_spo2_value")
- count = len(self.read_histroy_spo2_data)
- if count >= 7:
- for i in range(6):
- self.read_histroy_spo2_data["0{}".format(i+1)] = self.read_histroy_spo2_data["0{}".format(i+2)]
- self.read_histroy_spo2_data["07"] = msg
- else:
- self.read_histroy_spo2_data["0{}".format(count+1)] = msg
- with open("/ext/static/storage_file/history_spo2.json","w",encoding="utf-8") as fd:
- ujson.dump(self.read_histroy_spo2_data,fd)
+ pass
+
def get_history_temp_value(self, event, msg): #近7次体温历史数据统计显示
return self.read_histroy_temp_data
def set_history_temp_value(self, event, msg):
- if msg > 0:
- self.read_histroy_temp_data = EventMesh.publish("get_history_temp_value")
- count = len(self.read_histroy_temp_data)
- if count >= 7:
- for i in range(6):
- self.read_histroy_temp_data["0{}".format(i+1)] = self.read_histroy_temp_data["0{}".format(i+2)]
- self.read_histroy_temp_data["07"] = msg
- else:
- self.read_histroy_temp_data["0{}".format(count+1)] = msg
- with open("/ext/static/storage_file/history_temp.json","w",encoding="utf-8") as fd:
- ujson.dump(self.read_histroy_temp_data,fd)
+ count = len(self.read_histroy_temp_data)
+ print(count)
+ if count >= 7:
+ for i in range(6):
+ self.read_histroy_temp_data["0{}".format(i+1)] = self.read_histroy_temp_data["0{}".format(i+2)]
+ self.read_histroy_temp_data["07"] = msg
+ else:
+ self.read_histroy_temp_data["0{}".format(count+1)] =msg
+ with open("/ext/static/storage_file/history_temp.json","w",encoding="utf-8") as fd:
+ ujson.dump(self.read_histroy_temp_data,fd)
+
def get_history_hr_value(self, event, msg): #近7次心率历史数据统计显示
return self.read_histroy_hr_data
def set_history_hr_value(self, event, msg):
+ pass
+
+
+
+ def save_hr_value(self, event, msg):
if msg >= 50:
- self.read_histroy_hr_data = EventMesh.publish("get_history_hr_value")
+
+ self.read_data = EventMesh.publish("get_storage_data")
+ self.read_data["old_hr"] = msg
+ self.oldHr = msg
+ EventMesh.publish("set_storage_data", self.read_data)
+
count = len(self.read_histroy_hr_data)
if count >= 7:
for i in range(6):
self.read_histroy_hr_data["07"] = msg
else:
self.read_histroy_hr_data["0{}".format(count+1)] = msg
- with open("/ext/static/storage_file/history_hr.json","w",encoding="utf-8") as fd:
- ujson.dump(self.read_histroy_hr_data,fd)
- def save_hr_value(self, event, msg):
- if msg >= 50:
- self.read_data = EventMesh.publish("get_storage_data")
- self.read_data["old_hr"] = msg
-
- EventMesh.publish("set_storage_data", self.read_data)
with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
ujson.dump(self.read_data,fd)
- self.oldHr = msg
+
+ with open("/ext/static/storage_file/history_hr.json","w",encoding="utf-8") as fd:
+ ujson.dump(self.read_histroy_hr_data,fd)
+ print(self.read_histroy_temp_data)
def get_hr_value(self, event, msg):
return self.oldHr
if msg >= 85:
self.read_data = EventMesh.publish("get_storage_data")
self.read_data["old_spo2"] = msg
-
+ self.oldspo2 = msg
EventMesh.publish("set_storage_data", self.read_data)
+
+ count = len(self.read_histroy_spo2_data)
+ if count >= 7:
+ for i in range(6):
+ self.read_histroy_spo2_data["0{}".format(i+1)] = self.read_histroy_spo2_data["0{}".format(i+2)]
+ self.read_histroy_spo2_data["07"] = msg
+ else:
+ self.read_histroy_spo2_data["0{}".format(count+1)] = msg
+
with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
ujson.dump(self.read_data,fd)
- self.oldspo2 = msg
+
+ with open("/ext/static/storage_file/history_spo2.json","w",encoding="utf-8") as fd:
+ ujson.dump(self.read_histroy_spo2_data,fd)
def get_spo2_value(self, event, msg):
return self.oldspo2
if count != 0:
if count >= 7:
for i in range(count):
- value = read_data["0{}".format(i+1)]
+ key = i+1
+ value = read_data["0{}".format(key)]
if value < 30:
value = 30
if value >= 210:
self.point = self.point + 1
EventMesh.publish("system_sleep_rest")#防止黑屏
self.heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
- print("self.heart_value:{}".format(self.heart_value))
+ # print("self.heart_value:{}".format(self.heart_value))
if self.point >= 2:
if self.heart_value < 40:
self.heart_value = 0
if self.point > 120: #测20s
+ self.timer.stop()
heartrate_done_img.set_src("E:/static/hr_gif_03.png")
self.heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
if self.heart_value > 50:
# heartrate_done_label.set_text("测量完成")
else:
heartrate_bpm_label.set_text("-- bpm")
-
self.show_history_data()
-
- self.timer.stop()
self.point = 0
EventMesh.publish("set_hr_state",0)#0代表关闭测试
print("stop debug9")
def show_num(self):
global on_call_screen_tab_label
- #print("phone self.phone_num ",self.phone_num,self.phone_list)
+ print("phone self.phone_num ",self.phone_num,self.phone_list)
on_call_screen_tab_label.set_size(200, 30)
on_call_screen_tab_label.set_text(self.phone_num)
def one(self,e):
if line_value >= 100:
line_value = 100
#print("hr hist",line_value)
- hr_line_points = [{"x":0,"y":0},{"x":0,"y":line_value}]
+ temp_line_points = [{"x":0,"y":0},{"x":0,"y":line_value}]
if i == 0:
- temp_line1.set_points(hr_line_points,2)
+ temp_line1.set_points(temp_line_points,2)
temp_line1.set_pos(29,150-line_value)
temp_line1.set_size(10,line_value)
if value >= 37.3:
else:
temp_line1.set_style_line_color(lv.color_make(35,141,255),0)
if i == 1:
- temp_line2.set_points(hr_line_points,2)
+ temp_line2.set_points(temp_line_points,2)
temp_line2.set_pos(57,150-line_value)
temp_line2.set_size(10,line_value)
if value >= 37.3:
temp_line2.set_style_line_color(lv.color_make(35,141,255),0)
if i == 2:
- temp_line3.set_points(hr_line_points,2)
+ temp_line3.set_points(temp_line_points,2)
temp_line3.set_pos(84,150-line_value)
temp_line3.set_size(10,line_value)
if value >= 37.3:
else:
temp_line3.set_style_line_color(lv.color_make(35,141,255),0)
if i == 3:
- temp_line4.set_points(hr_line_points,2)
+ temp_line4.set_points(temp_line_points,2)
temp_line4.set_pos(112,150-line_value)
temp_line4.set_size(10,line_value)
if value >= 37.3:
else:
temp_line4.set_style_line_color(lv.color_make(35,141,255),0)
if i == 4:
- temp_line5.set_points(hr_line_points,2)
+ temp_line5.set_points(temp_line_points,2)
temp_line5.set_pos(140,150-line_value)
temp_line5.set_size(10,line_value)
if value >= 37.3:
temp_line5.set_style_line_color(lv.color_make(35,141,255),0)
if i == 5:
- temp_line6.set_points(hr_line_points,2)
+ temp_line6.set_points(temp_line_points,2)
temp_line6.set_pos(167,150-line_value)
temp_line6.set_size(10,line_value)
if value >= 37.3:
temp_line6.set_style_line_color(lv.color_make(35,141,255),0)
if i == 6:
- temp_line7.set_points(hr_line_points,2)
+ temp_line7.set_points(temp_line_points,2)
temp_line7.set_pos(195,150-line_value)
temp_line7.set_size(10,line_value)
if value >= 37.3:
if line_value >= 100:
line_value = 100
#
- hr_line_points = [{"x":0,"y":0},{"x":0,"y":line_value}]
+ temp_line_points = [{"x":0,"y":0},{"x":0,"y":line_value}]
if count == 1:
- temp_line1.set_points(hr_line_points,2)
+ temp_line1.set_points(temp_line_points,2)
temp_line1.set_pos(29,150-line_value)
temp_line1.set_size(10,line_value)
if value >= 37.3:
temp_line1.set_style_line_color(lv.color_make(35,141,255),0)
if count == 2:
- temp_line2.set_points(hr_line_points,2)
+ temp_line2.set_points(temp_line_points,2)
temp_line2.set_pos(57,150-line_value)
temp_line2.set_size(10,line_value)
if value >= 37.3:
temp_line2.set_style_line_color(lv.color_make(35,141,255),0)
if count == 3:
- temp_line3.set_points(hr_line_points,2)
+ temp_line3.set_points(temp_line_points,2)
temp_line3.set_pos(84,150-line_value)
temp_line3.set_size(10,line_value)
if value >= 37.3:
if count == 4:
- temp_line4.set_points(hr_line_points,2)
+ temp_line4.set_points(temp_line_points,2)
temp_line4.set_pos(112,150-line_value)
temp_line4.set_size(10,line_value)
if value >= 37.3:
temp_line4.set_style_line_color(lv.color_make(35,141,255),0)
if count == 5:
- temp_line5.set_points(hr_line_points,2)
+ temp_line5.set_points(temp_line_points,2)
temp_line5.set_pos(140,150-line_value)
temp_line5.set_size(10,line_value)
if value >= 37.3:
temp_line5.set_style_line_color(lv.color_make(35,141,255),0)
if count == 6:
- temp_line6.set_points(hr_line_points,2)
+ temp_line6.set_points(temp_line_points,2)
temp_line6.set_pos(167,150-line_value)
temp_line6.set_size(10,line_value)
if value >= 37.3:
temp_line6.set_style_line_color(lv.color_make(35,141,255),0)
if count == 7:
- temp_line7.set_points(hr_line_points,2)
+ temp_line7.set_points(temp_line_points,2)
temp_line7.set_pos(195,150-line_value)
temp_line7.set_size(10,line_value)
if value >= 37.3:
temp = EventMesh.publish(constants.EVENT.GET_TEMP)
tmp = str(temp).split('.')[0] + '.' + str(temp).split('.')[1][:1]#获取小数点后一位 舍去小数点最后一位
- print("self.temp:{}".format(temp))
+ # print("self.temp:{}".format(temp))
if self.point >= 2:
if temp != 0:
temperature_bpm_label.set_text("{}".format(tmp))
temperature_keep_label.set_text("体温正常")
temperature_keep_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
if self.point > 120 : #测2min
-
+ self.timer.stop()
if temp >= 37.3:
temperature_done_img.set_src("E:/static/temp_high.png")
else:
EventMesh.publish("set_history_temp_value",temp)
self.show_history_data()
- self.timer.stop()
+
self.point = 0
EventMesh.publish("set_temp_state",0)
EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
if self.point > 120: #测20s
+ self.timer.stop()
spo2_done_img.set_src("E:/static/spo2_gif04.png")
self.spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
if self.spo2_value >= 85:
self.show_history_data()
- self.timer.stop()
self.point = 0
EventMesh.publish("set_spo2_state",0)#0代表关闭测试
print("stop debug9")