From: dxy15521469561 <1731678236@qq.com> Date: Fri, 10 Nov 2023 06:32:18 +0000 (+0800) Subject: K01: X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=c5bd033e890abaf4cb8aefdf4336a83d5ecd1dc5;p=mirrors%2FASR1603_G5.git K01: ui界面优化 C06S: ui界面优化 --- diff --git a/2.sdk/project/C06S/ext/static/health/health_hr.png b/2.sdk/project/C06S/ext/static/health/health_hr.png index 2991b9eb..0e6d29bb 100644 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 diff --git a/2.sdk/project/C06S/ext/static/health/health_spo2.png b/2.sdk/project/C06S/ext/static/health/health_spo2.png index 6ed64bdb..e7b2e9ab 100644 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 diff --git a/2.sdk/project/C06S/ext/static/health/health_temp.png b/2.sdk/project/C06S/ext/static/health/health_temp.png index c1753f4d..c4cf6332 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_app_qrcode.png b/2.sdk/project/C06S/ext/static/setting/menu_app_qrcode.png index 481a73c7..6c5055da 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_bright.png b/2.sdk/project/C06S/ext/static/setting/menu_bright.png index 38139bd6..6ece4597 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_imei_qrcode.png b/2.sdk/project/C06S/ext/static/setting/menu_imei_qrcode.png index 58ac59b8..90029c56 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_language.png b/2.sdk/project/C06S/ext/static/setting/menu_language.png index fe4a914c..4648adf5 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_poweroff.png b/2.sdk/project/C06S/ext/static/setting/menu_poweroff.png index c29543fb..d9c389fd 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_restore.png b/2.sdk/project/C06S/ext/static/setting/menu_restore.png index 8e022fd4..04bc1fba 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_theme_switch.png b/2.sdk/project/C06S/ext/static/setting/menu_theme_switch.png index 71184638..ebbb3c23 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_upgrade.png b/2.sdk/project/C06S/ext/static/setting/menu_upgrade.png index 6265c244..4b5812fe 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_version.png b/2.sdk/project/C06S/ext/static/setting/menu_version.png index 06275de9..8ece3f51 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_volume.png b/2.sdk/project/C06S/ext/static/setting/menu_volume.png index 5cd1b70d..79f77887 100644 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 diff --git a/2.sdk/project/C06S/ext/static/setting/menu_watch_switch.png b/2.sdk/project/C06S/ext/static/setting/menu_watch_switch.png index 4ffd0d1a..b6a01fc3 100644 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 diff --git a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_ALARM.png b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_ALARM.png index 99906c4a..dc0a8c53 100644 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 diff --git a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_COUNTDOWN.png b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_COUNTDOWN.png index a1118ab7..817e227d 100644 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 diff --git a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STEP.png b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STEP.png index 42ddf280..9f3a4bf6 100644 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 diff --git a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STOPWATCH.png b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_STOPWATCH.png index 2f78419c..a1a04927 100644 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 diff --git a/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_WEATHER.png b/2.sdk/project/C06S/ext/static/tool/IMAGE_SECMENU_WEATHER.png index 900b5ac4..0d9b2442 100644 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 diff --git a/2.sdk/project/C06S/ext/static/tool/sms_setting.png b/2.sdk/project/C06S/ext/static/tool/sms_setting.png index a8d042c0..7ff5771e 100644 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 diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py index 90f7a3c7..4b45208c 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py @@ -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()) diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py index 7c9271d9..84059e2e 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py @@ -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): diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_main_menu.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_main_menu.py index d570acce..d641f716 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_main_menu.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_main_menu.py @@ -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) diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_setting.py index fd729818..0aae0b55 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -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 index 00000000..ad9e633c 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 index 00000000..0443c24b 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 index 00000000..36aa56dc 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 index 00000000..61198675 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 index 00000000..19439872 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 index 00000000..4a09abf2 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 index 00000000..dea88574 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 index 00000000..97539b35 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 index 00000000..3a75c878 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 index 00000000..ad173206 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 index 00000000..a4202856 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 index 00000000..dbc4f5eb 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 index 00000000..93947f80 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\346\214\211\351\224\256\345\256\232\344\271\211.doc" "b/2.sdk/project/D10/D10\346\214\211\351\224\256\345\256\232\344\271\211.doc" new file mode 100644 index 00000000..1ef1c0f3 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 index 00000000..7159643f 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 index 5ef7a933..00000000 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 index 00000000..673a9977 Binary files /dev/null and b/2.sdk/project/D10/audio/audio_find_haixiu.mp3 differ diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py index c3cd4fd6..2e3a7b3a 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py @@ -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")#设置参数 diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py index 1485da3a..1c9f4b74 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py @@ -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 diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py index 2e09fea5..182cac92 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py @@ -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]) diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py index a92f7163..f566b734 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py @@ -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")# diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py index c31b85b0..7517b23d 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py @@ -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: diff --git a/2.sdk/project/D10/usr/static/audio.bin b/2.sdk/project/D10/usr/static/audio.bin index c4c3aaae..7159643f 100644 Binary files a/2.sdk/project/D10/usr/static/audio.bin and b/2.sdk/project/D10/usr/static/audio.bin differ diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py index 2045fdcd..48cab250 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py @@ -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]))) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py index 9160e3cc..eb5ec846 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py @@ -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") - - - - - - - - diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py index 94cd22ae..bcab2519 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py @@ -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: diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py index e4541a36..931560b3 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py @@ -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" diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py index 5289a66e..2e480886 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py @@ -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"}) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py index e396d5df..92cc0cf3 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py @@ -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 = {} diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py index 228b7c47..bf6e93c2 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py @@ -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("对方已加过好友了") + addedppPopup_call_label.set_text("已经是好友了") 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) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py index 361f9b5c..c7b0bcc2 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py @@ -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 = [] diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py index 341c335b..ce8a0a0d 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py @@ -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: diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py index 20b1634c..10fb4fd6 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py @@ -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 : diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py index 1e8f9665..2d97bd26 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py @@ -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): diff --git a/2.sdk/project/K01/usr/static/R_VOLUME_SET_1.mp3 b/2.sdk/project/K01/usr/static/R_VOLUME_SET_1.mp3 index 3fd8ed2c..673a9977 100644 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 diff --git a/2.sdk/project/K01/usr/static/up_show_step.png b/2.sdk/project/K01/usr/static/up_show_step.png index 1f4f6a31..ba111ebf 100644 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