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):#
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)
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)),
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"
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)
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代表手动进入测试界面
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
pass
def done_return(self):
- pass
+ pass
on_call_screen = None
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):