From: dxy15521469561 <1731678236@qq.com> Date: Thu, 13 Jul 2023 07:18:23 +0000 (+0800) Subject: 心率界面调整 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=d27aa37fbda12e84aa55fb75783523ad18667af3;p=mirrors%2FASR1603_G5.git 心率界面调整 --- diff --git a/2.sdk/project/K5/ext/static/IMAGE_HEART_ONLY_TEST_DONE.png b/2.sdk/project/K5/ext/static/IMAGE_HEART_ONLY_TEST_DONE.png deleted file mode 100644 index 5d641a09..00000000 Binary files a/2.sdk/project/K5/ext/static/IMAGE_HEART_ONLY_TEST_DONE.png and /dev/null differ diff --git a/2.sdk/project/K5/ext/static/hr_gif_01.png b/2.sdk/project/K5/ext/static/hr_gif_01.png new file mode 100644 index 00000000..e7c7d584 Binary files /dev/null and b/2.sdk/project/K5/ext/static/hr_gif_01.png differ diff --git a/2.sdk/project/K5/ext/static/hr_gif_02.png b/2.sdk/project/K5/ext/static/hr_gif_02.png new file mode 100644 index 00000000..800f918a Binary files /dev/null and b/2.sdk/project/K5/ext/static/hr_gif_02.png differ diff --git a/2.sdk/project/K5/ext/static/hr_gif_03.png b/2.sdk/project/K5/ext/static/hr_gif_03.png new file mode 100644 index 00000000..6a7f6ace Binary files /dev/null and b/2.sdk/project/K5/ext/static/hr_gif_03.png differ diff --git a/2.sdk/project/K5/ext/static/hr_line_bg.png b/2.sdk/project/K5/ext/static/hr_line_bg.png new file mode 100644 index 00000000..20888120 Binary files /dev/null and b/2.sdk/project/K5/ext/static/hr_line_bg.png differ diff --git a/2.sdk/project/K5/ext/static/reset_hr_btn.png b/2.sdk/project/K5/ext/static/reset_hr_btn.png new file mode 100644 index 00000000..289316bc Binary files /dev/null and b/2.sdk/project/K5/ext/static/reset_hr_btn.png differ diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py index 4674d1f4..9ca790f4 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/appWechat.py @@ -370,12 +370,9 @@ class WechatScreen(Screen): Wechat_log("updata_list_show2") def talking_cb(self,e): - if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#有卡时触发sos报警 无卡时自动关机 - Wechat_log("talking_cb1") - EventMesh.publish("publish_message_event_ui",{"func":self.talking,"data":e}) - Wechat_log("talking_cb2") - else: - EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"}) + Wechat_log("talking_cb1") + EventMesh.publish("publish_message_event_ui",{"func":self.talking,"data":e}) + Wechat_log("talking_cb2") #按下录音 def talking(self,e): Wechat_log("talking1") @@ -406,10 +403,14 @@ class WechatScreen(Screen): def sending_cb(self,e): - Wechat_log("sending_cb1") - EventMesh.publish("publish_message_event_ui",{"func":self.sending,"data":e}) - #self.sending(e) - Wechat_log("sending_cb2") + if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#有卡时触发sos报警 无卡时自动关机 + Wechat_log("sending_cb1") + EventMesh.publish("publish_message_event_ui",{"func":self.sending,"data":e}) + #self.sending(e) + Wechat_log("sending_cb2") + else: + EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"}) + #松手0.2秒后显示 def hide_label(self,*args): Wechat_log("hide_label1") diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py index 44cbe135..b0d2ac3b 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py @@ -13,7 +13,7 @@ class BtnDevice(Abstract): self.__pwk_timer = osTimer() self.keypad = machine.KeyPad(4, 1) - self.__PowerDownTimeOut = 4000 + self.__PowerDownTimeOut = 3000 self.__tp = tp self.long_press = 0 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 ab4c24bd..7eab2004 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 @@ -1905,6 +1905,7 @@ class gethistoryDataManager(Abstract): self.oldstep = 0 self.old_step = 0 self.read_data = {} + self.read_histroy_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:#音频文件编号 @@ -1929,6 +1930,10 @@ class gethistoryDataManager(Abstract): self.oldHr = 0 self.oldspo2 = 0 self.oldstep = 0 + check_= ql_fs.path_exists("/ext/static/storage_file/history_hr.json") + if check_json == True : + with open("/ext/static/storage_file/history_hr.json","r") as fd:#音频文件编号 + self.read_histroy_data = ujson.load(fd) def post_processor_after_instantiation(self): EventMesh.subscribe("set_old_hr_data", self.save_hr_value) @@ -1939,6 +1944,26 @@ class gethistoryDataManager(Abstract): EventMesh.subscribe("get_old_step_value", self.get_old_step_value) EventMesh.subscribe("set_old_step_value", self.set_old_step_value) + + EventMesh.subscribe("get_history_hr_value", self.get_history_hr_value) + EventMesh.subscribe("set_history_hr_value", self.set_history_hr_value) + + def get_history_hr_value(self, event, msg): #近7次历史数据统计显示 + return self.read_histroy_data + + def set_history_hr_value(self, event, msg): + if msg >= 50: + self.read_histroy_data = EventMesh.publish("get_history_hr_value") + count = len(self.read_histroy_data) + if count >= 7: + for i in range(6): + self.read_histroy_data["0{}".format(i+1)] = self.read_histroy_data["0{}".format(i+2)] + self.read_histroy_data["07"] = msg + else: + self.read_histroy_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_data,fd) + def save_hr_value(self, event, msg): if msg >= 50: self.read_data = EventMesh.publish("get_storage_data") @@ -2206,6 +2231,7 @@ class getStorageDataManager(Abstract):#获取内存数据 def get_storage_data(self, event, msg): return self.read_data + #定位频率 class getUpLoadDataManager(Abstract):# 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 8d260c32..743a77e2 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 @@ -1197,7 +1197,7 @@ no_sim_power_screen_title = None no_sim_power_screen_label =None no_sim_power_screen_comfirm =None no_sim_power_screen_cancel = None - +no_sim_power_screen_img = None #未插卡,长按关机 class NoSimPowerScreen(Screen):# @@ -1208,20 +1208,27 @@ class NoSimPowerScreen(Screen):# self.meta_type = "popup" def initialization(self): - global no_sim_power_screen,no_sim_power_screen_title,no_sim_power_screen_comfirm,no_sim_power_screen_cancel,no_sim_power_screen_label + global no_sim_power_screen,no_sim_power_screen_img,no_sim_power_screen_title,no_sim_power_screen_comfirm,no_sim_power_screen_cancel,no_sim_power_screen_label if no_sim_power_screen == None : no_sim_power_screen = lv.obj() print("no_sim_power_screen") no_sim_power_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) no_sim_power_screen_title = lv.label(no_sim_power_screen) - no_sim_power_screen_title.set_pos(0, 60) - no_sim_power_screen_title.set_size(240, 80) + no_sim_power_screen_title.set_pos(0, 20) + no_sim_power_screen_title.set_size(240, 40) no_sim_power_screen_title.set_text("无SIM卡,无法拨打") no_sim_power_screen_title.set_long_mode(lv.label.LONG.WRAP) no_sim_power_screen_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) no_sim_power_screen_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + no_sim_power_screen_img = lv.img(no_sim_power_screen) + no_sim_power_screen_img.set_pos(100, 70) + no_sim_power_screen_img.set_size(61, 61) + no_sim_power_screen_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + no_sim_power_screen_img.set_src("E:/static/poweroff_icon.png") + + no_sim_power_screen_label = lv.label(no_sim_power_screen) no_sim_power_screen_label.set_pos(0, 150) no_sim_power_screen_label.set_size(240, 40) @@ -1231,24 +1238,29 @@ class NoSimPowerScreen(Screen):# no_sim_power_screen_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - no_sim_power_screen_comfirm = lv.label(no_sim_power_screen) - no_sim_power_screen_comfirm.set_pos(0, 200) - no_sim_power_screen_comfirm.set_size(120, 80) - no_sim_power_screen_comfirm.set_text("是") - no_sim_power_screen_comfirm.set_long_mode(lv.label.LONG.WRAP) + no_sim_power_screen_comfirm = lv.img(no_sim_power_screen) + no_sim_power_screen_comfirm.set_size(176, 46) + no_sim_power_screen_comfirm.set_pos(32, 190) + no_sim_power_screen_comfirm.set_src("E:/static/off_icon.png") no_sim_power_screen_comfirm.add_flag(lv.obj.FLAG.CLICKABLE) - no_sim_power_screen_comfirm.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - no_sim_power_screen_comfirm.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + no_sim_power_screen_comfirm.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + poweroff_confirm_label = lv.label(no_sim_power_screen_comfirm) + poweroff_confirm_label.set_text("确定") + poweroff_confirm_label.align(lv.ALIGN.CENTER, 0, 5) + poweroff_confirm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - no_sim_power_screen_cancel = lv.label(no_sim_power_screen) - no_sim_power_screen_cancel.set_pos(120, 200) - no_sim_power_screen_cancel.set_size(120, 80) - no_sim_power_screen_cancel.set_text("否") + no_sim_power_screen_cancel = lv.img(no_sim_power_screen) + no_sim_power_screen_cancel.set_size(176, 46) + no_sim_power_screen_cancel.set_pos(32, 250) + no_sim_power_screen_cancel.set_src("E:/static/cancel_icon.png") no_sim_power_screen_cancel.add_flag(lv.obj.FLAG.CLICKABLE) - no_sim_power_screen_cancel.set_long_mode(lv.label.LONG.WRAP) - no_sim_power_screen_cancel.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - no_sim_power_screen_cancel.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + no_sim_power_screen_cancel.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + poweroff_return_label = lv.label(no_sim_power_screen_cancel) + poweroff_return_label.set_text("取消") + poweroff_return_label.align(lv.ALIGN.CENTER, 0, 5) + poweroff_return_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + no_sim_power_screen_cancel.set_ext_click_area(20) self.meta = no_sim_power_screen no_sim_power_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), @@ -1876,6 +1888,23 @@ heartrate_done_img = None heartrate_start_label = None heartrate_bpm_label = None heartrate_done_label = None +heartrate_line_bg_img = None +hr_line1 = None +hr_line2 = None +hr_line3 = None +hr_line4 = None +hr_line5 = None +hr_line6 = None +hr_line7 = None +heartrate_reset_btn_img = 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)) + +hr_line_points = [{"x":0,"y":0},{"x":0,"y":0}] + class HeartrateScreen(Screen): NAME = "heartrate" @@ -1888,38 +1917,90 @@ class HeartrateScreen(Screen): self.heart_value = 0 def initialization(self): - global heartrate_screen,heartrate_label,heartrate_done_img ,heartrate_start_label,heartrate_bpm_label ,heartrate_done_label + global heartrate_screen,heartrate_label,heartrate_reset_btn_img,hr_line1,hr_line2,hr_line3,hr_line4,hr_line5,hr_line6,hr_line7,heartrate_line_bg_img,heartrate_done_img ,heartrate_start_label,heartrate_bpm_label ,heartrate_done_label if heartrate_screen == None: heartrate_screen = lv.obj() print("heartrate_screen") heartrate_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) heartrate_label = lv.label(heartrate_screen) - heartrate_label.set_pos(0, 10) + heartrate_label.set_pos(0, 20) heartrate_label.set_size(240, 40) heartrate_label.set_text("心率") + heartrate_label.set_style_text_align(lv.TEXT_ALIGN.CENTER,0) heartrate_label.set_long_mode(lv.label.LONG.WRAP) - heartrate_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) heartrate_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + heartrate_line_bg_img = lv.img(heartrate_screen) + heartrate_line_bg_img.set_pos(5, 60) + heartrate_line_bg_img.set_size(230, 120) + heartrate_line_bg_img.set_src("E:/static/hr_line_bg.png") + + heartrate_done_img = lv.img(heartrate_screen) - heartrate_done_img.set_pos(69, 50) - heartrate_done_img.set_size(101, 96) - heartrate_done_img.set_src("E:/static/IMAGE_HEART_ONLY_TEST_DONE.png") + heartrate_done_img.set_pos(20, 249) + heartrate_done_img.set_src("E:/static/hr_gif_03.png") + + heartrate_reset_btn_img = lv.img(heartrate_screen) + heartrate_reset_btn_img.set_pos(0, 192) + heartrate_reset_btn_img.set_src("E:/static/reset_hr_btn.png") + heartrate_reset_btn_img.add_flag(lv.obj.FLAG.HIDDEN) + heartrate_reset_btn_img.add_flag(lv.obj.FLAG.CLICKABLE) heartrate_start_label = lv.label(heartrate_screen) heartrate_start_label.set_size(240,40) - heartrate_start_label.set_pos(0,160) + heartrate_start_label.set_pos(0,200) heartrate_start_label.set_text(" ") - heartrate_start_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + heartrate_start_label.set_style_text_align(lv.TEXT_ALIGN.CENTER,0) heartrate_start_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) heartrate_start_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) + hr_line1 = lv.line(heartrate_screen) + hr_line1.set_points(hr_line_points,2) + hr_line1.set_pos(25,60) + hr_line1.set_size(10,0) + hr_line1.add_style(style_line_red,0) + + hr_line2 = lv.line(heartrate_screen) + hr_line2.set_points(hr_line_points,2) + hr_line2.set_pos(53,60) + hr_line2.set_size(10,0) + hr_line2.add_style(style_line_red,0) + + hr_line3 = lv.line(heartrate_screen) + hr_line3.set_points(hr_line_points,2) + hr_line3.set_pos(80,60) + hr_line3.set_size(10,0) + hr_line3.add_style(style_line_red,0) + + hr_line4 = lv.line(heartrate_screen) + hr_line4.set_points(hr_line_points,2) + hr_line4.set_pos(109,60) + hr_line4.set_size(10,0) + hr_line4.add_style(style_line_red,0) + + hr_line5 = lv.line(heartrate_screen) + hr_line5.set_points(hr_line_points,2) + hr_line5.set_pos(136,60) + hr_line5.set_size(10,0) + hr_line5.add_style(style_line_red,0) + + hr_line6 = lv.line(heartrate_screen) + hr_line6.set_points(hr_line_points,2) + hr_line6.set_pos(164,60) + hr_line6.set_size(10,0) + hr_line6.add_style(style_line_red,0) + + hr_line7 = lv.line(heartrate_screen) + hr_line7.set_points(hr_line_points,2) + hr_line7.set_pos(192,60) + hr_line7.set_size(10,0) + hr_line7.add_style(style_line_red,0) + heartrate_bpm_label = lv.label(heartrate_screen) - heartrate_bpm_label.set_size(240, 40) - heartrate_bpm_label.set_pos(0, 180) - heartrate_bpm_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + heartrate_bpm_label.set_size(120, 40) + heartrate_bpm_label.set_pos(120, 270) heartrate_bpm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) heartrate_bpm_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) @@ -1930,36 +2011,11 @@ class HeartrateScreen(Screen): heartrate_done_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) heartrate_done_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT) - # screen_chart_1 = lv.chart(heartrate_screen) - # screen_chart_1.set_pos(int(0),int(79)) - # screen_chart_1.set_size(240,155) - # screen_chart_1.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) - # screen_chart_1.set_type(lv.chart.TYPE.BAR) - # screen_chart_1.set_range(lv.chart.AXIS.PRIMARY_Y, 0, 100) - # screen_chart_1.set_div_line_count(0, 0) - # screen_chart_1.set_point_count(24) - # chart_series_0 = lv.chart.add_series(screen_chart_1, lv.color_make(0xff,0x00,0x00), lv.chart.AXIS.PRIMARY_Y) - # screen_chart_1.set_next_value(chart_series_0, 1) - # screen_chart_1.set_next_value(chart_series_0, 20) - # # create style style_screen_chart_1_main_main_default - # style_screen_chart_1_main_main_default = lv.style_t() - # style_screen_chart_1_main_main_default.init() - # style_screen_chart_1_main_main_default.set_radius(0) - # style_screen_chart_1_main_main_default.set_bg_color(lv.color_make(0x00,0x00,0x00)) - # style_screen_chart_1_main_main_default.set_bg_grad_color(lv.color_make(0x00,0x00,0x00)) - # style_screen_chart_1_main_main_default.set_bg_grad_dir(lv.GRAD_DIR.NONE) - # style_screen_chart_1_main_main_default.set_bg_opa(255) - # style_screen_chart_1_main_main_default.set_border_color(lv.color_make(0xe8,0xe8,0xe8)) - # style_screen_chart_1_main_main_default.set_border_width(6) - # style_screen_chart_1_main_main_default.set_border_opa(255) - # style_screen_chart_1_main_main_default.set_line_color(lv.color_make(0xe8,0xe8,0xe8)) - # style_screen_chart_1_main_main_default.set_line_width(2) - # style_screen_chart_1_main_main_default.set_line_opa(255) - # # add style for screen_chart_1 - # screen_chart_1.add_style(style_screen_chart_1_main_main_default, lv.PART.MAIN|lv.STATE.DEFAULT) self.meta = heartrate_screen + heartrate_reset_btn_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.restart_up(e)), + lv.EVENT.CLICKED, None) heartrate_done_label.set_text(" ") - heartrate_bpm_label.set_text(" ") + heartrate_bpm_label.set_text("-- bpm") heartrate_start_label.set_text("正在测量中.") EventMesh.publish("set_hr_state",1)#1代表手动进入测试界面 @@ -1967,43 +2023,172 @@ class HeartrateScreen(Screen): def post_processor_after_initialization(self): self.point = 0 - self.timer.start(1*1000, 1, self.start_measure) + self.heart_value = 0 + self.show_history_data() + self.restart_up(0) + + def restart_up(self,e): + global heartrate_done_label,heartrate_bpm_label,heartrate_start_label,heartrate_reset_btn_img + self.timer.start(1*500, 1, self.start_measure) + heartrate_bpm_label.set_text("-- bpm") + if heartrate_reset_btn_img != None: + heartrate_reset_btn_img.add_flag(lv.obj.FLAG.HIDDEN) + self.point = 0 + self.heart_value = 0 + heartrate_done_label.set_text(" ") + heartrate_bpm_label.set_text("-- bpm") + heartrate_start_label.set_text("正在测量中.") + EventMesh.publish("set_hr_state",1)#1代表手动进入测试界面 + + EventMesh.publish(constants.EVENT.START_HEART) + + def show_history_data(self): + 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: + if count >= 7: + for i in range(count): + value = read_data["0{}".format(i+1)] + if value < 30: + value = 30 + if value >= 210: + value = 210 + line_value = value - 30 #180-80 = 100 160-100 = 60 + line_value = int(line_value*0.58)+1 + 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: + hr_line1.set_points(hr_line_points,2) + hr_line1.set_pos(25,160-line_value) + hr_line1.set_size(10,line_value) + if i == 1: + hr_line2.set_points(hr_line_points,2) + hr_line2.set_pos(53,160-line_value) + hr_line2.set_size(10,line_value) + + if i == 2: + hr_line3.set_points(hr_line_points,2) + hr_line3.set_pos(80,160-line_value) + hr_line3.set_size(10,line_value) + + if i == 3: + hr_line4.set_points(hr_line_points,2) + hr_line4.set_pos(109,160-line_value) + hr_line4.set_size(10,line_value) + + if i == 4: + hr_line5.set_points(hr_line_points,2) + hr_line5.set_pos(136,160-line_value) + hr_line5.set_size(10,line_value) + + if i == 5: + hr_line6.set_points(hr_line_points,2) + hr_line6.set_pos(164,160-line_value) + hr_line6.set_size(10,line_value) + + if i == 6: + hr_line7.set_points(hr_line_points,2) + hr_line7.set_pos(192,160-line_value) + hr_line7.set_size(10,line_value) + else: + value = read_data["0{}".format(count)] + if value < 30: + value = 30 + if value >= 180: + value = 180 + line_value = value - 30 #180-80 = 100 160-100 = 60 + line_value = int(line_value*0.58)+1 + # + hr_line_points = [{"x":0,"y":0},{"x":0,"y":line_value}] + if count == 1: + hr_line1.set_points(hr_line_points,2) + hr_line1.set_pos(25,160-line_value) + hr_line1.set_size(10,line_value) + if count == 2: + hr_line2.set_points(hr_line_points,2) + hr_line2.set_pos(53,160-line_value) + hr_line2.set_size(10,line_value) + + if count == 3: + hr_line3.set_points(hr_line_points,2) + hr_line3.set_pos(80,160-line_value) + hr_line3.set_size(10,line_value) + + if count == 4: + hr_line4.set_points(hr_line_points,2) + hr_line4.set_pos(109,160-line_value) + hr_line4.set_size(10,line_value) + + if count == 5: + hr_line5.set_points(hr_line_points,2) + hr_line5.set_pos(136,160-line_value) + hr_line5.set_size(10,line_value) + + if count == 6: + hr_line6.set_points(hr_line_points,2) + hr_line6.set_pos(164,160-line_value) + hr_line6.set_size(10,line_value) + + if count == 7: + 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_start_label,heartrate_bpm_label ,heartrate_done_label + global heartrate_screen,heartrate_label,heartrate_done_img ,heartrate_reset_btn_img,heartrate_start_label,heartrate_bpm_label ,heartrate_done_label 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)) - if self.heart_value < 40: - self.heart_value = 0 - if self.heart_value != 0: - heartrate_start_label.set_text(" ") - heartrate_bpm_label.set_text("{} bpm".format(self.heart_value)) - else: - heartrate_bpm_label.set_text(" ") - if self.point%4 == 0 : - heartrate_start_label.set_text("正在测量中..") - if self.point%4 == 1 : - heartrate_start_label.set_text("正在测量中...") - if self.point%4 == 2 : - heartrate_start_label.set_text("正在测量中....") - if self.point%4 == 3 : - heartrate_start_label.set_text("正在测量中.") + print("self.heart_value:{}".format(self.heart_value)) + if self.point >= 2: + if self.heart_value < 40: + self.heart_value = 0 + if self.heart_value != 0: + heartrate_bpm_label.set_text("{} bpm".format(self.heart_value)) + else: + heartrate_bpm_label.set_text("-- bpm") + + if self.point%4 == 0 : + heartrate_start_label.set_text("正在测量中..") + heartrate_done_img.set_src("E:/static/hr_gif_02.png") + if self.point%4 == 1 : + heartrate_start_label.set_text("正在测量中...") + heartrate_done_img.set_src("E:/static/hr_gif_01.png") + if self.point%4 == 2 : + heartrate_start_label.set_text("正在测量中.") + heartrate_done_img.set_src("E:/static/hr_gif_02.png") + + if self.point%4 == 3 : + heartrate_start_label.set_text("正在测量中.") + heartrate_done_img.set_src("E:/static/hr_gif_03.png") - if self.point > 60: #测20s + + + if self.point > 120: #测20s + 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: EventMesh.publish("set_old_hr_data",self.heart_value) + EventMesh.publish("set_history_hr_value",self.heart_value) EventMesh.publish(constants.PROTOCOL.HEART_SEND,self.heart_value) + heartrate_reset_btn_img.clear_flag(lv.obj.FLAG.HIDDEN) + + heartrate_start_label.set_text("测量结束,点击重测") if self.heart_value != 0: - heartrate_start_label.set_text(" ") heartrate_bpm_label.set_text("{} bpm".format(self.heart_value)) - heartrate_done_label.set_text("测量完成") + # heartrate_done_label.set_text("测量完成") else: - heartrate_start_label.set_text("退出,请重新测量") + heartrate_bpm_label.set_text("-- bpm") + + self.show_history_data() self.timer.stop() self.point = 0 @@ -2394,7 +2579,7 @@ class IncomingCallScreen(Screen): pass def done_return(self): - pass + pass on_call_screen = None @@ -2687,7 +2872,7 @@ class OnCallScreen(Screen): 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):