K01:
authordxy15521469561 <1731678236@qq.com>
Fri, 10 Nov 2023 06:32:18 +0000 (14:32 +0800)
committerdxy15521469561 <1731678236@qq.com>
Fri, 10 Nov 2023 06:32:18 +0000 (14:32 +0800)
ui界面优化
C06S:
ui界面优化

60 files changed:
2.sdk/project/C06S/ext/static/health/health_hr.png
2.sdk/project/C06S/ext/static/health/health_spo2.png
2.sdk/project/C06S/ext/static/health/health_temp.png
2.sdk/project/C06S/ext/static/setting/menu_app_qrcode.png
2.sdk/project/C06S/ext/static/setting/menu_bright.png
2.sdk/project/C06S/ext/static/setting/menu_imei_qrcode.png
2.sdk/project/C06S/ext/static/setting/menu_language.png
2.sdk/project/C06S/ext/static/setting/menu_poweroff.png
2.sdk/project/C06S/ext/static/setting/menu_restore.png
2.sdk/project/C06S/ext/static/setting/menu_theme_switch.png
2.sdk/project/C06S/ext/static/setting/menu_upgrade.png
2.sdk/project/C06S/ext/static/setting/menu_version.png
2.sdk/project/C06S/ext/static/setting/menu_volume.png
2.sdk/project/C06S/ext/static/setting/menu_watch_switch.png
2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_ALARM.png
2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_COUNTDOWN.png
2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STEP.png
2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STOPWATCH.png
2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_WEATHER.png
2.sdk/project/C06S/ext/static/tool/sms_setting.png
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_main_menu.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_setting.py
2.sdk/project/C06S/usr/static/theme1/THEME1_ALARM.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_CALLLOG.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_CONTACTS.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_COUNTDOWN.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_HEART.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_PHONE.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_SETTING.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_SMS.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_SPO2.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_STOPWATCH.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_TEMP.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_TOOLBOX.png [new file with mode: 0644]
2.sdk/project/C06S/usr/static/theme1/THEME1_WECHAT.png [new file with mode: 0644]
2.sdk/project/D10/D10按键定义.doc [new file with mode: 0644]
2.sdk/project/D10/audio.bin [new file with mode: 0644]
2.sdk/project/D10/audio/audio_audio_haixiu.mp3 [deleted file]
2.sdk/project/D10/audio/audio_find_haixiu.mp3 [new file with mode: 0644]
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/D10/usr/static/audio.bin
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py
2.sdk/project/K01/usr/static/R_VOLUME_SET_1.mp3
2.sdk/project/K01/usr/static/up_show_step.png

index 2991b9e..0e6d29b 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/health/health_hr.png and b/2.sdk/project/C06S/ext/static/health/health_hr.png differ
index 6ed64bd..e7b2e9a 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/health/health_spo2.png and b/2.sdk/project/C06S/ext/static/health/health_spo2.png differ
index c1753f4..c4cf633 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/health/health_temp.png and b/2.sdk/project/C06S/ext/static/health/health_temp.png differ
index 481a73c..6c5055d 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_app_qrcode.png and b/2.sdk/project/C06S/ext/static/setting/menu_app_qrcode.png differ
index 38139bd..6ece459 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_bright.png and b/2.sdk/project/C06S/ext/static/setting/menu_bright.png differ
index 58ac59b..90029c5 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_imei_qrcode.png and b/2.sdk/project/C06S/ext/static/setting/menu_imei_qrcode.png differ
index fe4a914..4648adf 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_language.png and b/2.sdk/project/C06S/ext/static/setting/menu_language.png differ
index c29543f..d9c389f 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_poweroff.png and b/2.sdk/project/C06S/ext/static/setting/menu_poweroff.png differ
index 8e022fd..04bc1fb 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_restore.png and b/2.sdk/project/C06S/ext/static/setting/menu_restore.png differ
index 7118463..ebbb3c2 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_theme_switch.png and b/2.sdk/project/C06S/ext/static/setting/menu_theme_switch.png differ
index 6265c24..4b5812f 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_upgrade.png and b/2.sdk/project/C06S/ext/static/setting/menu_upgrade.png differ
index 06275de..8ece3f5 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_version.png and b/2.sdk/project/C06S/ext/static/setting/menu_version.png differ
index 5cd1b70..79f7788 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_volume.png and b/2.sdk/project/C06S/ext/static/setting/menu_volume.png differ
index 4ffd0d1..b6a01fc 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/setting/menu_watch_switch.png and b/2.sdk/project/C06S/ext/static/setting/menu_watch_switch.png differ
index 99906c4..dc0a8c5 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_ALARM.png and b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_ALARM.png differ
index a1118ab..817e227 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_COUNTDOWN.png and b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_COUNTDOWN.png differ
index 42ddf28..9f3a4bf 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STEP.png and b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STEP.png differ
index 2f78419..a1a0492 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STOPWATCH.png and b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STOPWATCH.png differ
index 900b5ac..0d9b244 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_WEATHER.png and b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_WEATHER.png differ
index a8d042c..7ff5771 100644 (file)
Binary files a/2.sdk/project/C06S/ext/static/tool/sms_setting.png and b/2.sdk/project/C06S/ext/static/tool/sms_setting.png differ
index 90f7a3c..4b45208 100644 (file)
@@ -96,6 +96,7 @@ def main_init():
     try:
         import ui_setting as _ui_setting
         ui.add_screen(_ui_setting.SettingScreen()) 
+        ui.add_screen(_ui_setting.ThemeswitchScreen())
         ui.add_screen(_ui.ToolboxScreen()) 
         ui.add_screen(_ui.StepScreen()) 
         ui.add_screen(_ui.CountdownScreen()) 
index 7c9271d..84059e2 100644 (file)
@@ -5898,8 +5898,6 @@ class CountdownScreen(Screen):
             EventMesh.publish("load_screen", {"screen": "toolbox"})
 
     def done_left_to_right(self):
-        if self.g_state == 0:
-            self.timer.stop()
         EventMesh.publish("load_screen", {"screen": "toolbox"})
 
     def btn1_release(self):
index d570acc..d641f71 100644 (file)
@@ -9,7 +9,7 @@ import osTimer
 import constants
 from misc import Power
 import pm
-from ui import Screen,style_screen
+from ui import Screen,style_screen,style_font_youyuan_20
 from ui_WatchFaceScreen import WatchFace
 from lcd import LCD_SIZE_W,LCD_SIZE_H
 MAIN_ICON_SZIE = 120 #菜单界面图片的大小
@@ -293,6 +293,11 @@ MainMenu2x+=1
 
 
 ################################################################################################################
+THEME1_ICON_X = 80
+THEME1_ICON_Y = 80
+
+MAIN1_ICON_X = 26
+MAIN1_ICON_Y = 12
 MainMenu1x = 0
 MainMenu1_num = 0
 MainMenu1 = lv.obj(MainMenu)
@@ -316,79 +321,242 @@ label_text.set_size(0, 0)
 label_text.set_text("0")
 
 
-
 MainMenu1_num+=1
 
 #拨号盘
-MainMenu1_phone = MainMenu1_til.add_tile(MainMenu1x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
-label_text = lv.label(MainMenu1_phone)
+MainMenu1_one = MainMenu1_til.add_tile(MainMenu1x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+label_text = lv.label(MainMenu1_one)
 label_text.set_pos(0, LCD_SIZE_H)
 label_text.set_size(0, 0)
 label_text.set_text("{}".format(MainMenu1_num))
-MainMenu1_img_phone = lv.img(MainMenu1_phone)
-MainMenu1_img_phone.set_size(MAIN_ICON_SZIE,MAIN_ICON_SZIE)
-MainMenu1_img_phone.set_pos(MAIN_ICON_X,MAIN_ICON_Y)
-MainMenu1_img_phone.set_src("U:/static/IMAGE_ONE_PAGE_CALL.png")
+MainMenu1_img_contacts = lv.img(MainMenu1_one)
+MainMenu1_img_contacts.set_size(THEME1_ICON_X,THEME1_ICON_X)
+MainMenu1_img_contacts.set_pos(MAIN1_ICON_X,MAIN1_ICON_Y+5)
+MainMenu1_img_contacts.set_src("U:/static/theme1/THEME1_CONTACTS.png")
+MainMenu1_img_contacts.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_contacts.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_contacts_text = lv.label(MainMenu1_one)
+MainMenu1_img_contacts_text.set_pos(int(8),int(104+5))
+MainMenu1_img_contacts_text.set_size(LCD_SIZE_W//2-8,30)
+# MainMenu1_img_contacts_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_contacts_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_contacts_text.set_text("联系人")
+MainMenu1_img_contacts_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_sms= lv.img(MainMenu1_one)
+MainMenu1_img_sms.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_sms.set_pos(MAIN1_ICON_X*2+85,MAIN1_ICON_Y+5)
+MainMenu1_img_sms.set_src("U:/static/theme1/THEME1_SMS.png")
+MainMenu1_img_sms.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_sms.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_sms_text = lv.label(MainMenu1_one)
+MainMenu1_img_sms_text.set_pos(int(120),int(104+5))
+MainMenu1_img_sms_text.set_size(LCD_SIZE_W//2,30)
+# MainMenu1_img_sms_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_sms_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_sms_text.set_text("短信")
+MainMenu1_img_sms_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_phone = lv.img(MainMenu1_one)
+MainMenu1_img_phone.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_phone.set_pos(MAIN1_ICON_X,140+5)
+MainMenu1_img_phone.set_src("U:/static/theme1/THEME1_PHONE.png")
 MainMenu1_img_phone.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu1_img_phone.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-MainMenu1_img_phone_text = lv.label(MainMenu1_phone)
-MainMenu1_img_phone_text.set_pos(int(0),int(MAIN_LABEL_Y))
-MainMenu1_img_phone_text.set_size(LCD_SIZE_W,LCD_SIZE_H-MAIN_LABEL_Y)
-MainMenu1_img_phone_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_phone_text = lv.label(MainMenu1_one)
+MainMenu1_img_phone_text.set_pos(int(5),int(232+5))
+MainMenu1_img_phone_text.set_size(LCD_SIZE_W//2-5,30)
+# MainMenu1_img_sms_text.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu1_img_phone_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-MainMenu1_img_phone_text.set_text("拨号盘人")
-MainMenu1_img_phone_text.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
+MainMenu1_img_phone_text.set_text("拨号盘")
+MainMenu1_img_phone_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_calllog = lv.img(MainMenu1_one)
+MainMenu1_img_calllog.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_calllog.set_pos(MAIN1_ICON_X*2+85,140+5)
+MainMenu1_img_calllog.set_src("U:/static/theme1/THEME1_CALLLOG.png")
+MainMenu1_img_calllog.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_calllog.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_calllog_text = lv.label(MainMenu1_one)
+MainMenu1_img_calllog_text.set_pos(int(120),int(232+5))
+MainMenu1_img_calllog_text.set_size(LCD_SIZE_W//2,30)
+# MainMenu1_img_calllog_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_calllog_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_calllog_text.set_text("通话记录")
+MainMenu1_img_calllog_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
 MainMenu1_num+=1
 MainMenu1x+=1
 
 #通讯录
-MainMenu1_contacts = MainMenu1_til.add_tile(MainMenu1x, 0, lv.DIR.LEFT | lv.DIR.RIGHT)
-label_text = lv.label(MainMenu1_contacts)
+MainMenu1_two = MainMenu1_til.add_tile(MainMenu1x, 0, lv.DIR.LEFT | lv.DIR.RIGHT)
+label_text = lv.label(MainMenu1_two)
 label_text.set_pos(0, LCD_SIZE_H)
 label_text.set_size(0, 0)
 label_text.set_text("{}".format(MainMenu1_num))
-MainMenu1_img_contacts = lv.img(MainMenu1_contacts)
-MainMenu1_img_contacts.set_size(MAIN_ICON_SZIE,MAIN_ICON_SZIE)
-MainMenu1_img_contacts.set_pos(MAIN_ICON_X,MAIN_ICON_Y)
-MainMenu1_img_contacts.set_src("U:/static/IMAGE_ONE_PAGE_CONTACTS.png")
-MainMenu1_img_contacts.add_flag(lv.obj.FLAG.CLICKABLE)
-MainMenu1_img_contacts.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-MainMenu1_img_contacts_txt = lv.label(MainMenu1_contacts)
-MainMenu1_img_contacts_txt.set_pos(int(0),int(MAIN_LABEL_Y))
-MainMenu1_img_contacts_txt.set_size(LCD_SIZE_W,LCD_SIZE_H-MAIN_LABEL_Y)
-MainMenu1_img_contacts_txt.add_flag(lv.obj.FLAG.CLICKABLE)
-MainMenu1_img_contacts_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-MainMenu1_img_contacts_txt.set_text("联系人拨")
-MainMenu1_img_contacts_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_hr = lv.img(MainMenu1_two)
+MainMenu1_img_hr.set_size(THEME1_ICON_X,THEME1_ICON_X)
+MainMenu1_img_hr.set_pos(MAIN1_ICON_X,MAIN1_ICON_Y+5)
+MainMenu1_img_hr.set_src("U:/static/theme1/THEME1_HEART.png")
+MainMenu1_img_hr.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_hr.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_hr_text = lv.label(MainMenu1_two)
+MainMenu1_img_hr_text.set_pos(int(5),int(104+5))
+MainMenu1_img_hr_text.set_size(LCD_SIZE_W//2-5,30)
+# MainMenu1_img_contacts_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_hr_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_hr_text.set_text("心率")
+MainMenu1_img_hr_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_spo2 = lv.img(MainMenu1_two)
+MainMenu1_img_spo2.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_spo2.set_pos(MAIN1_ICON_X*2+85,MAIN1_ICON_Y+5)
+MainMenu1_img_spo2.set_src("U:/static/theme1/THEME1_SPO2.png")
+MainMenu1_img_spo2.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_spo2.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_spo2_text = lv.label(MainMenu1_two)
+MainMenu1_img_spo2_text.set_pos(int(120),int(104+5))
+MainMenu1_img_spo2_text.set_size(LCD_SIZE_W//2,30)
+# MainMenu1_img_spo2_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_spo2_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_spo2_text.set_text("血氧")
+MainMenu1_img_spo2_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_temp = lv.img(MainMenu1_two)
+MainMenu1_img_temp.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_temp.set_pos(MAIN1_ICON_X,140+5)
+MainMenu1_img_temp.set_src("U:/static/theme1/THEME1_TEMP.png")
+MainMenu1_img_temp.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_temp.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_temp_text = lv.label(MainMenu1_two)
+MainMenu1_img_temp_text.set_pos(int(5),int(232+5))
+MainMenu1_img_temp_text.set_size(LCD_SIZE_W//2-5,30)
+# MainMenu1_img_temp_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_temp_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_temp_text.set_text("体温")
+MainMenu1_img_temp_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_wechat = lv.img(MainMenu1_two)
+MainMenu1_img_wechat.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_wechat.set_pos(MAIN1_ICON_X*2+85,140+5)
+MainMenu1_img_wechat.set_src("U:/static/theme1/THEME1_WECHAT.png")
+MainMenu1_img_wechat.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_wechat.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_wechat_text = lv.label(MainMenu1_two)
+MainMenu1_img_wechat_text.set_pos(int(115),int(232+5))
+MainMenu1_img_wechat_text.set_size(LCD_SIZE_W//2,30)
+# MainMenu1_img_wechat_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_wechat_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_wechat_text.set_text("微聊")
+MainMenu1_img_wechat_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+
 MainMenu1_num+=1
 MainMenu1x+=1
 
 #短信
-MainMenu1_SMS = MainMenu1_til.add_tile(MainMenu1x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
-label_text = lv.label(MainMenu1_SMS)
+MainMenu1_three = MainMenu1_til.add_tile(MainMenu1x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+label_text = lv.label(MainMenu1_three)
 label_text.set_pos(0, LCD_SIZE_H)
 label_text.set_size(0, 0)
 label_text.set_text("{}".format(MainMenu1_num))
-MainMenu1_img_sms = lv.img(MainMenu1_SMS)
-MainMenu1_img_sms.set_size(MAIN_ICON_SZIE,MAIN_ICON_SZIE)
-MainMenu1_img_sms.set_pos(MAIN_ICON_X,MAIN_ICON_Y)
-MainMenu1_img_sms.set_src("U:/static/IMAGE_ONE_PAGE_SMS.png")
-MainMenu1_img_sms.add_flag(lv.obj.FLAG.CLICKABLE)
-MainMenu1_img_sms.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-MainMenu1_img_sms_txt = lv.label(MainMenu1_SMS)
-MainMenu1_img_sms_txt.set_pos(int(0),int(MAIN_LABEL_Y))
-MainMenu1_img_sms_txt.set_size(LCD_SIZE_W,LCD_SIZE_H-MAIN_LABEL_Y)
-MainMenu1_img_sms_txt.add_flag(lv.obj.FLAG.CLICKABLE)
-MainMenu1_img_sms_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-MainMenu1_img_sms_txt.set_text("短信")
-MainMenu1_img_sms_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
+MainMenu1_img_alarm = lv.img(MainMenu1_three)
+MainMenu1_img_alarm.set_size(THEME1_ICON_X,THEME1_ICON_X)
+MainMenu1_img_alarm.set_pos(MAIN1_ICON_X,MAIN1_ICON_Y+5)
+MainMenu1_img_alarm.set_src("U:/static/theme1/THEME1_ALARM.png")
+MainMenu1_img_alarm.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_alarm.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_alarm_text = lv.label(MainMenu1_three)
+MainMenu1_img_alarm_text.set_pos(int(5),int(104+5))
+MainMenu1_img_alarm_text.set_size(LCD_SIZE_W//2-5,30)
+# MainMenu1_img_alarm_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_alarm_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_alarm_text.set_text("闹钟")
+MainMenu1_img_alarm_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_stopwatch= lv.img(MainMenu1_three)
+MainMenu1_img_stopwatch.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_stopwatch.set_pos(MAIN1_ICON_X*2+85,MAIN1_ICON_Y+5)
+MainMenu1_img_stopwatch.set_src("U:/static/theme1/THEME1_STOPWATCH.png")
+MainMenu1_img_stopwatch.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_stopwatch.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_stopwatch_text = lv.label(MainMenu1_three)
+MainMenu1_img_stopwatch_text.set_pos(int(120),int(104+5))
+MainMenu1_img_stopwatch_text.set_size(LCD_SIZE_W//2,30)
+# MainMenu1_img_sms_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_stopwatch_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_stopwatch_text.set_text("秒表")
+MainMenu1_img_stopwatch_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_countdown = lv.img(MainMenu1_three)
+MainMenu1_img_countdown.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_countdown.set_pos(MAIN1_ICON_X,140+5)
+MainMenu1_img_countdown.set_src("U:/static/theme1/THEME1_COUNTDOWN.png")
+MainMenu1_img_countdown.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_countdown.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_countdown_text = lv.label(MainMenu1_three)
+MainMenu1_img_countdown_text.set_pos(int(5),int(232+5))
+MainMenu1_img_countdown_text.set_size(LCD_SIZE_W//2-5,30)
+# MainMenu1_img_countdown_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_countdown_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_countdown_text.set_text("倒计时")
+MainMenu1_img_countdown_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+MainMenu1_img_toolbox = lv.img(MainMenu1_three)
+MainMenu1_img_toolbox.set_size(THEME1_ICON_X,THEME1_ICON_Y)
+MainMenu1_img_toolbox.set_pos(MAIN1_ICON_X*2+85,140+5)
+MainMenu1_img_toolbox.set_src("U:/static/theme1/THEME1_TOOLBOX.png")
+MainMenu1_img_toolbox.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_toolbox.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_toolbox_text = lv.label(MainMenu1_three)
+MainMenu1_img_toolbox_text.set_pos(int(120),int(232+5))
+MainMenu1_img_toolbox_text.set_size(LCD_SIZE_W//2,30)
+# MainMenu1_img_calllog_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_toolbox_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_toolbox_text.set_text("工具箱")
+MainMenu1_img_toolbox_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
+
 MainMenu1_num+=1
 MainMenu1x+=1
 
+MainMenu1_four = MainMenu1_til.add_tile(MainMenu1x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+label_text = lv.label(MainMenu1_four)
+label_text.set_pos(0, LCD_SIZE_H)
+label_text.set_size(0, 0)
+label_text.set_text("{}".format(MainMenu1_num))
+
+MainMenu1_img_setting = lv.img(MainMenu1_four)
+MainMenu1_img_setting.set_size(THEME1_ICON_X,THEME1_ICON_X)
+MainMenu1_img_setting.set_pos(MAIN1_ICON_X,MAIN1_ICON_Y+5)
+MainMenu1_img_setting.set_src("U:/static/theme1/THEME1_SETTING.png")
+MainMenu1_img_setting.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_setting.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+MainMenu1_img_setting_text = lv.label(MainMenu1_four)
+MainMenu1_img_setting_text.set_pos(int(5),int(109))
+MainMenu1_img_setting_text.set_size(LCD_SIZE_W//2-5,30)
+# MainMenu1_img_setting_text.add_flag(lv.obj.FLAG.CLICKABLE)
+MainMenu1_img_setting_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+MainMenu1_img_setting_text.set_text("设置")
+MainMenu1_img_setting_text.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT)
 
+MainMenu1_num+=1
+MainMenu1x+=1
 #主菜单风格2,单页
 class MainMenuScreen(Screen):
     NAME = "main_menu"
@@ -406,6 +574,7 @@ class MainMenuScreen(Screen):
         if read_data != None:
             self.set_mainmenu(msg = [read_data,0])
         EventMesh.subscribe("set_mainmenu", self.set_mainmenu)    
+            
         self.menu_id = "0"
         self.menu_new_id = "255"
         self.menu_old_id = "255"
@@ -415,8 +584,45 @@ class MainMenuScreen(Screen):
         ###1
         MainMenu1_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event_cb(e)),lv.EVENT.SCROLL_END,None)
         #lv_obj_add_event_cb(lv_tabview_get_content(tabview), scroll_begin_event, LV_EVENT_SCROLL_END, NULL);
-        MainMenu1_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "Phone")), lv.EVENT.CLICKED, None)
-        MainMenu1_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "Phone")), lv.EVENT.PRESSING, None)
+        MainMenu1_img_contacts.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "contacts")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_contacts.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "contacts")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "popup")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "popup")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "Phone")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "Phone")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_calllog.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "call_log")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_calllog.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "call_log")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_hr.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "heartrate")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_hr.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "heartrate")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "spo2")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_temp.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "temperature")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_temp.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "temperature")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "wechat")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "wechat")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_alarm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "clk_list")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_alarm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "clk_list")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_stopwatch.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "stopwatch")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_stopwatch.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "stopwatch")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_countdown.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "countdown")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_countdown.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "countdown")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.PRESSING, None)
+
+        MainMenu1_img_setting.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "setting")), lv.EVENT.CLICKED, None)
+        MainMenu1_img_setting.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "setting")), lv.EVENT.PRESSING, None)
+
         ##2
         print("MainMenu1:__init__")    
         MainMenu2_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event_cb(e)),lv.EVENT.SCROLL_END,None)
index fd72981..0aae0b5 100644 (file)
@@ -97,6 +97,21 @@ setting_dialswitch_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 setting_cont_y+=SETTING_ICON_OFFSET_SIZE
 
 
+setting_themeswitch_bg_img = lv.img(setting_cont)
+setting_themeswitch_bg_img.set_pos(0, setting_cont_y)
+setting_themeswitch_bg_img.set_size(TOOL_BG_ICON_W_SIZE, TOOL_BG_ICON_H_SIZE)
+setting_themeswitch_bg_img.add_flag(lv.obj.FLAG.CLICKABLE)
+setting_themeswitch_bg_img.set_src("E:/static/list_bg.png")
+setting_themeswitch_bg_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+setting_themeswitch_img = lv.img(setting_cont)
+setting_themeswitch_img.set_pos(8, setting_cont_y+6)
+setting_themeswitch_img.set_size(SETTING_ICON_W_SIZE, SETTING_ICON_H_SIZE)
+# setting_themeswitch_img.add_flag(lv.obj.FLAG.CLICKABLE)
+setting_themeswitch_img.set_src("E:/static/setting/menu_theme_menustyle.png")
+setting_themeswitch_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+setting_cont_y+=SETTING_ICON_OFFSET_SIZE
+
 # setting_themeswitch = lv.btn(setting_cont)
 # setting_themeswitch.set_pos(0, 120)
 # setting_themeswitch.set_size(240, 54)
@@ -245,7 +260,7 @@ class SettingScreen(Screen):
         # img regist btton
         # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
         setting_dialswitch_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "dialswitch")), lv.EVENT.CLICKED, None)
-        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
+        setting_themeswitch_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "themeswitch")), lv.EVENT.CLICKED, None)
         setting_imei_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "imei")), lv.EVENT.CLICKED, None)
         setting_app_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "app")), lv.EVENT.CLICKED, None)
         setting_bright_bg_img.add_event_cb(lambda e:EventMesh.callback_wrapper( self.setting_cb(e, "brightness")), lv.EVENT.CLICKED, None)
@@ -256,7 +271,7 @@ class SettingScreen(Screen):
         setting_version_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "version")), lv.EVENT.CLICKED, None)
 
         setting_dialswitch_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "dialswitch")), lv.EVENT.PRESSING, None)
-        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
+        setting_themeswitch_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "themeswitch")), lv.EVENT.PRESSING, None)
         setting_imei_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "imei")), lv.EVENT.PRESSING, None)
         setting_app_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.setting_cb(e, "app")), lv.EVENT.PRESSING, None)
         setting_bright_bg_img.add_event_cb(lambda e:EventMesh.callback_wrapper( self.setting_cb(e, "brightness")), lv.EVENT.PRESSING, None)
@@ -345,7 +360,7 @@ language_chinese_btn_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.ST
 # -------------------------------------------dialswitch screen----------------------------------------------------------
 dialswitch_screen = lv.obj()
 dialswitch_screen.set_pos(0,0)
-dialswitch_screen.set_size(240,320)
+dialswitch_screen.set_size(240,284)
 print("dialswitch_screen")
 dialswitch_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
@@ -414,7 +429,7 @@ dialswitch_butoom_crcile2.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 menustyle_screen = lv.obj()
 print("menustyle_screen")
 menustyle_screen.center()
-menustyle_screen.set_size(240, 320)
+menustyle_screen.set_size(240, 284)
 menustyle_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 menustyle_title = lv.label(menustyle_screen)
@@ -425,40 +440,114 @@ menustyle_title.set_long_mode(lv.label.LONG.WRAP)
 menustyle_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 menustyle_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-menustyle_btn1 = lv.btn(menustyle_screen)
-menustyle_btn1.set_size(240,54)
-menustyle_btn1.set_pos(0, 50)
-menustyle_btn1.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-menustyle_btn1.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-menustyle_btn1_label = lv.label(menustyle_btn1)
+
+
+menustyle_img1_bg_img = lv.img(menustyle_screen)
+menustyle_img1_bg_img.set_pos(5, 54)
+menustyle_img1_bg_img.set_size(230, 78)
+menustyle_img1_bg_img.add_flag(lv.obj.FLAG.CLICKABLE)
+menustyle_img1_bg_img.set_src("E:/static/list_bg.png")
+menustyle_img1_bg_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+menustyle_btn1_label = lv.label(menustyle_img1_bg_img)
 menustyle_btn1_label.set_text("四宫格")
-menustyle_btn1_label.align(lv.ALIGN.LEFT_MID, 10, 0)
+menustyle_btn1_label.align(lv.ALIGN.LEFT_MID, 20, 5)
+menustyle_btn1_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# menustyle_img1 = lv.img(menustyle_screen)
+# menustyle_img1.set_pos(int(8),int(60))
+# menustyle_img1.set_size(220,65)
+# menustyle_img1.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+# menustyle_img1.add_flag(lv.obj.FLAG.CLICKABLE)
+# menustyle_img1.set_src("E:/static/theme_four1.png")
+# menustyle_img1.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+# brightness_flip_sw1 = lv.switch(menustyle_screen)
+# brightness_flip_sw1.set_pos(140, 54)
+# brightness_flip_sw1.set_size(80, 39)
+
+
+menustyle_img2_bg_img = lv.img(menustyle_screen)
+menustyle_img2_bg_img.set_pos(5, 139)
+menustyle_img2_bg_img.set_size(230, 78)
+menustyle_img2_bg_img.add_flag(lv.obj.FLAG.CLICKABLE)
+menustyle_img2_bg_img.set_src("E:/static/list_bg.png")
+menustyle_img2_bg_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+menustyle_btn1_label = lv.label(menustyle_img2_bg_img)
+menustyle_btn1_label.set_text("单页")
+menustyle_btn1_label.align(lv.ALIGN.LEFT_MID, 20, 5)
 menustyle_btn1_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-menu_btn1_switch = lv.switch(menustyle_btn1)
-menu_btn1_switch.set_pos(185, 3)
-menu_btn1_switch.set_size(10, 10)
-menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
-menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
-menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
+menustyle_select = lv.img(menustyle_screen)
+menustyle_select.set_pos(int(190),int(165))
+menustyle_select.set_size(32,25)
+menustyle_select.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+# menustyle_select.add_flag(lv.obj.FLAG.CLICKABLE)
+menustyle_select.set_src("E:/static/menustyle_select.png")
+menustyle_select.add_style(style_img, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+# menustyle_img2 = lv.img(menustyle_screen)
+# menustyle_img2.set_pos(int(8),int(145))
+# menustyle_img2.set_size(220,65)
+# menustyle_img2.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+# menustyle_img2.add_flag(lv.obj.FLAG.CLICKABLE)
+# menustyle_img2.set_src("E:/static/theme_single1.png")
+# menustyle_img2.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+
+
+
+
+# brightness_flip_sw2 = lv.switch(menustyle_screen)
+# brightness_flip_sw2.set_pos(140, 139)
+# brightness_flip_sw2.set_size(80, 39)
+
 
-menustyle_btn2 = lv.btn(menustyle_screen)
-menustyle_btn2.set_size(240,54)
-menustyle_btn2.set_pos(0, 104)
-menustyle_btn2.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-menustyle_btn2.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-menustyle_btn2_label = lv.label(menustyle_btn2)
-menustyle_btn2_label.set_text("单页")
-menustyle_btn2_label.align(lv.ALIGN.LEFT_MID, 10, 0)
-menustyle_btn2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
+# menustyle_title = lv.label(menustyle_screen)
+# menustyle_title.set_pos(0, 10)
+# menustyle_title.set_size(240, 40)
+# menustyle_title.set_text("主菜单风格")
+# menustyle_title.set_long_mode(lv.label.LONG.WRAP)
+# menustyle_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+# menustyle_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-menu_btn2_switch = lv.switch(menustyle_btn2)
-menu_btn2_switch.set_pos(185, 3)
-menu_btn2_switch.set_size(10, 10)
-menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
-menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
-menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
+# menustyle_btn1 = lv.btn(menustyle_screen)
+# menustyle_btn1.set_size(240,54)
+# menustyle_btn1.set_pos(0, 50)
+# menustyle_btn1.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
+# menustyle_btn1.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+# menustyle_btn1_label = lv.label(menustyle_btn1)
+# menustyle_btn1_label.set_text("四宫格")
+# menustyle_btn1_label.align(lv.ALIGN.LEFT_MID, 10, 0)
+# menustyle_btn1_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+# menu_btn1_switch = lv.switch(menustyle_btn1)
+# menu_btn1_switch.set_pos(185, 3)
+# menu_btn1_switch.set_size(30, 30)
+# menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
+# menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
+# menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
+
+# menustyle_btn2 = lv.btn(menustyle_screen)
+# menustyle_btn2.set_size(240,54)
+# menustyle_btn2.set_pos(0, 104)
+# menustyle_btn2.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
+# menustyle_btn2.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+# menustyle_btn2_label = lv.label(menustyle_btn2)
+# menustyle_btn2_label.set_text("单页")
+# menustyle_btn2_label.align(lv.ALIGN.LEFT_MID, 10, 0)
+# menustyle_btn2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+# menu_btn2_switch = lv.switch(menustyle_btn2)
+# menu_btn2_switch.set_pos(185, 3)
+# menu_btn2_switch.set_size(30, 30)
+# menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
+# menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
+# menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
 
 
 
@@ -1337,24 +1426,77 @@ class ThemeswitchScreen(Screen):
 
     def __init__(self):
         super().__init__()
+        self.is_sliding = 0
         self.meta = menustyle_screen
-        menustyle_btn1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun1(e)),
-                                     lv.EVENT.PRESSED, None)
+        menustyle_img1_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun1(e)),
+                                     lv.EVENT.CLICKED, None)
+
+        menustyle_img1_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun1(e)),
+                                     lv.EVENT.PRESSING, None)
+        
+        menustyle_img2_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun2(e)),
+                                     lv.EVENT.CLICKED, None)
 
-        menustyle_btn2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun2(e)),
-                                     lv.EVENT.PRESSED, None)
+        menustyle_img2_bg_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.fun2(e)),
+                                     lv.EVENT.PRESSING, None)
+    def initialization(self):
+        self.is_sliding = 0
+        read_data = EventMesh.publish("get_storage_config","MainMenu") 
+        if read_data != None:
+            if read_data == "1":
+                menustyle_select.set_pos(int(190),int(80))
+                # menustyle_img1.set_src("E:/static/theme_four2.png")
+                # menustyle_img2.set_src("E:/static/theme_single1.png")
+            else:
+                menustyle_select.set_pos(int(190),int(165))
+                # menustyle_img1.set_src("E:/static/theme_four1.png")
+                # menustyle_img2.set_src("E:/static/theme_single2.png")
+        else:
+            menustyle_select.set_pos(int(190),int(165))
+            # menustyle_img1.set_src("E:/static/theme_four1.png")
+            # menustyle_img2.set_src("E:/static/theme_single2.png")
 
     def fun1(self,e):
-        menu_btn1_switch.add_state(lv.STATE.CHECKED)
-        menu_btn2_switch.clear_state(lv.STATE.CHECKED)
-        EventMesh.publish("change_style", "MainMenu1")
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
+        code = e.get_code()
+        if code == lv.EVENT.PRESSING:
+            #print("PRESSING")
+            self.is_sliding += 1
+
+        elif  code == lv.EVENT.CLICKED:
+            #utime.sleep_ms(10)
+            print("1self.is_sliding",self.is_sliding)
+            if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件
+                self.is_sliding = 0
+                menustyle_select.set_pos(int(190),int(80))
+                # menustyle_img1.set_src("E:/static/theme_four2.png")
+                # menustyle_img2.set_src("E:/static/theme_single1.png")
+                EventMesh.publish("set_mainmenu",[1])    
+                EventMesh.publish("load_screen", {"screen": "main_menu"})
+                
+            self.is_sliding =0
+       
 
     def fun2(self,e):
-        menu_btn1_switch.clear_state(lv.STATE.CHECKED)
-        menu_btn2_switch.add_state(lv.STATE.CHECKED)
-        EventMesh.publish("change_style", "MainMenu2")
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
+        code = e.get_code()
+        if code == lv.EVENT.PRESSING:
+            #print("PRESSING")
+            self.is_sliding += 1
+
+        elif  code == lv.EVENT.CLICKED:
+            #utime.sleep_ms(10)
+            print("1self.is_sliding",self.is_sliding)
+            if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件
+                self.is_sliding = 0
+                menustyle_select.set_pos(int(190),int(165))
+                # menustyle_img1.set_src("E:/static/theme_four1.png")
+                # menustyle_img2.set_src("E:/static/theme_single2.png")
+                EventMesh.publish("set_mainmenu",[2])   
+                EventMesh.publish("load_screen", {"screen": "main_menu"})
+                
+            self.is_sliding = 0
+       
+    def done_left_to_right(self):
+        EventMesh.publish("load_screen", {"screen": "setting"})
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
@@ -1363,7 +1505,8 @@ class ThemeswitchScreen(Screen):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
         
     def btn8_press(self):
-        EventMesh.publish("load_screen", {"screen": "setting"})
+        EventMesh.publish("watch_top_show")
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
 
 # -------------------------------------------imei screen----------------------------------------------------------
 imei_screen = lv.obj()
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_ALARM.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_ALARM.png
new file mode 100644 (file)
index 0000000..ad9e633
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_ALARM.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_CALLLOG.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_CALLLOG.png
new file mode 100644 (file)
index 0000000..0443c24
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_CALLLOG.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_CONTACTS.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_CONTACTS.png
new file mode 100644 (file)
index 0000000..36aa56d
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_CONTACTS.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_COUNTDOWN.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_COUNTDOWN.png
new file mode 100644 (file)
index 0000000..6119867
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_COUNTDOWN.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_HEART.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_HEART.png
new file mode 100644 (file)
index 0000000..1943987
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_HEART.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_PHONE.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_PHONE.png
new file mode 100644 (file)
index 0000000..4a09abf
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_PHONE.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_SETTING.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_SETTING.png
new file mode 100644 (file)
index 0000000..dea8857
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_SETTING.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_SMS.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_SMS.png
new file mode 100644 (file)
index 0000000..97539b3
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_SMS.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_SPO2.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_SPO2.png
new file mode 100644 (file)
index 0000000..3a75c87
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_SPO2.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_STOPWATCH.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_STOPWATCH.png
new file mode 100644 (file)
index 0000000..ad17320
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_STOPWATCH.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_TEMP.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_TEMP.png
new file mode 100644 (file)
index 0000000..a420285
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_TEMP.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_TOOLBOX.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_TOOLBOX.png
new file mode 100644 (file)
index 0000000..dbc4f5e
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_TOOLBOX.png differ
diff --git a/2.sdk/project/C06S/usr/static/theme1/THEME1_WECHAT.png b/2.sdk/project/C06S/usr/static/theme1/THEME1_WECHAT.png
new file mode 100644 (file)
index 0000000..93947f8
Binary files /dev/null and b/2.sdk/project/C06S/usr/static/theme1/THEME1_WECHAT.png differ
diff --git a/2.sdk/project/D10/D10按键定义.doc b/2.sdk/project/D10/D10按键定义.doc
new file mode 100644 (file)
index 0000000..1ef1c0f
Binary files /dev/null and "b/2.sdk/project/D10/D10\346\214\211\351\224\256\345\256\232\344\271\211.doc" differ
diff --git a/2.sdk/project/D10/audio.bin b/2.sdk/project/D10/audio.bin
new file mode 100644 (file)
index 0000000..7159643
Binary files /dev/null and b/2.sdk/project/D10/audio.bin differ
diff --git a/2.sdk/project/D10/audio/audio_audio_haixiu.mp3 b/2.sdk/project/D10/audio/audio_audio_haixiu.mp3
deleted file mode 100644 (file)
index 5ef7a93..0000000
Binary files a/2.sdk/project/D10/audio/audio_audio_haixiu.mp3 and /dev/null differ
diff --git a/2.sdk/project/D10/audio/audio_find_haixiu.mp3 b/2.sdk/project/D10/audio/audio_find_haixiu.mp3
new file mode 100644 (file)
index 0000000..673a997
Binary files /dev/null and b/2.sdk/project/D10/audio/audio_find_haixiu.mp3 differ
index c3cd4fd..2e3a7b3 100644 (file)
@@ -26,8 +26,7 @@ def open_motor():
 def close_motor():
     motor_pin.write(0)
 
-audio_buf = ['audio_audio_haixiu', 'R_ALARM_NEW', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WECHAT_RECV']
-
+audio_buf = ['audio_find_haixiu', 'R_ALARM_NEW', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WECHAT_RECV']
 
 class call:
     CALL_OUT = 1
@@ -1159,7 +1158,7 @@ class intervManager(Abstract):
             self.timer.start(3000,1,self.publish_find_watch_event_cb)
             EventMesh.publish("set_led_time_arg",[1,1,330,led_mode.LONG_LIGHT_GREEN,2,1,led_mode.OTHER_MEASURE_MODE])#測量成功
             # EventMesh.publish("set_led_time_arg",[1000,33000,1,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数
-            str_data = 'mp3files={}.mp3'.format(audio_buf.index("audio_audio_haixiu"))
+            str_data = 'mp3files={}.mp3'.format(audio_buf.index("audio_find_haixiu"))
             EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
     
     def stop_find_watch(self, event, msg): 
@@ -1173,7 +1172,7 @@ class intervManager(Abstract):
     def FIND_timer_cb(self, data):
         if self.find_state == 1:
             print("self.FIND_timer_count:{}".format(self.FIND_timer_count))
-            str_data = 'mp3files={}.mp3'.format(audio_buf.index("audio_audio_haixiu"))
+            str_data = 'mp3files={}.mp3'.format(audio_buf.index("audio_find_haixiu"))
             EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
             self.FIND_timer_count += 1
             if self.FIND_timer_count > 10: #120秒30s
@@ -1229,7 +1228,7 @@ class intervManager(Abstract):
             data = RTC().datetime()
             hour = data[4]
             min = data[5]
-            print("hour",hour,min)
+            # print("hour",hour,min)
             self.old_hour = hour
             self.old_min = min
             if self.old_hour == 0:
@@ -1776,7 +1775,11 @@ class BtnDevice(Abstract):
         if self.pwkey_press == 1 :
             self.pwkey_count += 1
             if self.pwkey_count > 5:
+                if self.led_state == 0:
+                    self.led_state = 1
+                    EventMesh.publish("set_led_time_arg",[1,1,330,led_mode.LONG_LIGHT_GREEN,2,1,led_mode.OTHER_MEASURE_MODE])#測量成功
                 if self.pwkey_count >= 10*10:
+                    EventMesh.publish("stop_led_timer")#设置参数
                     self.pwkey_timer.stop()
                     self.pwkey_count = 0
                     self.pwkey_press = 0
@@ -1790,7 +1793,7 @@ class BtnDevice(Abstract):
             
             if self.GPIO26_status == 1:#松开
                 if self.pwkey_count >= 1: #防抖100ms
-                    print("self.GPIO26_status == 1")
+                    # print("self.GPIO26_status == 1")
                     self.pwkey_timer.stop()
                     self.pwkey_count = 0
                     self.pwkey_press = 0
@@ -1852,7 +1855,7 @@ class BtnDevice(Abstract):
         except Exception as e:
             usys.print_exception(e)
         if self.pwKey_press_count >= 1:
-            print("pwKey_timeout_cb:self.pwKey_press_count >= 1")
+            # print("pwKey_timeout_cb:self.pwKey_press_count >= 1")
             EventMesh.publish("stop_led_timer")#设置参数
             EventMesh.publish("dialing_out_event")#电话呼叫中voiceCall.callEnd()
             
@@ -1880,6 +1883,7 @@ class BtnDevice(Abstract):
         if self.WeChatKey_status != 0 and self.GPIO26_status != 0:
             if self.sosKey_status == 0:#按下
                 if self.sosKey_press == 0 :
+                    self.led_state = 0
                     # self.wechatKey_timeout_cb(0)
                     # self.pwKey_timeout_cb(0)
                     self.wechatKey_timer.stop()
@@ -1923,7 +1927,7 @@ class BtnDevice(Abstract):
     def publish_sosKey_timeout_cb_do(self, *args, **kwargs):
         EventMesh.publish("publish_message_event_btnInfo",{"func":self.sosKey_timeout_cb,"data":0})  
     def sosKey_timeout_cb(self, data):#
-        print("sosKey_press_count!!!!!!!!!!!!!! ",self.sosKey_press_count)
+        # print("sosKey_press_count!!!!!!!!!!!!!! ",self.sosKey_press_count)
         if self.sosKey_press_count == 10:#
             self.sosKey_press_count = 0
             # EventMesh.publish("reset_factor_setiing")#
@@ -1984,6 +1988,7 @@ class BtnDevice(Abstract):
                     self.sosKey_press = 0
                     self.pwkey_press = 0
                     self.wechatKey_press = 1
+                    self.led_state = 0
                     self.wechatKey_count = 0
                     self.wechat_state = 1
                     self.wechatKey_timer.start(100, 1, self.publish_wechat_btn_event_cb)
@@ -2004,7 +2009,7 @@ class BtnDevice(Abstract):
                 time_tmp = utime.mktime(date_tmp)
                 time_sec = tmp[1]
                 wechat_time = time_tmp - time_sec
-                print("close_btn_timer",time_tmp,time_sec,wechat_time)
+                # print("close_btn_timer",time_tmp,time_sec,wechat_time)
                 if wechat_time >= 15:
                     wechat_time = 15
                 if wechat_time <= 0:
@@ -2086,7 +2091,7 @@ class BtnDevice(Abstract):
         EventMesh.publish("publish_message_event_btnInfo",{"func":self.wechatKey_timeout_cb,"data":0})  
 
     def wechatKey_timeout_cb(self,data):#微聊键
-        print("wechatKey_timeout_cb!!!!!!!!!!!!!! ",self.wechatKey_press_count)
+        # print("wechatKey_timeout_cb!!!!!!!!!!!!!! ",self.wechatKey_press_count)
         if self.wechatKey_press_count == 10:#短按十次解绑app
             self.wechatKey_press_count = 0
             EventMesh.publish("stop_led_timer")#设置参数
index 1485da3..1c9f4b7 100644 (file)
@@ -530,7 +530,7 @@ class ledEventManager(Abstract):#灯事件
                         
                         wechat_state = EventMesh.publish("get_wechat_state")
                         temp_state = EventMesh.publish("get_temp_state")
-                        print("get_hr_state",get_hr_state,get_spo2_state,wechat_state,self.working_led_mode)
+                        # print("get_hr_state",get_hr_state,get_spo2_state,wechat_state,self.working_led_mode)
                         if wechat_state != None: #获取微聊状态
                             if wechat_state == 1 or get_spo2_state != 0 or get_hr_state != 0 or temp_state != 0:
                                 return
@@ -548,7 +548,7 @@ class ledEventManager(Abstract):#灯事件
         close_led_red()
         close_led_green()
         close_led_white()
-        print("close led!!!")
+        # print("close led!!!")
 
     def led_test_fun_cb(self, data):
         return
index 2e09fea..182cac9 100644 (file)
@@ -1032,7 +1032,7 @@ class DeviceInfoManager(Abstract):
             self.no_smi_count = 0
 
         msg_nums = sms.getMsgNums() #获取短信条数
-        print("msg_nums",msg_nums)
+        # print("msg_nums",msg_nums)
         if(msg_nums != -1):
             sms_data = sms.getSaveLoc()
             sms_max = sms_data[0][2]
@@ -3412,6 +3412,7 @@ class testSmsSetIPManager(Abstract):#
 
 class deleteSmsManager(Abstract):#删除信息
     def __init__(self):
+        self.timer = osTimer()
         pass
 
     def post_processor_after_instantiation(self):
@@ -3419,6 +3420,9 @@ class deleteSmsManager(Abstract):#删除信息
         EventMesh.subscribe("remove_all_sms_cb", self.remove_all_sms_cb)#
 
     def delete_sms_event(self, event, msg): 
+        self.timer.start(4*1000,0,self.fun)
+        
+    def fun(self, *argc): 
         EventMesh.publish_async("remove_all_sms_cb","",1*1024)
 
     def remove_all_sms_cb(self, event, msg):
@@ -3584,7 +3588,7 @@ class ClockManager(Abstract):
             off_start = msg_data[1]#开始时间
 
         if msg_data[2] != None:
-            off_end = msg_data[2]#开始时间
+            off_end = msg_data[2]#结束时间
         
         off_time1 = int(off_start.split(":")[0])
         off_time2 = int(off_start.split(":")[1])
index a92f716..f566b73 100644 (file)
@@ -621,7 +621,7 @@ class FIND_ProtoCol(ProtoCol):
         # a = audio.Audio(0)
         # a.set_pa(Pin.GPIO29)
         # a.setVolume(10)
-        # a.play(1, 1, 'E:/audio_audio_haixiu.mp3')  #文件名前面要加上路径
+        # a.play(1, 1, 'E:/audio_find_haixiu.mp3')  #文件名前面要加上路径
         
         # EventMesh.publish("load_screen", {"screen": "FIND"})
         EventMesh.publish("OPEN_FIND_WATCH")#
index c31b85b..7517b23 100644 (file)
@@ -34,13 +34,13 @@ aud.setCallback(audio_cb)
 def msg_cb(args):
     index = args[1]
     storage = args[2]
-    print("index:{}".format(index))
+    # print("index:{}".format(index))
     sms_data = sms.getSaveLoc()
     sms_max = sms_data[0][2]
     if index != -1:
         tmp = sms.searchTextMsg(index)
         detail = tmp[1]#内容
-        print("msg_cb:detail {}".format,detail)
+        # print("msg_cb:detail {}".format,detail)
         if  detail.find("SETIP:") != -1:#寻找是否有这个字符串
             tmp_test = detail.split("SETIP:")[1]
             if  tmp_test.find(":") != -1:
index c4c3aaa..7159643 100644 (file)
Binary files a/2.sdk/project/D10/usr/static/audio.bin and b/2.sdk/project/D10/usr/static/audio.bin differ
index 2045fdc..48cab25 100644 (file)
@@ -815,7 +815,7 @@ class PopupAlarmScreen(Screen):
 
     def initialization(self):
         self.alarm_count = 0
-        self.timer.start(2*1000,1,self.exit_alarm_page)
+        self.timer.start(3*1000,1,self.exit_alarm_page)
         time = EventMesh.publish("screen_get_time")#获取系统时间
         popup_alarm_time.set_text("{}:{}".format("%02d"%(time[0][0]),"%02d"%(time[0][1])))
 
index 9160e3c..eb5ec84 100644 (file)
@@ -1151,203 +1151,3 @@ class NewWechatPopupScreen(Screen):
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
-
-
-
-
-class TK_ProtoCol(ProtoCol):
-    """微聊"""
-    TYPE = "TK"
-    
-
-    def send(self, event, msg):
-        # print("TK send:{}".format(msg))
-        if len(str(msg)) == 1:
-
-            len_size = len(str(msg))+len("TKS,")
-            #  实例:[XT*334588000000156*0009*TK,1]
-            send_data = self.PID+"*%s*%04X*TKS"%(self.imei,len_size)
-            MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"TKS")
-            MD5_SIGN = self.pack_MD5_head(MD5_head_data)
-            data = "[%s%s,%d]"%(str(MD5_SIGN),send_data,msg)
-            print("TK:data:%s"%(data))
-            # 通过socket发送到服务器端
-            EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
-
-        else:
-            # [SZKW*YYYYYYYYYYYYYYY*LEN*TK,AMR 格式音频数据]
-            #[XT*YYYYYYYYYYYYYYY*LEN*TKS,秒数(十进制),AMR 格式音频数据]
-            arm_data = msg[1]
-            arm_sec = msg[0]
-            # print("TK_ProtoCol:msgtype:{} arm_sec:{}".format(len(msg[1]),arm_sec))
-
-            arm = bytearray()
-            for i in range(len(arm_data)):
-                if arm_data[i] == 0x7d:
-                    arm.extend(b'\x7d\x01')
-                elif arm_data[i] == 0x5b :
-                    arm.extend(b'\x7d\x02')
-                elif arm_data[i] == 0x5d :
-                    arm.extend(b'\x7d\x03')
-                elif arm_data[i] == 0x2c :
-                    arm.extend(b'\x7d\x04')
-                elif arm_data[i] == 0x2a :
-                    arm.extend(b'\x7d\x05')
-                else :
-                    arm.append(arm_data[i])
-                
-            datalen = len(arm) + 4+len(str(arm_sec))+1
-            #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1))
-            send_data = bytearray("SZKW*%s*%04X*TKS,%d,"%(self.imei,datalen,arm_sec))
-            send_data.extend(arm)
-            MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,datalen,"TKS")
-            MD5_SIGN = self.pack_MD5_head(MD5_head_data)
-            data = bytearray('[')
-            data.extend(MD5_SIGN)
-            data.extend(send_data)
-            data.extend(']')
-            # print("TK:send data:%s MD5_head_data:%s"%(data,MD5_head_data))
-            EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
-
-
-    def recv(self, event, msg):
-        """
-
-        ("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
-        @param event: 微聊
-        @param msg: 接收到的下行数据
-        [SZKW*860132060004322*20BD*TK,#!AMR...]
-        """
-        #Wechat_log("K_ProtoCol:recv:data:{}".format(msg))
-        # print("TK recv:{}".format(msg))
-        msg_tmp = msg.decode('ascii')
-        str = msg_tmp.split('TK,')
-        # Wechat_log("TK_ProtoCol:recv:len:{} {} {}".format(len(msg),len(str),msg_tmp.find("#!AMR")))
-        if  msg_tmp.find("#!AMR") != -1: #是否是服务器下发音频数据
-            # Wechat_log("TK_ProtoCol:recv:datalen{}".format(len(msg)))
-            arm_data = bytearray(str[1])#获取amr输出
-            get_wechat_data = EventMesh.publish("get_wechat_data")
-            
-            MXA_MSG = get_wechat_data[0]
-            wechat_recode_list = get_wechat_data[1]
-            wechat_num = wechat_recode_list["num"]
-            # Wechat_log("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
-            
-            if wechat_num >= MXA_MSG:
-                wechat_num = 0 
-            if wechat_num == 0:
-                wechat_num += 1 
-            elif wechat_num > 0:
-                wechat_num += 1 
-          
-
-            Wechat_log("num_total:datalen:{} {}".format(MXA_MSG,wechat_recode_list))
-            wechat_recode_list["%02d"%(wechat_num)] = "R:{}".format(3)
-            wechat_recode_list['num'] = wechat_num
-            EventMesh.publish("set_wechat_data",[MXA_MSG,wechat_recode_list])
-            #写语音文件数据
-            screen_NAME = EventMesh.publish("get_screen_NAME")
-            get_lcd_state = EventMesh.publish("get_lcd_state")
-            if screen_NAME != "wechat" or get_lcd_state == 0:
-                EventMesh.publish("load_screen", {"screen": "wechat_popup"})
-            else:
-                EventMesh.publish("wechat_updata_list_show")
-            # path = "/ext/static/storage_file/audio_amr/amr/{}.wav".format(wechat_num)
-            path = "/usr/static/storage_file/{}.wav".format(wechat_num)
-            with open(path,"w") as fd:
-                arm = bytearray()
-                j = 0
-                for i in range(len(arm_data)):
-                    if arm_data[j] == 0x7d and arm_data[j+1] == 0x01:
-                        arm.extend(b'\x7d')
-                        j+=1
-                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x02:
-                        arm.extend(b'\x5b')
-                        j+=1
-                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x03:
-                        arm.extend(b'\x5d')
-                        j+=1
-                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x04:
-                        arm.extend(b'\x2c')
-                        j+=1
-                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x05:
-                        arm.extend(b'\x2a')
-                        j+=1
-                    else :
-                        arm.append(arm_data[j])
-                    j+=1
-                    if j >= len(arm_data):
-                        break
-                fd.write(arm)
-            EventMesh.publish(constants.PROTOCOL.TK_SEND,1)
-
-            
-            
-            
-
-class MESSAGE_ProtoCol(ProtoCol):
-    """微聊"""
-    TYPE = "MESSAGE"
-    
-
-    def send(self, event, msg):
-       
-        #[XT*334588000000156*0007*MESSAGE]
-        send_data = "SZKW*%s*0007*MESSAGE"%(self.imei)
-        MD5_SIGN = self.pack_MD5_head(send_data)
-        data = "[%s%s]"%(str(MD5_SIGN),send_data)
-        #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data))
-        # 通过socket发送到服务器端
-        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
-
-    def recv(self, event, msg):
-        """
-
-        @param event: 微聊文字
-        @param msg: 接收到的下行数据
-        """
-        msg = msg[1:-1]
-
-        msg_s = msg.decode('ascii')
-        msg_s = msg_s.split(',')
-        msg_s = msg_s[1]
-        # Wechat_log("msg_tmp:len:{}\r\n data:{}".format(len(msg_s),msg_s))
-        
-
-        get_wechat_data = EventMesh.publish("get_wechat_data")
-        
-        MXA_MSG = get_wechat_data[0]
-        wechat_recode_list = get_wechat_data[1]
-        wechat_num = wechat_recode_list["num"]
-        # Wechat_log("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
-        
-        if wechat_num >= MXA_MSG:
-            wechat_num = 0 
-        if wechat_num == 0:
-            wechat_num += 1 
-        elif wechat_num > 0:
-            wechat_num += 1 
-        msg_txt = {}
-        # 0 1 2 3
-        Wechat_log("wechat_num:init {}".format(wechat_num))
-        msg_txt = UnicodeHexStr_To_Utf8Str(msg_s)
-        # Wechat_log("msg_txt:{}".format(msg_txt))
-        wechat_recode_list["%02d"%(wechat_num)] = "T:{}".format(msg_txt)
-        wechat_recode_list['num'] = wechat_num
-        EventMesh.publish("set_wechat_data",[MXA_MSG,wechat_recode_list])
-        # Wechat_log("wechat_recode_list:len data:{}".format(wechat_recode_list))
-        EventMesh.publish(constants.PROTOCOL.MESSAGE_SEND)
-        screen_NAME = EventMesh.publish("get_screen_NAME")
-        get_lcd_state = EventMesh.publish("get_lcd_state")
-        if screen_NAME != "wechat" or get_lcd_state == 0:
-            EventMesh.publish("load_screen", {"screen": "wechat_popup"})
-        else:
-            EventMesh.publish("wechat_updata_list_show")
-            
-
-
-
-            
-
-
-    
index 94cd22a..bcab251 100644 (file)
@@ -2,94 +2,68 @@ import lvgl as lv
 import ql_fs
 import EventMesh
 from misc import Power
-from ui import style_font_youyuan_20_red,style_white_screen,style_font_youyuan_20,style_screen,style_font_youyuan_20_black,style_btn,style_img,Screen,style_contact_btn,style_bar,style_bar_indic
+from ui import style_screen_ta_1_main_main_focused,style_screen_phone_ta_1_main_scrollbar_default,style_screen_phone_ta_1_main_main_default,style_font_youyuan_20_red,style_white_screen,style_font_youyuan_20,style_screen,style_font_youyuan_20_black,style_btn,style_img,Screen,style_contact_btn,style_bar,style_bar_indic
 import constants
 import osTimer
 import audio
 from machine import Pin
 import usys
 
-
+CALCULAROR_NUM = 10
 #style_font_youyuan_20_red.set_text_font_v2("font_28.bin",28,0)
-
+style_screen_text_ta_1_main_main_default = lv.style_t()
+style_screen_text_ta_1_main_main_default.init()
+style_screen_text_ta_1_main_main_default.set_radius(0)
+style_screen_text_ta_1_main_main_default.set_bg_color(lv.color_make(0x00,0x00,0x00))
+style_screen_text_ta_1_main_main_default.set_bg_grad_color(lv.color_make(0xff,0xff,0xff))
+style_screen_text_ta_1_main_main_default.set_bg_grad_dir(lv.GRAD_DIR.NONE)
+style_screen_text_ta_1_main_main_default.set_bg_opa(255)
+style_screen_text_ta_1_main_main_default.set_border_color(lv.color_make(0x00,0x00,0x00))
+style_screen_text_ta_1_main_main_default.set_border_width(0)
+style_screen_text_ta_1_main_main_default.set_border_opa(255)
+style_screen_text_ta_1_main_main_default.set_text_color(lv.color_make(0xff,0xff,0xff))
+style_screen_text_ta_1_main_main_default.set_text_letter_space(0)
+style_screen_text_ta_1_main_main_default.set_text_align(lv.TEXT_ALIGN.RIGHT)
+style_screen_text_ta_1_main_main_default.set_pad_left(0)
+style_screen_text_ta_1_main_main_default.set_pad_right(0)
+style_screen_text_ta_1_main_main_default.set_pad_top(0)
+style_screen_text_ta_1_main_main_default.set_pad_bottom(0)
 calculator_screen = lv.obj()
 print("calculator_screen")
 calculator_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
 calculator_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 # 创建文本框
-# calculator_label = lv.label(calculator_screen)
-# calculator_label.set_pos(0, 5)
-# calculator_label.set_size(200, 20)
-# calculator_label.set_text(" ")
-# calculator_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-# calculator_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-
-
-# calculator_new_screen = lv.obj(calculator_screen)
-# print("calculator_new_screen")
-# calculator_new_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-# calculator_new_screen.add_style(style_white_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-# calculator_new_screen.set_size(128, 32)
-# calculator_new_screen.set_pos(0, 0)
-
-# calculator_label = lv.label(calculator_new_screen)
-# calculator_label.set_text(" ")
-# calculator_label.set_base_dir(lv.BASE_DIR.RTL)#LV_BASE_DIR_LTR
-# calculator_label.add_style(style_font_youyuan_20_red, lv.PART.MAIN | lv.STATE.DEFAULT)
+
 
 calculator_label = lv.textarea(calculator_screen)
 calculator_label.set_one_line(True)  # 关闭1行模式
-calculator_label.set_size(128, 32)  # 设置宽高
-# calculator_label.set_style_base_dir(lv.BASE_DIR.RTL,0)#LV_BASE_DIR_LTR
-calculator_label.align(lv.ALIGN.TOP_RIGHT,0,0)  # 设置位置LV_ALIGN_LEFT_MID CENTER LV_ALIGN_TOP_RIGHT
+calculator_label.set_size(128, 30)  # 设置宽高
+
+calculator_label.set_style_base_dir(lv.BASE_DIR.LTR,0)#LV_BASE_DIR_LTR
+calculator_label.align(lv.ALIGN.TOP_RIGHT,0,5)  # 设置位置LV_ALIGN_LEFT_MID CENTER LV_ALIGN_TOP_RIGHT
 calculator_label.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) #不显示滚动条
 calculator_label.set_cursor_click_pos(False)
 calculator_label.set_password_show_time(0)
 calculator_label.set_cursor_pos(0x7fff)
 calculator_label.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-style_screen_ta_1_main_scrollbar_default = lv.style_t()
-style_screen_ta_1_main_scrollbar_default.init()
-style_screen_ta_1_main_scrollbar_default.set_radius(0)
-style_screen_ta_1_main_scrollbar_default.set_bg_color(lv.color_make(0x21,0x95,0xf6))
-style_screen_ta_1_main_scrollbar_default.set_bg_grad_color(lv.color_make(0x21,0x95,0xf6))
-style_screen_ta_1_main_scrollbar_default.set_bg_grad_dir(lv.GRAD_DIR.NONE)
-style_screen_ta_1_main_scrollbar_default.set_bg_opa(255)
 
-# add style for screen_ta_1
-calculator_label.add_style(style_screen_ta_1_main_scrollbar_default, lv.PART.SCROLLBAR|lv.STATE.DEFAULT)
+
+# # add style for screen_ta_1
+calculator_label.add_style(style_screen_phone_ta_1_main_scrollbar_default, lv.PART.SCROLLBAR|lv.STATE.DEFAULT)
 
 # create style style_screen_ta_1_main_main_default
-style_screen_ta_1_main_main_default = lv.style_t()
-style_screen_ta_1_main_main_default.init()
-style_screen_ta_1_main_main_default.set_radius(4)
-style_screen_ta_1_main_main_default.set_bg_color(lv.color_make(0xff,0xff,0xff))
-style_screen_ta_1_main_main_default.set_bg_grad_color(lv.color_make(0xff,0xff,0xff))
-style_screen_ta_1_main_main_default.set_bg_grad_dir(lv.GRAD_DIR.NONE)
-style_screen_ta_1_main_main_default.set_bg_opa(255)
-style_screen_ta_1_main_main_default.set_border_color(lv.color_make(0xe6,0xe6,0xe6))
-style_screen_ta_1_main_main_default.set_border_width(2)
-style_screen_ta_1_main_main_default.set_border_opa(255)
-style_screen_ta_1_main_main_default.set_text_color(lv.color_make(0x00,0x00,0x00))
-style_screen_ta_1_main_main_default.set_text_letter_space(2)
-style_screen_ta_1_main_main_default.set_text_align(lv.TEXT_ALIGN.RIGHT)
-style_screen_ta_1_main_main_default.set_pad_left(0)
-style_screen_ta_1_main_main_default.set_pad_right(0)
-style_screen_ta_1_main_main_default.set_pad_top(0)
-style_screen_ta_1_main_main_default.set_pad_bottom(0)
+
+calculator_label.add_style(style_screen_ta_1_main_main_focused, lv.PART.MAIN|lv.STATE.FOCUSED)
 
 # add style for screen_ta_1
-calculator_label.add_style(style_screen_ta_1_main_main_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+calculator_label.add_style(style_screen_text_ta_1_main_main_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
 
-# # calculator_label = lv.label(calculator_label1)
-# # calculator_label.set_pos(0, 0)
-# # calculator_label.set_size(0, 0)
-# # calculator_label.set_text(" ")
-# # calculator_label.add_style(style_font_youyuan_20_red, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 calculator_num = lv.btnmatrix(calculator_screen)
-calculator_num.set_pos(int(0),int(30))
+calculator_num.set_pos(int(0),int(0))
 calculator_num.set_size(128,90)
 calculator_num.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
 btnm_map = [
@@ -141,7 +115,7 @@ except AttributeError:
 calculator_num.add_style(style_calculator_num_items_default, lv.PART.ITEMS|lv.STATE.DEFAULT)
 
 waring_label = lv.label(calculator_screen)
-waring_label.set_pos(0, 55)
+waring_label.set_pos(0, 30)
 waring_label.set_size(128, 20)
 waring_label.set_text("最大位数为10个")
 waring_label.add_style(style_font_youyuan_20_red, lv.PART.MAIN | lv.STATE.DEFAULT)
@@ -214,7 +188,7 @@ class calculatorScreen(Screen):
         self.calculator_flag = ''
         waring_label.add_flag(lv.obj.FLAG.HIDDEN)
         calculator_label.clear_flag(lv.obj.FLAG.HIDDEN)
-        calculator_label.set_text(" ")
+        calculator_label.set_text("I am fine....hsahhhhhhhhhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaahnnnngj")
         self.meta = calculator_screen
         
 
@@ -223,7 +197,7 @@ class calculatorScreen(Screen):
         try :  
             num = eval(str)
             ret = "{}".format((my_round(num,8))) #只保留小数点8位
-            print("calcutlor result:",ret)
+            # print("calcutlor result:",ret)
             # tmp = ret.split('.')
             # if len(tmp) > 1:
             #     if len(tmp[1]) > 8 : #保留小数点失败
@@ -327,7 +301,7 @@ class calculatorScreen(Screen):
                                 self.str = self.calculator_buf1+self.calculator_flag+self.calculator_buf2
                                 self.result = self.calculator_eval(self.str)
                                 self.calculator_buf1=self.result
-                                self.calculator_flag=''
+                                self.calculator_flag =''
                                 self.calculator_buf2 = ''
                                 self.str = self.calculator_buf1
 
@@ -366,30 +340,28 @@ class calculatorScreen(Screen):
                                 self.str = self.calculator_buf1+self.calculator_flag+self.calculator_buf2
                                 dat_tmp = self.calculator_eval(self.str)
                                 self.result = self.calculator_eval(dat_tmp+'/100')
-                            
-                                self.calculator_buf1 = self.result
                                 self.calculator_flag = ''
+                                self.calculator_buf1 = self.result
                                 self.calculator_buf2 = ''
-                                self.str = self.calculator_buf1
+                                self.str = self.calculator_buf1+self.calculator_flag
                             else:
+                                self.calculator_flag = ''
                                 self.str = self.calculator_buf1+"/100"
                                 self.result = self.calculator_eval(self.str)
                                 self.calculator_buf1 = self.result
-                                self.calculator_flag = ''
                                 self.calculator_buf2 = ''
-                                self.str = self.calculator_buf1
+                                self.str = self.calculator_buf1+self.calculator_flag
                         else:
                             if self.calculator_buf1.find('.') != -1:
                                 data = self.calculator_buf1.split('.')[1]
                                 if len(data) == 0:
                                     self.calculator_buf1 = self.calculator_buf1.split('.')[0]
-
+                            self.calculator_flag = ''
                             self.str = self.calculator_buf1+"/100"
                             self.result = self.calculator_eval(self.str)
                             self.calculator_buf1 = self.result
-                            self.calculator_flag = ''
                             self.calculator_buf2 = ''
-                            self.str = self.calculator_buf1
+                            self.str = self.calculator_buf1+self.calculator_flag
 
 
                 elif txt == "/" or txt == "*" or txt == "-" or txt == "+" :  # 如果是符号,就运算
@@ -421,9 +393,8 @@ class calculatorScreen(Screen):
                                 self.str =  self.calculator_buf1+self.calculator_flag+self.calculator_buf2
                                 self.result = self.calculator_eval(self.str)
                                 self.calculator_buf1 = self.result
-                                self.calculator_flag = ''
                                 self.calculator_buf2 = ''
-                                self.str = self.calculator_buf1
+                                self.str = self.calculator_buf1+self.calculator_flag
                             else:#第二个数据为空不算结果 直接显示最新的符号
                                 self.calculator_flag = str(txt)
                                 self.str =  self.calculator_buf1+self.calculator_flag
@@ -447,7 +418,7 @@ class calculatorScreen(Screen):
                         self.str = self.calculator_buf1
                     else:
                         if self.calculator_flag == '':#没有特殊字符 + - / * 一直会将数字添加到数字1中 否则添加到数字2中
-                            if len(self.calculator_buf1) >= 10:
+                            if len(self.calculator_buf1) >= CALCULAROR_NUM:
                                 self.timer.stop()
                                 self.timer.start(2000,0,self.refresh_line) 
                                 waring_label.clear_flag(lv.obj.FLAG.HIDDEN)
@@ -462,7 +433,7 @@ class calculatorScreen(Screen):
                             
                         else:
                             if self.calculator_buf2 != '':
-                                if len(self.calculator_buf2) >= 10:
+                                if len(self.calculator_buf2) >= CALCULAROR_NUM:
                                     self.timer.stop()
                                     self.timer.start(2000,0,self.refresh_line) 
                                     waring_label.clear_flag(lv.obj.FLAG.HIDDEN)
@@ -496,7 +467,7 @@ class calculatorScreen(Screen):
                         self.str = self.calculator_buf1
                     else:
                         if self.calculator_flag == '':#没有特殊字符 + - / * 一直会将数字添加到数字1中 否则添加到数字2中
-                            if len(self.calculator_buf1) >= 10:
+                            if len(self.calculator_buf1) >= CALCULAROR_NUM:
                                 self.timer.stop()
                                 self.timer.start(2000,0,self.refresh_line) 
                                 waring_label.clear_flag(lv.obj.FLAG.HIDDEN)
@@ -514,7 +485,7 @@ class calculatorScreen(Screen):
                             
                         else:
                             if self.calculator_buf2 != '':
-                                if len(self.calculator_buf2) >= 10:
+                                if len(self.calculator_buf2) >= CALCULAROR_NUM:
                                     self.timer.stop()
                                     self.timer.start(2000,1,self.refresh_line) 
                                     waring_label.clear_flag(lv.obj.FLAG.HIDDEN)
@@ -547,8 +518,14 @@ class calculatorScreen(Screen):
 
                 # print("self.str",self.str,self.calculator_buf1,self.calculator_buf2,self.calculator_flag,self.result)
                 waring_label.add_flag(lv.obj.FLAG.HIDDEN)
+                # calculator_label.scroll_to_x(128, lv.ANIM.ON)
+                
+                calculator_label.scroll_to_x(calculator_label.get_scroll_x() - 240//4, lv.ANIM.ON)
+                calculator_label.scroll_to_view_recursive(lv.ANIM.ON)
+                calculator_label.scroll_to_view(lv.ANIM.ON)
+                calculator_label.align(lv.ALIGN.TOP_RIGHT,0,5)  # 设置位置LV_ALIGN_LEFT_MID CENTER LV_ALIGN_TOP_RIGHT
                 calculator_label.set_text(self.str)
-            
+                
                 # if txt == "<-":  # 如果是退格键,那么就删除1个字符
                 #     if self.calculator_flag != 2  :
                 #         if len(self.str) > 1:
index e4541a3..931560b 100644 (file)
@@ -90,8 +90,11 @@ class PROTOCOL:
     SILENCETIMEFS_SEND ="SILENCETIMEFS_SEND"
     SILENCETIMEFS_RECV = "SILENCETIMEFS_RECV"
 
-    PP_SEND = "PP_SEND"
-    PP_RECV = "PP_RECV"
+    PP_SEND = "ppfriends_SEND"
+    PP_RECV = "ppfriends_RECV"
+
+    PPFRIENDS_SEND = "ppfriends_match_SEND"
+    PPFRIENDS_RECV = "ppfriends_match_RECV"
 
     MFCODE_FRIEND_DEL_REQ_SEND = "MFCODE_FRIEND_DEL_REQ_SEND"
     MFCODE_FRIEND_DEL_REQ_RECV = "MFCODE_FRIEND_DEL_REQ_RECV"
@@ -108,6 +111,18 @@ class PROTOCOL:
     RESET_SEND = "RESET_SEND"
     RESET_RECV = "RESET_RECV"
 
+    APPVOICEMSG_SEND = "appvoicemsg_SEND"
+    APPVOICEMSG_RECV = "appvoicemsg_RECV"
+
+    SRVTEXTMSG_SEND = "srvtextmsg_SEND"
+    SRVTEXTMSG_RECV = "srvtextmsg_RECV"
+
+    PPDEVVOICEMSG_SEND = "ppdevvoicemsg_SEND"
+    PPDEVVOICEMSG_RECV = "ppdevvoicemsg_RECV"
+
+    PPSRVVOICEMSG_SEND = "ppsrvvoicemsg_SEND"
+    PPSRVVOICEMSG_RECV = "ppsrvvoicemsg_RECV"
+    
 
 class EVENT:
     CHANNEL_SOCKET_SEND = "CHANNEL_SOCKET_SEND"
index 5289a66..2e48088 100644 (file)
@@ -58,7 +58,7 @@ def main_init():
     from appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen ,FactoryModeBatTestScreen
     import ui as _ui
 
-    from mgr import AddPPManager,cameraAlbumManager,setclassTimeManager,setkeyboardManager,testSmsSetIPManager,ConfigStoreManager,sosInfoCallManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
+    from mgr import simFactoryManager,AddPPManager,cameraAlbumManager,setclassTimeManager,setkeyboardManager,testSmsSetIPManager,ConfigStoreManager,sosInfoCallManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
     AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
    
     
@@ -92,7 +92,7 @@ def main_init():
     ui.add_screen(_ui.Spo2Screen()) 
     ui.add_screen(_ui.TemperatureScreen()) 
     ui.add_screen(_ui.ContactsScreen()) 
-    from appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol,NewWechatPopupScreen,AIScreen
+    from appWechat import WechatScreen,NewWechatPopupScreen,AIScreen
     ui.add_screen(WechatScreen()) 
     ui.add_screen(AIScreen())
     from alarm import ClkListScreen,ClockManager,PopupAlarmScreen
@@ -178,9 +178,9 @@ def main_init():
     # ui.add_screen(_ui.Setting3Screen())  
     print("init6:{}".format(utime.localtime()))
     
-    from protocol import restart_ProtoCol,factory_ProtoCol,SILENCETIMEFS_ProtoCol,WLKEY_ProtoCol,SILENCETIME2_ProtoCol,KEYBRD_ProtoCol,LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
+    from protocol import ppsrvvoicemsg_ProtoCol,ppdevvoicemsg_ProtoCol,srvtextmsg_ProtoCol,TK_ProtoCol,MESSAGE_ProtoCol,APPVOICEMSG_ProtoCol,restart_ProtoCol,factory_ProtoCol,SILENCETIMEFS_ProtoCol,WLKEY_ProtoCol,SILENCETIME2_ProtoCol,KEYBRD_ProtoCol,LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,CENTER_ProtoCol,UPLOAD_ProtoCol,\
         TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,Time_ProtoCol,\
-        pp_ProtoCol,revpp_ProtoCol,reqpp_ProtoCol,delpp_ProtoCol,ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
+        pp_ProtoCol,ppfriends_ProtoCol,revpp_ProtoCol,reqpp_ProtoCol,delpp_ProtoCol,ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
     
     import mgr as mgr
     print("init7:{}".format(utime.localtime()))
@@ -200,10 +200,7 @@ def main_init():
     print("init10:{}".format(utime.localtime()))
     
     
-    app.append_manager(mgr.AlarmVolumeLevelManager()) \
-        .append_manager(mgr.MsgVolumeLevelManager()) \
-        .append_manager(mgr.PhoneVolumeLevelManager()) \
-        .append_manager(mgr.DeviceInfoManager()) \
+    app.append_manager(mgr.DeviceInfoManager()) \
         .append_manager(mgr.BatteryManager()) \
            
         # .append_manager(mgr.StopwatchManager()) \
@@ -237,7 +234,7 @@ def main_init():
     app.append_manager(setclassTimeManager())
     app.append_manager(cameraAlbumManager())
     app.append_manager(AddPPManager())
-
+    app.append_manager(simFactoryManager())
     print("init21:{}".format(utime.localtime()))    
     
     print("init11:{}".format(utime.localtime()))    
@@ -252,6 +249,10 @@ def main_init():
     pcr.add_support(PHL_ProtoCol())
     pcr.add_support(TK_ProtoCol())
     pcr.add_support(MESSAGE_ProtoCol())
+    pcr.add_support(APPVOICEMSG_ProtoCol())
+    pcr.add_support(srvtextmsg_ProtoCol())
+    pcr.add_support(ppdevvoicemsg_ProtoCol())
+    pcr.add_support(ppsrvvoicemsg_ProtoCol())
     pcr.add_support(WT_ProtoCol())
     pcr.add_support(REMIND_ProtoCol())
     pcr.add_support(HRSTART_ProtoCol())
@@ -277,6 +278,7 @@ def main_init():
     pcr.add_support(delpp_ProtoCol())
     pcr.add_support(reqpp_ProtoCol())
     pcr.add_support(revpp_ProtoCol())
+    pcr.add_support(ppfriends_ProtoCol())
     pcr.add_support(factory_ProtoCol())
     pcr.add_support(restart_ProtoCol())
     EventMesh.publish("load_screen", {"screen": "poweron"})
index e396d5d..92cc0cf 100644 (file)
@@ -40,114 +40,6 @@ import math
 import voiceCall
 from misc import PWM
 from queue import Queue
-class PhoneVolumeLevelManager(Abstract):
-    def __init__(self):
-        self.level = 0
-
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe("push_add_phonering_level", self.add)
-        EventMesh.subscribe("push_reduce_phonering_level", self.reduce)
-        EventMesh.subscribe("get_phonering_level", self.get)
-
-    def add(self, event, msg):
-        if self.level < 7:
-            self.level = self.level + 1
-
-    def reduce(self, event, msg):
-        if self.level > 0:
-            self.level = self.level - 1
-
-    def get(self, event=None, msg=None):
-        return self.level
-
-class MsgVolumeLevelManager(Abstract):
-    def __init__(self):
-        self.level = 0
-
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe("push_add_msgvolume_level", self.add)
-        EventMesh.subscribe("push_reduce_msgvolume_level", self.reduce)
-        EventMesh.subscribe("get_msgvolume_level", self.get)
-
-    def add(self, event, msg):
-        if self.level < 7:
-            self.level = self.level + 1
-
-    def reduce(self, event, msg):
-        if self.level > 0:
-            self.level = self.level - 1
-
-    def get(self, event=None, msg=None):
-        return self.level
-
-class AlarmVolumeLevelManager(Abstract):
-    def __init__(self):
-        self.level = 0
-
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe("push_add_alarmvolume_level", self.add)
-        EventMesh.subscribe("push_reduce_alarmvolume_level", self.reduce)
-        EventMesh.subscribe("get_alarmvolume_level", self.get)
-
-    def add(self, event, msg):
-        if self.level < 7:
-            self.level = self.level + 1
-
-    def reduce(self, event, msg):
-        if self.level > 0:
-            self.level = self.level - 1
-
-    def get(self, event=None, msg=None):
-        return self.level
-        
-class StopwatchManager(Abstract):
-    def __init__(self):
-        self.level = 0
-        self.ms_value = 0
-        self.sec_value = 0
-        self.min_value = 0
-        self.timer = Timer(Timer.Timer1)
-
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe("stopwatch_start", self.start)
-        EventMesh.subscribe("stopwatch_stop", self.paused)
-        EventMesh.subscribe("stopwatch_reset", self.reset)
-        EventMesh.subscribe("get_stopwatch_ms", self.get_ms)
-        EventMesh.subscribe("get_stopwatch_sec", self.get_sec)
-        EventMesh.subscribe("get_stopwatch_min", self.get_min)
-
-    def start(self, event, msg):        
-        self.timer.start(period=100, mode=self.timer.PERIODIC, callback=self.fun)
-    
-    def paused(self, event, msg):        
-        self.timer.stop()
-    
-    def reset(self, event, msg):
-        self.timer.stop()
-        self.sec_value = 0
-        self.min_value = 0
-        self.ms_value = 0
-
-    def fun(self):
-        self.ms_value += 1
-        if self.ms_value > 9:
-            self.ms_value = 0   
-            self.sec_value += 1
-        if self.sec_value > 60:
-            self.sec_value = 0
-            self.min_value += 1
-        if self.min_value > 60:
-            self.timer.stop()
-
-    def get_ms(self, event=None, msg=None):
-        return self.ms_value
-
-    def get_min(self, event=None, msg=None):
-        return self.min_value
-
-    def get_sec(self, event=None, msg=None):
-        return self.sec_value
-
 class CountdownManager(Abstract):
     def __init__(self):
         self.sec = 0
@@ -710,9 +602,10 @@ class DeviceInfoManager(Abstract):
         self.gsensor.init()
         print("DeviceInfoManager:2")
         self.gsensor.set_callback(self.gsensor_cb)
-      
+        self.sim_oldiccid = ''
         self.class_count = 0
         self.old_temp_time = 0
+        self.sim_old_count = 0
         # #print("hsensor.open_heart:%d\r\n"%(self.hsensor.open_heart()))
         print("DeviceInfoManager:3")
         self.i2c0 = I2C(I2C.I2C0, I2C.FAST_MODE)
@@ -830,6 +723,31 @@ class DeviceInfoManager(Abstract):
         date_tmp = utime.localtime()
         time_tmp = utime.mktime(date_tmp)
         # print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp))
+        
+        if self.sim_old_count < 60:
+            self.sim_old_count+=10
+        else:
+            get_iccid = None
+            get_iccid = EventMesh.publish("about_get_iccid")
+            if get_iccid != None:
+                # print("get_iccid01",get_iccid,self.sim_oldiccid)
+                if get_iccid != -1:#没有卡
+                    self.sim_oldiccid = EventMesh.publish("get_sim_new_iccid")#
+                    if self.sim_oldiccid == '' or self.sim_oldiccid == None:#
+                        self.sim_oldiccid = get_iccid #89860322247554745370 89860322247554745374 = 
+                        EventMesh.publish("set_sim_new_iccid", self.sim_oldiccid)#
+                    # print("get_iccid02",get_iccid,self.sim_oldiccid)
+                    if self.sim_oldiccid != '' and self.sim_oldiccid != None:
+                        if self.sim_oldiccid != get_iccid:#两张不一样的iccid就自动解绑
+                            if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:
+                                self.sim_oldiccid = get_iccid
+                                EventMesh.publish("set_sim_new_iccid", self.sim_oldiccid)#
+                                EventMesh.publish("sim_factory_event")#
+                                # EventMesh.publish(constants.PROTOCOL.DLT_SEND)
+                                # print("get_iccid03",get_iccid,self.sim_oldiccid)
+                        
+                    # print("get_iccid04",get_iccid,self.sim_oldiccid)
+
         EventMesh.publish("countdown_end_cb")
         """定时检查是否关闭gps失败"""
         # gnss_state = quecgnss.get_state()
@@ -3026,21 +2944,7 @@ class getBootOffManager(Abstract):#开关机时间
                 flag = 1
             
         return [self.off_msg,flag]
-class setSmsIndexManager(Abstract):#
-    def __init__(self):
-        self.index = -1
-
-    def post_processor_after_instantiation(self):
-        EventMesh.subscribe("set_sms_index", self.set_sms_index)#设置关机时间
-        EventMesh.subscribe("get_sms_index", self.get_sms_index)
 
-    def set_sms_index(self, event, msg): 
-        self.index = msg
-        
-
-    def get_sms_index(self, event, msg):
-        
-        return self.index
 
 class testSmsSetIPManager(Abstract):#
     def __init__(self):
@@ -3107,6 +3011,42 @@ class setkeyboardManager(Abstract):#设置键盘开关状态
         
         return self.key_state
     
+class simFactoryManager(Abstract):#恢复出厂设置
+    def __init__(self):
+        self.timer= osTimer()
+        self.new_simiccid = ''
+        self.new_simiccid = EventMesh.publish("get_storage_config","new_sim_iccid")
+        pass
+
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("sim_factory_event", self.sim_factory_event)#
+        EventMesh.subscribe("get_sim_new_iccid", self.get_sim_new_iccid)#
+        EventMesh.subscribe("set_sim_new_iccid", self.set_sim_new_iccid)#
+
+    def sim_factory_event(self, event, msg): 
+        
+        
+        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#已连接服务器发指令恢复出厂
+            ret = 0
+            ret = ql_fs.path_exists("/usr/static/storage_file")#电话本
+            if ret == True:
+                ql_fs.rmdirs("/usr/static/storage_file")
+                ql_fs.mkdirs("/usr/static/storage_file")
+            EventMesh.publish(constants.PROTOCOL.DLT_SEND)
+            self.timer.start(4000,0,self.timer_cb_threescond)
+
+    def timer_cb_threescond(self,e):
+
+        Power.powerRestart()
+
+    def get_sim_new_iccid(self, event, msg): 
+        return self.new_simiccid
+
+    def set_sim_new_iccid(self, event, msg): 
+        EventMesh.publish("set_storage_config",["new_sim_iccid",msg])
+        self.new_simiccid = msg
+    
 class cameraAlbumManager(Abstract):#保存相册数目
     def __init__(self):
         self.album_list = {}
index 228b7c4..bf6e93c 100644 (file)
@@ -43,6 +43,11 @@ class ppMainScreen(Screen):
         self.check_json = False
         self.ppbook = {}
         self.meta = None
+        self.state = 0
+        EventMesh.subscribe("set_enter_pp_page",self.set_enter_pp_page)
+        EventMesh.subscribe("get_enter_pp_page",self.get_enter_pp_page)
+
+
     def initialization(self):
         
         global ppmain_screen,ppmain_img,ppmain_name ,ppmain_imgbtn,delpp_img
@@ -129,6 +134,13 @@ class ppMainScreen(Screen):
             
             EventMesh.publish("load_screen", {"screen": "pp_popup"})
 
+    def set_enter_pp_page(self, event, msg):
+        self.state = msg
+    
+    def get_enter_pp_page(self, event, msg):
+        
+        return self.state 
+    
     def delpp_cb(self,*argc):
         if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#未联网提示关机
             EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
@@ -180,12 +192,47 @@ pp_list_screen = None
 pp_list_title = None
 pp_list_screen1_1 = None
 no_add_pp = None
+pp_list_screen = lv.obj()
+print("pp_list_screen")
+pp_list_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+pp_list_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+
+# clk_list_title_bg= lv.btn(pp_list_screen)
+# clk_list_title_bg.set_size(112,25)
+# clk_list_title_bg.set_pos(8,5)
+# clk_list_title_bg.add_style(style_screen_btn_1_main_main_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+# clk_list_title_bg.set_ext_click_area(25)
+
+pp_list_title = lv.label(pp_list_screen)
+pp_list_title.set_pos(4, 5)
+pp_list_title.set_size(112, 20)
+pp_list_title.set_text("好友列表")
+pp_list_title.set_long_mode(lv.label.LONG.WRAP)
+pp_list_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+pp_list_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+
+pp_list_screen1_1 = lv.obj(pp_list_screen)
+pp_list_screen1_1.set_pos(0, 35)
+pp_list_screen1_1.set_size(128, 128-35)
+pp_list_screen1_1.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+pp_list_screen1_1.add_style(style_alarm_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+#暂未添加闹钟
+no_add_pp= lv.label(pp_list_screen1_1)
+no_add_pp.set_pos(0, 20)
+no_add_pp.set_size(128, 50)
+no_add_pp.set_text("未添加好友")
+no_add_pp.set_long_mode(lv.label.LONG.WRAP)
+no_add_pp.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+no_add_pp.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 class ppListScreen(Screen):
     NAME = "pp_list"
     def __init__(self):
         super().__init__()
-        self.meta = None
+        self.meta = pp_list_screen
         self.clock_list = []
         self.ppbook = {}
         self.MXA_clk_num = 10
@@ -197,74 +244,40 @@ class ppListScreen(Screen):
         self.pp_detail_listt_dict = []
         self.ppcontact_detail_list = None
         self.is_sliding = 0
+
+        self.ppcontact_detail_list = lv.obj(pp_list_screen)
+        self.ppcontact_detail_list.set_pos(0, 25)
+        self.ppcontact_detail_list.set_size(128, 128-25)
+        self.ppcontact_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+        self.ppcontact_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+        
+        for i in range(self.MXA_clk_num):
+        
+            _btn = lv.btn(self.ppcontact_detail_list)
+            _btn.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            _btn.add_style(pp_main_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+            _btn.add_flag(lv.obj.FLAG.CLICKABLE)
+            _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_pp(e)),
+                                    lv.EVENT.CLICKED, None)
+            _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_pp(e)),
+                                    lv.EVENT.PRESSING, None)
+            
+            _btn_label1 = lv.label(_btn)
+            _btn_label2 = lv.label(_btn)
+            _btn_label2.set_long_mode(lv.label.LONG.SCROLL_CIRCULAR)
+            _btn_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            _btn_label3 = lv.label(_btn)
+            _btn_label3.set_long_mode(lv.label.LONG.SCROLL_CIRCULAR)
+            _btn_label3.add_style(pp_style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.pp_detail_listt_dict.append({"_btn":_btn,"_btn_label1":_btn_label1,"_btn_label2":_btn_label2,"_btn_label3":_btn_label3})
+
         EventMesh.subscribe("pp_update_data",self.pp_update_data)
 
     def initialization(self): 
+        EventMesh.publish("set_enter_pp_page",0)
         self.is_sliding =0
         global pp_list_screen,pp_list_title,pp_list_screen1_1,no_add_pp
-        if pp_list_screen == None:
-            pp_list_screen = lv.obj()
-            print("pp_list_screen")
-            pp_list_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-            pp_list_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-
-            # clk_list_title_bg= lv.btn(pp_list_screen)
-            # clk_list_title_bg.set_size(112,25)
-            # clk_list_title_bg.set_pos(8,5)
-            # clk_list_title_bg.add_style(style_screen_btn_1_main_main_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-            # clk_list_title_bg.set_ext_click_area(25)
-
-            pp_list_title = lv.label(pp_list_screen)
-            pp_list_title.set_pos(4, 5)
-            pp_list_title.set_size(112, 20)
-            pp_list_title.set_text("好友列表")
-            pp_list_title.set_long_mode(lv.label.LONG.WRAP)
-            pp_list_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-            pp_list_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
         
-
-            pp_list_screen1_1 = lv.obj(pp_list_screen)
-            pp_list_screen1_1.set_pos(0, 35)
-            pp_list_screen1_1.set_size(128, 128-35)
-            pp_list_screen1_1.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-            pp_list_screen1_1.add_style(style_alarm_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-            #暂未添加闹钟
-            no_add_pp= lv.label(pp_list_screen1_1)
-            no_add_pp.set_pos(0, 20)
-            no_add_pp.set_size(128, 50)
-            no_add_pp.set_text("未添加好友")
-            no_add_pp.set_long_mode(lv.label.LONG.WRAP)
-            no_add_pp.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-            no_add_pp.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-            self.ppcontact_detail_list = lv.obj(pp_list_screen)
-            self.ppcontact_detail_list.set_pos(0, 25)
-            self.ppcontact_detail_list.set_size(128, 128-25)
-            self.ppcontact_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-            self.ppcontact_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-            
-            for i in range(self.MXA_clk_num):
-            
-                _btn = lv.btn(self.ppcontact_detail_list)
-                _btn.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-                _btn.add_style(pp_main_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-                _btn.add_flag(lv.obj.FLAG.CLICKABLE)
-                _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_pp(e)),
-                                        lv.EVENT.CLICKED, None)
-                _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_pp(e)),
-                                        lv.EVENT.PRESSING, None)
-                
-                _btn_label1 = lv.label(_btn)
-                _btn_label2 = lv.label(_btn)
-                _btn_label2.set_long_mode(lv.label.LONG.SCROLL_CIRCULAR)
-                _btn_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-                _btn_label3 = lv.label(_btn)
-                _btn_label3.set_long_mode(lv.label.LONG.SCROLL_CIRCULAR)
-                _btn_label3.add_style(pp_style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
-                self.pp_detail_listt_dict.append({"_btn":_btn,"_btn_label1":_btn_label1,"_btn_label2":_btn_label2,"_btn_label3":_btn_label3})
-            self.meta = pp_list_screen
         if self.ppbook != None:
             if  len(self.ppbook) > 0:
                 self.btn_create_list_show(1)
@@ -318,6 +331,7 @@ class ppListScreen(Screen):
         
 
     def addpp_draw_btn(self,state):
+        global pp_list_screen,pp_list_title,pp_list_screen1_1,no_add_pp
         if state == 0:
             no_add_pp.clear_flag(lv.obj.FLAG.HIDDEN)
             no_add_pp.set_text("正在加载好友中,请稍候...")
@@ -352,7 +366,7 @@ class ppListScreen(Screen):
                     #_btn_label1 = lv.label(_btn)
                     self.pp_detail_listt_dict[i]["_btn_label1"].set_pos(20, 0)
                     self.pp_detail_listt_dict[i]["_btn_label1"].set_size(0, 0)
-                    self.pp_detail_listt_dict[i]["_btn_label1"].set_text(key_tmp[4:])
+                    self.pp_detail_listt_dict[i]["_btn_label1"].set_text(key_tmp)
 
                     #_btn_label2 = lv.label(_btn)
                     self.pp_detail_listt_dict[i]["_btn_label2"].set_pos(10, 0)
@@ -363,7 +377,7 @@ class ppListScreen(Screen):
                     #_btn_label3 = lv.label(_btn)
                     self.pp_detail_listt_dict[i]["_btn_label3"].set_pos(10, 25)
                     self.pp_detail_listt_dict[i]["_btn_label3"].set_size(128-8, 20)
-                    self.pp_detail_listt_dict[i]["_btn_label3"].set_text(key_tmp[4:])
+                    self.pp_detail_listt_dict[i]["_btn_label3"].set_text(key_tmp[3:])
 
                     self.pp_detail_listt_dict[i]["_btn_label3"].set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
                     self.pp_detail_listt_dict[i]["_btn"].clear_flag(lv.obj.FLAG.HIDDEN)
@@ -393,7 +407,7 @@ class ppListScreen(Screen):
                 imei = e.get_target().get_child(0).get_text()
                 print("pp imei".format(imei))
                 if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#未联网提示关机
-                     EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
+                    EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
                 else:
                     EventMesh.publish("load_screen", {"screen": "delOnepp_popup","meta":str(imei)})
                 
@@ -504,7 +518,7 @@ class delOnePopupScreen(Screen):#删除单个好友
 
             self.meta = delNotPopup_screen
         self.timer.start(1*1000,1,self.fun)
-        delComfriPopup_ID.set_text(str(self.meta_info))
+        delComfriPopup_ID.set_text(str(self.meta_info[3:]))
     def confirm(self, e):
         code = e.get_code()
         if code == lv.EVENT.PRESSING:
@@ -515,10 +529,17 @@ class delOnePopupScreen(Screen):#删除单个好友
             #utime.sleep_ms(10)
             print("1self.is_sliding",self.is_sliding)
             if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件
-                self.is_sliding =0
-                EventMesh.publish(constants.PROTOCOL.MFCODE_FRIEND_DEL_REQ_SEND,self.meta_info)
-                
-                EventMesh.publish("load_screen", {"screen": "delppok_popup"})
+                self.is_sliding = 0
+                if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#未联网提示关机 
+                    EventMesh.publish(constants.PROTOCOL.MFCODE_FRIEND_DEL_REQ_SEND,self.meta_info[3:])
+                    old_pplist = EventMesh.publish("get_pplist")
+                    del old_pplist[self.meta_info]
+                    print("del old_pplist",old_pplist)
+                    EventMesh.publish("set_pplist",old_pplist)
+                    EventMesh.publish("load_screen", {"screen": "delppok_popup"})
+                else:
+                    EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
+
             self.is_sliding =0
         
         pass
@@ -733,8 +754,9 @@ class ppMainPopupScreen(Screen):#弹窗提示
         EventMesh.subscribe("close_pp_timer",self.close_pp_timer)
 
     def initialization(self):
+        EventMesh.publish("set_enter_pp_page",1)
         self.count = 0
-        global ppPopup_screen,ppmain_img,ppmain_name ,ppPopup_imgbtn 
+        global ppPopup_screen,ppPopup_imgbtn,ppPopup_call_label
         if ppPopup_screen == None:
             ppPopup_screen = lv.obj()
             print("ppPopup_screen")
@@ -769,6 +791,7 @@ class ppMainPopupScreen(Screen):#弹窗提示
             if screen_NAME == "pp_popup":
                 EventMesh.publish("load_screen", {"screen": "addfailepp_popup"})
     def Close(self):
+        
         self.timer.stop()
 
     def done_return(self):
@@ -815,7 +838,7 @@ class addppPopupScreen(Screen):#弹窗提示
             addppPopup_ok_label.set_size(LCD_X-0, 19)
             addppPopup_ok_label.set_text("成功加好友")
             addppPopup_ok_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-            addppPopup_ok_label.add_style(style_font_youyuan_20_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+            addppPopup_ok_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 
             addppPopup_imgbtn = lv.img(addppPopup_screen) #64 
@@ -874,7 +897,7 @@ class addedppPopupScreen(Screen):#已加过好友弹窗提示
             addedppPopup_call_label = lv.label(addedppPopup_screen)
             addedppPopup_call_label.set_pos(0, 54)
             addedppPopup_call_label.set_size(LCD_X-0, 50)
-            addedppPopup_call_label.set_text("对æ\96¹å·²å\8a è¿\87好友了")
+            addedppPopup_call_label.set_text("å·²ç»\8fæ\98¯好友了")
             addedppPopup_call_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
             addedppPopup_call_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
index 361f9b5..c7b0bcc 100644 (file)
@@ -202,7 +202,7 @@ class SockManager(Abstract):
     def socket_send_queue_thread(self):
          while True:
             data = self.socket_send_queue.get()
-            print("TCP:send data1 len:{}".format(len(data)))
+            print("TCP:send data1 len:{}".format(data))
 
             #print("ui_queue_thread:data = {}".format(data))
             socketsta = self.sock.getsocketsta() 
@@ -447,6 +447,7 @@ class LK_ProtoCol(ProtoCol):
         EventMesh.publish(constants.PROTOCOL.TIME_SEND)
         EventMesh.publish(constants.EVENT.START_LOCATION,constants.PROTOCOL.UD_SEND) #开始UD定位
         EventMesh.publish(constants.EVENT.START_LOCATION,constants.PROTOCOL.WT_SEND) #开始WT定位
+        EventMesh.publish(constants.PROTOCOL.MFCODE_FRIEND_REQ_SEND)
 
 class PING_ProtoCol(ProtoCol):
     """获取绑定状态"""
@@ -1566,27 +1567,129 @@ class KEYBRD_ProtoCol(ProtoCol):
 
         EventMesh.publish(constants.PROTOCOL.KEYBRD_SEND)  
 
+# [CS*YYYYYYYYYY*LEN*ppdevvoicemsg,ID,AMR格式音频数据]#设备好友语音发送
+# 服务端回复
+# [CS*YYYYYYYYYY*LEN*ppdevvoicemsg]
+#键盘开关
+class ppdevvoicemsg_ProtoCol(ProtoCol):
+    """设备好友语音发送"""
+    TYPE = "ppdevvoicemsg"
+    def send(self, event, msg):
+
+        # [SZKW*YYYYYYYYYYYYYYY*LEN*TK,AMR 格式音频数据]
+            #[XT*YYYYYYYYYYYYYYY*LEN*TKS,秒数(十进制),AMR 格式音频数据]
+            arm_data = msg[1]
+            arm_sec = msg[0]
+            # print("TK_ProtoCol:msgtype:{} arm_sec:{}".format(len(msg[1]),arm_sec))
+
+            arm = bytearray()
+            for i in range(len(arm_data)):
+                if arm_data[i] == 0x7d:
+                    arm.extend(b'\x7d\x01')
+                elif arm_data[i] == 0x5b :
+                    arm.extend(b'\x7d\x02')
+                elif arm_data[i] == 0x5d :
+                    arm.extend(b'\x7d\x03')
+                elif arm_data[i] == 0x2c :
+                    arm.extend(b'\x7d\x04')
+                elif arm_data[i] == 0x2a :
+                    arm.extend(b'\x7d\x05')
+                else :
+                    arm.append(arm_data[i])
+                
+            datalen = len(arm) +len(str("ppdevvoicemsg"))+1
+            #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1))
+            send_data = bytearray(self.PID+"*%s*%04X*ppdevvoicemsg,%s,"%(self.imei,datalen,"860132060129194"))
+            send_data.extend(arm)
+            MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,datalen,"ppdevvoicemsg")
+            MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+            data = bytearray('[')
+            data.extend(MD5_SIGN)
+            data.extend(send_data)
+            data.extend(']')
+            print("TK:send data:%s MD5_head_data:%s"%(data,MD5_head_data))
+            EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+    def recv(self, event, msg):
+        """
+        @param event:
+        @param msg: 接收到的下行数据
+        """
+        # b'[SZKW*867387060319166*000A*KEYBRD]'
+        # print("KEYBRD!!!!!!!!!!!!!",msg)
+class ppsrvvoicemsg_ProtoCol(ProtoCol):#服务器发送设备好友语音 [CS*YYYYYYYYYY*LEN*ppsrvvoicemsg,id,接收结果]
+    """服务器发送好友语音发送"""
+    TYPE = "ppsrvvoicemsg"
+    def send(self, event, msg):
+        msg_tmp = "ppsrvvoicemsg," +"%s,"%(msg)+ 1
+        data_len = len(str(msg_tmp))
+        send_data = self.PID+"*%s*%04X*ppsrvvoicemsg,%s,%d"%(self.imei,data_len,msg,1)
+        MD5_SIGN = self.pack_MD5_head(send_data)
+        data = "[%s%s]"%(str(MD5_SIGN),send_data)
+        print("POWEROFF_ProtoCol:send:%s"%(data))
+        # 通过socket发送到服务器端
+        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+    def recv(self, event, msg):
+        """
+        @param event:
+        @param msg: 接收到的下行数据
+        """
+        EventMesh.publish(constants.PROTOCOL.PPSRVVOICEMSG_SEND,"860132060129194")
+        # b'[SZKW*867387060319166*000A*ppsrvvoicemsg]'
+        # print("KEYBRD!!!!!!!!!!!!!",msg)
 #碰碰交友
+class ppfriends_ProtoCol(ProtoCol):
+    """碰碰"""
+    TYPE = "ppfriends"
+    def send(self, event, msg):
+        # print("ppfriends:send:")
+         # [SZKW*867387060319491*0008*PP]
+        if(msg != ""):
+            time = msg.split(",")[1]
+            data = machine.RTC().datetime()
+            hour = "%02d"%(data[4])+"%02d"%(data[5])
+            # print("ppfriends:send:{}-{}-{}".format(msg,type(msg),time))
+            msg_tmp = "ppfriends," +"%s,"%(time)+ msg
+            
+            data_len = len(msg_tmp)
+            MD5_head_data = self.PID+"*%s*%04X*ppfriends"%(self.imei,data_len)
+            MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+            send_data = self.PID+"*%s*%04X*%s"%(self.imei,data_len,msg_tmp)
+            data = "[%s%s]"%(str(MD5_SIGN),send_data)
+
+            # print("PP_ProtoCol:msg_tmp:%s"%(data))
+            # 通过socket发送到服务器端
+            EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+    def recv(self, event, msg):
+        """
+        @param event:
+        @param msg: 接收到的下行数据
+        """
+        # b'[SZKW*867387060319166*000A*KEYBRD]'
+        # print("KEYBRD!!!!!!!!!!!!!",msg)
+   
 class pp_ProtoCol(ProtoCol):
     """碰碰交友"""
-    TYPE = "PP"
+    TYPE = "ppfriends_match"
     def send(self, event, msg):
-        print("PP_ProtoCol:send:")
+        # print("PP_ProtoCol:send:")
          # [SZKW*867387060319491*0008*PP]
         if(msg != ""):
             time = msg.split(",")[1]
             data = machine.RTC().datetime()
             hour = "%02d"%(data[4])+"%02d"%(data[5])
-            print("PP_ProtoCol:send:{}-{}-{}".format(msg,type(msg),time))
-            msg_tmp = "PP," +"%s,"%(time)+ msg
+            # print("PP_ProtoCol:send:{}-{}-{}".format(msg,type(msg),time))
+            msg_tmp = "ppfriends_match," +"%s,"%(time)+ msg
             
             data_len = len(msg_tmp)
-            MD5_head_data = self.PID+"*%s*%04X*PP"%(self.imei,data_len)
+            MD5_head_data = self.PID+"*%s*%04X*ppfriends_match"%(self.imei,data_len)
             MD5_SIGN = self.pack_MD5_head(MD5_head_data)
             send_data = self.PID+"*%s*%04X*%s"%(self.imei,data_len,msg_tmp)
             data = "[%s%s]"%(str(MD5_SIGN),send_data)
 
-            print("PP_ProtoCol:msg_tmp:%s"%(data))
+            # print("PP_ProtoCol:msg_tmp:%s"%(data))
             # 通过socket发送到服务器端
             EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
 
@@ -1596,7 +1699,7 @@ class pp_ProtoCol(ProtoCol):
         @param msg: 接收到的下行数据
         """
         # b'[SZKW*867387060319166*000A*KEYBRD]'
-        print("PP!!!!!!!!!!!!!",msg)
+        # print("ppfriends_match!!!!!!!!!!!!!",msg)
 
         msg = msg[1:-1]
         msg_tmp = msg.decode('ascii')
@@ -1626,7 +1729,7 @@ class delpp_ProtoCol(ProtoCol):
     """删除碰碰交友"""
     TYPE = "MFCODE_FRIEND_DEL_REQ"
     def send(self, event, msg):
-        print("MFCODE_FRIEND_DEL_REQ_ProtoCol:send:")
+        # print("MFCODE_FRIEND_DEL_REQ_ProtoCol:send:")
          # [SZKW*867387060319491*0008*MFCODE_FRIEND_DEL_REQ]
         if(msg != ""):
             
@@ -1638,7 +1741,7 @@ class delpp_ProtoCol(ProtoCol):
             send_data = self.PID+"*%s*%04X*%s"%(self.imei,data_len,msg_tmp)
             data = "[%s%s]"%(str(MD5_SIGN),send_data)
 
-            print("MFCODE_FRIEND_DEL_REQ_ProtoCol:msg_tmp:%s"%(data))
+            # print("MFCODE_FRIEND_DEL_REQ_ProtoCol:msg_tmp:%s"%(data))
             # 通过socket发送到服务器端
             EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
             EventMesh.publish(constants.PROTOCOL.MFCODE_FRIEND_REQ_SEND)
@@ -1657,7 +1760,7 @@ class reqpp_ProtoCol(ProtoCol):
         send_data = self.PID+"*%s*0011*MFCODE_FRIEND_REQ"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
-        print("MFCODE_FRIEND_REQ:data:%s"%(data))
+        # print("MFCODE_FRIEND_REQ:data:%s"%(data))
         # print("WLKEY!!!!!!!!!!!!!")
         # 通过socket发送到服务器端
         EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
@@ -1676,7 +1779,7 @@ class revpp_ProtoCol(ProtoCol):
         send_data = self.PID+"*%s*000d*MFCODE_FRIEND"%(self.imei)
         MD5_SIGN = self.pack_MD5_head(send_data)
         data = "[%s%s]"%(str(MD5_SIGN),send_data)
-        print("MFCODE_FRIEND:data:%s"%(data))
+        # print("MFCODE_FRIEND:data:%s"%(data))
         # print("WLKEY!!!!!!!!!!!!!")
         # 通过socket发送到服务器端
         EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
@@ -1688,10 +1791,10 @@ class revpp_ProtoCol(ProtoCol):
         """
         
         msg = msg[1:-1]
-        # print("phonebook:msg:%s\r\n"%msg)
+        # print("MFCODE_FRIEND:msg:%s\r\n"%msg)
         msg_tmp = msg.decode('ascii')
         msg_tmp = msg_tmp.split(',')
-        # print("phonebook:len:{}\r\n data:{}".format(len(msg_tmp),msg_tmp))
+        # print("MFCODE_FRIEND recv:len:{}\r\n data:{}".format(len(msg_tmp),msg_tmp))
         
         phonebook = {}
         msg_tmp = msg_tmp[1:]
@@ -1719,10 +1822,37 @@ class revpp_ProtoCol(ProtoCol):
         # with open("/usr/static/storage_file/pplist.json","w",encoding="utf-8") as fd:
         #     ujson.dump(phonebook,fd)
             # print("创建好友列表")
-        
+       
+        old_pplist = EventMesh.publish("get_pplist")
         EventMesh.publish(constants.PROTOCOL.MFCODE_FRIEND_SEND)
         EventMesh.publish("set_pplist",phonebook)
         EventMesh.publish("pp_update_data")
+        # print("old_pplist",old_pplist,phonebook)
+        # old_pplist = {"01:860132060127124":"哈喽哈喽"}
+        if old_pplist != None:
+            if len(phonebook) > 0:
+                phonebook_keys = sorted(phonebook)
+                for i in range(len(phonebook)):
+                    value = phonebook_keys[i]
+                    if len(old_pplist) == 0:#如果为空就直接弹窗显示
+                        msg_tmp_data = value[3:]
+                        state = EventMesh.publish("get_enter_pp_page")
+                        if state != None:
+                            if state == 1: 
+                                EventMesh.publish("set_enter_pp_page",0)
+                                EventMesh.publish("load_screen", {"screen": "addpp_popup","meta":msg_tmp_data})
+                    else:#有好友就遍历不存在好友列表就认为是新得好友
+                        b = str(value) in old_pplist.keys()
+                        if b == False:#在旧得里面没找到则是新得
+                            if len(str(value)) > 0:
+                                msg_tmp_data = value[3:]
+                                state = EventMesh.publish("get_enter_pp_page")
+                                if state != None:
+                                    if state == 1: 
+                                        EventMesh.publish("set_enter_pp_page",0)
+                                        EventMesh.publish("load_screen", {"screen": "addpp_popup","meta":msg_tmp_data})
+                                break
+
         print("MFCODE_FRIEND:{}".format(phonebook))
         
 class factory_ProtoCol(ProtoCol):
@@ -1765,6 +1895,266 @@ class restart_ProtoCol(ProtoCol):
         EventMesh.publish(constants.PROTOCOL.RESET_SEND)
         Power.powerRestart()
 
+
+
+class TK_ProtoCol(ProtoCol):
+    """微聊"""
+    TYPE = "TK"
+    
+
+    def send(self, event, msg):
+        # print("TK send:{}".format(msg))
+        if len(str(msg)) == 1:
+
+            len_size = len(str(msg))+len("TKS,")
+            #  实例:[XT*334588000000156*0009*TK,1]
+            send_data = self.PID+"*%s*%04X*TKS"%(self.imei,len_size)
+            MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,len_size,"TKS")
+            MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+            data = "[%s%s,%d]"%(str(MD5_SIGN),send_data,msg)
+            print("TK:data:%s"%(data))
+            # 通过socket发送到服务器端
+            EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+        else:
+            # [SZKW*YYYYYYYYYYYYYYY*LEN*TK,AMR 格式音频数据]
+            #[XT*YYYYYYYYYYYYYYY*LEN*TKS,秒数(十进制),AMR 格式音频数据]
+            arm_data = msg[1]
+            arm_sec = msg[0]
+            # print("TK_ProtoCol:msgtype:{} arm_sec:{}".format(len(msg[1]),arm_sec))
+
+            arm = bytearray()
+            for i in range(len(arm_data)):
+                if arm_data[i] == 0x7d:
+                    arm.extend(b'\x7d\x01')
+                elif arm_data[i] == 0x5b :
+                    arm.extend(b'\x7d\x02')
+                elif arm_data[i] == 0x5d :
+                    arm.extend(b'\x7d\x03')
+                elif arm_data[i] == 0x2c :
+                    arm.extend(b'\x7d\x04')
+                elif arm_data[i] == 0x2a :
+                    arm.extend(b'\x7d\x05')
+                else :
+                    arm.append(arm_data[i])
+                
+            datalen = len(arm) + 4+len(str(arm_sec))+1
+            #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1))
+            send_data = bytearray(self.PID+"*%s*%04X*TKS,%d,"%(self.imei,datalen,arm_sec))
+            send_data.extend(arm)
+            MD5_head_data = self.PID+"*%s*%04X*%s"%(self.imei,datalen,"TKS")
+            MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+            data = bytearray('[')
+            data.extend(MD5_SIGN)
+            data.extend(send_data)
+            data.extend(']')
+            # print("TK:send data:%s MD5_head_data:%s"%(data,MD5_head_data))
+            EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+
+    def recv(self, event, msg):
+        """
+
+        ("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
+        @param event: 微聊
+        @param msg: 接收到的下行数据
+        [SZKW*860132060004322*20BD*TK,#!AMR...]
+        """
+        #Wechat_log("K_ProtoCol:recv:data:{}".format(msg))
+        # print("TK recv:{}".format(msg))
+        msg_tmp = msg.decode('ascii')
+        str = msg_tmp.split('TK,')
+        # Wechat_log("TK_ProtoCol:recv:len:{} {} {}".format(len(msg),len(str),msg_tmp.find("#!AMR")))
+        if  msg_tmp.find("#!AMR") != -1: #是否是服务器下发音频数据
+            # Wechat_log("TK_ProtoCol:recv:datalen{}".format(len(msg)))
+            arm_data = bytearray(str[1])#获取amr输出
+            get_wechat_data = EventMesh.publish("get_wechat_data")
+            
+            MXA_MSG = get_wechat_data[0]
+            wechat_recode_list = get_wechat_data[1]
+            wechat_num = wechat_recode_list["num"]
+            # Wechat_log("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
+            
+            if wechat_num >= MXA_MSG:
+                wechat_num = 0 
+            if wechat_num == 0:
+                wechat_num += 1 
+            elif wechat_num > 0:
+                wechat_num += 1 
+          
+
+            print("num_total:datalen:{} {}".format(MXA_MSG,wechat_recode_list))
+            wechat_recode_list["%02d"%(wechat_num)] = "R:{}".format(3)
+            wechat_recode_list['num'] = wechat_num
+            EventMesh.publish("set_wechat_data",[MXA_MSG,wechat_recode_list])
+            #写语音文件数据
+            screen_NAME = EventMesh.publish("get_screen_NAME")
+            get_lcd_state = EventMesh.publish("get_lcd_state")
+            if screen_NAME != "wechat" or get_lcd_state == 0:
+                EventMesh.publish("load_screen", {"screen": "wechat_popup"})
+            else:
+                EventMesh.publish("wechat_updata_list_show")
+            # path = "/ext/static/storage_file/audio_amr/amr/{}.wav".format(wechat_num)
+            path = "/usr/static/storage_file/{}.wav".format(wechat_num)
+            with open(path,"w") as fd:
+                arm = bytearray()
+                j = 0
+                for i in range(len(arm_data)):
+                    if arm_data[j] == 0x7d and arm_data[j+1] == 0x01:
+                        arm.extend(b'\x7d')
+                        j+=1
+                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x02:
+                        arm.extend(b'\x5b')
+                        j+=1
+                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x03:
+                        arm.extend(b'\x5d')
+                        j+=1
+                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x04:
+                        arm.extend(b'\x2c')
+                        j+=1
+                    elif arm_data[j] == 0x7d and arm_data[j+1] == 0x05:
+                        arm.extend(b'\x2a')
+                        j+=1
+                    else :
+                        arm.append(arm_data[j])
+                    j+=1
+                    if j >= len(arm_data):
+                        break
+                fd.write(arm)
+            EventMesh.publish(constants.PROTOCOL.TK_SEND,1)
+
+            
+            
+            
+
+class MESSAGE_ProtoCol(ProtoCol):
+    """微聊"""
+    TYPE = "MESSAGE"
+    
+
+    def send(self, event, msg):
+       
+        #[XT*334588000000156*0007*MESSAGE]
+        send_data = self.PID+"*%s*0007*MESSAGE"%(self.imei)
+        MD5_SIGN = self.pack_MD5_head(send_data)
+        data = "[%s%s]"%(str(MD5_SIGN),send_data)
+        #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data))
+        # 通过socket发送到服务器端
+        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+    def recv(self, event, msg):
+        """
+
+        @param event: 微聊文字
+        @param msg: 接收到的下行数据
+        """
+        msg = msg[1:-1]
+
+        msg_s = msg.decode('ascii')
+        msg_s = msg_s.split(',')
+        msg_s = msg_s[1]
+        # Wechat_log("msg_tmp:len:{}\r\n data:{}".format(len(msg_s),msg_s))
+        
+
+        get_wechat_data = EventMesh.publish("get_wechat_data")
+        
+        MXA_MSG = get_wechat_data[0]
+        wechat_recode_list = get_wechat_data[1]
+        wechat_num = wechat_recode_list["num"]
+        # Wechat_log("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
+        
+        if wechat_num >= MXA_MSG:
+            wechat_num = 0 
+        if wechat_num == 0:
+            wechat_num += 1 
+        elif wechat_num > 0:
+            wechat_num += 1 
+        msg_txt = {}
+        # 0 1 2 3
+        print("wechat_num:init {}".format(wechat_num))
+        msg_txt = UnicodeHexStr_To_Utf8Str(msg_s)
+        # Wechat_log("msg_txt:{}".format(msg_txt))
+        wechat_recode_list["%02d"%(wechat_num)] = "T:{}".format(msg_txt)
+        wechat_recode_list['num'] = wechat_num
+        EventMesh.publish("set_wechat_data",[MXA_MSG,wechat_recode_list])
+        # Wechat_log("wechat_recode_list:len data:{}".format(wechat_recode_list))
+        EventMesh.publish(constants.PROTOCOL.MESSAGE_SEND)
+        screen_NAME = EventMesh.publish("get_screen_NAME")
+        get_lcd_state = EventMesh.publish("get_lcd_state")
+        if screen_NAME != "wechat" or get_lcd_state == 0:
+            EventMesh.publish("load_screen", {"screen": "wechat_popup"})
+        else:
+            EventMesh.publish("wechat_updata_list_show")
+            
+
+
+
+            
+# [3G*860132060128253*14BB*appvoicemsg,1,yx_jh_128237,
+
+class APPVOICEMSG_ProtoCol(ProtoCol):#群聊语音
+    """群聊"""
+    TYPE = "appvoicemsg"
+    
+
+    def send(self, event, msg):
+        send_data = self.PID+"*%s*000b*appvoicemsg,%s,%s,%d"%(self.imei,msg[0],msg[1],1)
+        MD5_SIGN = self.pack_MD5_head(send_data)
+        data = "[%s%s]"%(str(MD5_SIGN),send_data)
+        print("POWEROFF_ProtoCol:send:%s"%(data))
+        # 通过socket发送到服务器端
+        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+    def recv(self, event, msg):
+        """
+
+        @param event: 微聊文字
+        @param msg: 接收到的下行数据
+        """
+        msg = msg[1:-1]
+
+        msg_s = msg.decode('ascii')
+        msg_s = msg_s.split(',')
+        msg_x  = msg_s[1] #0是单聊 1是群聊
+        msg_id  = msg_s[2] #用户ID
+
+        print("msg_x:{},msg_id:{}".format(msg_x,msg_id))
+
+
+        EventMesh.publish(constants.PROTOCOL.APPVOICEMSG_SEND,[msg_x,msg_id])
+
+# [CS*YYYYYYYYYY*LEN*srvtextmsg,x,用户id,文本信息]
+class srvtextmsg_ProtoCol(ProtoCol):#微聊文字
+    """群聊"""
+    TYPE = "srvtextmsg"
+    
+
+    def send(self, event, msg):
+        send_data = self.PID+"*%s*000a*srvtextmsg,%s,%s,%d"%(self.imei,msg[0],msg[1],1)
+        MD5_SIGN = self.pack_MD5_head(send_data)
+        data = "[%s%s]"%(str(MD5_SIGN),send_data)
+        print("POWEROFF_ProtoCol:send:%s"%(data))
+        # 通过socket发送到服务器端
+        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+    def recv(self, event, msg):
+        """
+
+        @param event: 微聊文字
+        @param msg: 接收到的下行数据
+        """
+        msg = msg[1:-1]
+
+        msg_s = msg.decode('ascii')
+        msg_s = msg_s.split(',')
+        msg_x  = msg_s[1]
+        msg_id  = msg_s[2]
+
+        print("msg_x:{},msg_id:{}".format(msg_x,msg_id))
+
+
+        EventMesh.publish(constants.PROTOCOL.SRVTEXTMSG_SEND,[msg_x,msg_id])
+
 class ProtoColResolver(object):
     def __init__(self):
         self.protocol_list = []
index 341c335..ce8a0a0 100644 (file)
@@ -313,6 +313,55 @@ phone_contact_btn = None
 phone_delete = None
 phone_delete_btn = None
 
+# create style style_screen_ta_1_main_main_default
+style_screen_phone_ta_1_main_main_default = lv.style_t()
+style_screen_phone_ta_1_main_main_default.init()
+style_screen_phone_ta_1_main_main_default.set_radius(0)
+style_screen_phone_ta_1_main_main_default.set_bg_color(lv.color_make(0x00,0x00,0x00))
+style_screen_phone_ta_1_main_main_default.set_bg_grad_color(lv.color_make(0xff,0xff,0xff))
+style_screen_phone_ta_1_main_main_default.set_bg_grad_dir(lv.GRAD_DIR.NONE)
+style_screen_phone_ta_1_main_main_default.set_bg_opa(255)
+style_screen_phone_ta_1_main_main_default.set_border_color(lv.color_make(0x00,0x00,0x00))
+style_screen_phone_ta_1_main_main_default.set_border_width(0)
+style_screen_phone_ta_1_main_main_default.set_border_opa(255)
+style_screen_phone_ta_1_main_main_default.set_text_color(lv.color_make(0xff,0xff,0xff))
+style_screen_phone_ta_1_main_main_default.set_text_letter_space(0)
+style_screen_phone_ta_1_main_main_default.set_text_align(lv.TEXT_ALIGN.CENTER)
+style_screen_phone_ta_1_main_main_default.set_pad_left(0)
+style_screen_phone_ta_1_main_main_default.set_pad_right(0)
+style_screen_phone_ta_1_main_main_default.set_pad_top(0)
+style_screen_phone_ta_1_main_main_default.set_pad_bottom(0)
+
+
+
+style_screen_phone_ta_1_main_scrollbar_default = lv.style_t()
+style_screen_phone_ta_1_main_scrollbar_default.init()
+style_screen_phone_ta_1_main_scrollbar_default.set_radius(0)
+style_screen_phone_ta_1_main_scrollbar_default.set_bg_color(lv.color_make(0x21,0x95,0xf6))
+style_screen_phone_ta_1_main_scrollbar_default.set_bg_grad_color(lv.color_make(0x21,0x95,0xf6))
+style_screen_phone_ta_1_main_scrollbar_default.set_bg_grad_dir(lv.GRAD_DIR.NONE)
+style_screen_phone_ta_1_main_scrollbar_default.set_bg_opa(255)
+
+style_screen_ta_1_main_main_focused = lv.style_t()
+style_screen_ta_1_main_main_focused.init()
+style_screen_ta_1_main_main_focused.set_radius(0)
+style_screen_ta_1_main_main_focused.set_bg_color(lv.color_make(0x00,0x00,0x00))
+style_screen_ta_1_main_main_focused.set_bg_grad_color(lv.color_make(0xff,0xff,0xff))
+style_screen_ta_1_main_main_focused.set_bg_grad_dir(lv.GRAD_DIR.NONE)
+style_screen_ta_1_main_main_focused.set_bg_opa(255)
+style_screen_ta_1_main_main_focused.set_border_color(lv.color_make(0x00,0x00,0x00))
+style_screen_ta_1_main_main_focused.set_border_width(0)
+style_screen_ta_1_main_main_focused.set_border_opa(255)
+style_screen_ta_1_main_main_focused.set_text_color(lv.color_make(0xff,0xff,0xff))
+style_screen_ta_1_main_main_focused.set_pad_left(0)
+style_screen_ta_1_main_main_focused.set_pad_right(0)
+style_screen_ta_1_main_main_focused.set_pad_top(0)
+style_screen_ta_1_main_main_focused.set_pad_bottom(0)
+
+
+
+
+
 class PhoneScreen(Screen):
     NAME = "Phone"
 
@@ -352,14 +401,35 @@ class PhoneScreen(Screen):
             # phone_line.set_size(2,18)
             # phone_line.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
             # phone_line.add_style(style_line,0)
-
-            phone_label = lv.label(phone_screen)
-            phone_label.set_pos(0, 5)
-            phone_label.set_size(128, 20)
-            phone_label.set_text(" ")
-            phone_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
-            phone_label.set_long_mode(lv.label.LONG.CLIP)
-            phone_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            phone_label = lv.textarea(phone_screen)
+            phone_label.set_one_line(True)  # 关闭1行模式
+            phone_label.set_size(128, 30)  # 设置宽高
+            phone_label.set_pos(0, 5)  # 设置宽高
+            # calculator_label.set_style_base_dir(lv.BASE_DIR.RTL,0)#LV_BASE_DIR_LTR
+            # phone_label.align(lv.ALIGN.CENTER,0,0)  # 设置位置LV_ALIGN_LEFT_MID CENTER LV_ALIGN_TOP_RIGHT
+            phone_label.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) #不显示滚动条
+            phone_label.set_cursor_click_pos(False)
+            phone_label.set_password_show_time(0)
+            phone_label.set_cursor_pos(0x7fff)
+            phone_label.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            # add style for screen_ta_1
+            phone_label.add_style(style_screen_ta_1_main_main_focused, lv.PART.MAIN|lv.STATE.FOCUSED)
+
+            # add style for screen_ta_1
+            phone_label.add_style(style_screen_phone_ta_1_main_scrollbar_default, lv.PART.SCROLLBAR|lv.STATE.DEFAULT)
+
+
+
+            # add style for screen_ta_1
+            phone_label.add_style(style_screen_phone_ta_1_main_main_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+            # phone_label = lv.label(phone_screen)
+            # phone_label.set_pos(0, 5)
+            # phone_label.set_size(128, 20)
+            # phone_label.set_text(" ")
+            # phone_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # phone_label.set_long_mode(lv.label.LONG.CLIP)
+            # phone_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 
             phone_one = lv.img(phone_screen)
             phone_one.set_src("U:/static/IMAGE_NUMBER_KEY1_ICON.png")
@@ -738,7 +808,7 @@ class PhoneScreen(Screen):
         #print("self.phone_num ",self.phone_num,self.phone_list)
         global phone_label
         phone_label.set_pos(0, 5)
-        phone_label.set_size(128, 20)
+        phone_label.set_size(128, 30)
         phone_label.set_text(self.phone_num)
     
     def lcd_on(self):
@@ -5689,7 +5759,7 @@ class CountdownEndScreen(Screen):
             self.meta = countdown_end_screen
         self.FIND_timer_count = 0
         EventMesh.publish("close_count_show_info")
-        self.FIND_timer.start(2000, 1, self.FIND_timer_cb)
+        self.FIND_timer.start(3000, 1, self.FIND_timer_cb)
         self.aud.play(1, 1, 'U:/static/R_VOLUME_SET_1.mp3')  #播放声音
 
     def FIND_timer_cb(self, *args):
@@ -7330,20 +7400,20 @@ print("up_show_screen")
 up_show_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 up_show_bg_img = lv.img(up_show_screen)#亮度
-up_show_bg_img.set_size(128, 128)
-up_show_bg_img.set_pos(0, 0)
+up_show_bg_img.set_size(61, 61)
+up_show_bg_img.set_pos(33, 40)
 up_show_bg_img.set_src("U:/static/up_show_step.png")
 up_show_bg_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 up_show_bg_img_label = lv.label(up_show_screen)
-up_show_bg_img_label.set_pos(0, 30)
+up_show_bg_img_label.set_pos(0, 10)
 up_show_bg_img_label.set_size(128, 20)
 up_show_bg_img_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-up_show_bg_img_label.set_text("今日步数")
+up_show_bg_img_label.set_text("计步")
 up_show_bg_img_label.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFAULT)
 
 up_show_bg_img_label1 = lv.label(up_show_screen)
-up_show_bg_img_label1.set_pos(0, 50)
+up_show_bg_img_label1.set_pos(0, 100)
 up_show_bg_img_label1.set_size(128, 20)
 up_show_bg_img_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 up_show_bg_img_label1.set_text("0")
@@ -8311,6 +8381,7 @@ class UI(object):
                                     EventMesh.publish("load_screen", {"screen": "class_time"}) 
                             
         if self.screen :
+            
             if self.screen.NAME == msg["screen"]:
                 return
         for scr in self.screen_list:
index 20b1634..10fb4fd 100644 (file)
@@ -309,7 +309,7 @@ class WatchFace1():
 
     def __battery(self, event, msg):
         #print("__battery_cb:",str(msg))
-        #print(msg)
+        print("__battery",msg)
         if msg[0] == '1':
             watchface1_res_stat_battery_line.set_pos(int(0),int(0))
             watchface1_res_stat_battery_line.set_size(0,0)
@@ -322,6 +322,8 @@ class WatchFace1():
             if level >= 99:
                 level = 100
             line_len = int(level*(20/100))
+            if line_len <= 5:
+                line_len = 5
             if level <= 5:
                 level = 5
 
@@ -334,7 +336,7 @@ class WatchFace1():
             watchface1_res_stat_battery_line.set_points(line_points, 2)
             watchface1_res_stat_battery_line.set_style_line_width(10,lv.PART.MAIN)
 
-            if line_len <= 3:
+            if line_len <= 5:
                 watchface1_res_stat_battery_line.set_style_line_color(lv.color_make(0xff,0x00,0x00),0)
             else:
                 watchface1_res_stat_battery_line.set_style_line_color(lv.color_make(0xff,0xff,0xff),0) 
@@ -372,299 +374,7 @@ class WatchFace1():
 
 
 
-Watchface2 = lv.obj(Watchface)
 
-Watchface2.set_size(128,128)
-#Watchface2.set_pos(0,0)
-Watchface2.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-Watchface2.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-#主图片
-watchface2_bg_img = lv.img(Watchface2)
-watchface2_bg_img.set_pos(int(0),int(0))
-watchface2_bg_img.set_size(128,128)
-watchface2_bg_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-watchface2_bg_img.add_flag(lv.obj.FLAG.CLICKABLE)
-watchface2_bg_img.set_src("U:/static/bg2.png")
-watchface2_bg_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-#状态栏
-
-
-
-watchface2_mpsignal_img = lv.img(Watchface2)
-watchface2_mpsignal_img.set_pos(int(10),int(5))
-watchface2_mpsignal_img.set_size(22,12)
-watchface2_mpsignal_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-watchface2_mpsignal_img.set_src("U:/static/mpsignal5.png")
-watchface2_mpsignal_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-watchface2_res_stat_battery_img = lv.img(Watchface2)
-watchface2_res_stat_battery_img.set_pos(int(102),int(5))
-watchface2_res_stat_battery_img.set_size(24,12)#16 8
-watchface2_res_stat_battery_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-watchface2_res_stat_battery_img.set_src("U:/static/vbat_0.png")
-watchface2_res_stat_battery_img.add_style(style_watchface_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-watchface2_res_stat_battery_line = lv.line(Watchface2)
-watchface2_res_stat_battery_line.set_points(power_line_points,2)
-watchface2_res_stat_battery_line.set_pos(int(110),int(6))
-watchface2_res_stat_battery_line.set_size(0,10)#高度12
-watchface2_res_stat_battery_line.add_style(power_line_red,0)
-
-
-
-watchface2_time1_text = lv.label(Watchface2)
-watchface2_time1_text.set_pos(0, 20)
-watchface2_time1_text.set_size(128, 50)
-watchface2_time1_text.set_style_text_align(lv.TEXT_ALIGN.CENTER,0)
-watchface2_time1_text.set_text("{}:{}".format("%02d"%(hour),"%02d"%(min)))
-# watchface1_time1_text.set_text("%02d:%02d"%(hour,min))
-watchface2_time1_text.add_style(style_font_youyuan_70_black, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-
-#日期
-watchface2_date_span = lv.label(Watchface2)
-watchface2_date_span.set_pos(5, 40)
-watchface2_date_span.set_size(50, 20)
-watchface2_date_span.set_align(lv.TEXT_ALIGN.LEFT)
-watchface2_date_span.set_text("%02d-%02d"%(date1,date2))
-watchface2_date_span.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFAULT)
-#星期
-watchface2_week_span = lv.label(Watchface2)
-watchface2_week_span.set_pos(60, 40)
-watchface2_week_span.set_size(20, 20)
-watchface2_week_span.set_align(lv.TEXT_ALIGN.LEFT)
-watchface2_week_span.set_text("周%s"%(get_week(week)))
-watchface2_week_span.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-#天气
-watchface2_weather_span = lv.label(Watchface2)
-watchface2_weather_span.set_pos(71, 80)
-watchface2_weather_span.set_size(30, 24)
-watchface2_weather_span.set_align(lv.TEXT_ALIGN.LEFT)
-watchface2_weather_span.set_text("_ _")
-watchface2_weather_span.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-watchface2_weather_img = lv.img(Watchface2)
-watchface2_weather_img.set_pos(110, 80)
-watchface2_weather_img.set_size(0, 0)
-watchface2_weather_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-watchface2_weather_unit_img = lv.img(Watchface2)
-watchface2_weather_unit_img.set_pos(116, 80)
-watchface2_weather_unit_img.set_size(11, 11)
-watchface2_weather_unit_img.set_src("U:/static/degree.png")
-watchface2_weather_unit_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-class WatchFace2():
-    NAME = "Watchface2"
-    # # #表盘1
-    def __init__(self,main_menu): 
-        print("Watchface1:__init__")
-        self.meta = Watchface2
-        Watchface2.set_parent(main_menu)#设置父控件
-        
-    def initialization(self,main_menu):   
-        print("Watchface1:initialization") 
-        
-        #获取信号
-        signal = EventMesh.publish("screen_get_sig")
-        if signal:
-            self.__signal(None, signal)
-        # 获取电池电量
-        battery = EventMesh.publish("screen_get_battery")
-        if battery:
-            self.__battery(None, battery)
-        time = EventMesh.publish("screen_get_time")
-        #print("publish_time:"+time)
-        if time:
-            self.__time(None, time)
-        hrValue = EventMesh.publish("get_old_hr_data")
-        if hrValue:
-            self.__oldHrValue(None, hrValue)
-
-        spo2Value = EventMesh.publish("get_old_spo2_data")
-        if spo2Value :
-            self.__oldSpo2Value(None, spo2Value)
-        # print("main get_step msg:{}".format(msg))
-        weather_data = EventMesh.publish("get_weather_data")
-        self.__weather(None,weather_data)
-        # step = EventMesh.publish(constants.EVENT.GET_STEP)
-        step = EventMesh.publish("get_old_step_value")
-        self.__stepValue(None, step)
-
-        
-    def timerout_update(self):
-        #获取信号
-        signal = EventMesh.publish("screen_get_sig")
-        if signal:
-            self.__signal(None, signal)
-        # 获取电池电量
-        battery = EventMesh.publish("screen_get_battery")
-        if battery:
-            self.__battery(None, battery)
-         
-        time = EventMesh.publish("screen_get_time")
-        #print("publish_time:"+time)
-        if time:
-            self.__time(None, time)
-
-        hrValue = EventMesh.publish("get_old_hr_data")
-        if hrValue:
-            self.__oldHrValue(None, hrValue)
-
-        spo2Value = EventMesh.publish("get_old_spo2_data")
-        if spo2Value :
-            self.__oldSpo2Value(None, spo2Value)
-        # print("main get_step msg:{}".format(msg))
-        # step = EventMesh.publish(constants.EVENT.GET_STEP)
-        step = EventMesh.publish("get_old_step_value")
-        self.__stepValue(None, step)
-
-        weather_data = EventMesh.publish("get_weather_data")
-        self.__weather(None,weather_data)
-
-    def __weather(self, event, msg):
-        print("weather_data",msg)
-        #时间
-        if msg != None:
-            #3 4
-            weather_type = msg[3]#天气类型
-            weather_temp = msg[4]#天气温度
-            print("weather_type weather_temp",type(weather_type),type(weather_temp),weather_type,weather_temp)
-            if weather_type != None and weather_temp != None:
-                if int(weather_type) > 3:
-                    watchface2_weather_unit_img.set_pos(70+12+10, 80)
-
-                    watchface2_weather_span.set_pos(70,70)
-                    watchface2_weather_span.set_text(str("_ _"))
-                    
-                    watchface2_weather_img.set_pos(70+12+8+20, 80)
-                    watchface2_weather_img.set_size(11, 10)
-                    watchface2_weather_img.set_src("U:/static/04_WM.png")
-
-
-                else:
-                    
-                    len_data = len(str(100))*8
-                    watchface2_weather_unit_img.set_pos(70+len_data+5, 80)
-                    watchface2_weather_span.set_pos(70,78)
-                    watchface2_weather_span.set_text(str(100))
-
-                    watchface2_weather_img.set_pos(70+len_data+6+15, 41)
-                    watchface2_weather_img.set_size(11, 10)
-                    watchface2_weather_img.set_src("U:/static/%02d_WM.png"%(int(weather_type)))
-
-            else:
-                watchface2_weather_unit_img.set_pos(70+12+10, 80)
-
-                watchface2_weather_span.set_pos(70,70)
-                watchface2_weather_span.set_text(str("_ _"))
-                
-                watchface2_weather_img.set_pos(70+12+8+20, 80)
-                watchface2_weather_img.set_size(11, 10)
-                watchface2_weather_img.set_src("U:/static/04_WM.png")
-
-
-        else:
-            watchface2_weather_unit_img.set_pos(70+12+10, 80)
-
-            watchface2_weather_span.set_pos(70,70)
-            watchface2_weather_span.set_text(str("_ _"))
-            
-            watchface2_weather_img.set_pos(70+12+8+20, 80)
-            watchface2_weather_img.set_size(11, 10)
-            watchface2_weather_img.set_src("U:/static/04_WM.png")
-
-
-    def __time(self, event, msg):
-        #时间
-        data = RTC().datetime()
-        hour = data[4]
-        min = data[5]
-
-        week = data[3]
-
-        date1 = data[1]
-        date2 = data[2]
-        watchface2_time1_text.set_text("{}:{}".format("%02d"%(hour),"%02d"%(min)))
-        # watchface1_time1_min.set_text("{}".format("%02d"%(min)))
-        watchface2_date_span.set_text("%02d-%02d"%(date1,date2))#日期
-        watchface2_week_span.set_text("周%s"%(get_week(week)))   #星期
-
-    def __signal(self, event, msg):
-        #print("__signal_cb:",str(msg))
-        # 信号强度值范围0 ~ 31,值越大表示信号强度越好
-        #print("__signal_cb:{}".format(msg//8))
-        if msg:
-            if msg >= 0 and msg<=31 :
-                watchface2_mpsignal_img.set_src("U:/static/mpsignal{}.png".format(msg//8+1))
-            else :
-                watchface2_mpsignal_img.set_src("U:/static/mpsignal5.png") 
-
-    def __battery(self, event, msg):
-        #print("__battery_cb:",str(msg))
-        #print(msg)
-        if msg[0] == '1':
-            watchface2_res_stat_battery_line.set_pos(int(0),int(0))
-            watchface2_res_stat_battery_line.set_size(0,0)
-            watchface2_res_stat_battery_line.set_style_line_width(0,lv.PART.MAIN)
-            watchface2_res_stat_battery_img.set_src("U:/static/charge_ing.png")
-            # watchface1_res_stat_charge_in_img.set_src("U:/static/charge_in.png")
-        else:
-            watchface2_res_stat_battery_img.set_src("U:/static/vbat_0.png")
-            level = msg[1]
-            if level >= 99:
-                level = 100
-            line_len = int(level*(20/100))
-            if level <= 5:
-                level = 5
-
-            line_points = [
-                   {"x":0, "y":0}, 
-                   {"x":line_len, "y":0}, 
-                         ]
-            watchface2_res_stat_battery_line.set_size(int(line_len),int(2))
-            watchface2_res_stat_battery_line.set_pos(int(103),int(11))
-            watchface2_res_stat_battery_line.set_points(line_points, 2)
-            watchface2_res_stat_battery_line.set_style_line_width(10,lv.PART.MAIN)
-
-            if line_len <= 3:
-                watchface2_res_stat_battery_line.set_style_line_color(lv.color_make(0xff,0x00,0x00),0)
-            else:
-                watchface2_res_stat_battery_line.set_style_line_color(lv.color_make(0xff,0xff,0xff),0) 
-
-    def __oldHrValue(self, event, msg):
-        pass
-        # watchface1_HB_span.set_text("120")
-    
-    def __oldSpo2Value(self, event, msg):
-        pass
-        # watchface1_SPO2_span.set_text(str(msg))
-
-    def __stepValue(self, event, msg):
-        if msg == None:    
-            pass
-            # watchface1_step_span.set_text("0")
-        else:
-            pass
-            # watchface1_step_span.set_text(str(msg))
-
-    def Close(self):
-        pass
-
-    def done_left_to_right(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-
-    def done_right_to_left(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-
-    def done_top_to_bottom(self):
-        EventMesh.publish("load_screen", {"screen": "popup"})
-
-    def done_bottom_to_top(self):
-        EventMesh.publish("load_screen", {"screen": "call_log"})
 
 
 class WatchFace():
@@ -686,7 +396,7 @@ class WatchFace():
     def initialization(self,main_menu):
         if self.watchface_list == [] : #第一次初始化
             self.watchface_list.append( WatchFace1(main_menu))
-            self.watchface_list.append( WatchFace2(main_menu))
+            # self.watchface_list.append( WatchFace2(main_menu))
         print("watchface INIT !!!!!!!!:",self.watchface_style_num)
         for wat in self.watchface_list:
             if wat.NAME == self.watchface_style_num :
index 1e8f966..2d97bd2 100644 (file)
@@ -131,7 +131,7 @@ MainMenu2_img_add_friends_txt.set_pos(int(0),int(100))
 MainMenu2_img_add_friends_txt.set_size(128,20)
 MainMenu2_img_add_friends_txt.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_add_friends_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-MainMenu2_img_add_friends_txt.set_text("加好友")
+MainMenu2_img_add_friends_txt.set_text("交友")
 MainMenu2_img_add_friends_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
 MainMenu2_num+=1
 MainMenu2x+=1
@@ -358,11 +358,12 @@ MainMenu2x+=1
 class MainMenuScreen(Screen):
     NAME = "main_menu"
     def __init__(self): 
+        self.is_sliding =0
         self.meta = MainMenu2
         self.watchface = WatchFace()
         self.menu_id = "0"
         print("MainMenu1:__init__")    
-        #MainMenu2_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event(e)),lv.EVENT.SCROLL_END,None)
+        # MainMenu2_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event(e)),lv.EVENT.ALL,None)
         #lv_obj_add_event_cb(lv_tabview_get_content(tabview), scroll_begin_event, LV_EVENT_SCROLL_END, NULL);
         MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "Phone")), lv.EVENT.CLICKED, None)
         MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.CLICKED, None)
@@ -375,12 +376,25 @@ class MainMenuScreen(Screen):
         MainMenu2_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "wechat")), lv.EVENT.CLICKED, None)
         # MainMenu2_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.CLICKED, None)
         #MainMenu2_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "popup")), lv.EVENT.CLICKED, None)
+
+        MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "Phone")), lv.EVENT.PRESSING, None)
+        MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.PRESSING, None)
+        MainMenu2_img_setting.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "setting")), lv.EVENT.PRESSING, None)
+        MainMenu2_img_add_friends.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "pp_main")), lv.EVENT.PRESSING, None)
+        # MainMenu2_img_camera_video.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera_video")), lv.EVENT.CLICKED, None)
+        # MainMenu2_img_camera.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera")), lv.EVENT.CLICKED, None)
+        # MainMenu2_img_camera_album.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera_album")), lv.EVENT.CLICKED, None)
+        MainMenu2_img_contacts.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "contacts")), lv.EVENT.PRESSING, None)
+        MainMenu2_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "wechat")), lv.EVENT.PRESSING, None)
+        # MainMenu2_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.CLICKED, None)
+        #MainMenu2_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "popup")), lv.EVENT.CLICKED, None)
         
 
         EventMesh.subscribe("watch_top_show", self.watch_top_show)
         EventMesh.subscribe("return_setiing", self.return_setiing)
         
     def initialization(self):
+        self.is_sliding = 0
         self.watchface.initialization(MainMenu2_Watchface)
         print("self.menu_id",self.menu_id)
         if self.menu_id =="0":
@@ -388,45 +402,58 @@ class MainMenuScreen(Screen):
         # if self.meta_info in globals() :
         #     MainMenu2_til.set_tile_id(self.meta_info[0],self.meta_info[1],lv.ANIM.OFF)    
         pass#
-    
     def scroll_begin_event(self, e):
-        print("MainMenu2:scroll_begin_event!")
-        MainMenu = e.get_target()
-        code = e.get_code()
-        if code == lv.EVENT.SCROLL_END:
-            pass
+        pass
+
+
     def watch_top_show(self, event, msg): #
         MainMenu2_til.set_tile_id(4,0,lv.ANIM.OFF)  
         
     def img_cb(self, e, msg):
-        state = EventMesh.publish("get_key_board", "key_board")
-        print("msg",type(msg),msg)
-        if state == 1:
-            # print("state11",state)
-            if msg == 'Phone':
-                # print("Phone",state)
-                EventMesh.publish("load_screen", {"screen": "keyboard_popup"})
-                pass
-            else:
-                if msg == "pp_main":
-                    if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#未联网提示关机
-                        EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
-                        return
+        code = e.get_code()
+
+        #print("code!!!!!!!!",code,msg)
+        if code == lv.EVENT.PRESSING:
+            #print("PRESSING")
+            self.is_sliding += 1
+
+        elif  code == lv.EVENT.CLICKED:
+            #utime.sleep_ms(10)
+            print("1self.is_sliding",self.is_sliding)
+            if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件
+                self.is_sliding =0
+                state = EventMesh.publish("get_key_board", "key_board")
+                print("msg",type(msg),msg)
+                if state == 1:
+                    # print("state11",state)
+                    if msg == 'Phone':
+                        # print("Phone",state)
+                        EventMesh.publish("load_screen", {"screen": "keyboard_popup"})
+                        pass
                     else:
-                        EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
+                        if msg == "pp_main":
+                            if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#未联网提示关机
+                                EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
+                                return
+                            else:
+                                EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
+                        else:
+                            EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
+                        
                 else:
-                    EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
+                    if msg == "pp_main":
+                        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#未联网提示关机
+                            EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
+                            return
+                        else:
+                            EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
+                    else:
+                        EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
+                print("MainMenu2:img_cb:{} {}".format(msg,type(msg)))
+                print("2self.is_sliding",self.is_sliding)
                 
-        else:
-            if msg == "pp_main":
-                if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#未联网提示关机
-                    EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
-                    return
-                else:
-                    EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
-            else:
-                EventMesh.publish("load_screen", {"screen": "{}".format(msg)})
-        print("MainMenu2:img_cb:{} {}".format(msg,type(msg)))
+            self.is_sliding =0
+        
         
         
     def lcd_on(self):
index 3fd8ed2..673a997 100644 (file)
Binary files a/2.sdk/project/K01/usr/static/R_VOLUME_SET_1.mp3 and b/2.sdk/project/K01/usr/static/R_VOLUME_SET_1.mp3 differ
index 1f4f6a3..ba111eb 100644 (file)
Binary files a/2.sdk/project/K01/usr/static/up_show_step.png and b/2.sdk/project/K01/usr/static/up_show_step.png differ