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())
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):
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 #菜单界面图片的大小
################################################################################################################
+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)
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"
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"
###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)
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)
# 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)
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)
# -------------------------------------------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)
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)
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)
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"})
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()
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
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):
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
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:
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
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
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()
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()
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")#
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)
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:
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")#设置参数
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
close_led_red()
close_led_green()
close_led_white()
- print("close led!!!")
+ # print("close led!!!")
def led_test_fun_cb(self, data):
return
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]
class deleteSmsManager(Abstract):#删除信息
def __init__(self):
+ self.timer = osTimer()
pass
def post_processor_after_instantiation(self):
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):
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])
# 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")#
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:
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])))
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")
-
-
-
-
-
-
-
-
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 = [
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)
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
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 : #保留小数点失败
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
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 == "+" : # 如果是符号,就运算
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
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)
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)
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)
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)
# 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:
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"
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"
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
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
# 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()))
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()) \
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()))
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())
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"})
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
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)
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()
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):
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 = {}
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
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"})
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
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)
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("正在加载好友中,请稍候...")
#_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)
#_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)
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)})
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:
#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
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")
if screen_NAME == "pp_popup":
EventMesh.publish("load_screen", {"screen": "addfailepp_popup"})
def Close(self):
+
self.timer.stop()
def done_return(self):
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
addedppPopup_call_label = lv.label(addedppPopup_screen)
addedppPopup_call_label.set_pos(0, 54)
addedppPopup_call_label.set_size(LCD_X-0, 50)
- addedppPopup_call_label.set_text("对æ\96¹å·²å\8a è¿\87好友了")
+ addedppPopup_call_label.set_text("å·²ç»\8fæ\98¯好友了")
addedppPopup_call_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
addedppPopup_call_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
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()
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):
"""获取绑定状态"""
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)
@param msg: 接收到的下行数据
"""
# b'[SZKW*867387060319166*000A*KEYBRD]'
- print("PP!!!!!!!!!!!!!",msg)
+ # print("ppfriends_match!!!!!!!!!!!!!",msg)
msg = msg[1:-1]
msg_tmp = msg.decode('ascii')
"""删除碰碰交友"""
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 != ""):
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)
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)
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)
"""
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:]
# 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):
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 = []
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"
# 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")
#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):
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):
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")
EventMesh.publish("load_screen", {"screen": "class_time"})
if self.screen :
+
if self.screen.NAME == msg["screen"]:
return
for scr in self.screen_list:
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)
if level >= 99:
level = 100
line_len = int(level*(20/100))
+ if line_len <= 5:
+ line_len = 5
if level <= 5:
level = 5
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)
-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():
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 :
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
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)
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":
# 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):