From: d15521469561 Date: Thu, 6 Apr 2023 02:51:10 +0000 (+0800) Subject: 添加字体文件 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=a06819639de5d05df9b18eaf16d187f54b05acbf;p=mirrors%2FASR1603_G5.git 添加字体文件 --- diff --git a/3.code/1.watch/2.code/constants.py b/3.code/1.watch/2.code/constants.py index f4e2ffc4..b84670d8 100644 --- a/3.code/1.watch/2.code/constants.py +++ b/3.code/1.watch/2.code/constants.py @@ -29,6 +29,9 @@ class PROTOCOL: MESSAGE_SEND = "MESSAGE_SEND" MESSAGE_RECV = "MESSAGE_RECV" + WT_SEND = "WT_SEND" + WT_RECV = "WT_RECV" + class EVENT: CHANNEL_SOCKET_SEND = "CHANNEL_SOCKET_SEND" diff --git a/3.code/1.watch/2.code/main_1.py b/3.code/1.watch/2.code/main_1.py index 56db1e62..e0e2efa1 100644 --- a/3.code/1.watch/2.code/main_1.py +++ b/3.code/1.watch/2.code/main_1.py @@ -56,7 +56,7 @@ if __name__ == '__main__': from ext.ui_main_menu import MainMenuScreen from ext.appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol import ext.ui_setting as _ui_setting - # from usr.test_sms import PhoneScreen + from usr.test_sms import WeatherScreen,WT_ProtoCol #from usr.ui_wechat import WechatScreen,TK_ProtoCol btn_device = BtnDevice(tp_cst816) @@ -74,7 +74,7 @@ if __name__ == '__main__': ui.add_screen(_ui.AlarmScreen()) ui.add_screen(_ui.CountdownScreen()) ui.add_screen(_ui.StopwatchScreen()) - ui.add_screen(_ui.WeatherScreen()) + ui.add_screen(WeatherScreen()) ui.add_screen(_ui.Spo2Screen()) ui.add_screen(_ui.TemperatureScreen()) ui.add_screen(_ui.ContactsScreen()) @@ -146,6 +146,7 @@ if __name__ == '__main__': pcr.add_support(PHL_ProtoCol()) pcr.add_support(TK_ProtoCol()) pcr.add_support(MESSAGE_ProtoCol()) + pcr.add_support(WT_ProtoCol()) sm = SockManager() sm.add_support_resolver(pcr) app.append_manager(sm) diff --git a/3.code/1.watch/2.code/mgr.py b/3.code/1.watch/2.code/mgr.py index 5651908c..683b0ad7 100644 --- a/3.code/1.watch/2.code/mgr.py +++ b/3.code/1.watch/2.code/mgr.py @@ -663,8 +663,9 @@ class DeviceInfoManager(Abstract): :return: HH:MM 格式 """ rtc_time = self.rtc.datetime() + print("rtc_time:{}".format(rtc_time)) date = ("%d月%d日" % (rtc_time[1], rtc_time[2])) - year = ("%o4d" % (rtc_time[0])) + year = ("%04då¹´" % (rtc_time[0])) week = ("星期%s"%(self.get_week(rtc_time[3]))) time = [rtc_time[4], rtc_time[5]] time_quantum = ("%s" % (self.get_time_bucket(rtc_time[4]))) diff --git a/3.code/1.watch/2.code/test_sms.py b/3.code/1.watch/2.code/test_sms.py index a9a31815..c7129e7f 100644 --- a/3.code/1.watch/2.code/test_sms.py +++ b/3.code/1.watch/2.code/test_sms.py @@ -17,389 +17,230 @@ import utime ######################拨号盘################################## -# -------------------------------------------phone screen---------------------------------------------------------- -phone_screen = lv.obj() -phone = lv.obj(phone_screen) -phone.center() -phone.set_size(240, 320) -phone.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) - - -line_points = [{"x":0,"y":0},{"x":0,"y":20}] -phone_line = lv.line(phone) -phone_line.set_points(line_points,2) -phone_line.set_pos(235,74) -phone_line.set_size(2,20) -phone_line.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) -phone_line.add_style(style_line,0) - -phone_label = lv.label(phone) -phone_label.set_pos(0, 76) -phone_label.set_size(0, 30) -phone_label.set_text(" ") -phone_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_label.set_long_mode(lv.label.LONG.CLIP) -phone_label.set_style_text_align(lv.TEXT_ALIGN.RIGHT, 0) - -phone_one = lv.img(phone) -phone_one.set_src("E:/static/IMAGE_NUMBER_KEY1_ICON.jpg") -phone_one.add_flag(lv.obj.FLAG.CLICKABLE) -phone_one.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_one.set_pos(3, 100) - -phone_two = lv.img(phone) -phone_two.set_size(76, 40) -phone_two.set_src("E:/static/IMAGE_NUMBER_KEY2_ICON.jpg") -phone_two.add_flag(lv.obj.FLAG.CLICKABLE) -phone_two.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_two.set_pos(82, 100) - -phone_three = lv.img(phone) -phone_three.set_size(76, 40) -phone_three.set_src("E:/static/IMAGE_NUMBER_KEY3_ICON.jpg") -phone_three.add_flag(lv.obj.FLAG.CLICKABLE) -phone_three.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_three.set_pos(161, 100) - -phone_four = lv.img(phone) -phone_four.set_size(76, 40) -phone_four.set_src("E:/static/IMAGE_NUMBER_KEY4_ICON.jpg") -phone_four.add_flag(lv.obj.FLAG.CLICKABLE) -phone_four.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_four.set_pos(3, 142) - -phone_five = lv.img(phone) -phone_five.set_size(76, 40) -phone_five.set_src("E:/static/IMAGE_NUMBER_KEY5_ICON.jpg") -phone_five.add_flag(lv.obj.FLAG.CLICKABLE) -phone_five.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_five.set_pos(82, 142) - -phone_six = lv.img(phone) -phone_six.set_size(76, 40) -phone_six.set_src("E:/static/IMAGE_NUMBER_KEY6_ICON.jpg") -phone_six.add_flag(lv.obj.FLAG.CLICKABLE) -phone_six.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_six.set_pos(161, 142) - -phone_seven = lv.img(phone) -phone_seven.set_size(76, 40) -phone_seven.set_src("E:/static/IMAGE_NUMBER_KEY7_ICON.jpg") -phone_seven.add_flag(lv.obj.FLAG.CLICKABLE) -phone_seven.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_seven.set_pos(3, 184) - -phone_eight = lv.img(phone) -phone_eight.set_size(76, 40) -phone_eight.set_src("E:/static/IMAGE_NUMBER_KEY8_ICON.jpg") -phone_eight.add_flag(lv.obj.FLAG.CLICKABLE) -phone_eight.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_eight.set_pos(82, 184) - -phone_nine = lv.img(phone) -phone_nine.set_size(76, 40) -phone_nine.set_src("E:/static/IMAGE_NUMBER_KEY9_ICON.jpg") -phone_nine.add_flag(lv.obj.FLAG.CLICKABLE) -phone_nine.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_nine.set_pos(161, 184) - -phone_start = lv.img(phone) -phone_start.set_size(76, 40) -phone_start.set_src("E:/static/IMAGE_NUMBER_KEYSTAR_ICON.jpg") -phone_start.add_flag(lv.obj.FLAG.CLICKABLE) -phone_start.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_start.set_pos(3, 226) - -phone_zero = lv.img(phone) -phone_zero.set_size(76, 40) -phone_zero.set_src("E:/static/IMAGE_NUMBER_KEY0_ICON.jpg") -phone_zero.add_flag(lv.obj.FLAG.CLICKABLE) -phone_zero.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_zero.set_pos(82, 226) - -phone_hash = lv.img(phone) -phone_hash.set_size(76, 40) -phone_hash.set_src("E:/static/IMAGE_NUMBER_KEYHASH_ICON.jpg") -phone_hash.add_flag(lv.obj.FLAG.CLICKABLE) -phone_hash.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_hash.set_pos(161, 226) - -phone_call = lv.img(phone) -phone_call.set_size(76, 40) -phone_call.set_src("E:/static/IMAGE_BUTTON_DIAL.jpg") -phone_call.add_flag(lv.obj.FLAG.CLICKABLE) -phone_call.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_call.set_pos(3, 268) - -phone_call_btn = lv.img(phone) -phone_call_btn.set_size(76, 52) -phone_call_btn.add_flag(lv.obj.FLAG.CLICKABLE) -phone_call_btn.set_pos(3, 268) - -phone_contact = lv.img(phone) -phone_contact.set_size(64, 40) -phone_contact.set_src("E:/static/IMAGE_BUTTON_DIAL_CONTACT.jpg") -phone_contact.add_flag(lv.obj.FLAG.CLICKABLE) -phone_contact.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_contact.set_pos(87, 268) - -phone_contact_btn = lv.img(phone) -phone_contact_btn.set_size(76, 52) -phone_contact_btn.add_flag(lv.obj.FLAG.CLICKABLE) -phone_contact_btn.set_pos(87, 268) - -phone_delete = lv.img(phone) -phone_delete.set_size(76, 40) -phone_delete.set_src("E:/static/IMAGE_BUTTON_DELKEY.jpg") -phone_delete.add_flag(lv.obj.FLAG.CLICKABLE) -phone_delete.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) -phone_delete.set_pos(161, 268) - -phone_delete_btn = lv.img(phone) -phone_delete_btn.set_size(76, 52) -phone_delete_btn.add_flag(lv.obj.FLAG.CLICKABLE) -phone_delete_btn.set_pos(161, 268) - -PHONE_CALL_MAX_DATA = 22 - -class PhoneScreen(Screen): - NAME = "Phone" +# -------------------------------------------血氧---------------------------------------------------------- + + +# spo2_screen = lv.obj() +# spo2 = lv.obj(spo2_screen) +# spo2.center() +# spo2.set_size(240, 320) +# spo2.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + +# spo2_label = lv.label(spo2) +# spo2_label.set_pos(0, 10) +# spo2_label.set_size(240, 40) +# spo2_label.set_text("血氧") +# spo2_label.set_long_mode(lv.label.LONG.WRAP) +# spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +# spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +# spo2_done_img = lv.img(spo2) +# spo2_done_img.set_pos(0, 50) +# spo2_done_img.set_size(240, 96) +# spo2_done_img.set_src("E:/static/IMAGE_SPO2_ONLY_TEST_DONE.jpg") + +# # spo2_finish_gif = lv.gif(spo2) +# # spo2_finish_gif.set_pos(0, 40) +# # spo2_finish_gif.set_size(240, 120) +# # #spo2_finish_img.add_flag(lv.obj.FLAG.CLICKABLE) +# # spo2_finish_gif.set_src("E:/static/IMAGE_SPO2_ONLY_ANI.gif") +# # #spo2_finish_gif.set_opa(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + +# spo2_label = lv.label(spo2) +# spo2_label.set_size(240,30) +# spo2_label.set_pos(0,160) +# spo2_label.set_text(" ") +# spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +# spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +# spo2_label_1 = lv.label(spo2) +# spo2_label_1.set_size(240,40) +# spo2_label_1.set_pos(0,200) +# spo2_label_1.set_text(" ") +# spo2_label_1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +# spo2_label_1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + + + +# line_points = [{"x":0,"y":0},{"x":240,"y":0}] +# spo2_line = lv.line(spo2) +# spo2_line.set_points(line_points,2) +# spo2_line.set_pos(0,240) +# spo2_line.set_size(240,10) +# spo2_line.add_style(style_line,0) + + + + +# spo2_last_time = lv.label(spo2) +# spo2_last_time.set_size(240, 15) +# spo2_last_time.set_pos(0, 250) +# spo2_last_time.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) +# spo2_last_time.set_text(" ") +# spo2_last_time.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + +# spo2_last_value = lv.label(spo2) +# spo2_last_value.set_size(240, 15) +# spo2_last_value.set_pos(0, 280) +# spo2_last_value.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) +# spo2_last_value.set_text(" ") +# spo2_last_value.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + + +# class Spo2Screen(Screen): +# NAME = "spo2" + +# def __init__(self): +# super().__init__() +# self.meta = spo2_screen +# self.timer = osTimer() +# self.point = 0 +# self.old_spo2_value = 0 +# self.spo2_value = 0 + +# def post_processor_after_initialization(self): +# self.point = 0 +# self.spo2_value = 0 +# self.timer.start(1*1000, 1, self.start_measure) + +# def start_measure(self,*args): +# self.point = self.point + 1 +# if self.point == 1: +# self.spo2_value = 96 +# spo2_label.set_text("96 %") +# spo2_label_1.set_text("测量中") + +# if self.point == 2: +# self.spo2_value = 97 +# spo2_label.set_text("97 %") +# spo2_label_1.set_text("测量中") + +# if self.point == 3: +# self.spo2_value = 98 +# spo2_label.set_text("98 %") +# spo2_label_1.set_text("测量中") + +# if self.point == 4: +# self.spo2_value = 99 +# spo2_label.set_text("99 %") +# spo2_label_1.set_text("测量完成") +# self.timer.stop() +# self.point = 0 +# self.old_spo2_value = self.spo2_value +# time = EventMesh.publish("screen_get_time")#获取系统时间 + +# # result = [time, time_quantum, date , week,year] + +# time_tmp = "{}:{}".format("%02d"%(time[0][0]),"%02d"%(time[0][1]))#时间 +# date_year = time[4]#年份 +# date_month = time[2]#日期 04月05日 +# print("date_year:{} date_month:{} time_tmp:{}".format(date_year,date_month,time_tmp)) +# spo2_last_time.set_text(str(date_year)+str(date_month)+" {}".format(str(time_tmp))) +# spo2_last_value.set_text(str(self.old_spo2_value)+'%') + +# def done_return(self): +# self.timer.stop() +# EventMesh.publish("load_screen", {"screen": "main_menu"}) + +# def btn1_release(self): +# EventMesh.publish("load_screen", {"screen": "watchface"}) +# self.timer.stop() + +# def btn8_press(self): +# EventMesh.publish("load_screen", {"screen": "watchface"}) +# self.timer.stop() + +#-------------------------------------weather-----------------# +weather_screen = lv.obj() +weather = lv.obj(weather_screen) +weather.center() +weather.set_size(240, 320) +weather.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + +weather_img = lv.img(weather) +weather_img.set_pos(10, 10) +weather_img.set_size(135, 120) + +weather_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + + +weather_tem_label = lv.label(weather) +weather_tem_label.set_pos(140, 40) +weather_tem_label.set_size(50, 50) +weather_tem_label.set_text("19°C") +weather_tem_label.set_long_mode(lv.label.LONG.WRAP) +weather_tem_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +weather_tem_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +weather_detail_label = lv.label(weather) +weather_detail_label.set_pos(140, 80) +weather_detail_label.set_size(50, 50) +weather_detail_label.set_text("01/30") +weather_detail_label.set_long_mode(lv.label.LONG.WRAP) +weather_detail_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +weather_detail_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +weather_location_label = lv.label(weather) +weather_location_label.set_pos(100, 200) +weather_location_label.set_size(80, 50) +weather_location_label.set_text("深圳市") +weather_location_label.set_long_mode(lv.label.LONG.WRAP) +weather_location_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +weather_location_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + + +class WeatherScreen(Screen): + NAME = "weather" def __init__(self): - super().__init__() - self.meta = phone_screen - self.phone_num = '' - self.phone_list = [] - self.button = 0 - self.timer = osTimer() - self.count = 0 - phone_one.add_event_cb(lambda e: self.one(e), - lv.EVENT.CLICKED, None) - phone_two.add_event_cb(lambda e: self.two(e), - lv.EVENT.CLICKED, None) - phone_three.add_event_cb(lambda e: self.three(e), - lv.EVENT.CLICKED, None) - phone_four.add_event_cb(lambda e: self.four(e), - lv.EVENT.CLICKED, None) - phone_five.add_event_cb(lambda e: self.five(e), - lv.EVENT.CLICKED, None) - phone_six.add_event_cb(lambda e: self.six(e), - lv.EVENT.CLICKED, None) - phone_seven.add_event_cb(lambda e: self.seven(e), - lv.EVENT.CLICKED, None) - phone_eight.add_event_cb(lambda e: self.eight(e), - lv.EVENT.CLICKED, None) - phone_nine.add_event_cb(lambda e: self.nine(e), - lv.EVENT.CLICKED, None) - phone_zero.add_event_cb(lambda e: self.zero(e), - lv.EVENT.CLICKED, None) - - phone_call_btn.add_event_cb(lambda e: self.call(e), - lv.EVENT.CLICKED, None) - phone_contact_btn.add_event_cb(lambda e: self.contact(e), - lv.EVENT.CLICKED, None) - phone_delete_btn.add_event_cb(lambda e: self.delete(e), - lv.EVENT.CLICKED, None) - - phone_start.add_event_cb(lambda e: self.start(e), - lv.EVENT.CLICKED, None)#短按显示* - - phone_start.add_event_cb(lambda e: self.pressed_start(e), - lv.EVENT.LONG_PRESSED, None)#长按显示+ - - phone_start.add_event_cb(lambda e: self.endpressed_start(e), - lv.EVENT.RELEASED, None)#释放按键 - + self.meta = weather_screen - phone_hash.add_event_cb(lambda e: self.hash(e), - lv.EVENT.CLICKED, None) - def post_processor_after_instantiation(self): - self.phone_num='' - self.phone_list = [] - - def initialization(self): - self.phone_num='' - self.phone_list = [] - self.count = 0 - phone_label.set_text(" ") - # print("self.phone_list :{} self.phone_num:{}".format(self.phone_list,self.phone_num)) - self.timer.start(1000,1,self.refresh_line) - - def refresh_line(self,e): + def post_processor_after_initialization(self): + EventMesh.publish(constants.PROTOCOL.WT_SEND) + #weather_img.set_src(name) - if self.count > 2 : - self.count = 1 - if (self.count%2) == 0: - phone_line.clear_flag(lv.obj.FLAG.HIDDEN) - else: - phone_line.add_flag(lv.obj.FLAG.HIDDEN) - self.count+=1 - def one(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("1") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def two(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("2") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def three(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("3") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def four(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("4") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def five(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("5") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def six(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("6") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def seven(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("7") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def eight(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("8") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def nine(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA: - return - self.phone_list.append("9") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def zero(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字 - return - self.phone_list.append("0") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def start(self,e): - self.button = 0 - - def pressed_start(self,e): - self.button = 1 - - def endpressed_start(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字 - return - - if self.button == 1:#长按 - self.phone_list.append("+") - else:#短按 - self.phone_list.append("*") - - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def hash(self,e): - if len(self.phone_list) >= PHONE_CALL_MAX_DATA:#限制拨号数量20个数字 - return - self.phone_list.append("#") - self.phone_num = ''.join(self.phone_list) - self.show_num() - - - def delete(self,e): - if len(self.phone_list) != 0: - self.phone_list.pop() - self.phone_num = ''.join(self.phone_list) - self.show_num() - - def contact(self,e): - EventMesh.publish("load_screen", {"screen": "contacts"}) - - def call(self,e): - self.name = None - self.phonebook = {} - self.number_tmp = {} - if len(self.phone_list) != 0: - data = EventMesh.publish("get_phonebook_list") - check = data[0] - self.phonebook = data[1] - # print("check :{}".format(check)) - if check == 1:#检查通讯录 - phonebook_keys = sorted(self.phonebook.keys()) - b = str(self.phone_num) in self.phonebook.values()#查找key中是否包含content电话号码 True 包含在里面 False不包含在里面 - j = 0 - if b == True: - for i in range(len(self.phonebook)): #字典 key value - #'001:张三':15521469561 - name = self.phonebook[phonebook_keys[j]] - name_value = phonebook_keys[j] - number_tmp = str(self.phone_num) - # print("name :{} number_tmp:{}".format(name,number_tmp)) - if name.find(number_tmp) != -1:#查找电话号码是否在通讯录里面 - number_f= name_value - name_s = number_f.split(':') - name_s = name_s[1] - self.name = name_s - break - j+=1 - else: - self.name = self.phone_num - else: - self.name = self.phone_num - - EventMesh.publish("save_phonenum",self.phone_num) - EventMesh.publish("save_phonename",self.name)# - voiceCall.callStart(self.phone_num) - - def show_num(self): - len_t = len(self.phone_list)*20 - if len_t > 230: - len_t = 230 - phone_label.set_size(len_t,30) - phone_label.set_pos(230-len_t,76) - phone_label.set_text(self.phone_num) def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("load_screen", {"screen": "toolbox"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "watchface"}) - + def btn8_press(self): EventMesh.publish("load_screen", {"screen": "watchface"}) +class WT_ProtoCol(ProtoCol): + """温度数据""" + TYPE = "WT" + def send(self, event, msg): + # [SZKW*867387060319491*0008*PHL] + send_data = "SZKW*%s*0003*WT"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + print("WT_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] + print("WT_ProtoCol RECV msg:%s"%(msg)) + # UnicodeHexStr_To_Utf8Str(phonebook_tmp) + + + # EventMesh.publish(constants.PROTOCOL.WT_SEND) + # EventMesh.publish("set_phonebook_list",[1,phonebook]) + # EventMesh.publish("contact_updata_list_show") diff --git a/3.code/1.watch/2.code/ui.py b/3.code/1.watch/2.code/ui.py index 0fa243f8..9e94bcda 100644 --- a/3.code/1.watch/2.code/ui.py +++ b/3.code/1.watch/2.code/ui.py @@ -701,72 +701,7 @@ temperature_wrist_value_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv # temperature_notice_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) # temperature_notice_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) -# -------------------------------------------spo2 screen---------------------------------------------------------- -spo2_screen = lv.obj() -spo2 = lv.obj(spo2_screen) -spo2.center() -spo2.set_size(240, 320) -spo2.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) -spo2_label = lv.label(spo2) -spo2_label.set_pos(0, 10) -spo2_label.set_size(240, 40) -spo2_label.set_text("血氧") -spo2_label.set_long_mode(lv.label.LONG.WRAP) -spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) -spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - -spo2_done_img = lv.img(spo2) -spo2_done_img.set_pos(0, 50) -spo2_done_img.set_size(240, 96) -spo2_done_img.set_src("E:/static/IMAGE_SPO2_ONLY_TEST_DONE.jpg") - -# spo2_finish_gif = lv.gif(spo2) -# spo2_finish_gif.set_pos(0, 40) -# spo2_finish_gif.set_size(240, 120) -# #spo2_finish_img.add_flag(lv.obj.FLAG.CLICKABLE) -# spo2_finish_gif.set_src("E:/static/IMAGE_SPO2_ONLY_ANI.gif") -# #spo2_finish_gif.set_opa(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) - -spo2_label = lv.label(spo2) -spo2_label.set_size(240,30) -spo2_label.set_pos(0,160) -spo2_label.set_text(" ") -spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) -spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - -spo2_label_1 = lv.label(spo2) -spo2_label_1.set_size(240,40) -spo2_label_1.set_pos(0,200) -spo2_label_1.set_text(" ") -spo2_label_1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) -spo2_label_1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - - - -line_points = [{"x":0,"y":0},{"x":240,"y":0}] -spo2_line = lv.line(spo2) -spo2_line.set_points(line_points,2) -spo2_line.set_pos(0,240) -spo2_line.set_size(240,10) -spo2_line.add_style(style_line,0) - - - - -spo2_last_time = lv.label(spo2) -spo2_last_time.set_size(240, 15) -spo2_last_time.set_pos(0, 250) -spo2_last_time.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) -spo2_last_time.set_text(" ") -spo2_last_time.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) - -spo2_last_value = lv.label(spo2) -spo2_last_value.set_size(240, 15) -spo2_last_value.set_pos(0, 280) -spo2_last_value.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) -spo2_last_value.set_text("96%") -spo2_last_value.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) @@ -2442,6 +2377,73 @@ class TemperatureScreen(Screen): EventMesh.publish("load_screen", {"screen": "watchface"}) +spo2_screen = lv.obj() +spo2 = lv.obj(spo2_screen) +spo2.center() +spo2.set_size(240, 320) +spo2.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + +spo2_label = lv.label(spo2) +spo2_label.set_pos(0, 10) +spo2_label.set_size(240, 40) +spo2_label.set_text("血氧") +spo2_label.set_long_mode(lv.label.LONG.WRAP) +spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +spo2_done_img = lv.img(spo2) +spo2_done_img.set_pos(0, 50) +spo2_done_img.set_size(240, 96) +spo2_done_img.set_src("E:/static/IMAGE_SPO2_ONLY_TEST_DONE.jpg") + +# spo2_finish_gif = lv.gif(spo2) +# spo2_finish_gif.set_pos(0, 40) +# spo2_finish_gif.set_size(240, 120) +# #spo2_finish_img.add_flag(lv.obj.FLAG.CLICKABLE) +# spo2_finish_gif.set_src("E:/static/IMAGE_SPO2_ONLY_ANI.gif") +# #spo2_finish_gif.set_opa(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + +spo2_label = lv.label(spo2) +spo2_label.set_size(240,30) +spo2_label.set_pos(0,160) +spo2_label.set_text(" ") +spo2_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +spo2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + +spo2_label_1 = lv.label(spo2) +spo2_label_1.set_size(240,40) +spo2_label_1.set_pos(0,200) +spo2_label_1.set_text(" ") +spo2_label_1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) +spo2_label_1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + + + +line_points = [{"x":0,"y":0},{"x":240,"y":0}] +spo2_line = lv.line(spo2) +spo2_line.set_points(line_points,2) +spo2_line.set_pos(0,240) +spo2_line.set_size(240,10) +spo2_line.add_style(style_line,0) + + + + +spo2_last_time = lv.label(spo2) +spo2_last_time.set_size(240, 15) +spo2_last_time.set_pos(0, 250) +spo2_last_time.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) +spo2_last_time.set_text(" ") +spo2_last_time.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + +spo2_last_value = lv.label(spo2) +spo2_last_value.set_size(240, 15) +spo2_last_value.set_pos(0, 280) +spo2_last_value.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) +spo2_last_value.set_text(" ") +spo2_last_value.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + + class Spo2Screen(Screen): NAME = "spo2" @@ -2466,20 +2468,32 @@ class Spo2Screen(Screen): spo2_label_1.set_text("测量中") if self.point == 2: + self.spo2_value = 97 spo2_label.set_text("97 %") spo2_label_1.set_text("测量中") if self.point == 3: + self.spo2_value = 98 spo2_label.set_text("98 %") spo2_label_1.set_text("测量中") if self.point == 4: + self.spo2_value = 99 spo2_label.set_text("99 %") spo2_label_1.set_text("测量完成") self.timer.stop() self.point = 0 self.old_spo2_value = self.spo2_value - # spo2_last_time.set_text() + time = EventMesh.publish("screen_get_time")#获取系统时间 + + # result = [time, time_quantum, date , week,year] + + time_tmp = "{}:{}".format("%02d"%(time[0][0]),"%02d"%(time[0][1]))#时间 + date_year = time[4]#年份 + date_month = time[2]#日期 04月05日 + print("date_year:{} date_month:{} time_tmp:{}".format(date_year,date_month,time_tmp)) + spo2_last_time.set_text(str(date_year)+str(date_month)+" {}".format(str(time_tmp))) + spo2_last_value.set_text(str(self.old_spo2_value)+'%') def done_return(self): self.timer.stop() @@ -2493,6 +2507,8 @@ class Spo2Screen(Screen): EventMesh.publish("load_screen", {"screen": "watchface"}) self.timer.stop() + + class CountdownScreen(Screen): NAME = "countdown" diff --git a/3.code/1.watch/3.font/ext_font.bin b/3.code/1.watch/3.font/ext_font.bin new file mode 100644 index 00000000..03a39135 Binary files /dev/null and b/3.code/1.watch/3.font/ext_font.bin differ diff --git a/3.code/1.watch/3.font/font_bin_merge.py b/3.code/1.watch/3.font/font_bin_merge.py new file mode 100644 index 00000000..05db77bf --- /dev/null +++ b/3.code/1.watch/3.font/font_bin_merge.py @@ -0,0 +1,46 @@ +from struct import * + + +def bin_create(*args): + if len(args) < 1: + print("wrong params number!") + return -1 + # bin header :one byte for font_num, font_num bytes for bin_size + # 大端1,小端2 + # endian = input("输入大小端:") + with open("ext_font.bin","wb") as dest_file: + # start + start = "s" + end = "e" + + font_num = len(args) + bin_data = [] + bin_size = [] + font_name = "" + + for i in range(font_num): + with open(args[i], "rb") as bin_file: + data = bin_file.read() + padding = "\0" * (128 - len(args[i])) + string_padded = args[i] + padding + font_name += string_padded + bin_size.append(len(data)) + bin_data.append(data) + + # # 大端 + # if endian == "1": + # write_data = pack(">B%ds%dI"% (font_num*128, font_num), font_num, font_name.encode(), *bin_size) + # # 小端 + # else: + write_data = pack("