self.mearsure_btn = 0
self.mearsure_timer = 0
-
+
self.usb = USB()
self.usb.setCallback(self.usb_event_cb)
self.log = LogAdapter(self.__class__.__name__)
self.oldstep = 0
self.old_step = 0
self.read_data = {}
- self.read_histroy_hr_data = {}
- self.read_histroy_temp_data = {}
- self.read_histroy_spo2_data = {}
+ self.read_histroy_hr_data = []
+ self.read_histroy_temp_data = []
+ self.read_histroy_spo2_data = []
check_json= ql_fs.path_exists("/ext/static/storage_file/config.json")
if check_json == True :
with open("/ext/static/storage_file/config.json","r") as fd:#音频文件编号
if check_spo2 == True :
with open("/ext/static/storage_file/history_spo2.json","r") as fd:#音频文件编号
self.read_histroy_spo2_data = ujson.load(fd)
+ self.temp_value = 0
+
+ # self.read_histroy_hr_data=[{"timeSec":16789890,"value":90},{"timeSec":16789888,"value":78},{"timeSec":16789688,"value":68},{"timeSec":16789898,"value":58},\
+ # {"timeSec":16789897,"value":88},{"timeSec":16789867,"value":77},{"timeSec":16789895,"value":70}]
def post_processor_after_instantiation(self):
EventMesh.subscribe("set_old_hr_data", self.save_hr_value)
return self.read_histroy_temp_data
def set_history_temp_value(self, event, msg):
- 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
+ self.temp_value = msg
+ date_tmp = utime.localtime()
+ time_tmp = utime.mktime(date_tmp)
+ if len(self.read_histroy_temp_data) >= 7:
+ sort_new = {}
+ sort_new = sorted(self.read_histroy_temp_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
+ print(sort_new)
+ for i in range(len(self.read_histroy_temp_data)-1):
+ sort_new[i] = sort_new[i+1]#0==1 1== 2 2== 3 3==4 4==5 5==6 6==7
+ self.read_histroy_temp_data[i] = sort_new[i]
+ pass
+ self.read_histroy_temp_data[6] = {"timeSec": time_tmp, "temp": self.temp_value}
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)
-
+ self.read_histroy_temp_data.append({"timeSec": time_tmp, "temp": self.temp_value})
+ with open("/ext/static/storage_file/history_spo2.json","w",encoding="utf-8") as fd:
+ ujson.dump(self.read_histroy_temp_data,fd)
+ #print(self.read_histroy_temp_data)
def get_history_hr_value(self, event, msg): #近7次心率历史数据统计显示
return self.read_histroy_hr_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["0{}".format(i+1)] = self.read_histroy_hr_data["0{}".format(i+2)]
- self.read_histroy_hr_data["07"] = msg
+
+ date_tmp = utime.localtime()
+ time_tmp = utime.mktime(date_tmp)
+ if len(self.read_histroy_hr_data) >= 7:
+ sort_new = {}
+ sort_new = sorted(self.read_histroy_hr_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
+ print(sort_new)
+ for i in range(len(self.read_histroy_hr_data)-1):
+ sort_new[i] = sort_new[i+1]#0==1 1== 2 2== 3 3==4 4==5 5==6 6==7
+ self.read_histroy_hr_data[i] = sort_new[i]
+ pass
+ self.read_histroy_hr_data[6] = {"timeSec": time_tmp, "hr": self.oldHr}
else:
- self.read_histroy_hr_data["0{}".format(count+1)] = msg
+ self.read_histroy_hr_data.append({"timeSec": time_tmp, "hr": self.oldHr})
with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
ujson.dump(self.read_data,fd)
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)
+ #print(self.read_histroy_hr_data)
+
def get_hr_value(self, event, msg):
return self.oldHr
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
+
+ date_tmp = utime.localtime()
+ time_tmp = utime.mktime(date_tmp)
+ if len(self.read_histroy_spo2_data) >= 7:
+ sort_new = {}
+ sort_new = sorted(self.read_histroy_spo2_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
+ print(sort_new)
+ for i in range(len(self.read_histroy_spo2_data)-1):
+ sort_new[i] = sort_new[i+1]#0==1 1== 2 2== 3 3==4 4==5 5==6 6==7
+ self.read_histroy_spo2_data[i] = sort_new[i]
+ pass
+ self.read_histroy_spo2_data[6] = {"timeSec": time_tmp, "spo2": self.oldspo2}
else:
- self.read_histroy_spo2_data["0{}".format(count+1)] = msg
+ self.read_histroy_spo2_data.append({"timeSec": time_tmp, "spo2": self.oldspo2})
with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
ujson.dump(self.read_data,fd)
with open("/ext/static/storage_file/history_spo2.json","w",encoding="utf-8") as fd:
ujson.dump(self.read_histroy_spo2_data,fd)
+ #print(self.read_histroy_spo2_data)
def get_spo2_value(self, event, msg):
return self.oldspo2
global hr_line1,hr_line2,hr_line3,hr_line4,hr_line5,hr_line6,hr_line7
read_data = {}
read_data = EventMesh.publish("get_history_hr_value")
- print("hr history read_data",read_data)
- if read_data != None:
- count = len(read_data)
- if count != 0:
- for i in range(count):
- key = i+1
- value = read_data["0{}".format(key)]
+ if len(read_data) != 0:
+ sort_new = {}
+ sort_new = sorted(read_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
+ # print("hr history sort_new",sort_new)
+ if sort_new != []:
+ for i in range(len(sort_new)):
+ print(int(sort_new[i]["hr"]))
+ # print("hr history read_data",read_data)
+ value = int(sort_new[i]["hr"])
if value < 30:
value = 30
if value >= 210:
hr_line7.set_points(hr_line_points,2)
hr_line7.set_pos(192,160-line_value)
hr_line7.set_size(10,line_value)
-
+
def start_measure(self,*args):
global heartrate_screen,heartrate_label,heartrate_done_img ,heartrate_reset_btn_img,heartrate_start_label,heartrate_bpm_label ,heartrate_done_label
global temp_line1,temp_line2,temp_line3,temp_line4,temp_line5,temp_line6,temp_line7
read_data = {}
read_data = EventMesh.publish("get_history_temp_value")
- print("hr history read_data",read_data)
- if read_data != None:
- count = len(read_data)
+ # print("hr get_history_temp_value",read_data)
+ if len(read_data) != 0:
+ sort_new = {}
+ sort_new = sorted(read_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五
+ count = len(sort_new)
if count != 0:
for i in range(count):
- value = read_data["0{}".format(i+1)]
+ # print(int(sort_new[i]["temp"]))
+ # print("hr history read_data",read_data)
+ value = int(sort_new[i]["temp"])
value_temp = int(value)
if value <= 30:
line_value = int(value_temp)
value = 46
line_value = 100
-
if line_value >= 100:
line_value = 100
#print("hr hist",line_value)
global spo2_line1,spo2_line2,spo2_line3,spo2_line4,spo2_line5,spo2_line6,spo2_line7
read_data = {}
read_data = EventMesh.publish("get_history_spo2_value")
- print("hr get_history_spo2_value",read_data)
- if read_data != None:
- count = len(read_data)
+ # print("hr get_history_spo2_value",read_data)
+ if len(read_data) != 0:
+ sort_new = {}
+ sort_new = sorted(read_data, key = lambda i: i['timeSec'],reverse = False)#按照时间戳进行排序 去掉最旧的一次数据如果满了五
+ count = len(sort_new)
if count != 0:
for i in range(count):
- value = read_data["0{}".format(i+1)]
+ print(int(sort_new[i]["spo2"]))
+ # print("hr history read_data",read_data)
+ value = int(sort_new[i]["spo2"])
if value < 80:
value = 80
if value >= 100: