From: dxy15521469561 <1731678236@qq.com> Date: Mon, 17 Jul 2023 09:25:41 +0000 (+0800) Subject: 体温界面更改 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=27627e313e7e31e85d7a99d59c4d4ababdd1dd1c;p=mirrors%2FASR1603_G5.git 体温界面更改 --- diff --git a/2.sdk/project/K5/ext/static/spo2_gif01.png b/2.sdk/project/K5/ext/static/spo2_gif01.png new file mode 100644 index 00000000..69e124e1 Binary files /dev/null and b/2.sdk/project/K5/ext/static/spo2_gif01.png differ diff --git a/2.sdk/project/K5/ext/static/spo2_gif02.png b/2.sdk/project/K5/ext/static/spo2_gif02.png new file mode 100644 index 00000000..8fffc671 Binary files /dev/null and b/2.sdk/project/K5/ext/static/spo2_gif02.png differ diff --git a/2.sdk/project/K5/ext/static/spo2_gif03.png b/2.sdk/project/K5/ext/static/spo2_gif03.png new file mode 100644 index 00000000..23ee5d31 Binary files /dev/null and b/2.sdk/project/K5/ext/static/spo2_gif03.png differ diff --git a/2.sdk/project/K5/ext/static/spo2_gif04.png b/2.sdk/project/K5/ext/static/spo2_gif04.png new file mode 100644 index 00000000..60af6830 Binary files /dev/null and b/2.sdk/project/K5/ext/static/spo2_gif04.png differ diff --git a/2.sdk/project/K5/ext/static/spo2_line_bg.png b/2.sdk/project/K5/ext/static/spo2_line_bg.png new file mode 100644 index 00000000..04fc347b Binary files /dev/null and b/2.sdk/project/K5/ext/static/spo2_line_bg.png differ diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py index c9c1fdfa..2ae47064 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py @@ -1907,6 +1907,7 @@ class gethistoryDataManager(Abstract): self.read_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:#音频文件编号 @@ -1936,11 +1937,16 @@ class gethistoryDataManager(Abstract): with open("/ext/static/storage_file/history_hr.json","r") as fd:#音频文件编号 self.read_histroy_hr_data = ujson.load(fd) - check_temp= ql_fs.path_exists("/ext/static/storage_file/history_hr.json") + check_temp= ql_fs.path_exists("/ext/static/storage_file/history_temp.json") if check_temp == True : with open("/ext/static/storage_file/history_temp.json","r") as fd:#音频文件编号 self.read_histroy_temp_data = ujson.load(fd) + check_spo2= ql_fs.path_exists("/ext/static/storage_file/history_spo2.json") + if check_spo2 == True : + with open("/ext/static/storage_file/history_spo2.json","r") as fd:#音频文件编号 + self.read_histroy_spo2_data = ujson.load(fd) + def post_processor_after_instantiation(self): EventMesh.subscribe("set_old_hr_data", self.save_hr_value) EventMesh.subscribe("get_old_hr_data", self.get_hr_value) @@ -1957,6 +1963,26 @@ class gethistoryDataManager(Abstract): EventMesh.subscribe("get_history_temp_value", self.get_history_temp_value) EventMesh.subscribe("set_history_temp_value", self.set_history_temp_value) + EventMesh.subscribe("get_history_spo2_value", self.get_history_spo2_value) + EventMesh.subscribe("set_history_spo2_value", self.set_history_spo2_value) + + def get_history_spo2_value(self, event, msg): #近7次体温历史数据统计显示 + 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) + + def get_history_temp_value(self, event, msg): #近7次体温历史数据统计显示 return self.read_histroy_temp_data diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py index 3aa1c6d8..3b486e91 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py @@ -1858,7 +1858,7 @@ class MsgDetailScreen(Screen): msg_detail_cont = lv.label(msg_detail_screen) msg_detail_cont.set_pos(0, 50) - msg_detail_cont.set_size(240, 200) + msg_detail_cont.set_size(240, 270) msg_detail_cont.set_long_mode(lv.label.LONG.WRAP) msg_detail_cont.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0) msg_detail_cont.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) @@ -3945,7 +3945,7 @@ class TemperatureScreen(Screen): else: 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 * 2: #测2min + if self.point > 120 : #测2min if temp >= 37.3: temperature_done_img.set_src("E:/static/temp_high.png") @@ -4132,133 +4132,338 @@ spo2_label_1 = None spo2_line = None spo2_last_time = None spo2_last_value = None +heartrate_screen = None +heartrate_label = None +heartrate_done_img = None +heartrate_start_label = None +heartrate_bpm_label = None +heartrate_done_label = None +heartrate_line_bg_img = None +spo2_line1 = None +spo2_line2 = None +spo2_line3 = None +spo2_line4 = None +spo2_line5 = None +spo2_line6 = None +spo2_line7 = None +spo2_reset_btn_img = None +spo2_label = None +spo2_line_bg_img = None +spo2_done_img = None +spo2_done_label = None +spo2_value_label = None +spo2_start_label = None + +style_line_red = lv.style_t() +style_line_red.init() +style_line_red.set_line_width(10) +style_line_red.set_line_color(lv.color_make(0xff, 0x00, 0x00)) + +spo2_line_points = [{"x":0,"y":0},{"x":0,"y":0}] + class Spo2Screen(Screen): NAME = "spo2" + def __init__(self): super().__init__() self.meta = None self.timer = osTimer() self.point = 0 self.spo2_value = 0 - self.last_spo2_value = 0 - self.rtc = RTC() def initialization(self): - global spo2_screen ,spo2_label_0 ,spo2_done_img ,spo2_label ,spo2_label_1 ,spo2_line ,spo2_last_time,spo2_last_value + global spo2_screen,spo2_label,spo2_value_label,spo2_reset_btn_img,spo2_done_img,spo2_line_bg_img,spo2_line1,spo2_line2,\ + spo2_line3,spo2_line4,spo2_line5,spo2_line6,spo2_line7,spo2_line_bg_img ,spo2_start_label ,spo2_done_label if spo2_screen == None: spo2_screen = lv.obj() print("spo2_screen") spo2_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) - spo2_label_0 = lv.label(spo2_screen) - spo2_label_0.set_pos(0, 10) - spo2_label_0.set_size(240, 40) - spo2_label_0.set_text("血氧") - spo2_label_0.set_long_mode(lv.label.LONG.WRAP) - spo2_label_0.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - spo2_label_0.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - - spo2_done_img = lv.img(spo2_screen) - spo2_done_img.set_pos(89, 50) - spo2_done_img.set_size(62, 84) - spo2_done_img.set_src("E:/static/IMAGE_SPO2_ONLY_TEST_DONE.png") - spo2_label = lv.label(spo2_screen) - spo2_label.set_size(240,30) - spo2_label.set_pos(0,160) - spo2_label.set_text(" ") - spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + spo2_label.set_pos(0, 20) + spo2_label.set_size(240, 40) + spo2_label.set_text("血氧") + spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER,0) + spo2_label.set_long_mode(lv.label.LONG.WRAP) spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - spo2_label_1 = lv.label(spo2_screen) - spo2_label_1.set_size(240,40) - spo2_label_1.set_pos(0,200) - spo2_label_1.set_text("测量中.") - spo2_label_1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - spo2_label_1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + spo2_line_bg_img = lv.img(spo2_screen) + spo2_line_bg_img.set_pos(5, 60) + spo2_line_bg_img.set_size(230, 120) + spo2_line_bg_img.set_src("E:/static/spo2_line_bg.png") - spo2_line = lv.line(spo2_screen) - spo2_line.set_points(line_points,2) - spo2_line.set_pos(0,240) - spo2_line.set_size(240,10) - spo2_line.add_style(style_line,0) - - spo2_last_time = lv.label(spo2_screen) - spo2_last_time.set_size(240, 15) - spo2_last_time.set_pos(0, 250) - spo2_last_time.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - spo2_last_time.set_text(" ") - spo2_last_time.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - - spo2_last_value = lv.label(spo2_screen) - spo2_last_value.set_size(240, 15) - spo2_last_value.set_pos(0, 280) - spo2_last_value.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - spo2_last_value.set_text(" ") - spo2_last_value.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + spo2_done_img = lv.img(spo2_screen) + spo2_done_img.set_pos(20, 240) + spo2_done_img.set_src("E:/static/spo2_gif04.png") + + spo2_reset_btn_img = lv.img(spo2_screen) + spo2_reset_btn_img.set_pos(0, 192) + spo2_reset_btn_img.set_src("E:/static/reset_hr_btn.png") + spo2_reset_btn_img.add_flag(lv.obj.FLAG.HIDDEN) + spo2_reset_btn_img.add_flag(lv.obj.FLAG.CLICKABLE) + + spo2_start_label = lv.label(spo2_screen) + spo2_start_label.set_size(240,40) + spo2_start_label.set_pos(0,200) + spo2_start_label.set_text(" ") + spo2_start_label.set_style_text_align(lv.TEXT_ALIGN.CENTER,0) + spo2_start_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + spo2_start_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) + + + spo2_line1 = lv.line(spo2_screen) + spo2_line1.set_points(spo2_line_points,2) + spo2_line1.set_pos(25,60) + spo2_line1.set_size(10,0) + spo2_line1.add_style(style_line_red,0) + + spo2_line2 = lv.line(spo2_screen) + spo2_line2.set_points(spo2_line_points,2) + spo2_line2.set_pos(53,60) + spo2_line2.set_size(10,0) + spo2_line2.add_style(style_line_red,0) + + spo2_line3 = lv.line(spo2_screen) + spo2_line3.set_points(spo2_line_points,2) + spo2_line3.set_pos(80,60) + spo2_line3.set_size(10,0) + spo2_line3.add_style(style_line_red,0) + + spo2_line4 = lv.line(spo2_screen) + spo2_line4.set_points(spo2_line_points,2) + spo2_line4.set_pos(109,60) + spo2_line4.set_size(10,0) + spo2_line4.add_style(style_line_red,0) + + spo2_line5 = lv.line(spo2_screen) + spo2_line5.set_points(spo2_line_points,2) + spo2_line5.set_pos(136,60) + spo2_line5.set_size(10,0) + spo2_line5.add_style(style_line_red,0) + + spo2_line6 = lv.line(spo2_screen) + spo2_line6.set_points(spo2_line_points,2) + spo2_line6.set_pos(164,60) + spo2_line6.set_size(10,0) + spo2_line6.add_style(style_line_red,0) + + spo2_line7 = lv.line(spo2_screen) + spo2_line7.set_points(spo2_line_points,2) + spo2_line7.set_pos(192,60) + spo2_line7.set_size(10,0) + spo2_line7.add_style(style_line_red,0) + + spo2_value_label = lv.label(spo2_screen) + spo2_value_label.set_size(110, 40) + spo2_value_label.set_pos(130, 270) + spo2_value_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + spo2_value_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) + + self.meta = spo2_screen + spo2_reset_btn_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.restart_up(e)), + lv.EVENT.CLICKED, None) + def post_processor_after_initialization(self): self.point = 0 self.spo2_value = 0 - self.timer.start(1*1000, 1, self.start_measure) + self.show_history_data() + self.restart_up(0) + + def restart_up(self,e): + global spo2_value_label,heartrate_bpm_label,spo2_start_label,spo2_reset_btn_img + self.timer.start(1*500, 1, self.start_measure) + if spo2_reset_btn_img != None: + spo2_reset_btn_img.add_flag(lv.obj.FLAG.HIDDEN) + self.point = 0 + + spo2_value_label.set_text("- -%") + spo2_start_label.set_text("正在测量中.") EventMesh.publish("set_spo2_state",1)#2代表后台进入血氧测试 EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN) - self.last_spo2_value = EventMesh.publish("get_old_spo2_data") - spo2_label.set_text("--%") - if self.last_spo2_value == 0: - spo2_last_value.set_text(" ") - else: - spo2_last_value.set_text("{}%".format(self.last_spo2_value)) + + def show_history_data(self): + 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) + if count != 0: + if count >= 7: + for i in range(count): + value = read_data["0{}".format(i+1)] + if value < 80: + value = 80 + if value >= 100: + value = 100 + if value <= 85: + value = value - 80 + line_value = int(value*6) + elif value <= 90: + value = value-85 + line_value = int((17/5)*value)+30 + elif value <= 95: + value = value-90 + line_value = int((21/5)*value)+47 + elif value <= 100: + value = value-95 + line_value = int((16/5)*value)+68 + + + if line_value >= 100: + line_value = 100 + #print("hr hist",line_value) + hr_line_points = [{"x":0,"y":0},{"x":0,"y":line_value}] + if i == 0: + spo2_line1.set_points(hr_line_points,2) + spo2_line1.set_pos(25,160-line_value) + spo2_line1.set_size(10,line_value) + if i == 1: + spo2_line2.set_points(hr_line_points,2) + spo2_line2.set_pos(53,160-line_value) + spo2_line2.set_size(10,line_value) + + if i == 2: + spo2_line3.set_points(hr_line_points,2) + spo2_line3.set_pos(80,160-line_value) + spo2_line3.set_size(10,line_value) + + if i == 3: + spo2_line4.set_points(hr_line_points,2) + spo2_line4.set_pos(109,160-line_value) + spo2_line4.set_size(10,line_value) + + if i == 4: + spo2_line5.set_points(hr_line_points,2) + spo2_line5.set_pos(136,160-line_value) + spo2_line5.set_size(10,line_value) + + if i == 5: + spo2_line6.set_points(hr_line_points,2) + spo2_line6.set_pos(164,160-line_value) + spo2_line6.set_size(10,line_value) + + if i == 6: + spo2_line7.set_points(hr_line_points,2) + spo2_line7.set_pos(192,160-line_value) + spo2_line7.set_size(10,line_value) + else: + value = read_data["0{}".format(count)] + if value < 80: + value = 80 + if value >= 100: + value = 100 + + if value <= 85: + value = value - 80 + line_value = int(value*6) + elif value <= 90: + value = value-85 + line_value = int((17/5)*value)+30 + elif value <= 95: + value = value-90 + line_value = int((21/5)*value)+47 + elif value <= 100: + value = value-95 + line_value = int((16/5)*value)+68 + + + if line_value >= 100: + line_value = 100 + # + hr_line_points = [{"x":0,"y":0},{"x":0,"y":line_value}] + if count == 1: + spo2_line1.set_points(hr_line_points,2) + spo2_line1.set_pos(25,160-line_value) + spo2_line1.set_size(10,line_value) + if count == 2: + spo2_line2.set_points(hr_line_points,2) + spo2_line2.set_pos(53,160-line_value) + spo2_line2.set_size(10,line_value) + + if count == 3: + spo2_line3.set_points(hr_line_points,2) + spo2_line3.set_pos(80,160-line_value) + spo2_line3.set_size(10,line_value) + + if count == 4: + spo2_line4.set_points(hr_line_points,2) + spo2_line4.set_pos(109,160-line_value) + spo2_line4.set_size(10,line_value) + + if count == 5: + spo2_line5.set_points(hr_line_points,2) + spo2_line5.set_pos(136,160-line_value) + spo2_line5.set_size(10,line_value) + + if count == 6: + spo2_line6.set_points(hr_line_points,2) + spo2_line6.set_pos(164,160-line_value) + spo2_line6.set_size(10,line_value) + + if count == 7: + spo2_line7.set_points(hr_line_points,2) + spo2_line7.set_pos(192,160-line_value) + spo2_line7.set_size(10,line_value) + def start_measure(self,*args): - global spo2_screen ,spo2_label_0 ,spo2_done_img ,spo2_label ,spo2_label_1 ,spo2_line ,spo2_last_time,spo2_last_value + global spo2_screen,spo2_label,spo2_start_label,spo2_value_label,spo2_done_img ,spo2_reset_btn_img self.point = self.point + 1 EventMesh.publish("system_sleep_rest")#防止黑屏 self.spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN) - if self.spo2_value == 0: - spo2_label.set_text("--%") - else: - spo2_label.set_text("{} %".format(self.spo2_value)) + if self.point >= 2: + if self.spo2_value != 0: + spo2_value_label.set_text("{}%".format(self.spo2_value)) + else: + spo2_value_label.set_text("- - %") + if self.point%4 == 0 : - spo2_label_1.set_text("测量中..") + spo2_start_label.set_text("正在测量中..") + spo2_done_img.set_src("E:/static/spo2_gif03.png") + if self.point%4 == 1 : - spo2_label_1.set_text("测量中...") + spo2_start_label.set_text("正在测量中...") + spo2_done_img.set_src("E:/static/spo2_gif02.png") + if self.point%4 == 2 : - spo2_label_1.set_text("测量中....") + spo2_start_label.set_text("正在测量中.") + spo2_done_img.set_src("E:/static/spo2_gif01.png") + if self.point%4 == 3 : - spo2_label_1.set_text("测量中.") + spo2_start_label.set_text("正在测量中.") + spo2_done_img.set_src("E:/static/spo2_gif04.png") - if self.point > 60: #测20s + + + if self.point > 120: #测20s + spo2_done_img.set_src("E:/static/spo2_gif04.png") self.spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN) - # print("ui self.spo2_value :{}".format(self.spo2_value)) - if self.spo2_value > 85 and self.spo2_value != None: + if self.spo2_value >= 85: EventMesh.publish("set_old_spo2_data",self.spo2_value) + EventMesh.publish("set_history_spo2_value",self.spo2_value) EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,self.spo2_value) - spo2_label.set_text("{} %".format(self.spo2_value)) - if self.spo2_value == 0: - spo2_label.set_text(" ") - spo2_label_1.set_text("退出,请重新测量") - self.last_spo2_value = EventMesh.publish("get_old_spo2_data") - spo2_last_value.set_text(" ") - else: - self.last_spo2_value = self.spo2_value - spo2_last_value.set_text("{}%".format(self.last_spo2_value)) - spo2_label_1.set_text("测量完成") - time = EventMesh.publish("screen_get_time") - #print("time ",time) - rtc_time = self.rtc.datetime() - time_time =" {}:{}".format("%02d"%(time[0][0]),"%02d"%(time[0][1]))#测量时间 - spo2_last_time.set_text(str(rtc_time[0])+'/'+str(rtc_time[1])+'/'+str(rtc_time[2])+str(time_time)) + spo2_reset_btn_img.clear_flag(lv.obj.FLAG.HIDDEN) + if self.spo2_value != 0: + spo2_start_label.set_text("测量结束,点击重测") + spo2_value_label.set_text("{}%".format(self.spo2_value)) + # heartrate_done_label.set_text("测量完成") + else: + spo2_value_label.set_text("- - %") + spo2_start_label.set_text("测量异常,点击重测") + + self.show_history_data() self.timer.stop() self.point = 0 EventMesh.publish("set_spo2_state",0)#0代表关闭测试 + print("stop debug9") EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN) - # spo2_last_time.set_text() def Close(self): self.timer.stop() @@ -4277,6 +4482,162 @@ class Spo2Screen(Screen): def btn8_press(self): EventMesh.publish("watch_top_show") EventMesh.publish("load_screen", {"screen": "main_menu"}) + + + + +# class Spo2Screen(Screen): +# NAME = "spo2" + +# def __init__(self): +# super().__init__() +# self.meta = None +# self.timer = osTimer() +# self.point = 0 +# self.spo2_value = 0 +# self.last_spo2_value = 0 +# self.rtc = RTC() + +# def initialization(self): +# global spo2_screen ,spo2_label_0 ,spo2_done_img ,spo2_label ,spo2_label_1 ,spo2_line ,spo2_last_time,spo2_last_value +# if spo2_screen == None: +# spo2_screen = lv.obj() +# print("spo2_screen") +# spo2_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + +# spo2_label_0 = lv.label(spo2_screen) +# spo2_label_0.set_pos(0, 10) +# spo2_label_0.set_size(240, 40) +# spo2_label_0.set_text("血氧") +# spo2_label_0.set_long_mode(lv.label.LONG.WRAP) +# spo2_label_0.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +# spo2_label_0.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +# spo2_done_img = lv.img(spo2_screen) +# spo2_done_img.set_pos(89, 50) +# spo2_done_img.set_size(62, 84) +# spo2_done_img.set_src("E:/static/IMAGE_SPO2_ONLY_TEST_DONE.png") + +# spo2_label = lv.label(spo2_screen) +# spo2_label.set_size(240,30) +# spo2_label.set_pos(0,160) +# spo2_label.set_text(" ") +# spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +# spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +# spo2_label_1 = lv.label(spo2_screen) +# spo2_label_1.set_size(240,40) +# spo2_label_1.set_pos(0,200) +# spo2_label_1.set_text("测量中.") +# spo2_label_1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +# spo2_label_1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + + +# spo2_line = lv.line(spo2_screen) +# spo2_line.set_points(line_points,2) +# spo2_line.set_pos(0,240) +# spo2_line.set_size(240,10) +# spo2_line.add_style(style_line,0) + +# spo2_last_time = lv.label(spo2_screen) +# spo2_last_time.set_size(240, 15) +# spo2_last_time.set_pos(0, 250) +# spo2_last_time.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) +# spo2_last_time.set_text(" ") +# spo2_last_time.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + +# spo2_last_value = lv.label(spo2_screen) +# spo2_last_value.set_size(240, 15) +# spo2_last_value.set_pos(0, 280) +# spo2_last_value.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) +# spo2_last_value.set_text(" ") +# spo2_last_value.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +# self.meta = spo2_screen + +# self.point = 0 +# self.spo2_value = 0 +# self.timer.start(1*1000, 1, self.start_measure) +# EventMesh.publish("set_spo2_state",1)#2代表后台进入血氧测试 +# EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN) +# self.last_spo2_value = EventMesh.publish("get_old_spo2_data") +# spo2_label.set_text("--%") +# if self.last_spo2_value == 0: +# spo2_last_value.set_text(" ") +# else: +# spo2_last_value.set_text("{}%".format(self.last_spo2_value)) + +# def start_measure(self,*args): +# global spo2_screen ,spo2_label_0 ,spo2_done_img ,spo2_label ,spo2_label_1 ,spo2_line ,spo2_last_time,spo2_last_value +# self.point = self.point + 1 +# EventMesh.publish("system_sleep_rest")#防止黑屏 +# self.spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN) +# if self.spo2_value == 0: +# spo2_label.set_text("--%") +# else: +# spo2_label.set_text("{} %".format(self.spo2_value)) +# if self.point%4 == 0 : +# spo2_label_1.set_text("测量中..") +# if self.point%4 == 1 : +# spo2_label_1.set_text("测量中...") +# if self.point%4 == 2 : +# spo2_label_1.set_text("测量中....") +# if self.point%4 == 3 : +# spo2_label_1.set_text("测量中.") + +# if self.point > 60: #测20s +# self.spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN) +# # print("ui self.spo2_value :{}".format(self.spo2_value)) +# if self.spo2_value > 85 and self.spo2_value != None: +# EventMesh.publish("set_old_spo2_data",self.spo2_value) +# EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,self.spo2_value) +# spo2_label.set_text("{} %".format(self.spo2_value)) +# if self.spo2_value == 0: +# spo2_label.set_text(" ") +# spo2_label_1.set_text("退出,请重新测量") +# self.last_spo2_value = EventMesh.publish("get_old_spo2_data") +# spo2_last_value.set_text(" ") +# else: +# self.last_spo2_value = self.spo2_value +# spo2_last_value.set_text("{}%".format(self.last_spo2_value)) +# spo2_label_1.set_text("测量完成") +# time = EventMesh.publish("screen_get_time") +# #print("time ",time) +# rtc_time = self.rtc.datetime() +# time_time =" {}:{}".format("%02d"%(time[0][0]),"%02d"%(time[0][1]))#测量时间 +# spo2_last_time.set_text(str(rtc_time[0])+'/'+str(rtc_time[1])+'/'+str(rtc_time[2])+str(time_time)) + + + +# self.timer.stop() +# self.point = 0 +# EventMesh.publish("set_spo2_state",0)#0代表关闭测试 +# EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN) +# # spo2_last_time.set_text() + +# def Close(self): +# self.timer.stop() +# get_hr_state = EventMesh.publish("get_hr_state") +# get_spo2_state = EventMesh.publish("get_spo2_state") +# if get_hr_state == 1 or get_spo2_state == 1: +# EventMesh.publish("set_spo2_state",0)#0代表关闭测试 +# EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN) + +# def done_return(self): +# EventMesh.publish("load_screen", {"screen": "health"}) + +# def btn1_release(self): +# EventMesh.publish("load_screen", {"screen": "health"}) + +# def btn8_press(self): +# EventMesh.publish("watch_top_show") +# EventMesh.publish("load_screen", {"screen": "main_menu"}) + + + + + + + # -------------------------------------------countdown screen---------------------------------------------------------- countdown_screen = None countdown_title = None