优化拨号盘
authord15521469561 <d155214695615@qq.com>
Thu, 6 Apr 2023 01:43:15 +0000 (09:43 +0800)
committerd15521469561 <d155214695615@qq.com>
Thu, 6 Apr 2023 01:43:15 +0000 (09:43 +0800)
14 files changed:
3.code/1.watch/2.code/appWechat.py
3.code/1.watch/2.code/main_1.py
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CALL.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CONTACTS.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_HEART_RATE_HEALTH_DETECT.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SETTINGS.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SPO2_DETECT.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TEMPERATURE.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TOOLS.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_WECHAT.jpg
3.code/1.watch/2.code/static/main_menu/main_menu2/alipay_.jpg
3.code/1.watch/2.code/test_sms.py
3.code/1.watch/2.code/ui.py
3.code/1.watch/2.code/ui_main_menu.py

index 6e243d0..8b0864b 100644 (file)
@@ -188,7 +188,7 @@ class WechatScreen(Screen):
                             msg_tmp = value[2:] 
                             size = len(msg_tmp)
                             self.startWidth = size*20
-                            print("self.startWidth :{} size:{}".format(self.startWidth,size))
+                            # print("self.startWidth :{} size:{}".format(self.startWidth,size))
                             if self.startWidth > 200:
                                 self.startWidth = 200
                         
index 7ae0073..56db1e6 100644 (file)
@@ -56,7 +56,7 @@ if __name__ == '__main__':
     from ext.ui_main_menu import MainMenuScreen
     from ext.appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol
     import ext.ui_setting as _ui_setting
-    # from usr.test_sms import DialingScreen
+    # from usr.test_sms import PhoneScreen
 
    #from usr.ui_wechat import WechatScreen,TK_ProtoCol
     btn_device = BtnDevice(tp_cst816)
index 47a5f2e..f1da650 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CALL.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CALL.jpg differ
index 75534b3..545bc8c 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CONTACTS.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CONTACTS.jpg differ
index dec9121..ee433e3 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_HEART_RATE_HEALTH_DETECT.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_HEART_RATE_HEALTH_DETECT.jpg differ
index 4cd310a..5633f78 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SETTINGS.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SETTINGS.jpg differ
index 8a7690b..8465acb 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SPO2_DETECT.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SPO2_DETECT.jpg differ
index 1067b79..68d6c7d 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TEMPERATURE.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TEMPERATURE.jpg differ
index c24480a..c3218dc 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TOOLS.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TOOLS.jpg differ
index 52d2f66..dcb63f2 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_WECHAT.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/IMAGE_ONE_PAGE_WECHAT.jpg differ
index 05de42b..5465043 100644 (file)
Binary files a/3.code/1.watch/2.code/static/main_menu/main_menu2/alipay_.jpg and b/3.code/1.watch/2.code/static/main_menu/main_menu2/alipay_.jpg differ
index 3712254..a9a3181 100644 (file)
@@ -4,7 +4,7 @@
 import lvgl as lv
 from ext import EventMesh
 import sms
-from ext.ui import style_screen,style_font_youyuan_20_black,style_font_youyuan_20,Screen,style_contact_btn,style_img
+from ext.ui import style_screen,style_font_youyuan_20_black,style_font_youyuan_20,Screen,style_contact_btn,style_img,style_line
 from ext.common import Abstract
 import voiceCall
 import ql_fs
@@ -15,325 +15,350 @@ import osTimer
 import utime
 
 
-"""
-
-MSG_FLAG = 0
-MSG_MAX = 10 #最大显示短信内容条数
-
-style_sms_bg_btn =  lv.style_t()
-style_sms_bg_btn.init()
-#style_sms_bg_btn.set_bg_color(lv.color_make(0x00, 0xff, 0x2a))
-style_sms_bg_btn.set_bg_color(lv.color_make(0xff, 0xff, 0xff))
-style_sms_bg_btn.set_border_width(0)
-style_sms_bg_btn.set_shadow_opa(0)
-
-
-msg_list_screen = lv.obj()
-msg_screen = lv.obj(msg_list_screen)
-msg_screen.center()
-msg_screen.set_size(240, 320)
-msg_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-msg_top_title = lv.label(msg_screen)
-msg_top_title.set_pos(0, 10)
-msg_top_title.set_size(240, 40)
-msg_top_title.set_text("信息")
-msg_top_title.set_long_mode(lv.label.LONG.WRAP)
-msg_top_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-msg_top_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-msg_cont_detail = lv.obj(msg_screen)
-msg_cont_detail.set_pos(0, 50)
-msg_cont_detail.set_size(240, 270)
-msg_cont_detail.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-msg_list_t= lv.obj(msg_list_screen)
-msg_list_t.set_pos(0, 50)
-msg_list_t.set_size(240, 270)
-msg_list_t.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-msg_list_t.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-no_msg_text = lv.label(msg_list_t)
-no_msg_text.set_pos(0, 120)
-no_msg_text.set_size(240, 40)
-no_msg_text.set_text("暂无信息")
-no_msg_text.set_long_mode(lv.label.LONG.WRAP)
-no_msg_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-no_msg_text.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-
-
-
-
-
-
-
-def msg_cb(args):
-    index = args[1]
-    storage = args[2]
-    EventMesh.publish("sms_updata_list_show")
-    #print('New message! storage:{},index:{}'.format(storage, index))
-    
-sms.setCallback(msg_cb)
-
-
-
-class PopupScreen(Screen):
-    NAME = "popup"
+######################拨号盘##################################
+
+# -------------------------------------------phone screen----------------------------------------------------------
+phone_screen = lv.obj()
+phone = lv.obj(phone_screen)
+phone.center()
+phone.set_size(240, 320)
+phone.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+line_points = [{"x":0,"y":0},{"x":0,"y":20}]
+phone_line = lv.line(phone)
+phone_line.set_points(line_points,2)
+phone_line.set_pos(235,74)
+phone_line.set_size(2,20)
+phone_line.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+phone_line.add_style(style_line,0)
+
+phone_label = lv.label(phone)
+phone_label.set_pos(0, 76)
+phone_label.set_size(0, 30)
+phone_label.set_text(" ")
+phone_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_label.set_long_mode(lv.label.LONG.CLIP)
+phone_label.set_style_text_align(lv.TEXT_ALIGN.RIGHT, 0)
+
+phone_one = lv.img(phone)
+phone_one.set_src("E:/static/IMAGE_NUMBER_KEY1_ICON.jpg")
+phone_one.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_one.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_one.set_pos(3, 100)
+
+phone_two = lv.img(phone)
+phone_two.set_size(76, 40)
+phone_two.set_src("E:/static/IMAGE_NUMBER_KEY2_ICON.jpg")
+phone_two.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_two.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_two.set_pos(82, 100)
+
+phone_three = lv.img(phone)
+phone_three.set_size(76, 40)
+phone_three.set_src("E:/static/IMAGE_NUMBER_KEY3_ICON.jpg")
+phone_three.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_three.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_three.set_pos(161, 100)
+
+phone_four = lv.img(phone)
+phone_four.set_size(76, 40)
+phone_four.set_src("E:/static/IMAGE_NUMBER_KEY4_ICON.jpg")
+phone_four.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_four.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_four.set_pos(3, 142)
+
+phone_five = lv.img(phone)
+phone_five.set_size(76, 40)
+phone_five.set_src("E:/static/IMAGE_NUMBER_KEY5_ICON.jpg")
+phone_five.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_five.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_five.set_pos(82, 142)
+
+phone_six = lv.img(phone)
+phone_six.set_size(76, 40)
+phone_six.set_src("E:/static/IMAGE_NUMBER_KEY6_ICON.jpg")
+phone_six.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_six.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_six.set_pos(161, 142)
+
+phone_seven = lv.img(phone)
+phone_seven.set_size(76, 40)
+phone_seven.set_src("E:/static/IMAGE_NUMBER_KEY7_ICON.jpg")
+phone_seven.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_seven.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_seven.set_pos(3, 184)
+
+phone_eight = lv.img(phone)
+phone_eight.set_size(76, 40)
+phone_eight.set_src("E:/static/IMAGE_NUMBER_KEY8_ICON.jpg")
+phone_eight.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_eight.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_eight.set_pos(82, 184)
+
+phone_nine = lv.img(phone)
+phone_nine.set_size(76, 40)
+phone_nine.set_src("E:/static/IMAGE_NUMBER_KEY9_ICON.jpg")
+phone_nine.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_nine.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_nine.set_pos(161, 184)
+
+phone_start = lv.img(phone)
+phone_start.set_size(76, 40)
+phone_start.set_src("E:/static/IMAGE_NUMBER_KEYSTAR_ICON.jpg")
+phone_start.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_start.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_start.set_pos(3, 226)
+
+phone_zero = lv.img(phone)
+phone_zero.set_size(76, 40)
+phone_zero.set_src("E:/static/IMAGE_NUMBER_KEY0_ICON.jpg")
+phone_zero.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_zero.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_zero.set_pos(82, 226)
+
+phone_hash = lv.img(phone)
+phone_hash.set_size(76, 40)
+phone_hash.set_src("E:/static/IMAGE_NUMBER_KEYHASH_ICON.jpg")
+phone_hash.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_hash.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_hash.set_pos(161, 226)
+
+phone_call = lv.img(phone)
+phone_call.set_size(76, 40)
+phone_call.set_src("E:/static/IMAGE_BUTTON_DIAL.jpg")
+phone_call.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_call.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_call.set_pos(3, 268)
+
+phone_call_btn = lv.img(phone)
+phone_call_btn.set_size(76, 52)
+phone_call_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_call_btn.set_pos(3, 268)
+
+phone_contact = lv.img(phone)
+phone_contact.set_size(64, 40)
+phone_contact.set_src("E:/static/IMAGE_BUTTON_DIAL_CONTACT.jpg")
+phone_contact.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_contact.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_contact.set_pos(87, 268)
+
+phone_contact_btn = lv.img(phone)
+phone_contact_btn.set_size(76, 52)
+phone_contact_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_contact_btn.set_pos(87, 268)
+
+phone_delete = lv.img(phone)
+phone_delete.set_size(76, 40)
+phone_delete.set_src("E:/static/IMAGE_BUTTON_DELKEY.jpg")
+phone_delete.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_delete.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_delete.set_pos(161, 268)
+
+phone_delete_btn = lv.img(phone)
+phone_delete_btn.set_size(76, 52)
+phone_delete_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_delete_btn.set_pos(161, 268)
+
+PHONE_CALL_MAX_DATA = 22
+
+class PhoneScreen(Screen):
+    NAME = "Phone"
 
     def __init__(self):
-        super().__init__()
-        # -------------------------------------------popup_menu screen----------------------------------------------------------
-        self.meta = msg_list_screen
-        self.msg_detail = {}
-        self.msg_nums = 0
-        self.sms_detail_list = lv.obj()
-        EventMesh.subscribe("sms_updata_list_show", self.sms_create_list)
-
-    def post_processor_before_initialization(self):
-        self.msg_nums = sms.getMsgNums() #获取短信条数
-
-    def initialization(self):
-        self.msg_nums = sms.getMsgNums() 
-        # print("self.msg_nums:{} type:{}".format(self.msg_nums,type(sms.getMsgNums())))
-        self.btn_create(0)
-    def sms_create_list(self,event,msg):
-        self.msg_nums = sms.getMsgNums() 
-        self.btn_create(1)
-    
-    def btn_create(self,msg):
-        i = 0
-        j = 0
-        if self.msg_nums > 0:
-            no_msg_text.add_flag(lv.obj.FLAG.HIDDEN)
-            self.sms_detail_list.delete()#先删除一次控件
-            
-            self.sms_detail_list = lv.obj(msg_list_screen)
-            self.sms_detail_list.set_pos(0, 50)
-            self.sms_detail_list.set_size(240, 270)
-            self.sms_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-            self.sms_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-            if self.msg_nums > 10:
-                j = self.msg_nums-10
-            for i in range(self.msg_nums):
-                if i > (MSG_MAX-1):
-                    break
-                
-                tmp = sms.searchTextMsg(j)
-                # print("self.msg_nums:{} sms.searchTextMsg(i):{} tmp[0]:{} tmp[1]:{} j:{} i:{}".format(self.msg_nums,sms.searchTextMsg(j),tmp[0],tmp[1],j,i))
-                msg_btn = lv.btn(self.sms_detail_list)
-                msg_btn.set_size(240,90)
-                msg_btn.set_pos(0,92*i)
-                msg_btn.add_style(style_sms_bg_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-                msg_btn.add_event_cb(lambda e: self.calling(e),
-                                        lv.EVENT.CLICKED, None)
-
-                _btn_label2 = lv.label(msg_btn)
-                _btn_label2.set_pos(0, 5)
-                _btn_label2.set_size(180, 25)
-                _btn_label2.set_text(tmp[0])
-                _btn_label2.set_long_mode(lv.label.LONG.DOT)
-                _btn_label2.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-                #
-
-                detail = tmp[1]
-                _btn_label3 = lv.label(msg_btn)
-                _btn_label3.set_pos(0, 34)
-                _btn_label3.set_size(220, 35)
-                _btn_label3.set_text(detail)
-                _btn_label3.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                i = i + 1
-                j += 1
-            if msg == 1:
-                bottom_btn = self.sms_detail_list.get_child(-1)
-                bottom_btn.scroll_to_view(lv.ANIM.OFF)   
-        else:
-            no_msg_text.clear_flag(lv.obj.FLAG.HIDDEN)
-            
-    def calling(self,e):
-        #上传标题和内容
-        _name = e.get_target().get_child(0).get_text()
-        EventMesh.publish("save_msg_name", _name)       
-        content = e.get_target().get_child(1).get_text()
-        EventMesh.publish("save_msg_content", content) 
-       
-        #显示详细页面
-        EventMesh.publish("load_screen", {"screen": "msg_detail"})
-    
-    def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "watchface"})
-    def btn1_release(self):
-        EventMesh.publish("load_screen", {"screen": "watchface"})
-    def btn8_press(self):
-        EventMesh.publish("load_screen", {"screen": "watchface"})
 
-"""
-
-# -------------------------------------------call_log screen----------------------------------------------------------
-call_log_screen = lv.obj()
-call_log = lv.obj(call_log_screen)
-call_log.center()
-call_log.set_size(240, 320)
-call_log.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-contacts_cont_list= lv.obj(call_log)
-contacts_cont_list.set_pos(0, 50)
-contacts_cont_list.set_size(240, 270)
-contacts_cont_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-contacts_cont_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-call_log_title = lv.label(call_log)
-call_log_title.set_pos(0, 10)
-call_log_title.set_size(240, 40)
-call_log_title.set_long_mode(lv.label.LONG.WRAP)
-call_log_title.set_text("通话记录")
-call_log_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-call_log_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-none_call_log_title = lv.label(contacts_cont_list)
-none_call_log_title.set_pos(0, 120)
-none_call_log_title.set_size(240, 40)
-none_call_log_title.set_long_mode(lv.label.LONG.WRAP)
-none_call_log_title.set_text("暂无记录")
-none_call_log_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-none_call_log_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-CALLLOG_FLAG = 0
-class CallLogScreen(Screen):
-    NAME = "call_log"
-
-    def __init__(self):
         super().__init__()
-        self.meta = call_log_screen
-        self.log_list = []
-        self.read_call_log = {}
-        self.check_json = 0
-        self.call_log_detail_list = lv.obj()
-        EventMesh.subscribe("call_log_update_show_list", self.call_log_update_show_list)
+        self.meta = phone_screen
+        self.phone_num = ''
+        self.phone_list = []
+        self.button = 0
         self.timer = osTimer()
+        self.count = 0
+        phone_one.add_event_cb(lambda e: self.one(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_two.add_event_cb(lambda e: self.two(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_three.add_event_cb(lambda e: self.three(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_four.add_event_cb(lambda e: self.four(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_five.add_event_cb(lambda e: self.five(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_six.add_event_cb(lambda e: self.six(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_seven.add_event_cb(lambda e: self.seven(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_eight.add_event_cb(lambda e: self.eight(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_nine.add_event_cb(lambda e: self.nine(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_zero.add_event_cb(lambda e: self.zero(e),
+                                     lv.EVENT.CLICKED, None)
 
-    def post_processor_before_initialization(self):
-        read_call_log = EventMesh.publish("get_call_log_list")
-        self.check_json = read_call_log[0]
-        self.read_call_log = read_call_log[1]
-    
-    
-
-    def call_log_update_show_list(self, event, msg): 
-        read_call_log = EventMesh.publish("get_call_log_list")
-        # print("read_call_log:{}".format(read_call_log))
-        self.check_json = read_call_log[0] #文件是否存在
-        self.read_call_log = read_call_log[1]#通话记录数据
-        self.timer.start(500,0,self.reciving)
+        phone_call_btn.add_event_cb(lambda e: self.call(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_contact_btn.add_event_cb(lambda e: self.contact(e),
+                                     lv.EVENT.CLICKED, None)
+        phone_delete_btn.add_event_cb(lambda e: self.delete(e),
+                                     lv.EVENT.CLICKED, None)
+        
+        phone_start.add_event_cb(lambda e: self.start(e),
+                                     lv.EVENT.CLICKED, None)#短按显示* 
+        
+        phone_start.add_event_cb(lambda e: self.pressed_start(e),
+                                     lv.EVENT.LONG_PRESSED, None)#长按显示+
+        
+        phone_start.add_event_cb(lambda e: self.endpressed_start(e),
+                                     lv.EVENT.RELEASED, None)#释放按键
+        
 
-    def reciving(self,e):
-       self.btn_create()
+        phone_hash.add_event_cb(lambda e: self.hash(e),
+                                     lv.EVENT.CLICKED, None)
+    def post_processor_after_instantiation(self):
+        self.phone_num=''
+        self.phone_list = []
 
     def initialization(self):
-        EventMesh.publish("call_log_update_show_list")
-        self.btn_create()
-    
-    def btn_create(self):
-        h = 0
-        if self.check_json == True:
-            self.call_log_detail_list.delete()#先删除一次控件
-            self.call_log_detail_list = lv.obj(call_log_screen)
-            self.call_log_detail_list.set_pos(0, 50)
-            self.call_log_detail_list.set_size(240, 270)
-            self.call_log_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-            self.call_log_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-            sort_tmp = self.read_call_log.values()
-            sort_new = sorted(sort_tmp, key = lambda i: i['timesec'],reverse = True)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
-            # print("self.call_log :{} \r\n sort_new:{}\r\n".format(self.read_call_log,sort_new))
-            none_call_log_title.add_flag(lv.obj.FLAG.HIDDEN)
-            for sort_new_tmp in sort_new: #字典 key value
-                num_count = sort_new_tmp["count"]#获取通话次数
-                num_name = sort_new_tmp["name"]#获取名称
-                num_phonnum = sort_new_tmp["number"]#获取电话号码
-                num_time = sort_new_tmp["time"]#获取电话号码
-
-                # print("num_count :{} num_name:{} num_time:{}".format(num_count,num_name,num_time))
-                _btn = lv.btn(self.call_log_detail_list)
-                _btn.set_size(240,50)
-                _btn.set_pos(0,52*h)
-                _btn.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-                _btn.add_event_cb(lambda e: self.calling(e),
-                                        lv.EVENT.CLICKED, None)
-
-
-                _btn_label2 = lv.label(_btn)
-                _btn_label2.set_pos(0, 5)
-                _btn_label2.set_size(0, 25)
-                _btn_label2.set_text(num_phonnum)
-                #_btn_label2.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-                #
-                _btn_label3 = lv.label(_btn)
-                _btn_label3.set_pos(100, 5)
-                _btn_label3.set_size(40, 25)
-                _btn_label3.set_text("(" + str(num_count) + ")")
-                _btn_label3.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                _btn_label4 = lv.label(_btn)
-                _btn_label4.set_pos(0, 5)
-                _btn_label4.set_size(100, 25)
-                _btn_label4.set_text(num_phonnum)
-                _btn_label4.set_long_mode(lv.label.LONG.DOT)
-                _btn_label4.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                _btn_label4 = lv.label(_btn)
-                _btn_label4.set_pos(0, 5)
-                _btn_label4.set_size(0, 0)
-                _btn_label4.set_text(num_name)
-                # _btn_label4.set_long_mode(lv.obj.LONG.DOT)
-                # _btn_label4.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                _btn_label5 = lv.label(_btn)
-                _btn_label5.set_pos(135, 5)
-                _btn_label5.set_size(95, 25)
-                _btn_label5.set_text(num_name)
-                _btn_label5.set_long_mode(lv.label.LONG.DOT)
-                _btn_label5.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-                h = h + 1
-        else:
-            self.call_log_detail_list.add_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
-            none_call_log_title.clear_flag(lv.obj.FLAG.HIDDEN)
-
+        self.phone_num=''
+        self.phone_list = []
+        self.count = 0
+        phone_label.set_text(" ")
+        # print("self.phone_list :{} self.phone_num:{}".format(self.phone_list,self.phone_num))
+        self.timer.start(1000,1,self.refresh_line)   
+
+    def refresh_line(self,e):
         
-    def calling(self,e):
-            # print("e.get_text():{} {}".format(e.get_target().get_child(0).get_text(),e.get_target().get_child(3).get_text()))
-            phonnum = int(e.get_target().get_child(0).get_text())
-            phnoname = e.get_target().get_child(3).get_text()
-            # print("phonnum :{} _msg:{}".format(phonnum,phnoname))
-            EventMesh.publish("save_phonenum",phonnum)#保存电话号码用于界面显示获取
-           
-            self.name = None
-            self.phonebook = {}
-
-            self.call_log = {}
-            self.call_log_value = {}
-            self.read_call_log = {}
-            self.number_tmp = {}
-
+        if self.count > 2 :
+            self.count = 1
+        if (self.count%2) == 0:
+            phone_line.clear_flag(lv.obj.FLAG.HIDDEN)
+        else:
+            phone_line.add_flag(lv.obj.FLAG.HIDDEN)
+        self.count+=1
+    def one(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("1")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+    
+    def two(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("2")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def three(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("3")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def four(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("4")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def five(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("5")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def six(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("6")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def seven(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("7")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def eight(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("8")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def nine(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
+            return
+        self.phone_list.append("9")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+    def zero(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字
+            return
+        self.phone_list.append("0")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+    
+    def start(self,e):
+        self.button = 0
+
+    def pressed_start(self,e):
+        self.button = 1
+
+    def endpressed_start(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字
+            return
+  
+        if self.button == 1:#长按
+            self.phone_list.append("+")  
+        else:#短按
+            self.phone_list.append("*")  
+                      
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+    
+    def hash(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字
+            return
+        self.phone_list.append("#")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
+
+    def delete(self,e):
+        if len(self.phone_list) != 0:
+            self.phone_list.pop()
+            self.phone_num = ''.join(self.phone_list)
+            self.show_num()
+
+    def contact(self,e):
+        EventMesh.publish("load_screen", {"screen": "contacts"})
+
+    def call(self,e):
+        self.name = None
+        self.phonebook = {}
+        self.number_tmp = {}
+        if len(self.phone_list) != 0:
             data = EventMesh.publish("get_phonebook_list")
             check = data[0]
             self.phonebook = data[1]
             # print("check :{}".format(check))
             if check == 1:#检查通讯录
                 phonebook_keys = sorted(self.phonebook.keys())
-                b = str(phonnum) in self.phonebook.values()#查找key中是否包含content电话号码 True 包含在里面 False不包含在里面
+                b = str(self.phone_num) in self.phonebook.values()#查找key中是否包含content电话号码 True 包含在里面 False不包含在里面
                 j = 0
                 if b == True:
                     for i in range(len(self.phonebook)): #字典 key value
-                        #'001:邓雪英':15521469561
+                        #'001:张三':15521469561
                         name = self.phonebook[phonebook_keys[j]]
                         name_value = phonebook_keys[j]
-                        number_tmp = str(phonnum)
+                        number_tmp = str(self.phone_num)
                         # print("name :{} number_tmp:{}".format(name,number_tmp))
                         if name.find(number_tmp) != -1:#查找电话号码是否在通讯录里面
                             number_f= name_value
@@ -343,167 +368,24 @@ class CallLogScreen(Screen):
                             break
                         j+=1
                 else:
-                    self.name = phnoname
-                    self.pro_state = 0
+                    self.name = self.phone_num
             else:
-                self.name = phnoname
-
-            if self.name == None:
-                self.name = phnoname
+                self.name = self.phone_num
 
+            EventMesh.publish("save_phonenum",self.phone_num)
             EventMesh.publish("save_phonename",self.name)#
-            voiceCall.callStart(str(phonnum))
-
-    def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "watchface"})
-
-    def btn1_release(self):
-        EventMesh.publish("load_screen", {"screen": "watchface"})
-
-    def btn8_press(self):
-        EventMesh.publish("load_screen", {"screen": "watchface"})
-
-
-class CallLogManager(Abstract):
-    # 通话记录
-    def __init__(self):
-        self.read_call_log = {}
-        self.check_json = ql_fs.path_exists("//ext/static/storage_fileCall_log.json")
-
-        if self.check_json == True:
-            with open("/ext/static/storage_file/Call_log.json","r",encoding="utf-8") as fd:
-                self.read_call_log = ujson.load(fd)
-                print("读取通话记录")
-
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe("get_call_log_list", self.get)
-        EventMesh.subscribe("set_call_log_list", self.set)
-
-    def get(self, event, msg):
-        self.check_json = ql_fs.path_exists("/ext/static/storage_file/Call_log.json")
-        return [self.check_json,self.read_call_log]
-
-    def set(self, event, msg):
-        self.check_json = msg[0]
-        self.read_call_log = msg[1]
-    
-    # def call_usr(self,event,msg):
-    #     content = self.log[msg]
-    #     # 参数1 姓名  参数2  电话   参数3 1/主动呼叫  0别人呼叫
-    #     EventMesh.publish("call_in", [content[2], content[0], 1])
-
-
-dialing_screen = lv.obj()
-dialing = lv.obj(dialing_screen)
-dialing.center()
-dialing.set_size(240, 320)
-dialing.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-dialing_img = lv.img(dialing)
-dialing_img.set_pos(80, 20)
-dialing_img.set_size(64, 64)
-dialing_img.set_src("E:/static/IMAGE_NOTICE_CALL.jpg")
-dialing_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-dialing_name = lv.label(dialing)
-dialing_name.set_pos(0, 100)
-dialing_name.set_size(240, 50)
-dialing_name.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-dialing_name.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-dialing_content = lv.label(dialing)
-dialing_content.set_pos(0, 160)
-dialing_content.set_size(240, 50)
-dialing_content.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-dialing_content.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-hangup_imgbtn = lv.img(dialing)
-hangup_imgbtn.set_size(64, 64)
-hangup_imgbtn.set_src("E:/static/IMG_CC_HUNGUP1.jpg")
-hangup_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-hangup_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-hangup_imgbtn.set_pos(80, 220)
-
-CALL_LOG_MAX = 50
-
-class DialingScreen(Screen):
-    NAME = "dialing"
-
-    def __init__(self):
-        super().__init__()
-        self.meta = dialing_screen
-        hangup_imgbtn.add_event_cb(lambda e: self.hangup(e),
-                                     lv.EVENT.CLICKED, None)
-        self.call_log = {}
-        self.call_log_value = {}
-        self.read_call_log = {}
-        self.number_tmp = {}
-
-    def initialization(self):
-        #获取字符串
-        name = EventMesh.publish("get_phonename")#获取拨打电话名称
-        content = EventMesh.publish("get_phonenum")#获取电话号码
-        time = EventMesh.publish("screen_get_time")#获取系统时间
-
-        # ["15692025051","2","12:59","哥gdh符合双方和开发商开发好看的思考"],
-        # 格式:{"电话号码":{"timesec":'时间戳',"number":'电话号码',"name":'名字',"time":'时间',"count":'通话次数'}}
-        
-        dialing_name.set_text(name)#名称
-        dialing_content.set_text(content)#电话号码
-        num = 0
-   
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
-        # print("time_tmp:{}".format(time_tmp))
-        read_call_log = EventMesh.publish("get_call_log_list")
-        check_json = read_call_log[0]
-
-        if check_json == True:
-            self.read_call_log = read_call_log[1]
-            b = content in self.read_call_log.keys()#查找key中是否包含content电话号码 True 包含在里面 False不包含在里面
-            if b == True:#查找是否有相同的电话号码 有就直接读出来的次数上加一 没有则从1开始加起
-                number_tmp = {}
-                number_tmp = self.read_call_log[content] #通话次数加一
-                num_tmp_t = number_tmp["count"]
-                # print("number_tmp:{} self.read_call_log.value:{}".format(number_tmp,self.read_call_log.values()))
-            else :
-                num_tmp_t = 0
-            num = num_tmp_t 
-        else:
-            num = 0 #通话次数
-
-        sort_tmp = {}
-        sort_tmp = self.read_call_log.values()
-        sort_new = {}
-        sort_new = sorted(sort_tmp, key = lambda i: i['timesec'],reverse = True)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
-
-        i = 0
-        # 49 50 
-        if len(self.read_call_log) >= CALL_LOG_MAX:
-            for sort_new_tmp in sort_new: #字典 key value
-                i+=1 # 1 
-                if i >= CALL_LOG_MAX:#大于50条把最后一条删除掉只保留前面50调最新的数据
-                    key_tmp = sort_new_tmp["number"]
-                    del self.read_call_log[key_tmp]
-        tmp = {}
-        tmp["count"]= num+1 #通话次数
-        tmp["time"]= "{}:{}".format("%02d"%(time[0][0]),"%02d"%(time[0][1]))#通湖时间
-        tmp["name"]= name #名称
-        tmp["timesec"]= time_tmp #时间戳
-        tmp["number"] = content
-
-        self.read_call_log[content] = tmp
-        with open("/ext/static/storage_file/Call_log.json","w",encoding="utf-8") as fd:
-            ujson.dump(self.read_call_log,fd)
-            print("创建通话记录")
-        EventMesh.publish("set_call_log_list", [1,self.read_call_log])
-        EventMesh.publish("call_log_update_show_list")
+            voiceCall.callStart(self.phone_num)
         
-    def hangup(self,e):
-        voiceCall.callEnd()
+    def show_num(self):
+        len_t = len(self.phone_list)*20
+        if len_t > 230:
+            len_t = 230
+        phone_label.set_size(len_t,30)
+        phone_label.set_pos(230-len_t,76)
+        phone_label.set_text(self.phone_num)
 
     def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "watchface"})
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
 
     def btn1_release(self):
         EventMesh.publish("load_screen", {"screen": "watchface"})
@@ -517,30 +399,7 @@ class DialingScreen(Screen):
 
 
 
-class MsgManager(Abstract):
-    # 短信
-    def __init__(self):
-        self.msg_nums = 0
-        self.msg_detail = ""
 
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe("get_msg_nums", self.get_msg_nums)
-        # 可通过此push_addr_book_list主动推送
-        EventMesh.subscribe("get_msg_detail", self.get_msg_detail)
 
-    def get_msg_nums(self, event, msg):
 
-        self.msg_nums = sms.getMsgNums() 
-        print("self.msg_nums {}:".format(self.msg_nums))
-        return self.msg_nums
-    
-    def get_msg_detail(self, event, msg):
-        
-        # self.msg_detail = sms.searchTextMsg(self.msg_nums)
-        # print("self.msg_detai {}:".format(self.msg_detai))
-        return{
-            "小明":"有内鬼,停止交易",
-            "小红":"今晚十点一起吃饭"
-        }
-
-   
\ No newline at end of file
+
index b33ab68..0fa243f 100644 (file)
@@ -164,131 +164,6 @@ style_circle.set_radius(0x7FFF)
 
 
 
-# -------------------------------------------phone screen----------------------------------------------------------
-phone_screen = lv.obj()
-phone = lv.obj(phone_screen)
-phone.center()
-phone.set_size(240, 320)
-phone.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-# line_points = [{"x":0,"y":0},{"x":0,"y":240}]
-# phone_line = lv.line(phone)
-# phone_line.set_points(line_points,2)
-# phone_line.set_pos(230,100)
-# phone_line.set_size(4,20)
-# phone_line.add_style(style_line,0)
-
-phone_label = lv.label(phone)
-phone_label.set_pos(0, 50)
-phone_label.set_size(240, 40)
-phone_label.set_text("")
-phone_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_label.set_long_mode(lv.label.LONG.WRAP)
-phone_label.set_style_text_align(lv.TEXT_ALIGN.RIGHT, 10)
-
-phone_one = lv.img(phone)
-phone_one.set_src("E:/static/IMAGE_NUMBER_KEY1_ICON.jpg")
-phone_one.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_one.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_one.set_pos(3, 100)
-
-phone_two = lv.img(phone)
-phone_two.set_size(76, 40)
-phone_two.set_src("E:/static/IMAGE_NUMBER_KEY2_ICON.jpg")
-phone_two.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_two.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_two.set_pos(82, 100)
-
-phone_three = lv.img(phone)
-phone_three.set_size(76, 40)
-phone_three.set_src("E:/static/IMAGE_NUMBER_KEY3_ICON.jpg")
-phone_three.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_three.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_three.set_pos(161, 100)
-
-phone_four = lv.img(phone)
-phone_four.set_size(76, 40)
-phone_four.set_src("E:/static/IMAGE_NUMBER_KEY4_ICON.jpg")
-phone_four.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_four.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_four.set_pos(3, 142)
-
-phone_five = lv.img(phone)
-phone_five.set_size(76, 40)
-phone_five.set_src("E:/static/IMAGE_NUMBER_KEY5_ICON.jpg")
-phone_five.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_five.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_five.set_pos(82, 142)
-
-phone_six = lv.img(phone)
-phone_six.set_size(76, 40)
-phone_six.set_src("E:/static/IMAGE_NUMBER_KEY6_ICON.jpg")
-phone_six.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_six.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_six.set_pos(161, 142)
-
-phone_seven = lv.img(phone)
-phone_seven.set_size(76, 40)
-phone_seven.set_src("E:/static/IMAGE_NUMBER_KEY7_ICON.jpg")
-phone_seven.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_seven.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_seven.set_pos(3, 184)
-
-phone_eight = lv.img(phone)
-phone_eight.set_size(76, 40)
-phone_eight.set_src("E:/static/IMAGE_NUMBER_KEY8_ICON.jpg")
-phone_eight.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_eight.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_eight.set_pos(82, 184)
-
-phone_nine = lv.img(phone)
-phone_nine.set_size(76, 40)
-phone_nine.set_src("E:/static/IMAGE_NUMBER_KEY9_ICON.jpg")
-phone_nine.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_nine.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_nine.set_pos(161, 184)
-
-phone_start = lv.img(phone)
-phone_start.set_size(76, 40)
-phone_start.set_src("E:/static/IMAGE_NUMBER_KEYSTAR_ICON.jpg")
-phone_start.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_start.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_start.set_pos(3, 226)
-
-phone_zero = lv.img(phone)
-phone_zero.set_size(76, 40)
-phone_zero.set_src("E:/static/IMAGE_NUMBER_KEY0_ICON.jpg")
-phone_zero.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_zero.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_zero.set_pos(82, 226)
-
-phone_hash = lv.img(phone)
-phone_hash.set_size(76, 40)
-phone_hash.set_src("E:/static/IMAGE_NUMBER_KEYSTAR_ICON.jpg")
-phone_hash.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_hash.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_hash.set_pos(161, 226)
-
-phone_call = lv.img(phone)
-phone_call.set_size(76, 40)
-phone_call.set_src("E:/static/IMAGE_BUTTON_DIAL.jpg")
-phone_call.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_call.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_call.set_pos(3, 268)
-
-phone_contact = lv.img(phone)
-phone_contact.set_size(64, 40)
-phone_contact.set_src("E:/static/IMAGE_BUTTON_DIAL_CONTACT.jpg")
-phone_contact.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_contact.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_contact.set_pos(87, 268)
-
-phone_delete = lv.img(phone)
-phone_delete.set_size(76, 40)
-phone_delete.set_src("E:/static/IMAGE_BUTTON_DELKEY.jpg")
-phone_delete.add_flag(lv.obj.FLAG.CLICKABLE)
-phone_delete.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-phone_delete.set_pos(161, 268)
 
 # -------------------------------------------heartrate screen----------------------------------------------------------
 heartrate_screen = lv.obj()
@@ -883,7 +758,7 @@ spo2_last_time = lv.label(spo2)
 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("2023.01.29 19:33")
+spo2_last_time.set_text(" ")
 spo2_last_time.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 
 spo2_last_value = lv.label(spo2)
@@ -1099,6 +974,150 @@ class Screen(Abstract):
 
     def done_error(self):
         pass
+#..............................phone................................................#
+phone_screen = lv.obj()
+phone = lv.obj(phone_screen)
+phone.center()
+phone.set_size(240, 320)
+phone.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+line_points = [{"x":0,"y":0},{"x":0,"y":20}]
+phone_line = lv.line(phone)
+phone_line.set_points(line_points,2)
+phone_line.set_pos(235,74)
+phone_line.set_size(2,20)
+phone_line.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+phone_line.add_style(style_line,0)
+
+phone_label = lv.label(phone)
+phone_label.set_pos(0, 76)
+phone_label.set_size(0, 30)
+phone_label.set_text(" ")
+phone_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_label.set_long_mode(lv.label.LONG.CLIP)
+phone_label.set_style_text_align(lv.TEXT_ALIGN.RIGHT, 0)
+
+phone_one = lv.img(phone)
+phone_one.set_src("E:/static/IMAGE_NUMBER_KEY1_ICON.jpg")
+phone_one.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_one.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_one.set_pos(3, 100)
+
+phone_two = lv.img(phone)
+phone_two.set_size(76, 40)
+phone_two.set_src("E:/static/IMAGE_NUMBER_KEY2_ICON.jpg")
+phone_two.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_two.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_two.set_pos(82, 100)
+
+phone_three = lv.img(phone)
+phone_three.set_size(76, 40)
+phone_three.set_src("E:/static/IMAGE_NUMBER_KEY3_ICON.jpg")
+phone_three.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_three.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_three.set_pos(161, 100)
+
+phone_four = lv.img(phone)
+phone_four.set_size(76, 40)
+phone_four.set_src("E:/static/IMAGE_NUMBER_KEY4_ICON.jpg")
+phone_four.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_four.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_four.set_pos(3, 142)
+
+phone_five = lv.img(phone)
+phone_five.set_size(76, 40)
+phone_five.set_src("E:/static/IMAGE_NUMBER_KEY5_ICON.jpg")
+phone_five.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_five.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_five.set_pos(82, 142)
+
+phone_six = lv.img(phone)
+phone_six.set_size(76, 40)
+phone_six.set_src("E:/static/IMAGE_NUMBER_KEY6_ICON.jpg")
+phone_six.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_six.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_six.set_pos(161, 142)
+
+phone_seven = lv.img(phone)
+phone_seven.set_size(76, 40)
+phone_seven.set_src("E:/static/IMAGE_NUMBER_KEY7_ICON.jpg")
+phone_seven.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_seven.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_seven.set_pos(3, 184)
+
+phone_eight = lv.img(phone)
+phone_eight.set_size(76, 40)
+phone_eight.set_src("E:/static/IMAGE_NUMBER_KEY8_ICON.jpg")
+phone_eight.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_eight.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_eight.set_pos(82, 184)
+
+phone_nine = lv.img(phone)
+phone_nine.set_size(76, 40)
+phone_nine.set_src("E:/static/IMAGE_NUMBER_KEY9_ICON.jpg")
+phone_nine.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_nine.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_nine.set_pos(161, 184)
+
+phone_start = lv.img(phone)
+phone_start.set_size(76, 40)
+phone_start.set_src("E:/static/IMAGE_NUMBER_KEYSTAR_ICON.jpg")
+phone_start.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_start.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_start.set_pos(3, 226)
+
+phone_zero = lv.img(phone)
+phone_zero.set_size(76, 40)
+phone_zero.set_src("E:/static/IMAGE_NUMBER_KEY0_ICON.jpg")
+phone_zero.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_zero.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_zero.set_pos(82, 226)
+
+phone_hash = lv.img(phone)
+phone_hash.set_size(76, 40)
+phone_hash.set_src("E:/static/IMAGE_NUMBER_KEYHASH_ICON.jpg")
+phone_hash.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_hash.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_hash.set_pos(161, 226)
+
+phone_call = lv.img(phone)
+phone_call.set_size(76, 40)
+phone_call.set_src("E:/static/IMAGE_BUTTON_DIAL.jpg")
+phone_call.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_call.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_call.set_pos(3, 268)
+
+phone_call_btn = lv.img(phone)
+phone_call_btn.set_size(76, 52)
+phone_call_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_call_btn.set_pos(3, 268)
+
+phone_contact = lv.img(phone)
+phone_contact.set_size(64, 40)
+phone_contact.set_src("E:/static/IMAGE_BUTTON_DIAL_CONTACT.jpg")
+phone_contact.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_contact.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_contact.set_pos(87, 268)
+
+phone_contact_btn = lv.img(phone)
+phone_contact_btn.set_size(76, 52)
+phone_contact_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_contact_btn.set_pos(87, 268)
+
+phone_delete = lv.img(phone)
+phone_delete.set_size(76, 40)
+phone_delete.set_src("E:/static/IMAGE_BUTTON_DELKEY.jpg")
+phone_delete.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_delete.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+phone_delete.set_pos(161, 268)
+
+phone_delete_btn = lv.img(phone)
+phone_delete_btn.set_size(76, 52)
+phone_delete_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+phone_delete_btn.set_pos(161, 268)
+
+PHONE_CALL_MAX_DATA = 22
 
 class PhoneScreen(Screen):
     NAME = "Phone"
@@ -1109,6 +1128,9 @@ class PhoneScreen(Screen):
         self.meta = phone_screen
         self.phone_num = ''
         self.phone_list = []
+        self.button = 0
+        self.timer = osTimer()
+        self.count = 0
         phone_one.add_event_cb(lambda e: self.one(e),
                                      lv.EVENT.CLICKED, None)
         phone_two.add_event_cb(lambda e: self.two(e),
@@ -1130,87 +1152,144 @@ class PhoneScreen(Screen):
         phone_zero.add_event_cb(lambda e: self.zero(e),
                                      lv.EVENT.CLICKED, None)
 
-        phone_call.add_event_cb(lambda e: self.call(e),
+        phone_call_btn.add_event_cb(lambda e: self.call(e),
                                      lv.EVENT.CLICKED, None)
-        phone_contact.add_event_cb(lambda e: self.contact(e),
+        phone_contact_btn.add_event_cb(lambda e: self.contact(e),
                                      lv.EVENT.CLICKED, None)
-        phone_delete.add_event_cb(lambda e: self.delete(e),
+        phone_delete_btn.add_event_cb(lambda e: self.delete(e),
+                                     lv.EVENT.CLICKED, None)
+        
+        phone_start.add_event_cb(lambda e: self.start(e),
+                                     lv.EVENT.CLICKED, None)#短按显示* 
+        
+        phone_start.add_event_cb(lambda e: self.pressed_start(e),
+                                     lv.EVENT.LONG_PRESSED, None)#长按显示+
+        
+        phone_start.add_event_cb(lambda e: self.endpressed_start(e),
+                                     lv.EVENT.RELEASED, None)#释放按键
+        
+
+        phone_hash.add_event_cb(lambda e: self.hash(e),
                                      lv.EVENT.CLICKED, None)
     def post_processor_after_instantiation(self):
         self.phone_num=''
         self.phone_list = []
+
+    def initialization(self):
+        self.phone_num=''
+        self.phone_list = []
+        self.count = 0
+        phone_label.set_text(" ")
+        # print("self.phone_list :{} self.phone_num:{}".format(self.phone_list,self.phone_num))
+        self.timer.start(1000,1,self.refresh_line)   
+
+    def refresh_line(self,e):
+        
+        if self.count > 2 :
+            self.count = 1
+        if (self.count%2) == 0:
+            phone_line.clear_flag(lv.obj.FLAG.HIDDEN)
+        else:
+            phone_line.add_flag(lv.obj.FLAG.HIDDEN)
+        self.count+=1
     def one(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("1")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
     
     def two(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("2")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def three(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("3")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def four(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("4")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def five(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("5")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def six(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("6")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def seven(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("7")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def eight(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("8")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def nine(self,e):
-        if(len(self.phone_list) >= 20):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:
             return
         self.phone_list.append("9")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
 
     def zero(self,e):
-        if(len(self.phone_list) >= 20):#限制拨号数量20个数字
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字
             return
         self.phone_list.append("0")                
         self.phone_num = ''.join(self.phone_list)
         self.show_num()
+    
+    def start(self,e):
+        self.button = 0
+
+    def pressed_start(self,e):
+        self.button = 1
+
+    def endpressed_start(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字
+            return
+  
+        if self.button == 1:#长按
+            self.phone_list.append("+")  
+        else:#短按
+            self.phone_list.append("*")  
+                      
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+    
+    def hash(self,e):
+        if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字
+            return
+        self.phone_list.append("#")                
+        self.phone_num = ''.join(self.phone_list)
+        self.show_num()
+
 
     def delete(self,e):
-        if self.phone_list is not None:
+        if len(self.phone_list) != 0:
             self.phone_list.pop()
             self.phone_num = ''.join(self.phone_list)
             self.show_num()
@@ -1219,11 +1298,47 @@ class PhoneScreen(Screen):
         EventMesh.publish("load_screen", {"screen": "contacts"})
 
     def call(self,e):
-        EventMesh.publish("save_phonenum",self.phone_num)
-        EventMesh.publish("load_screen", {"screen": "dialing"})
-        voiceCall.callStart(self.phone_num)
+        self.name = None
+        self.phonebook = {}
+        self.number_tmp = {}
+        if len(self.phone_list) != 0:
+            data = EventMesh.publish("get_phonebook_list")
+            check = data[0]
+            self.phonebook = data[1]
+            # print("check :{}".format(check))
+            if check == 1:#检查通讯录
+                phonebook_keys = sorted(self.phonebook.keys())
+                b = str(self.phone_num) in self.phonebook.values()#查找key中是否包含content电话号码 True 包含在里面 False不包含在里面
+                j = 0
+                if b == True:
+                    for i in range(len(self.phonebook)): #字典 key value
+                        #'001:张三':15521469561
+                        name = self.phonebook[phonebook_keys[j]]
+                        name_value = phonebook_keys[j]
+                        number_tmp = str(self.phone_num)
+                        # print("name :{} number_tmp:{}".format(name,number_tmp))
+                        if name.find(number_tmp) != -1:#查找电话号码是否在通讯录里面
+                            number_f= name_value
+                            name_s = number_f.split(':')
+                            name_s = name_s[1]
+                            self.name = name_s
+                            break
+                        j+=1
+                else:
+                    self.name = self.phone_num
+            else:
+                self.name = self.phone_num
+
+            EventMesh.publish("save_phonenum",self.phone_num)
+            EventMesh.publish("save_phonename",self.name)#
+            voiceCall.callStart(self.phone_num)
         
     def show_num(self):
+        len_t = len(self.phone_list)*20
+        if len_t > 230:
+            len_t = 230
+        phone_label.set_size(len_t,30)
+        phone_label.set_pos(230-len_t,76)
         phone_label.set_text(self.phone_num)
 
     def done_return(self):
@@ -1235,6 +1350,13 @@ class PhoneScreen(Screen):
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "watchface"})
 
+
+
+
+
+
+
+
 # ----------------------------------通话记录---------call_log screen----------------------------------------------------------
 
 call_log_screen = lv.obj()
@@ -1304,6 +1426,7 @@ class CallLogScreen(Screen):
     def btn_create(self):
         h = 0
         if self.check_json == True:
+            none_call_log_title.add_flag(lv.obj.FLAG.HIDDEN)
             self.call_log_detail_list.delete()#先删除一次控件
             self.call_log_detail_list = lv.obj(call_log_screen)
             self.call_log_detail_list.set_pos(0, 50)
@@ -1313,7 +1436,7 @@ class CallLogScreen(Screen):
             sort_tmp = self.read_call_log.values()
             sort_new = sorted(sort_tmp, key = lambda i: i['timesec'],reverse = True)#按照时间戳进行排序 去掉最旧的一次数据如果满了五十条
             # print("self.call_log :{} \r\n sort_new:{}\r\n".format(self.read_call_log,sort_new))
-            none_call_log_title.add_flag(lv.obj.FLAG.HIDDEN)
+            
             for sort_new_tmp in sort_new: #字典 key value
                 num_count = sort_new_tmp["count"]#获取通话次数
                 num_name = sort_new_tmp["name"]#获取名称
@@ -1361,12 +1484,10 @@ class CallLogScreen(Screen):
                 _btn_label5.set_text(num_name)
                 _btn_label5.set_long_mode(lv.label.LONG.DOT)
                 _btn_label5.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
-
                 h = h + 1
         else:
-            self.call_log_detail_list.add_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
             none_call_log_title.clear_flag(lv.obj.FLAG.HIDDEN)
-
+            self.call_log_detail_list.add_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
         
     def calling(self,e):
             # print("e.get_text():{} {}".format(e.get_target().get_child(0).get_text(),e.get_target().get_child(3).get_text()))
@@ -1407,7 +1528,6 @@ class CallLogScreen(Screen):
                         j+=1
                 else:
                     self.name = phnoname
-                    self.pro_state = 0
             else:
                 self.name = phnoname
 
@@ -2014,6 +2134,7 @@ class OnCallScreen(Screen):
         name = EventMesh.publish("get_phonename")
         on_call_label_name.set_text(name)
         on_call_label.set_text(str(self.meta_info))
+        on_call_second_label.set_text("00:00")
 
     def refresh(self,e):
         min = self.count_sec/60
@@ -2329,13 +2450,18 @@ class Spo2Screen(Screen):
         self.meta = spo2_screen
         self.timer = osTimer()
         self.point = 0
+        self.old_spo2_value = 0
+        self.spo2_value = 0
 
     def post_processor_after_initialization(self):
+        self.point = 0
+        self.spo2_value = 0
         self.timer.start(1*1000, 1, self.start_measure)
 
     def start_measure(self,*args):
         self.point = self.point + 1
         if self.point == 1:
+            self.spo2_value = 96
             spo2_label.set_text("96 %")
             spo2_label_1.set_text("测量中")
 
@@ -2352,10 +2478,10 @@ class Spo2Screen(Screen):
             spo2_label_1.set_text("测量完成")
             self.timer.stop()
             self.point = 0
+            self.old_spo2_value = self.spo2_value
+            # spo2_last_time.set_text()
             
     def done_return(self):
-        # spo2_start_btn.clear_flag(lv.obj.FLAG.HIDDEN)
-        # spo2_now_value.add_flag(lv.obj.FLAG.HIDDEN)
         self.timer.stop()
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
index cb5df5b..78e7238 100644 (file)
@@ -32,6 +32,11 @@ style_font_youyuan_20.init()
 style_font_youyuan_20.set_text_color(lv.color_make(0xff, 0xff, 0xff))
 style_font_youyuan_20.set_text_font_v2("font_20.bin",20,0)
 
+style_font_youyuan_25 = lv.style_t()
+style_font_youyuan_25.init()
+style_font_youyuan_25.set_text_color(lv.color_make(0xff, 0xff, 0xff))
+style_font_youyuan_25.set_text_font_v2("font_20.bin",20,0)
+
 style_btn = lv.style_t()
 style_btn.init()
 style_btn.set_bg_opa(lv.OPA.TRANSP)
@@ -285,145 +290,145 @@ class MainMenu2():
         #支付宝
         self.MainMenu2_alipay = self.MainMenu2.add_tile(0, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_alipay = lv.img(self.MainMenu2_alipay)
-        self.MainMenu2_img_alipay.set_size(160,160)
-        self.MainMenu2_img_alipay.center()
+        self.MainMenu2_img_alipay.set_size(128,128)
+        self.MainMenu2_img_alipay.set_pos(56,50)
         self.MainMenu2_img_alipay.set_src("E:/static/main_menu/main_menu2/alipay_.jpg")
         self.MainMenu2_img_alipay.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_alipay.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_alipay)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("支付宝")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_alipay)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("支付宝")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
         #拨号盘
         self.MainMenu2_phone = self.MainMenu2.add_tile(1, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_phone = lv.img(self.MainMenu2_phone)
-        self.MainMenu2_img_phone.set_size(160,160)
-        self.MainMenu2_img_phone.center()
+        self.MainMenu2_img_phone.set_size(128,128)
+        self.MainMenu2_img_phone.set_pos(56,50)
         self.MainMenu2_img_phone.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CALL.jpg")
         self.MainMenu2_img_phone.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_phone.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_phone)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("通话")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_phone)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("拨号盘")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #通讯录
         self.MainMenu2_contacts = self.MainMenu2.add_tile(2, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_contacts = lv.img(self.MainMenu2_contacts)
-        self.MainMenu2_img_contacts.set_size(160,160)
-        self.MainMenu2_img_contacts.center()
+        self.MainMenu2_img_contacts.set_size(128,128)
+        self.MainMenu2_img_contacts.set_pos(56,50)
         self.MainMenu2_img_contacts.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_CONTACTS.jpg")
         self.MainMenu2_img_contacts.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_contacts.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_contacts)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("通讯录")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_contacts)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("通讯录")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #心律检测
         self.MainMenu2_heartrate = self.MainMenu2.add_tile(3, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_heartrate = lv.img(self.MainMenu2_heartrate)
-        self.MainMenu2_img_heartrate.set_size(160,160)
-        self.MainMenu2_img_heartrate.center()
+        self.MainMenu2_img_heartrate.set_size(128,128)
+        self.MainMenu2_img_heartrate.set_pos(56,50)
         self.MainMenu2_img_heartrate.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_HEART_RATE_HEALTH_DETECT.jpg")
         self.MainMenu2_img_heartrate.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_heartrate.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_heartrate)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("心率")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_heartrate)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("心率")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #血样检测
         self.MainMenu2_spo2 = self.MainMenu2.add_tile(4, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_spo2 = lv.img(self.MainMenu2_spo2)
-        self.MainMenu2_img_spo2.set_size(160,160)
-        self.MainMenu2_img_spo2.center()
+        self.MainMenu2_img_spo2.set_size(128,128)
+        self.MainMenu2_img_spo2.set_pos(56,50)
         self.MainMenu2_img_spo2.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SPO2_DETECT.jpg")
         self.MainMenu2_img_spo2.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_spo2.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_spo2)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("血氧")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_spo2)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("血氧")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #工具箱
         self.MainMenu2_toolbox = self.MainMenu2.add_tile(5, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_toolbox = lv.img(self.MainMenu2_toolbox)
-        self.MainMenu2_img_toolbox.set_size(160,160)
-        self.MainMenu2_img_toolbox.center()
+        self.MainMenu2_img_toolbox.set_size(128,128)
+        self.MainMenu2_img_toolbox.set_pos(56,50)
         self.MainMenu2_img_toolbox.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TOOLS.jpg")
         self.MainMenu2_img_toolbox.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_toolbox.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_toolbox)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("工具箱")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_toolbox)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("工具箱")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #设置
         self.MainMenu2_setting = self.MainMenu2.add_tile(6, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_setting = lv.img(self.MainMenu2_setting)
-        self.MainMenu2_img_setting.set_size(160,160)
-        self.MainMenu2_img_setting.center()
+        self.MainMenu2_img_setting.set_size(128,128)
+        self.MainMenu2_img_setting.set_pos(56,50)
         self.MainMenu2_img_setting.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_SETTINGS.jpg")
         self.MainMenu2_img_setting.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_setting.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_setting)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("设置")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_setting)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("设置")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #体温测量
         self.MainMenu2_temperature = self.MainMenu2.add_tile(7, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_temperature = lv.img(self.MainMenu2_temperature)
-        self.MainMenu2_img_temperature.set_size(160,160)
-        self.MainMenu2_img_temperature.center()
+        self.MainMenu2_img_temperature.set_size(128,128)
+        self.MainMenu2_img_temperature.set_pos(56,50)
         self.MainMenu2_img_temperature.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_TEMPERATURE.jpg")
         self.MainMenu2_img_temperature.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_temperature.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_temperature)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("体温")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_temperature)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("体温")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 
         #微聊
         self.MainMenu2_wechat = self.MainMenu2.add_tile(8, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
         self.MainMenu2_img_wechat = lv.img(self.MainMenu2_wechat)
-        self.MainMenu2_img_wechat.set_size(160,160)
-        self.MainMenu2_img_wechat.center()
+        self.MainMenu2_img_wechat.set_size(128,128)
+        self.MainMenu2_img_wechat.set_pos(56,50)
         self.MainMenu2_img_wechat.set_src("E:/static/main_menu/main_menu2/IMAGE_ONE_PAGE_WECHAT.jpg")
         self.MainMenu2_img_wechat.add_flag(lv.obj.FLAG.CLICKABLE)
         self.MainMenu2_img_wechat.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-        # self.label = lv.label(self.MainMenu2_wechat)
-        # self.label.set_pos(0, 280)
-        # self.label.set_size(240, 40)
-        # self.label.set_text("微聊")
-        # self.label.set_long_mode(lv.label.LONG.WRAP)
-        # self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        # self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.label = lv.label(self.MainMenu2_wechat)
+        self.label.set_pos(0, 240)
+        self.label.set_size(240, 80)
+        self.label.set_text("微聊")
+        self.label.set_long_mode(lv.label.LONG.WRAP)
+        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.label.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)