gengxin
author@CHENG <2393524978@qq.com>
Tue, 26 Mar 2024 06:15:40 +0000 (14:15 +0800)
committer@CHENG <2393524978@qq.com>
Tue, 26 Mar 2024 06:15:40 +0000 (14:15 +0800)
21 files changed:
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/dolphin_watch.json
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_0.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_1.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_2.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_3.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_4.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_dolphin.png
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_in_charging.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_no_sim_card.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_0.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_1.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_2.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_3.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_4.png [new file with mode: 0644]
2.sdk/project/Z5_LT_K7/product/craneg_modem/config/watch/lv_watch_conf_CUSTOM.h
2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.c
2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial.h
2.sdk/sdk/gui/lv_watch/lv_apps/dial/dial_element.c
2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.c
2.sdk/sdk/gui/lv_watch/lv_apps/status_and_setting/status_and_setting.h
2.sdk/sdk/gui/lv_watch/mmi_sundry/mmi_sundry.c

index 8def041..6338ede 100644 (file)
@@ -4,6 +4,173 @@
   "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,
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_0.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_0.png
new file mode 100644 (file)
index 0000000..9b0e2fc
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_0.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_1.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_1.png
new file mode 100644 (file)
index 0000000..98a0eb9
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_1.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_2.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_2.png
new file mode 100644 (file)
index 0000000..6076eac
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_2.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_3.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_3.png
new file mode 100644 (file)
index 0000000..d146e61
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_3.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_4.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_4.png
new file mode 100644 (file)
index 0000000..54836d6
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_battery_4.png differ
index c51755b..f813365 100644 (file)
Binary files a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_dolphin.png and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_dolphin.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_in_charging.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_in_charging.png
new file mode 100644 (file)
index 0000000..8f62a22
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_in_charging.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_no_sim_card.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_no_sim_card.png
new file mode 100644 (file)
index 0000000..efacee4
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_no_sim_card.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_0.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_0.png
new file mode 100644 (file)
index 0000000..adc704b
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_0.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_1.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_1.png
new file mode 100644 (file)
index 0000000..2d23fbf
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_1.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_2.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_2.png
new file mode 100644 (file)
index 0000000..4d1f2b5
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_2.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_3.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_3.png
new file mode 100644 (file)
index 0000000..0c79fc0
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_3.png differ
diff --git a/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_4.png b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_4.png
new file mode 100644 (file)
index 0000000..e98ab17
Binary files /dev/null and b/2.sdk/project/Z5_LT_K7/gui/lv_watch/resource/png/dial_dolphin/icon_signal_4.png differ
index 0ea2fbc..3ca80a5 100644 (file)
 #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
 
index 4b2b576..8a90305 100644 (file)
@@ -68,6 +68,14 @@ static void dial_update_display(lv_obj_t * clock_cont)
     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++;
@@ -98,7 +106,8 @@ static void dial_update_display(lv_obj_t * clock_cont)
 #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);
         }
 
index 5f177bd..a20328d 100644 (file)
@@ -71,8 +71,9 @@ enum {
     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
 };
@@ -146,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
@@ -171,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;
@@ -203,6 +207,8 @@ enum {
     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;
index 0af7701..888d6a1 100644 (file)
@@ -646,6 +646,38 @@ static void dial_update_canvas_label(watch_element_base_t * base)
                 //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;
         }
@@ -663,6 +695,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) {
@@ -861,10 +894,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)
@@ -960,6 +1005,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;
         }
index cd5b461..72e2f40 100644 (file)
@@ -125,6 +125,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);
 
index 5352ae7..b81b0e7 100644 (file)
@@ -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);
 /**********************
index fb2214f..fb10d43 100644 (file)
@@ -799,6 +799,11 @@ static void mmi_watch_charging_prompt_cb(void *para)
        {
                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)