From: @CHENG <2393524978@qq.com> Date: Wed, 19 Jun 2024 08:46:42 +0000 (+0800) Subject: gengxin X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=81092ffc22b2a8023bd0e3f6451fa5be5d50f420;p=mirrors%2FASR3603_Z5_DS.git gengxin --- diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.c b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.c index c826b5ac..ddb3cdb1 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.c @@ -106,6 +106,21 @@ static void dial_update_display(lv_obj_t * clock_cont) #endif } + else + { + #ifdef __MMI_DIAL_WITH_SIGNAL_SUPPORT__ + if(0 == (clock_ext->sec % 10)) + { + dial_clean_canvas(false); + uint8_t i = 0; + for(i = ELEMENT_TYPE_MAX - 2; i > ELEMENT_TYPE_INVILID; i--) + { + dial_update_element(watch_dial, i); + } + } + #endif + } + #if DIAL_USE_CANVAS == 0 dial_update_element(watch_dial, ELEMENT_TYPE_TIME_HAND); dial_update_element(watch_dial, ELEMENT_TYPE_TIME_DIGIT);//update every 1 sec diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.h b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.h index 2771ad72..926cef73 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.h @@ -147,6 +147,7 @@ enum { IMG_TYPE_BATTERY_UNIT, //103 IMG_TYPE_BATTERY_PERCENT, //104 IMG_TYPE_BATTERY_SIGN, //105 + IMG_TYPE_BATTERY_CHARGE, //106 IMG_TYPE_SLEEP_QUALITY = ELEMENT_TYPE_SLEEP_QUALITY * 10,//110 IMG_TYPE_SLEEP_QUALITY_VALUE,//111 @@ -172,6 +173,8 @@ enum { IMG_TYPE_USER_PNG = ELEMENT_TYPE_USER * 10, // display a static image + IMG_TYPE_SIGNAL = ELEMENT_TYPE_SIGNAL *10, + IMG_TYPE_BG = ELEMENT_TYPE_BG_SWITCH * 10, //150 }; typedef uint8_t watch_img_type_t; @@ -207,6 +210,8 @@ enum { LABEL_TYPE_LUNAR , //27 LABEL_TYPE_SIGNAL_NUMBER_PERCENT, // 28 LABEL_TYPE_BATTERY_NUMBER_PERCENT, // 29 + LABEL_TYPE_SIGNAL, // 30 + LABEL_TYPE_SIGNAL_REGISTER_STATE, // 31 }; typedef uint8_t watch_label_type_t; diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c index d0562dea..ccb4765b 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c @@ -512,6 +512,8 @@ static void dial_update_canvas_label(watch_element_base_t * base) nv_watch_health_info_t health_info = {0}; lv_point_t pos; + _lv_memset_00(infotxt, len); + if(ELEMENT_TYPE_WEEK == base->element_type || ELEMENT_TYPE_DATE == base->element_type || ELEMENT_TYPE_TIME_DIGIT == base->element_type || ELEMENT_TYPE_AM_PM == base->element_type) { Hal_Rtc_Gettime(&tm); @@ -668,6 +670,68 @@ static void dial_update_canvas_label(watch_element_base_t * base) snprintf(infotxt, len, "%d%%", Hal_Battery_Get_Status()); dial_create_canvas_text(infotxt, label_dsc->label_font, label_dsc->text_color, pos.x + label_dsc->text_pos.x, pos.y + label_dsc->text_pos.y); break; + + case LABEL_TYPE_SIGNAL: + #ifdef __MMI_DIAL_WITH_SIGNAL_SUPPORT__ + if(true == watch_modem_sim_present_check_req()) + { + MMI_MODEM_PLMN_RAT rat; + watch_modem_get_operator_req(&rat); + + /* 2G/4G icon */ + if(MMI_MODEM_PLMN_RAT_LTE == rat) + { + #if defined(MMI_PROJECT_Z5_DS_Z12_COMMON) || defined(MMI_PROJECT_Z5_DS_Z11_COMMON) + sprintf(infotxt, "5G"); + #else + sprintf(infotxt, "4G"); + #endif + } + else if(MMI_MODEM_PLMN_RAT_UMTS == rat) + sprintf(infotxt, "3G"); + else if(MMI_MODEM_PLMN_RAT_GSM == rat) + sprintf(infotxt, "2G"); + } + dial_create_canvas_text(infotxt, label_dsc->label_font, label_dsc->text_color, pos.x + label_dsc->text_pos.x, pos.y + label_dsc->text_pos.y); + #endif + break; + + case LABEL_TYPE_SIGNAL_REGISTER_STATE: + #ifdef __MMI_DIAL_WITH_SIGNAL_SUPPORT__ + if(true == watch_modem_sim_present_check_req()) + { + MMI_MODEM_PLMN_RAT rat; + watch_modem_get_operator_req(&rat); + + if(MMI_MODEM_PLMN_RAT_LTE == rat) + { + /* IMS register state */ + uint8_t ims_reg_state = watch_modem_get_ims_reg_state_req(); + if(1 == ims_reg_state) + sprintf(infotxt, "HD"); + } + else if(MMI_MODEM_PLMN_RAT_UMTS == rat) + { + /* UMTS register state */ + uint8_t umts_reg_state = watch_modem_get_umts_reg_state_req(); + if(0 == umts_reg_state) + sprintf(infotxt, "W"); + else if(1 == umts_reg_state) + sprintf(infotxt, "TD"); + else if(2 == umts_reg_state) + sprintf(infotxt, "H"); + } + else if(MMI_MODEM_PLMN_RAT_GSM == rat) + { + /* GSM register state */ + uint8_t gsm_reg_state = watch_modem_get_gsm_reg_state_req(); + if(1 == gsm_reg_state) + sprintf(infotxt, "E"); + } + } + dial_create_canvas_text(infotxt, label_dsc->label_font, label_dsc->text_color, pos.x + label_dsc->text_pos.x, pos.y + label_dsc->text_pos.y); + #endif + break; default: break; @@ -686,6 +750,7 @@ static void dial_update_canvas_img(watch_element_base_t * base) int16_t angle = 0; hal_rtc_t tm; lv_point_t pos; + uint8_t index = 0; if(ELEMENT_TYPE_WEEK == base->element_type || ELEMENT_TYPE_DATE == base->element_type || ELEMENT_TYPE_TIME_HAND == base->element_type || ELEMENT_TYPE_TIME_DIGIT == base->element_type || ELEMENT_TYPE_AM_PM == base->element_type) { @@ -884,10 +949,22 @@ static void dial_update_canvas_img(watch_element_base_t * base) dial_update_canvas(sub_img, 0, pos.x + img_dsc->img_pos.x, pos.y + img_dsc->img_pos.y); break; case IMG_TYPE_BATTERY: - sub_img = dial_get_sub_img(img_dsc, Hal_Battery_Get_Status() / (100 / img_dsc->subimg->sub_img_cnt)); + //sub_img = dial_get_sub_img(img_dsc, Hal_Battery_Get_Status() / (100 / img_dsc->subimg->sub_img_cnt)); + index = status_get_battery_img_index(Hal_Battery_Get_Status()); + sub_img = dial_get_sub_img(img_dsc, index); if(sub_img) dial_update_canvas(sub_img, 0, pos.x + img_dsc->img_pos.x, pos.y + img_dsc->img_pos.y); break; + case IMG_TYPE_BATTERY_CHARGE: + #ifdef __MMI_DIAL_WITH_CHARGE_STATE_SUPPORT__ + if(HAL_CHG_CONNECTED == Hal_Charger_Get_Status()) + { + sub_img = dial_get_sub_img(img_dsc, 0); + if(sub_img) + dial_update_canvas(sub_img, 0, pos.x + img_dsc->img_pos.x, pos.y + img_dsc->img_pos.y); + } + #endif + break; case IMG_TYPE_DISTANCE_TENS: sub_img = dial_get_sub_img(img_dsc, record.km / 10); if(sub_img) @@ -983,6 +1060,16 @@ static void dial_update_canvas_img(watch_element_base_t * base) dial_clean_canvas(true); dial_update_all_element(dial_get_clock_cont()); break; + + case IMG_TYPE_SIGNAL: + #ifdef __MMI_DIAL_WITH_SIGNAL_SUPPORT__ + index = ((false == watch_modem_sim_present_check_req()) ? 6 : watch_modem_get_signal_bar_req()); + sub_img = dial_get_sub_img(img_dsc, index); + if(sub_img) + dial_update_canvas(sub_img, 0, pos.x + img_dsc->img_pos.x, pos.y + img_dsc->img_pos.y); + #endif + break; + default: break; } diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.c b/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.c index bb225b28..2f2982df 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.c +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.c @@ -113,6 +113,23 @@ const char * status_get_battery_img(uint8_t level) return(ICON_STATUS_BATTERY_0); } +uint8_t status_get_battery_img_index(uint8_t level) +{ + if(level > LV_WATCH_LOWER_LIMIT_FOR_BATTERY_4) + return 4; + + if(level > LV_WATCH_LOWER_LIMIT_FOR_BATTERY_3) + return 3; + + if(level > LV_WATCH_LOWER_LIMIT_FOR_BATTERY_2) + return 2; + + if(level > LV_WATCH_LOWER_LIMIT_FOR_BATTERY_1) + return 1; + + return 0; +} + // temp interface for showing, will be delete after hal interface is ready extern uint8_t get_wifi(void); diff --git a/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.h b/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.h index 5352ae7b..b81b0e72 100644 --- a/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.h +++ b/2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.h @@ -48,6 +48,7 @@ typedef struct **********************/ lv_obj_t * status_and_setting_create(lv_obj_t * tilevew, uint16_t id); extern const char * status_get_battery_img(uint8_t level); +uint8_t status_get_battery_img_index(uint8_t level); extern void setting_set_backlight_intensity(uint8_t intensity, bool writenvm); extern void setting_set_ring_volume(uint8_t volume, bool writenvm, bool play); /**********************