"bg_img": "R:/png/dial_dolphin/icon_dolphin.png",
"configurable": 0,
"element_ll": [
+ {
+ "element_pos": {
+ "x": 18,
+ "y": 5
+ },
+ "element_cnt": 1,
+ "act_type": 16,
+ "layer": 0,
+ "element_dsc_ll": [
+ {
+ "element_type": 16,
+ "element_name": "signal",
+ "img_cnt": 1,
+ "img_ll": [
+ {
+ "img_type": 160,
+ "img_pos": {
+ "x": 0,
+ "y": 0
+ },
+ "sub_img_cnt": 7,
+ "sub_img_ll": [
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_signal_0.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_signal_1.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_signal_2.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_signal_3.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_signal_4.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_signal_4.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_no_sim_card.png"
+ }
+ ]
+ }
+ ],
+ "label_cnt": 1,
+ "label_ll": [
+ {
+ "label_type": 27,
+ "text": "",
+ "text_color": {
+ "r": 255,
+ "g": 255,
+ "b": 255
+ },
+ "text_pos": {
+ "x": 87,
+ "y": 0
+ },
+ "font_size": 20
+ }
+ ],
+ "bar": {
+ "bar_type": 0,
+ "bar_pos": {
+ "x": 8,
+ "y": 9
+ },
+ "bar_color": {
+ "r": 77,
+ "g": 88,
+ "b": 99
+ },
+ "bar_w": 11,
+ "bar_h": 12
+ }
+ }
+ ]
+ },
+ {
+ "element_pos": {
+ "x": 185,
+ "y": 5
+ },
+ "element_cnt": 1,
+ "act_type": 10,
+ "layer": 0,
+ "element_dsc_ll": [
+ {
+ "element_type": 10,
+ "element_name": "battery",
+ "img_cnt": 2,
+ "img_ll": [
+ {
+ "img_type": 100,
+ "img_pos": {
+ "x": 0,
+ "y": 0
+ },
+ "sub_img_cnt": 5,
+ "sub_img_ll": [
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_battery_0.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_battery_1.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_battery_2.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_battery_3.png"
+ },
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_battery_4.png"
+ }
+ ]
+ },
+ {
+ "img_type": 106,
+ "img_pos": {
+ "x": -16,
+ "y": 0
+ },
+ "sub_img_cnt": 1,
+ "sub_img_ll": [
+ {
+ "sub_img": "R:/png/dial_dolphin/icon_in_charging.png"
+ }
+ ]
+ }
+ ],
+ "label_cnt": 1,
+ "label_ll": [
+ {
+ "label_type": 21,
+ "text": "",
+ "text_color": {
+ "r": 255,
+ "g": 255,
+ "b": 255
+ },
+ "text_pos": {
+ "x": 6,
+ "y": 2
+ },
+ "font_size": 14
+ }
+ ],
+ "bar": {
+ "bar_type": 0,
+ "bar_pos": {
+ "x": 8,
+ "y": 9
+ },
+ "bar_color": {
+ "r": 77,
+ "g": 88,
+ "b": 99
+ },
+ "bar_w": 11,
+ "bar_h": 12
+ }
+ }
+ ]
+ },
{
"element_pos": {
"x": 25,
#define __MMI_HEALTH_MEASURE_TEMPERATURE_SUPPORT__
//#define __MMI_APP_QRCODE_MENU_SUPPORT__
+//#define __MMI_APP_QRCODE_FROM_SERVER_SUPPORT__
#define __MMI_APP_QRCODE_AND_DEVICE_QRCODE_IN_ONE_SUPPORT__
#define __MMI_ZHSX_SUPPORT_NO_SIM_POWER_OFF__
#define __MMI_SOS_NUMBER_NAME_SUPPORT__
+#define __MMI_DIAL_WITH_SIGNAL_SUPPORT__
+#define __MMI_DIAL_WITH_CHARGE_STATE_SUPPORT__
+
+
#endif
lv_clock_ext_t * clock_ext = (lv_clock_ext_t *)lv_obj_get_ext_attr(clock_cont);
watch_dial_t * watch_dial = clock_ext->watch_dial;
clock_ext->sec++;
+
+#ifdef __MMI_DIAL_WITH_SIGNAL_SUPPORT__
+ if(0 == clock_ext->sec % 5) //update every 5 sec
+ {
+ dial_update_element(watch_dial, ELEMENT_TYPE_SIGNAL);
+ }
+#endif
+
if(60 == clock_ext->sec) {
clock_ext->sec = 0;
clock_ext->min++;
#else
dial_clean_canvas(false);
uint8_t i = 0;
- for(i = ELEMENT_TYPE_BLOOD_OXYGEN; i > ELEMENT_TYPE_INVILID; i--) {
+ //for(i = ELEMENT_TYPE_BLOOD_OXYGEN; i > ELEMENT_TYPE_INVILID; i--) {
+ for(i = ELEMENT_TYPE_MAX - 2; i > ELEMENT_TYPE_INVILID; i--) {
dial_update_element(watch_dial, i);
}
ELEMENT_TYPE_PRESSURE, //12
ELEMENT_TYPE_HEART_RATE, //13
ELEMENT_TYPE_BLOOD_OXYGEN, //14
- ELEMENT_TYPE_USER,
- ELEMENT_TYPE_FULL_TIME, // YYYY/MM/DD HH:MM WEEK
+ ELEMENT_TYPE_USER, //15
+ ELEMENT_TYPE_SIGNAL, //16
+
ELEMENT_TYPE_BG_SWITCH, //15 /*except when updating all elements, always at the last*/
ELEMENT_TYPE_MAX
};
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
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;
LABEL_TYPE_HEART_RATE, //24
LABEL_TYPE_HEART_RATE_BPM, //25
LABEL_TYPE_BLOOD_OXYGEN, //26
+ LABEL_TYPE_SIGNAL, //27
+
};
typedef uint8_t watch_label_type_t;
//snprintf(infotxt, len, "%d", health.sleep);
//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)
+ {
+ #ifdef MMI_PROJECT_Z5_DS_Z12_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");
+ else
+ sprintf(infotxt, "");
+ }
+ else
+ {
+ sprintf(infotxt, "");
+ }
+
+ 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;
}
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) {
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)
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;
}
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);
**********************/
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);
/**********************
{
lv_obj_del(activity_obj);
}
+
+#ifdef __MMI_DIAL_WITH_CHARGE_STATE_SUPPORT__
+ dial_clean_canvas(false);
+ dial_clock_update_immediately();
+#endif
}
static lv_obj_t * mmi_watch_charging_prompt_screen_create(lv_obj_t * activity_obj, uint32_t chg_status)