lijian 1 mesiac pred
rodič
commit
5db0ed3c06
39 zmenil súbory, kde vykonal 3773 pridanie a 1788 odobranie
  1. 1 1
      CMakeLists.txt
  2. 30 6
      main/actions.c
  3. 19 0
      main/actions.h
  4. 167 42
      main/app/heatpump_controller.c
  5. 3 0
      main/app/include/heatpump_controller.h
  6. 3 2
      main/app/include/setting.h
  7. 1 1
      main/app/modbus_master.c
  8. 3 2
      main/app/ota.c
  9. 13 5
      main/app/setting.c
  10. 2 2
      main/app/sht30.c
  11. 17 2
      main/framework/gateway/access.c
  12. 176 2
      main/ui/generated/events_init.c
  13. 34 17
      main/ui/generated/gui_guider.h
  14. 1 1
      main/ui/generated/guider_fonts/fonts_list.mk
  15. 333 311
      main/ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_16.c
  16. 146 72
      main/ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_20.c
  17. 155 74
      main/ui/generated/guider_fonts/lv_font_iconfont_25.c
  18. 1 1
      main/ui/generated/images/images_list.mk
  19. 0 0
      main/ui/generated/images/images_md5.json
  20. 63 9
      main/ui/generated/setup_scr_FactorySettingPage.c
  21. 5 2
      main/ui/generated/setup_scr_SettingPage.c
  22. 492 290
      main/ui/generated/setup_scr_WaterValvePage.c
  23. 326 81
      main/ui/generated/setup_scr_screen.c
  24. 27 2
      readme.md
  25. 0 1
      wj-wire-controller-ui/fp-wire-controller.guiguider
  26. 199 4
      wj-wire-controller-ui/generated/events_init.c
  27. 34 17
      wj-wire-controller-ui/generated/gui_guider.h
  28. 1 1
      wj-wire-controller-ui/generated/guider_fonts/fonts_list.mk
  29. 333 311
      wj-wire-controller-ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_16.c
  30. 146 72
      wj-wire-controller-ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_20.c
  31. 155 74
      wj-wire-controller-ui/generated/guider_fonts/lv_font_iconfont_25.c
  32. 1 1
      wj-wire-controller-ui/generated/images/images_list.mk
  33. 0 0
      wj-wire-controller-ui/generated/images/images_md5.json
  34. 63 9
      wj-wire-controller-ui/generated/setup_scr_FactorySettingPage.c
  35. 5 2
      wj-wire-controller-ui/generated/setup_scr_SettingPage.c
  36. 492 290
      wj-wire-controller-ui/generated/setup_scr_WaterValvePage.c
  37. 326 81
      wj-wire-controller-ui/generated/setup_scr_screen.c
  38. BIN
      wj-wire-controller-ui/import/font/iconfont.ttf
  39. BIN
      wj-wire-controller-ui_bak.zip

+ 1 - 1
CMakeLists.txt

@@ -3,6 +3,6 @@
 # The following five lines of boilerplate have to be in your project's
 # CMakeLists in this exact order for cmake to work correctly
 cmake_minimum_required(VERSION 3.16)
-set(PROJECT_VER "2025-07-03-V1.0.0")
+set(PROJECT_VER "2025-09-16-V1.0.1")
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(wj-wire-controller)

+ 30 - 6
main/actions.c

@@ -166,17 +166,27 @@ void on_set_beep_on_off(lv_event_t *e) {
 }
 
 void on_set_allow_valve_on_off(lv_event_t *e) {
-    lv_obj_t *obj = lv_event_get_current_target(e);
+    const lv_obj_t *obj = lv_event_get_current_target(e);
+    if (lv_obj_has_state(obj, LV_STATE_CHECKED)) {
+        system_setting.active_fjsq = 1;
+    } else {
+        system_setting.active_fjsq = 0;
+    }
+    save_system_setting(&system_setting);
+}
+
+void on_set_allow_linkage(lv_event_t *e) {
+    const lv_obj_t *obj = lv_event_get_current_target(e);
     if (lv_obj_has_state(obj, LV_STATE_CHECKED)) {
-        //system_setting.allow_valve_onoff = 1;
+        system_setting.allow_linkage = 1;
     } else {
-        //system_setting.allow_valve_onoff = 0;
+        system_setting.allow_linkage = 0;
     }
     save_system_setting(&system_setting);
 }
 
 void on_set_screen_auto_off(lv_event_t *e) {
-    lv_obj_t *obj = lv_event_get_current_target(e);
+    const lv_obj_t *obj = lv_event_get_current_target(e);
     if (lv_obj_has_state(obj, LV_STATE_CHECKED)) {
         system_setting.screen_auto_off = 1;
     } else {
@@ -242,6 +252,8 @@ void on_set_mode(lv_event_t *e, uint8_t mode) {
     if (mode == 1) {
         lvgl_port_lock(0);
         lv_label_set_text_static(guider_ui.screen_lab_mode, "制冷");
+        lv_obj_set_style_text_color(guider_ui.screen_lab_ac_temp, lv_color_hex(0x00d9ff), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_text_color(guider_ui.screen_label_6, lv_color_hex(0x00d9ff), LV_PART_MAIN|LV_STATE_DEFAULT);
         lv_obj_set_style_arc_color(guider_ui.screen_arc_temp, lv_color_hex(0x00d9ff),
                                    LV_PART_INDICATOR | LV_STATE_DEFAULT);
         lv_label_set_text_fmt(guider_ui.screen_lab_ac_temp, "%d", hp_controller.cool_set_temp);
@@ -252,8 +264,10 @@ void on_set_mode(lv_event_t *e, uint8_t mode) {
         lvgl_port_unlock();
     } else if (mode == 2) {
         lvgl_port_lock(0);
-        lv_obj_set_style_arc_color(guider_ui.screen_arc_temp, lv_color_hex(0xfa890a),
+        lv_obj_set_style_arc_color(guider_ui.screen_arc_temp, lv_color_hex(0xff9700),
                                    LV_PART_INDICATOR | LV_STATE_DEFAULT);
+        lv_obj_set_style_text_color(guider_ui.screen_lab_ac_temp, lv_color_hex(0xff9700), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_text_color(guider_ui.screen_label_6, lv_color_hex(0xff9700), LV_PART_MAIN|LV_STATE_DEFAULT);
         lv_label_set_text_static(guider_ui.screen_lab_mode, "制热");
         lv_label_set_text_fmt(guider_ui.screen_lab_ac_temp, "%d", hp_controller.heat_set_temp);
         lv_obj_remove_state(guider_ui.screen_ib_cool, LV_STATE_CHECKED);
@@ -282,7 +296,17 @@ void on_arc_temp_released(lv_event_t *e) {
 
 void on_screen_gesture_bottom(lv_event_t *e) {
     lv_obj_t *c_obj = lv_event_get_current_target_obj(e);
-    lv_obj_t *obj = lv_event_get_target_obj(e);
     if(c_obj == guider_ui.screen_arc_temp)return;
     ui_load_scr_animation(&guider_ui, &guider_ui.SettingPage, guider_ui.SettingPage_del, &guider_ui.screen_del, setup_scr_SettingPage, LV_SCR_LOAD_ANIM_MOVE_BOTTOM, 100, 0, false, false);
+}
+
+void on_screen_gesture_left(lv_event_t *e) {
+    lv_obj_t *c_obj = lv_event_get_current_target_obj(e);
+    if(system_setting.active_fjsq == 0) return;
+    if(c_obj == guider_ui.screen_arc_temp)return;
+    ui_load_scr_animation(&guider_ui, &guider_ui.WaterValvePage, guider_ui.WaterValvePage_del, &guider_ui.screen_del, setup_scr_WaterValvePage, LV_SCR_LOAD_ANIM_MOVE_LEFT, 100, 0, false, false);
+}
+
+void on_set_relay_status(lv_event_t *e, uint8_t no) {
+    set_relay_status(no - 1, lv_obj_has_state(lv_event_get_current_target(e), LV_STATE_CHECKED));
 }

+ 19 - 0
main/actions.h

@@ -78,6 +78,11 @@ void on_set_mode(lv_event_t *e, uint8_t mode);
  */
 void on_set_beep_on_off(lv_event_t *e);
 
+/**
+ * 高级设置界面-允许联动
+ * @param e 事件
+ */
+void on_set_allow_linkage(lv_event_t *e);
 /**
  * 高级设置-允许风阀完全关闭
  * @param e
@@ -118,6 +123,7 @@ void on_params_save(lv_event_t *e);
  * 设置页面-网络-重置网络
  */
 void on_reset_wifi(lv_event_t *e);
+
 /**
  * 主界面-温度设置值变化事件
  * @param e
@@ -129,9 +135,22 @@ void on_arc_temp_value_changed(lv_event_t *e);
  * @param e
  */
 void on_arc_temp_released(lv_event_t *e);
+
 /**
  * 主界面-从屏幕边缘滑动事件
  * @param e
  */
 void on_screen_gesture_bottom(lv_event_t *e);
+/**
+ * 主界面-从屏幕边缘滑动事件
+ * @param e
+ */
+void on_screen_gesture_left(lv_event_t *e);
+/**
+ * 分集水器控制界面-设置分集水器状态
+ * @param e
+ * @param no
+ */
+void on_set_relay_status(lv_event_t *e, uint8_t no);
+
 #endif //WIRE_CONTROLLER_ACTIONS_H

+ 167 - 42
main/app/heatpump_controller.c

@@ -23,7 +23,7 @@ static TaskHandle_t cloud_report_handle;
 static const char *TAG = "hp_controller";
 static TaskHandle_t report_trigger_handle;
 static TaskHandle_t status_task_handle;
-
+static bool need_report_error = false;
 
 void set_bit(uint16_t *num, uint8_t bit, bool value) {
     if (bit > 15) return;
@@ -127,7 +127,7 @@ static void cloud_set_water_temp(char *params) {
         if (guider_ui.screen) {
             lvgl_port_lock(0);
             lv_label_set_text_fmt(guider_ui.screen_lab_ac_temp, "%d", value->valueint);
-            lv_arc_set_value(guider_ui.screen_arc_temp, value->valueint);
+            lv_arc_set_value(guider_ui.screen_arc_temp, value->valueint * 2);
             lvgl_port_unlock();
         }
         cJSON_Delete(data);
@@ -140,7 +140,55 @@ static void cloud_set_IO(char *params) {
     if (data != NULL) {
         cJSON *value = cJSON_GetObjectItemCaseSensitive(data, "value");
         cJSON *no = cJSON_GetObjectItemCaseSensitive(data, "no");
-        set_relay_status(no->valueint - 1, value->valueint); // 要减1
+        if (no->valueint > 8 || value->valueint > 1) return;
+        uint8_t n = no->valueint - 1;
+        uint8_t v = value->valueint;
+        set_relay_status(n, v); // 要减1
+        // 更新UI
+        if (guider_ui.WaterValvePage) {
+            lvgl_port_lock(0);
+            if (n == 0) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_1, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_1, LV_STATE_CHECKED);
+            }
+            if (n == 1) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_2, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_2, LV_STATE_CHECKED);
+            }
+            if (n == 2) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_3, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_3, LV_STATE_CHECKED);
+            }
+            if (n == 3) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_4, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_4, LV_STATE_CHECKED);
+            }
+            if (n == 4) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_5, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_5, LV_STATE_CHECKED);
+            }
+            if (n == 5) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_6, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_6, LV_STATE_CHECKED);
+            }
+            if (n == 6) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_7, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_7, LV_STATE_CHECKED);
+            }
+            if (n == 7) {
+                v
+                    ? lv_obj_set_state(guider_ui.WaterValvePage_sw_8, LV_STATE_CHECKED, true)
+                    : lv_obj_clear_state(guider_ui.WaterValvePage_sw_8, LV_STATE_CHECKED);
+            }
+            lvgl_port_unlock();
+        }
         cJSON_Delete(data);
     }
 }
@@ -160,33 +208,33 @@ static void cloud_set_link(char *params) {
 
 static void register_sparrow_commands() {
     sparrow_command set_power_cmd = {
-            .name = "setPower",
-            .unpack = &cloud_set_power
+        .name = "setPower",
+        .unpack = &cloud_set_power
     };
     register_sparrow_command(set_power_cmd);
 
     // setMode
     sparrow_command set_mode_cmd = {
-            .name = "setMode",
-            .unpack = &cloud_set_mode
+        .name = "setMode",
+        .unpack = &cloud_set_mode
     };
     register_sparrow_command(set_mode_cmd);
     // setWaterTemp
     sparrow_command set_water_temp = {
-            .name = "setWaterTemp",
-            .unpack = &cloud_set_water_temp
+        .name = "setWaterTemp",
+        .unpack = &cloud_set_water_temp
     };
     register_sparrow_command(set_water_temp);
     // setIO
     sparrow_command set_io = {
-            .name = "setIO",
-            .unpack = &cloud_set_IO
+        .name = "setIO",
+        .unpack = &cloud_set_IO
     };
     register_sparrow_command(set_io);
     // setLinkage
     sparrow_command set_link = {
-            .name = "setLinkage",
-            .unpack = &cloud_set_link
+        .name = "setLinkage",
+        .unpack = &cloud_set_link
     };
     register_sparrow_command(set_link);
 }
@@ -206,30 +254,70 @@ _Noreturn static void report_trigger_task(void *arg) {
  */
 _Noreturn static void status_sync_task(void *arg) {
     esp_err_t err = ESP_OK;
+    vTaskDelay(pdMS_TO_TICKS(5000));
+    char in_temp_buf[12];
+    char out_hum_buf[12];
     for (;;) {
-//        mm_set_param(CID_HP_POWER, &hp_controller.power);
-//        mm_set_param(CID_HP_SET_MODE, &hp_controller.mode);
-//        if (hp_controller.mode == MODE_COOL) mm_set_param(CID_HP_COOL_SET_TEMP, &hp_controller.cool_set_temp);
-//        if (hp_controller.mode == MODE_HEAT) mm_set_param(CID_HP_HEAT_SET_TEMP, &hp_controller.heat_set_temp);
-//        mm_get_param(CID_HP_OUTDOOR_TEMP, &hp_controller.outdoor_temp);
-//        mm_get_param(CID_HP_OUT_WATER_TEMP, &hp_controller.out_water_temp);
-//        mm_get_param(CID_HP_IN_WATER_TEMP, &hp_controller.in_water_temp);
-        uint8_t status = get_bit(hp_controller.relay_status, 0);
-        mm_set_param(CID_RELAY_1_STATUS, &status);
-        status = get_bit(hp_controller.relay_status, 1);
-        mm_set_param(CID_RELAY_2_STATUS, &status);
-        status = get_bit(hp_controller.relay_status, 2);
-        mm_set_param(CID_RELAY_3_STATUS, &status);
-        status = get_bit(hp_controller.relay_status, 3);
-        mm_set_param(CID_RELAY_4_STATUS, &status);
-        status = get_bit(hp_controller.relay_status, 4);
-        mm_set_param(CID_RELAY_5_STATUS, &status);
-        status = get_bit(hp_controller.relay_status, 5);
-        mm_set_param(CID_RELAY_6_STATUS, &status);
-        status = get_bit(hp_controller.relay_status, 6);
-        mm_set_param(CID_RELAY_7_STATUS, &status);
-        status = get_bit(hp_controller.relay_status, 7);
-        mm_set_param(CID_RELAY_8_STATUS, &status);
+        // 联动判断
+        if (gpio_get_level(41) == 0 && system_setting.allow_linkage == 1) {
+            hp_controller.power = 1;
+            update_power_ui(true);
+        }
+        err = mm_set_param(CID_HP_POWER, &hp_controller.power);
+        err = mm_set_param(CID_HP_SET_MODE, &hp_controller.mode);
+        if (hp_controller.mode == MODE_COOL) mm_set_param(CID_HP_COOL_SET_TEMP, &hp_controller.cool_set_temp);
+        if (hp_controller.mode == MODE_HEAT) mm_set_param(CID_HP_HEAT_SET_TEMP, &hp_controller.heat_set_temp);
+        mm_get_param(CID_HP_OUTDOOR_TEMP, &hp_controller.outdoor_temp);
+        mm_get_param(CID_HP_OUT_WATER_TEMP, &hp_controller.out_water_temp);
+        err = mm_get_param(CID_HP_IN_WATER_TEMP, &hp_controller.in_water_temp);
+        if (guider_ui.screen) {
+            snprintf(in_temp_buf, sizeof(in_temp_buf), "%d°C", hp_controller.in_water_temp);
+            snprintf(out_hum_buf, sizeof(out_hum_buf), "%d°C", hp_controller.out_water_temp);
+            lvgl_port_lock(-1);
+            lv_label_set_text_static(guider_ui.screen_lab_in_temp, in_temp_buf);
+            lv_label_set_text_static(guider_ui.screen_lab_out_temp, out_hum_buf);
+            if (err != ESP_OK) {
+                lv_obj_remove_flag(guider_ui.screen_lab_icon_485, LV_OBJ_FLAG_HIDDEN);
+            } else {
+                lv_obj_add_flag(guider_ui.screen_lab_icon_485, LV_OBJ_FLAG_HIDDEN);
+            }
+            lvgl_port_unlock();
+        }
+        // 如果开启了分集水器控制
+        if (system_setting.active_fjsq == 1) {
+            uint8_t status = get_bit(hp_controller.relay_status, 0);
+            err = mm_set_param(CID_RELAY_1_STATUS, &status);
+            if (err == ESP_OK) hp_controller.fjsq_exist = 1;
+            status = get_bit(hp_controller.relay_status, 1);
+            mm_set_param(CID_RELAY_2_STATUS, &status);
+            status = get_bit(hp_controller.relay_status, 2);
+            mm_set_param(CID_RELAY_3_STATUS, &status);
+            status = get_bit(hp_controller.relay_status, 3);
+            mm_set_param(CID_RELAY_4_STATUS, &status);
+            status = get_bit(hp_controller.relay_status, 4);
+            mm_set_param(CID_RELAY_5_STATUS, &status);
+            status = get_bit(hp_controller.relay_status, 5);
+            mm_set_param(CID_RELAY_6_STATUS, &status);
+            status = get_bit(hp_controller.relay_status, 6);
+            mm_set_param(CID_RELAY_7_STATUS, &status);
+            status = get_bit(hp_controller.relay_status, 7);
+            err = mm_set_param(CID_RELAY_8_STATUS, &status);
+            if (err != ESP_OK) hp_controller.fjsq_exist = 0;
+        }
+        // 读取故障
+        mm_get_param(CID_HP_ERROR, &hp_controller.error);
+        if (hp_controller.error == 1) {
+            lvgl_port_lock(-1);
+            lv_obj_remove_flag(guider_ui.screen_lab_icon_err, LV_OBJ_FLAG_HIDDEN);
+            lvgl_port_unlock();
+            need_report_error = true;
+            xSemaphoreGive(report_task_sem);
+        } else {
+            lvgl_port_lock(-1);
+            lv_obj_add_flag(guider_ui.screen_lab_icon_err, LV_OBJ_FLAG_HIDDEN);
+            lvgl_port_unlock();
+        }
+        ESP_LOGD(TAG, "error:%d", hp_controller.error);
         vTaskDelay(5000 / portTICK_PERIOD_MS);
     }
 }
@@ -241,6 +329,19 @@ _Noreturn static void status_sync_task(void *arg) {
 _Noreturn static void cloud_report_task(void *arg) {
     for (;;) {
         if (xSemaphoreTake(report_task_sem, portMAX_DELAY) == pdTRUE) {
+            if (need_report_error) {
+                need_report_error = false;
+                cJSON *data = cJSON_CreateObject();
+                cJSON_AddNumberToObject(data, "error", hp_controller.error);
+                cJSON *root = cJSON_CreateObject();
+                cJSON_AddStringToObject(root, "cmd", "error");
+                cJSON_AddItemToObject(root, "params", data);
+                const publish_message_t msg = {
+                    .topic = "error",
+                    .data = root,
+                };
+                sparrow_publish_event(msg);
+            }
             ESP_LOGD(TAG, "cloud report");
             cJSON *data = cJSON_CreateObject();
             cJSON_AddNumberToObject(data, "power", hp_controller.power);
@@ -254,13 +355,14 @@ _Noreturn static void cloud_report_task(void *arg) {
             cJSON_AddNumberToObject(data, "in_water_temp", hp_controller.in_water_temp);
             cJSON_AddNumberToObject(data, "fjsq_exist", hp_controller.fjsq_exist);
             cJSON_AddNumberToObject(data, "fjsq_status", hp_controller.relay_status);
+            cJSON_AddNumberToObject(data, "linkage", hp_controller.linkage);
 
             cJSON *root = cJSON_CreateObject();
             cJSON_AddStringToObject(root, "cmd", "status");
             cJSON_AddItemToObject(root, "params", data);
-            publish_message_t msg = {
-                    .topic = "status",
-                    .data = root,
+            const publish_message_t msg = {
+                .topic = "status",
+                .data = root,
             };
             sparrow_publish_status(msg);
         }
@@ -276,12 +378,20 @@ void heatpump_controller_init(system_setting_t *setting) {
     hp_controller.linkage = setting->allow_linkage;
     register_sparrow_commands();
     report_task_sem = xSemaphoreCreateBinary();
+
     // 启动状态同步任务
-    xTaskCreate(status_sync_task, "status_sync_task", 4 * 1024, NULL, 5, &status_task_handle);
+    xTaskCreate(status_sync_task, "status_sync_task", 6 * 1024, NULL, 5, &status_task_handle);
     // 启动云端上报任务,受信号量控制,无信号时任务不作操作,只有本地有操作或定时上报任务触发时才会上报。
     xTaskCreate(cloud_report_task, "report_task", 6 * 1024, NULL, 5, &cloud_report_handle);
     // 启动云端上报任务
     xTaskCreate(report_trigger_task, "trigger_task", 2 * 1024, NULL, 5, &report_trigger_handle);
+
+    // 初始化联动IO
+    const gpio_config_t io_config = {
+        .pin_bit_mask = (1ULL << 41),
+        .mode = GPIO_MODE_DEF_INPUT
+    };
+    gpio_config(&io_config);
 }
 
 
@@ -307,8 +417,15 @@ esp_err_t heatpump_set_mode(uint8_t mode) {
 
 esp_err_t heatpump_set_temp(uint16_t temp) {
     esp_err_t err = ESP_OK;
-    if (hp_controller.mode == MODE_COOL)nvs_set_uint16(hp_controller.cool_set_temp, NVS_HP_COOL_SET_TEMP_KEY);
-    if (hp_controller.mode == MODE_HEAT)nvs_set_uint16(hp_controller.heat_set_temp, NVS_HP_HEAT_SET_TEMP_KEY);
+
+    if (hp_controller.mode == MODE_COOL) {
+        hp_controller.cool_set_temp = temp;
+        nvs_set_uint16(hp_controller.cool_set_temp, NVS_HP_COOL_SET_TEMP_KEY);
+    }
+    if (hp_controller.mode == MODE_HEAT) {
+        hp_controller.heat_set_temp = temp;
+        nvs_set_uint16(hp_controller.heat_set_temp, NVS_HP_HEAT_SET_TEMP_KEY);
+    }
     if (cloud_connected) {
         xSemaphoreGive(report_task_sem);
     }
@@ -320,3 +437,11 @@ esp_err_t heatpump_set_linkage() {
     nvs_set_uint16(hp_controller.linkage, NVS_ALLOW_LINKAGE_KEY);
     return err;
 }
+
+void stop_controller() {
+    vTaskDelete(status_task_handle);
+    vTaskDelete(cloud_report_handle);
+    vTaskDelete(report_trigger_handle);
+    // 停止modbus 协议 stack
+    modbus_master_destroy();
+}

+ 3 - 0
main/app/include/heatpump_controller.h

@@ -22,6 +22,7 @@ typedef struct {
     // 分集水器是否存在
     uint16_t fjsq_exist;
     uint16_t linkage; // 内外机是否联动
+    uint16_t error;// 故障
 
 } hp_controller_t;
 
@@ -65,4 +66,6 @@ esp_err_t set_relay_status(uint8_t no, uint8_t value);
  * @return
  */
 esp_err_t heatpump_set_linkage();
+
+void stop_controller();
 #endif //WJ_WIRE_CONTROLLER_HEATPUMP_CONTROLLER_H

+ 3 - 2
main/app/include/setting.h

@@ -27,7 +27,7 @@
 #define NVS_FIX_TEMP_KEY "FIX_TEMP"
 #define NVS_FIX_HUM_KEY "FIX_HUM"
 #define NVS_SCREEN_ON_OFF "scr_on_off" // 屏幕当前状态
-
+#define NVS_ACTIVE_FJSQ_KEY "active_fjsq"
 #define NVS_HP_MODE_KEY "hp_mode"
 #define NVS_HP_POWER_KEY "HP_POWER"
 #define NVS_HP_COOL_SET_TEMP_KEY "hp_c_temp"
@@ -70,6 +70,7 @@ typedef struct {
     uint16_t reley_status; // 分集水器1-8路状态
     uint16_t fjsq_slave_addr;// 集控盒通讯地址
     uint8_t allow_linkage;// 内机外是否联动
+    uint8_t active_fjsq;// 是否开启智能分集水器控制
 } system_setting_t;
 
 /**
@@ -87,7 +88,7 @@ void save_inner_addr(uint8_t addr);
 /**
  * 保存系统配置
  */
-void save_system_setting(system_setting_t *setting);
+void save_system_setting(const system_setting_t *setting);
 
 /**
  * 保存风阀配置信息

+ 1 - 1
main/app/modbus_master.c

@@ -38,7 +38,7 @@ const mb_parameter_descriptor_t device_parameters[] = {
         {CID_HP_IN_WATER_TEMP,  STR("in"),     STR(""), MB_DEVICE_HP_ADDR, MB_PARAM_HOLDING,
                 HP_IN_WATER_TEMP_REG_ADDRESS,  1, 0, PARAM_TYPE_U16, 2, OPTS(0, 0, 0), PAR_PERMS_READ},
         {CID_HP_POWER,          STR("power"),  STR(""), MB_DEVICE_HP_ADDR, MB_PARAM_COIL, 0, 1,0, PARAM_TYPE_U8, 1, OPTS(0, 0, 0), PAR_PERMS_READ_WRITE},
-        {CID_HP_ERROR,          STR("error"),  STR(""), MB_DEVICE_HP_ADDR, MB_PARAM_COIL, 40, 1,0, PARAM_TYPE_U8, 1, OPTS(0, 0, 0), PAR_PERMS_WRITE},
+        {CID_HP_ERROR,          STR("error"),  STR(""), MB_DEVICE_HP_ADDR, MB_PARAM_COIL, 40, 1,0, PARAM_TYPE_U8, 1, OPTS(0, 0, 0), PAR_PERMS_READ},
         {CID_RELAY_1_STATUS,          STR("r1"),  STR(""), MB_DEVICE_FJSQ_ADDR, MB_PARAM_HOLDING, RELAY_1_STATUS_REG_ADDRESS, 1,0, PARAM_TYPE_U16, 2, OPTS(0, 0, 0), PAR_PERMS_READ_WRITE},
         {CID_RELAY_2_STATUS,          STR("r2"),  STR(""), MB_DEVICE_FJSQ_ADDR, MB_PARAM_HOLDING, RELAY_2_STATUS_REG_ADDRESS, 1,0, PARAM_TYPE_U16, 2, OPTS(0, 0, 0), PAR_PERMS_READ_WRITE},
         {CID_RELAY_3_STATUS,          STR("r3"),  STR(""), MB_DEVICE_FJSQ_ADDR, MB_PARAM_HOLDING, RELAY_3_STATUS_REG_ADDRESS, 1,0, PARAM_TYPE_U16, 2, OPTS(0, 0, 0), PAR_PERMS_READ_WRITE},

+ 3 - 2
main/app/ota.c

@@ -20,6 +20,7 @@
 #include "lvgl_port.h"
 #include "main.h"
 #include "lcd_st7701.h"
+#include "heatpump_controller.h"
 
 
 extern const uint8_t server_cert_pem_start[] asm("_binary_ssl_pem_start");
@@ -143,8 +144,8 @@ void on_dev_upgrade(char *params) {
     ota_info.fileSize = file_size->valueint;
     snprintf(ota_info.url, sizeof(ota_info.url), "%s", url->valuestring);
     snprintf(ota_info.version, sizeof(ota_info.version), "%s", version->valuestring);
-    // TODO: 停止所有子设备
-   // stop_ac_controller();
+    // 停止所有子设备
+    stop_controller();
     start_ota();
     cJSON_Delete(root);
     ESP_LOGI(TAG, "OTA info: fileSize=%lu, url=%s, version=%s", ota_info.fileSize, ota_info.url, ota_info.version);

+ 13 - 5
main/app/setting.c

@@ -29,8 +29,14 @@ void read_system_setting(system_setting_t *setting) {
     uint16_t *hp_cool_set_temp = nvs_get_uint16(NVS_HP_COOL_SET_TEMP_KEY);
     uint16_t *hp_heat_set_temp = nvs_get_uint16(NVS_HP_HEAT_SET_TEMP_KEY);
     uint16_t *relay_status = nvs_get_uint16(NVS_RELEY_STATUS_KEY);
-    uint16_t *linkage = nvs_get_uint16(NVS_ALLOW_LINKAGE_KEY);
-
+    uint8_t *linkage = nvs_get_uint8(NVS_ALLOW_LINKAGE_KEY);
+    uint8_t *active_fjsq = nvs_get_uint8(NVS_ACTIVE_FJSQ_KEY);
+    if (active_fjsq == NULL) {
+        nvs_set_uint8(0, NVS_ACTIVE_FJSQ_KEY);
+        setting->active_fjsq = 0;
+    } else {
+        setting->active_fjsq = *active_fjsq;
+    }
     if (hp_power == NULL) {
         nvs_set_uint16(1, NVS_HP_POWER_KEY);
         setting->hp_power = 0;
@@ -38,7 +44,7 @@ void read_system_setting(system_setting_t *setting) {
         setting->hp_power = *hp_power;
     }
     if (linkage == NULL) {
-        nvs_set_uint16(1, NVS_ALLOW_LINKAGE_KEY);
+        nvs_set_uint8(0, NVS_ALLOW_LINKAGE_KEY);
         setting->allow_linkage = 0;
     } else {
         setting->allow_linkage = *linkage;
@@ -132,7 +138,7 @@ void save_inner_addr(uint8_t addr) {
     nvs_set_uint8(addr, NVS_INNER_ADDR);
 }
 
-void save_system_setting(system_setting_t *setting) {
+void save_system_setting(const system_setting_t *setting) {
     nvs_set_uint8(setting->sound_on_off, NVS_SOUND_ON_OFF_KEY);
     nvs_set_uint8(setting->sound_volume, NVS_SOUND_VOLUME_KEY);
     nvs_set_uint8(setting->screen_auto_off, NVS_SCREEN_AUTO_OFF_KEY);
@@ -140,6 +146,8 @@ void save_system_setting(system_setting_t *setting) {
     nvs_set_uint8(setting->report_data_duration, NVS_REPORT_DATA_DURATION);
     nvs_set_int8(setting->fix_temp, NVS_FIX_TEMP_KEY);
     nvs_set_int8(setting->fix_hum, NVS_FIX_HUM_KEY);
+    nvs_set_uint8(setting->active_fjsq, NVS_ACTIVE_FJSQ_KEY);
+    nvs_set_uint8(setting->allow_linkage, NVS_ALLOW_LINKAGE_KEY);
     lv_timer_set_period(screen_timer, 1000 * 60 * setting->screen_off_minute);
 }
 
@@ -157,7 +165,7 @@ static void screen_off_timer_cb(lv_timer_t *timer) {
     if (system_setting.screen_auto_off == 0)return;
     // 切换到待机画面,不为 OTA时
     if (guider_ui.OTAPage == NULL) {
-        //lv_obj_clear_flag(guider_ui.screen_cont_1, LV_OBJ_FLAG_HIDDEN);
+        lv_obj_clear_flag(guider_ui.screen_cont_1, LV_OBJ_FLAG_HIDDEN);
     }
     lcd_st7701_backlight_off();
     screen_on_off_status = 0;

+ 2 - 2
main/app/sht30.c

@@ -219,8 +219,8 @@ _Noreturn void i2c_sht3x_task(void *arg) {
                 snprintf(hum_buf, sizeof(hum_buf), "%.1f %%", sht30Data.humidity);
                 if (guider_ui.screen) {
                     lvgl_port_lock(-1);
-                    //lv_label_set_text_static(guider_ui.screen_lab_env_temp_2, temp_buf);
-                    //lv_label_set_text_static(guider_ui.ACPage_lab_env_hum_2, hum_buf);
+                    lv_label_set_text_static(guider_ui.screen_lab_env_temp_2, temp_buf);
+                    lv_label_set_text_static(guider_ui.screen_lab_env_hum_2, hum_buf);
                     lv_label_set_text_static(guider_ui.screen_lab_env_temp, temp_buf);
                     lv_label_set_text_static(guider_ui.screen_lab_env_hum, hum_buf);
                     lvgl_port_unlock();

+ 17 - 2
main/framework/gateway/access.c

@@ -118,7 +118,6 @@ void sparrow_publish_status(publish_message_t pub) {
     cJSON_AddStringToObject(root, "action", "devSend");
     cJSON_AddNumberToObject(root, "msgId", 0);
     cJSON_AddStringToObject(root, "deviceCode", str_device_serial);
-    cJSON_AddStringToObject(root, "subDeviceId", "");
     cJSON_AddNumberToObject(root, "timestamp", get_sys_time_ms());
     cJSON_AddItemToObject(root, "data", pub.data);
     char *payload = cJSON_PrintUnformatted(root);
@@ -136,7 +135,23 @@ void sparrow_publish_status(publish_message_t pub) {
  * @param pub
  */
 void sparrow_publish_event(publish_message_t pub) {
-
+    // 构造请求协议
+    char str_device_serial[16];
+    get_device_serial(str_device_serial);
+    cJSON *root = cJSON_CreateObject();
+    cJSON_AddStringToObject(root, "action", "devSend");
+    cJSON_AddNumberToObject(root, "msgId", 0);
+    cJSON_AddStringToObject(root, "deviceCode", str_device_serial);
+    cJSON_AddNumberToObject(root, "timestamp", get_sys_time_ms());
+    cJSON_AddItemToObject(root, "data", pub.data);
+    char *payload = cJSON_PrintUnformatted(root);
+    if (payload) {
+        char topic[300];
+        sprintf(topic, "%s%s", TOPIC_PUB_EVENT, str_device_serial);
+        if (connected) esp_mqtt_client_publish(client, topic, payload, 0, 1, false);
+        cJSON_Delete(root);
+    }
+    free(payload);
 }
 
 /**

+ 176 - 2
main/ui/generated/events_init.c

@@ -33,6 +33,12 @@ static void screen_event_handler (lv_event_t *e)
             on_screen_gesture_bottom(e);
             break;
         }
+        case LV_DIR_LEFT:
+        {
+            lv_indev_wait_release(lv_indev_active());
+            on_screen_gesture_left(e);
+            break;
+        }
         default:
             break;
         }
@@ -128,15 +134,30 @@ static void screen_imgbtn_1_event_handler (lv_event_t *e)
     }
 }
 
+static void screen_cont_1_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_PRESSED:
+    {
+        lv_obj_add_flag(guider_ui.screen_cont_1, LV_OBJ_FLAG_HIDDEN);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
 void events_init_screen (lv_ui *ui)
 {
     lv_obj_add_event_cb(ui->screen, screen_event_handler, LV_EVENT_ALL, ui);
-  //  lv_obj_add_event_cb(ui->screen_item-1, screen_item-1_event_handler, LV_EVENT_ALL, ui);
+    //lv_obj_add_event_cb(ui->screen_item-1, screen_item-1_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_arc_temp, screen_arc_temp_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_ib_power, screen_ib_power_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_ib_heat, screen_ib_heat_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_ib_cool, screen_ib_cool_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_imgbtn_1, screen_imgbtn_1_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->screen_cont_1, screen_cont_1_event_handler, LV_EVENT_ALL, ui);
 }
 
 static void WaterValvePage_imgbtn_1_event_handler (lv_event_t *e)
@@ -145,7 +166,135 @@ static void WaterValvePage_imgbtn_1_event_handler (lv_event_t *e)
     switch (code) {
     case LV_EVENT_PRESSED:
     {
-        ui_load_scr_animation(&guider_ui, &guider_ui.screen, guider_ui.screen_del, &guider_ui.WaterValvePage_del, setup_scr_screen, LV_SCR_LOAD_ANIM_NONE, 200, 200, false, false);
+        ui_load_scr_animation(&guider_ui, &guider_ui.screen, guider_ui.screen_del, &guider_ui.WaterValvePage_del, setup_scr_screen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 100, 0, false, false);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_1_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,1);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_2_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,2);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_3_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,3);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_4_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,4);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_8_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,8);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_7_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,7);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_6_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,6);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_5_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,5);
         break;
     }
     default:
@@ -156,6 +305,14 @@ static void WaterValvePage_imgbtn_1_event_handler (lv_event_t *e)
 void events_init_WaterValvePage (lv_ui *ui)
 {
     lv_obj_add_event_cb(ui->WaterValvePage_imgbtn_1, WaterValvePage_imgbtn_1_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_1, WaterValvePage_sw_1_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_2, WaterValvePage_sw_2_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_3, WaterValvePage_sw_3_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_4, WaterValvePage_sw_4_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_8, WaterValvePage_sw_8_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_7, WaterValvePage_sw_7_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_6, WaterValvePage_sw_6_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_5, WaterValvePage_sw_5_event_handler, LV_EVENT_ALL, ui);
 }
 
 static void SettingPage_event_handler (lv_event_t *e)
@@ -410,6 +567,22 @@ static void FactorySettingPage_sw_valve_onoff_event_handler (lv_event_t *e)
     }
 }
 
+static void FactorySettingPage_sw_linkage_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_VALUE_CHANGED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_allow_linkage(e);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
 static void FactorySettingPage_cont_wh_module_event_handler (lv_event_t *e)
 {
     lv_event_code_t code = lv_event_get_code(e);
@@ -472,6 +645,7 @@ void events_init_FactorySettingPage (lv_ui *ui)
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_2, FactorySettingPage_btn_2_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_1, FactorySettingPage_btn_1_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_sw_valve_onoff, FactorySettingPage_sw_valve_onoff_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->FactorySettingPage_sw_linkage, FactorySettingPage_sw_linkage_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_cont_wh_module, FactorySettingPage_cont_wh_module_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_4, FactorySettingPage_btn_4_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_5, FactorySettingPage_btn_5_event_handler, LV_EVENT_ALL, ui);

+ 34 - 17
main/ui/generated/gui_guider.h

@@ -37,32 +37,48 @@ typedef struct
 	lv_obj_t *screen_ib_heat_label;
 	lv_obj_t *screen_ib_cool;
 	lv_obj_t *screen_ib_cool_label;
+	lv_obj_t *screen_lab_mode;
+	lv_obj_t *screen_label_12;
+	lv_obj_t *screen_lab_in_temp;
+	lv_obj_t *screen_label_13;
+	lv_obj_t *screen_lab_out_temp;
+	lv_obj_t *screen_label_15;
+	lv_obj_t *screen_label_16;
 	lv_obj_t *screen_cont_power_off;
 	lv_obj_t *screen_lab_env_hum_2;
-	lv_obj_t *screen_label_9;
+	lv_obj_t *screen_lab_env_temp_2;
 	lv_obj_t *screen_label_10;
 	lv_obj_t *screen_label_11;
 	lv_obj_t *screen_imgbtn_1;
 	lv_obj_t *screen_imgbtn_1_label;
-	lv_obj_t *screen_lab_icon_err;
 	lv_obj_t *screen_img_wifi;
+	lv_obj_t *screen_cont_icons;
 	lv_obj_t *screen_lab_icon_cloud;
-	lv_obj_t *screen_lab_mode;
+	lv_obj_t *screen_lab_icon_err;
+	lv_obj_t *screen_lab_icon_485;
+	lv_obj_t *screen_lab_icon_linkage;
+	lv_obj_t *screen_cont_1;
 	lv_obj_t *WaterValvePage;
 	bool WaterValvePage_del;
-	lv_obj_t *WaterValvePage_cont_1;
 	lv_obj_t *WaterValvePage_imgbtn_1;
 	lv_obj_t *WaterValvePage_imgbtn_1_label;
-	lv_obj_t *WaterValvePage_spangroup_1;
-	lv_span_t *WaterValvePage_spangroup_1_span;
-	lv_obj_t *WaterValvePage_spangroup_2;
-	lv_span_t *WaterValvePage_spangroup_2_span;
 	lv_obj_t *WaterValvePage_sw_1;
-	lv_obj_t *WaterValvePage_cont_2;
-	lv_obj_t *WaterValvePage_cb_4;
-	lv_obj_t *WaterValvePage_cb_3;
-	lv_obj_t *WaterValvePage_cb_2;
-	lv_obj_t *WaterValvePage_cb_1;
+	lv_obj_t *WaterValvePage_sw_2;
+	lv_obj_t *WaterValvePage_sw_3;
+	lv_obj_t *WaterValvePage_sw_4;
+	lv_obj_t *WaterValvePage_sw_8;
+	lv_obj_t *WaterValvePage_sw_7;
+	lv_obj_t *WaterValvePage_sw_6;
+	lv_obj_t *WaterValvePage_sw_5;
+	lv_obj_t *WaterValvePage_label_1;
+	lv_obj_t *WaterValvePage_label_2;
+	lv_obj_t *WaterValvePage_label_3;
+	lv_obj_t *WaterValvePage_label_4;
+	lv_obj_t *WaterValvePage_label_5;
+	lv_obj_t *WaterValvePage_label_6;
+	lv_obj_t *WaterValvePage_label_7;
+	lv_obj_t *WaterValvePage_label_8;
+	lv_obj_t *WaterValvePage_label_9;
 	lv_obj_t *SettingPage;
 	bool SettingPage_del;
 	lv_obj_t *SettingPage_tabview_1;
@@ -134,6 +150,8 @@ typedef struct
 	lv_obj_t *FactorySettingPage_sp_hum_recoup_btn_minus;
 	lv_obj_t *FactorySettingPage_label_7;
 	lv_obj_t *FactorySettingPage_label_8;
+	lv_obj_t *FactorySettingPage_sw_linkage;
+	lv_obj_t *FactorySettingPage_label_9;
 	lv_obj_t *FactorySettingPage_cont_wh_module;
 	lv_obj_t *FactorySettingPage_cb_28;
 	lv_obj_t *FactorySettingPage_cb_27;
@@ -189,7 +207,7 @@ void setup_scr_SettingPage(lv_ui *ui);
 void setup_scr_FactorySettingPage(lv_ui *ui);
 void setup_scr_OTAPage(lv_ui *ui);
 
-LV_IMAGE_DECLARE(_main_bg_RGB565A8_480x480);
+LV_IMAGE_DECLARE(_187_RGB565A8_480x480_tresh);
 LV_IMAGE_DECLARE(_swtich_RGB565A8_84x84);
 LV_IMAGE_DECLARE(_ac_mode_heat_RGB565A8_48x48);
 LV_IMAGE_DECLARE(_ac_mode_heat_sel_RGB565A8_48x48);
@@ -206,9 +224,8 @@ LV_FONT_DECLARE(lv_font_iconfont_25)
 LV_FONT_DECLARE(lv_font_PuHui_ExtraBold_60)
 LV_FONT_DECLARE(lv_font_montserratMedium_12)
 LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_16)
-LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_24)
-LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_18)
-LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_26)
+LV_FONT_DECLARE(lv_font_iconfont_36)
+LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_21)
 LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_20)
 LV_FONT_DECLARE(lv_font_PuHui_ExtraBold_20)
 LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_20)

+ 1 - 1
main/ui/generated/guider_fonts/fonts_list.mk

@@ -1 +1 @@
-GEN_CSRCS += lv_font_montserratMedium_25.c lv_font_montserratMedium_16.c lv_font_iconfont_25.c lv_font_PuHui_ExtraBold_60.c lv_font_montserratMedium_12.c lv_font_Alibaba_PuHuiTi_Medium_16.c lv_font_Alibaba_PuHuiTi_Medium_24.c lv_font_Alibaba_PuHuiTi_Medium_18.c lv_font_Alibaba_PuHuiTi_Medium_26.c lv_font_Alibaba_PuHuiTi_Medium_20.c lv_font_PuHui_ExtraBold_20.c lv_font_SourceHanSerifSC_Regular_20.c
+GEN_CSRCS += lv_font_montserratMedium_25.c lv_font_montserratMedium_16.c lv_font_iconfont_25.c lv_font_PuHui_ExtraBold_60.c lv_font_montserratMedium_12.c lv_font_Alibaba_PuHuiTi_Medium_16.c lv_font_iconfont_36.c lv_font_Alibaba_PuHuiTi_Medium_21.c lv_font_Alibaba_PuHuiTi_Medium_20.c lv_font_PuHui_ExtraBold_20.c lv_font_SourceHanSerifSC_Regular_20.c

+ 333 - 311
main/ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_16.c

@@ -931,23 +931,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x50, 0x8, 0xe0, 0x23, 0x10, 0x0, 0x0, 0xb1,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5141 "允" */
-    0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1e, 0xe0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0xf6, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x9, 0xfa, 0x0, 0xad, 0x10, 0x0, 0x0, 0x7,
-    0xfc, 0x0, 0x4, 0xfd, 0x10, 0x0, 0x8, 0xfc,
-    0x0, 0x0, 0x5, 0xfd, 0x10, 0xa, 0xff, 0xee,
-    0xef, 0xff, 0xff, 0xfc, 0x0, 0x6d, 0xdd, 0xfc,
-    0x9d, 0xf8, 0x78, 0xc0, 0x0, 0x0, 0x7f, 0x40,
-    0x9f, 0x10, 0x0, 0x0, 0x0, 0x8, 0xf2, 0x9,
-    0xf1, 0x0, 0x0, 0x0, 0x0, 0xcf, 0x0, 0x9f,
-    0x10, 0x2, 0x0, 0x0, 0x3f, 0xc0, 0x9, 0xf1,
-    0x0, 0xbe, 0x0, 0x1d, 0xf4, 0x0, 0x9f, 0x10,
-    0xd, 0xd0, 0x5e, 0xf8, 0x0, 0x7, 0xfd, 0xbc,
-    0xfa, 0x2f, 0xf6, 0x0, 0x0, 0x1c, 0xff, 0xfc,
-    0x20, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5165 "入" */
     0x0, 0x0, 0x4, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0xf8, 0x0, 0x0, 0x0, 0x0,
@@ -1218,19 +1201,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf9, 0x0, 0xf, 0xa0, 0x0, 0x7e, 0xff, 0xfc,
     0x20, 0x0, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+533A "区" */
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xd9,
-    0x99, 0x99, 0x99, 0xa9, 0x94, 0xfa, 0x2e, 0x50,
-    0x0, 0xd, 0xb0, 0xf, 0xa2, 0xef, 0x60, 0xb,
-    0xf6, 0x0, 0xfa, 0x2, 0xef, 0x69, 0xfa, 0x0,
-    0xf, 0xa0, 0x2, 0xef, 0xfb, 0x0, 0x0, 0xfa,
-    0x0, 0x9, 0xff, 0x80, 0x0, 0xf, 0xa0, 0x9,
-    0xfd, 0xef, 0x80, 0x0, 0xfa, 0xa, 0xfc, 0x12,
-    0xef, 0x80, 0xf, 0xbd, 0xfb, 0x0, 0x3, 0xff,
-    0x50, 0xfa, 0x99, 0x0, 0x0, 0x3, 0xc0, 0xf,
-    0xd9, 0x99, 0x99, 0x99, 0x99, 0x97, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xc0,
-
     /* U+5347 "升" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x14, 0x8a, 0xd, 0xc0, 0x0, 0x3,
@@ -1383,6 +1353,21 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb0, 0x8f, 0x20, 0xaf, 0xff, 0xff, 0xff, 0xfb,
     0x0, 0x30, 0xa, 0xf0, 0x0, 0x0, 0xe, 0xb0,
 
+    /* U+5668 "器" */
+    0x5, 0xff, 0xff, 0xf0, 0xdf, 0xff, 0xfa, 0x0,
+    0x6f, 0x44, 0x8f, 0x1d, 0xa4, 0x4d, 0xa0, 0x6,
+    0xf5, 0x58, 0xf1, 0xdb, 0x55, 0xda, 0x0, 0x5f,
+    0xff, 0xff, 0xd, 0xff, 0xff, 0x90, 0x0, 0x0,
+    0x0, 0x5e, 0x41, 0xe6, 0x0, 0x0, 0xef, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf2, 0x5, 0x66, 0x9f,
+    0xf7, 0xef, 0x96, 0x66, 0x10, 0x15, 0xbf, 0xe4,
+    0x1, 0xcf, 0xb5, 0x10, 0x6f, 0xff, 0xe7, 0x60,
+    0x56, 0xcf, 0xff, 0xb3, 0xaf, 0xdd, 0xef, 0xd,
+    0xfd, 0xdf, 0xc5, 0x4, 0xf2, 0x6, 0xf0, 0xd9,
+    0x0, 0xe8, 0x0, 0x4f, 0x64, 0x9f, 0xd, 0xb4,
+    0x4e, 0x80, 0x4, 0xff, 0xff, 0xf0, 0xdf, 0xff,
+    0xf8, 0x0,
+
     /* U+5728 "在" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2f, 0x60, 0x0, 0x0, 0x0, 0x0,
@@ -1453,23 +1438,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xef, 0x90, 0x0, 0x1, 0xbf, 0xc0,
     0x0, 0x0, 0x54, 0x0, 0x0, 0x0, 0x4, 0x30,
 
-    /* U+57DF "域" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
-    0x0, 0x5c, 0x0, 0x0, 0x0, 0xf8, 0xe8, 0x0,
-    0x0, 0x6f, 0x10, 0x0, 0x0, 0xf8, 0x6f, 0x30,
-    0x0, 0x6f, 0x13, 0x77, 0x77, 0xfb, 0x7c, 0x70,
-    0x0, 0x6f, 0x15, 0xff, 0xff, 0xff, 0xff, 0xe0,
-    0xd, 0xff, 0xf7, 0x0, 0x0, 0xe9, 0x1, 0x0,
-    0x4, 0x9f, 0x68, 0xff, 0xf8, 0xd9, 0xe, 0x70,
-    0x0, 0x6f, 0x16, 0xf7, 0xd8, 0xca, 0x4f, 0x30,
-    0x0, 0x6f, 0x16, 0xe0, 0xb8, 0xac, 0xad, 0x0,
-    0x0, 0x6f, 0x16, 0xe6, 0xd8, 0x9e, 0xf6, 0x0,
-    0x0, 0x6f, 0x28, 0xff, 0xf8, 0x6f, 0xe0, 0x0,
-    0x1, 0x9f, 0xf8, 0x0, 0x1, 0x6f, 0x60, 0x0,
-    0x3f, 0xff, 0xb5, 0x5a, 0xea, 0xef, 0x72, 0xe1,
-    0x1c, 0x61, 0x7f, 0xff, 0xef, 0xfe, 0xc5, 0xf0,
-    0x0, 0x0, 0x4b, 0x63, 0xdf, 0x56, 0xfe, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0xa5, 0x0, 0xaf, 0x50,
+    /* U+5883 "境" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x8e, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0,
+    0x0, 0x8e, 0x5, 0xee, 0xef, 0xfe, 0xee, 0x60,
+    0x0, 0x8e, 0x1, 0x4b, 0xd4, 0x4e, 0xb4, 0x10,
+    0x1, 0x8e, 0x12, 0x4a, 0xe4, 0x5f, 0x94, 0x40,
+    0xe, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x7, 0xcf, 0x81, 0x33, 0x33, 0x33, 0x32, 0x0,
+    0x0, 0x8e, 0x1, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x8e, 0x1, 0xf6, 0x33, 0x33, 0xac, 0x0,
+    0x0, 0x8e, 0x1, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x8e, 0x1, 0xf6, 0x33, 0x33, 0xac, 0x0,
+    0x0, 0x8f, 0xc9, 0xff, 0xff, 0xff, 0xfb, 0x0,
+    0x3d, 0xff, 0xb4, 0xa, 0xe0, 0xba, 0x0, 0x81,
+    0x19, 0x40, 0x2, 0x9f, 0x70, 0xbb, 0x3, 0xf1,
+    0x0, 0x0, 0xbf, 0xe6, 0x0, 0x6f, 0xde, 0xb0,
+    0x0, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+58F0 "声" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -1522,6 +1507,25 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x20, 0x7, 0xef, 0xfd, 0x94, 0x15, 0xaf, 0xff,
     0x90, 0x37, 0x41, 0x0, 0x0, 0x0, 0x2, 0x53,
 
+    /* U+5916 "外" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x4, 0xe4, 0x0, 0x9, 0xe0, 0x0, 0x0,
+    0x0, 0x9, 0xf3, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0xe, 0xf9, 0x99, 0x59, 0xf0, 0x0, 0x0,
+    0x0, 0x5f, 0xff, 0xff, 0x89, 0xf0, 0x0, 0x0,
+    0x0, 0xbf, 0x20, 0x3f, 0x69, 0xf2, 0x0, 0x0,
+    0x3, 0xfa, 0x0, 0x7f, 0x29, 0xff, 0x90, 0x0,
+    0xc, 0xfd, 0x30, 0xbe, 0x9, 0xfb, 0xfc, 0x10,
+    0x4f, 0xcf, 0xf5, 0xfa, 0x9, 0xf0, 0x8f, 0xd0,
+    0x1c, 0x13, 0xda, 0xf3, 0x9, 0xf0, 0x6, 0x80,
+    0x0, 0x0, 0x3f, 0xc0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0xdf, 0x30, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0xa, 0xf8, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0x9f, 0xb0, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x9, 0xfd, 0x0, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x6, 0xd1, 0x0, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5931 "失" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x33, 0x0, 0xfb, 0x0, 0x0, 0x0, 0x0,
@@ -1540,23 +1544,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x70, 0xba, 0x20, 0x0, 0x0, 0x0, 0x5, 0xd2,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5B8C "完" */
-    0x0, 0x0, 0x0, 0x4c, 0x50, 0x0, 0x0, 0x0,
-    0x45, 0x55, 0x57, 0xfb, 0x55, 0x55, 0x50, 0xc,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xcd,
-    0x22, 0x22, 0x22, 0x22, 0x29, 0xf0, 0xc, 0xc2,
-    0x33, 0x33, 0x33, 0x33, 0x8f, 0x0, 0x11, 0xef,
-    0xff, 0xff, 0xff, 0xf3, 0x20, 0x0, 0x3, 0x44,
-    0x44, 0x44, 0x44, 0x0, 0x0, 0x11, 0x11, 0x11,
-    0x11, 0x11, 0x11, 0x10, 0xe, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x30, 0x56, 0x6a, 0xf8, 0x6b,
-    0xf6, 0x66, 0x61, 0x0, 0x0, 0x9f, 0x20, 0x9f,
-    0x0, 0x2, 0x0, 0x0, 0x3f, 0xd0, 0x9, 0xf0,
-    0x0, 0xf8, 0x2, 0x9f, 0xf3, 0x0, 0x8f, 0x97,
-    0x9f, 0x61, 0xff, 0xc2, 0x0, 0x1, 0xcf, 0xff,
-    0xb0, 0x5, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0,
-
     /* U+5B9A "定" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xe7, 0x0, 0x0, 0x0, 0x3,
@@ -1574,6 +1561,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x76, 0x4f, 0xa0, 0x3, 0x9d, 0xff, 0xff, 0xff,
     0xa0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5BA4 "室" */
+    0x0, 0x0, 0x0, 0x1a, 0x60, 0x0, 0x0, 0x0,
+    0x13, 0x33, 0x33, 0xfd, 0x33, 0x33, 0x30, 0x9,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x9f,
+    0x33, 0x33, 0x33, 0x33, 0x36, 0xf4, 0x2, 0x66,
+    0x66, 0x66, 0x66, 0x66, 0x75, 0x10, 0x6, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x20, 0x0, 0x0, 0x9f,
+    0x90, 0x5, 0xf6, 0x0, 0x0, 0x5, 0xdf, 0xa5,
+    0x56, 0x6e, 0xf8, 0x0, 0x0, 0x9f, 0xff, 0xff,
+    0xfd, 0xdd, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xea,
+    0x0, 0x3, 0x10, 0x0, 0x8f, 0xff, 0xff, 0xff,
+    0xff, 0xf3, 0x0, 0x3, 0x77, 0x77, 0xfc, 0x77,
+    0x77, 0x10, 0x5, 0x55, 0x55, 0x5f, 0xc5, 0x55,
+    0x55, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc,
+
     /* U+5BC6 "密" */
     0x0, 0x0, 0x0, 0x2d, 0x50, 0x0, 0x0, 0x0,
     0x37, 0x77, 0x77, 0xfc, 0x77, 0x77, 0x70, 0x8,
@@ -2154,6 +2157,24 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
     0x3b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0,
 
+    /* U+6C34 "水" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x90, 0x0, 0x51, 0x0,
+    0x1, 0x11, 0x11, 0x1f, 0xe0, 0x4, 0xfb, 0x0,
+    0xe, 0xff, 0xff, 0x3f, 0xf3, 0x4f, 0xf4, 0x0,
+    0x8, 0x99, 0xcf, 0x2f, 0xfc, 0xff, 0x30, 0x0,
+    0x0, 0x0, 0xbd, 0x1f, 0xef, 0xe3, 0x0, 0x0,
+    0x0, 0x1, 0xf8, 0x1f, 0x9e, 0xb0, 0x0, 0x0,
+    0x0, 0x9, 0xf2, 0x1f, 0x86, 0xf6, 0x0, 0x0,
+    0x0, 0x4f, 0x90, 0x1f, 0x80, 0xbf, 0x40, 0x0,
+    0x1, 0xee, 0x10, 0x1f, 0x80, 0x1e, 0xf4, 0x0,
+    0xc, 0xf4, 0x0, 0x1f, 0x80, 0x2, 0xff, 0x60,
+    0x7f, 0x70, 0x0, 0x3f, 0x80, 0x0, 0x3e, 0xb0,
+    0x4, 0x0, 0x2e, 0xff, 0x70, 0x0, 0x2, 0x0,
+    0x0, 0x0, 0xb, 0xb8, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6C38 "永" */
     0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xa, 0xf9, 0x30, 0x0, 0x0, 0x0,
@@ -2312,6 +2333,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xfc, 0xd1, 0x0, 0x0, 0xb, 0x70,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+73AF "环" */
+    0x9, 0x99, 0x99, 0x6c, 0xcc, 0xcc, 0xcc, 0x50,
+    0xff, 0xff, 0xf8, 0xdd, 0xef, 0xed, 0xd5, 0x0,
+    0x3f, 0x50, 0x0, 0xa, 0xf1, 0x0, 0x0, 0x3,
+    0xf5, 0x0, 0x1, 0xfb, 0x0, 0x0, 0x0, 0x3f,
+    0x50, 0x0, 0x9f, 0x50, 0x0, 0x0, 0xdf, 0xff,
+    0xf0, 0x3f, 0xff, 0xc1, 0x0, 0x8, 0xaf, 0xb9,
+    0xd, 0xef, 0xbe, 0xc0, 0x0, 0x3, 0xf5, 0x9,
+    0xf5, 0xfa, 0x3f, 0xb0, 0x0, 0x3f, 0x57, 0xfa,
+    0xf, 0xa0, 0x6f, 0x90, 0x3, 0xf5, 0x1c, 0x0,
+    0xfa, 0x0, 0xa8, 0x2, 0x7f, 0xdf, 0x60, 0xf,
+    0xa0, 0x0, 0x6, 0xff, 0xfe, 0xb4, 0x0, 0xfa,
+    0x0, 0x0, 0x37, 0x41, 0x0, 0x0, 0xf, 0xa0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfa, 0x0,
+    0x0,
+
     /* U+7406 "理" */
     0x7, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0x10,
     0xef, 0xff, 0xeb, 0xe7, 0xbf, 0x7a, 0xf1, 0x0,
@@ -2763,23 +2800,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4f, 0x30, 0xc, 0xf7, 0xba, 0x87, 0x65, 0xf3,
     0x14, 0x0, 0x4, 0x40, 0x0, 0x0, 0x0, 0x30,
 
-    /* U+8BB8 "许" */
-    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-    0x76, 0x0, 0x4, 0xf5, 0x0, 0x0, 0x0, 0xc,
-    0xf4, 0x0, 0xaf, 0x10, 0x0, 0x0, 0x0, 0x1e,
-    0xe1, 0x1f, 0xff, 0xff, 0xff, 0xb0, 0x0, 0x4b,
-    0x8, 0xfa, 0xaf, 0xda, 0xa7, 0x0, 0x0, 0x1,
-    0xed, 0x1, 0xf8, 0x0, 0x0, 0xdf, 0xf7, 0x7f,
-    0x50, 0x1f, 0x80, 0x0, 0x8, 0xaf, 0x70, 0x50,
-    0x1, 0xf8, 0x0, 0x0, 0x1, 0xf7, 0x49, 0x99,
-    0x9f, 0xc9, 0x99, 0x30, 0x1f, 0x77, 0xff, 0xff,
-    0xff, 0xff, 0xf6, 0x1, 0xf7, 0x0, 0x0, 0x1f,
-    0x80, 0x0, 0x0, 0x1f, 0x76, 0x60, 0x1, 0xf8,
-    0x0, 0x0, 0x1, 0xfe, 0xfb, 0x0, 0x1f, 0x80,
-    0x0, 0x0, 0x2f, 0xfc, 0x20, 0x1, 0xf8, 0x0,
-    0x0, 0x2, 0xf9, 0x0, 0x0, 0x1f, 0x80, 0x0,
-    0x0, 0x3, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0,
-
     /* U+8BBE "设" */
     0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x9f, 0x50, 0xa, 0xff, 0xff, 0xf0, 0x0,
@@ -3013,22 +3033,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1c, 0xf0, 0x9f, 0x10, 0x0, 0x0, 0x7, 0xff,
     0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
 
-    /* U+9600 "阀" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
-    0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xf7,
-    0x4f, 0xff, 0xff, 0xff, 0xf3, 0x26, 0xae, 0x6a,
-    0xae, 0x8a, 0x68, 0xf3, 0x6f, 0x12, 0xd8, 0x5e,
-    0x5f, 0x63, 0xf3, 0x6f, 0x5, 0xf2, 0x5f, 0x5,
-    0x84, 0xf3, 0x6f, 0xd, 0xe4, 0x9f, 0xcf, 0xf6,
-    0xf3, 0x6f, 0x8f, 0xec, 0xef, 0x96, 0x54, 0xf3,
-    0x6f, 0xef, 0xe0, 0xf, 0x48, 0xd3, 0xf3, 0x6f,
-    0x57, 0xe0, 0xd, 0xcf, 0x43, 0xf3, 0x6f, 0x6,
-    0xe0, 0x1d, 0xf6, 0x3, 0xf3, 0x6f, 0x6, 0xf8,
-    0xff, 0xf1, 0xb7, 0xf3, 0x6f, 0x6, 0xec, 0x92,
-    0xeb, 0xf5, 0xf2, 0x6f, 0x6, 0xe0, 0x0, 0x5f,
-    0xb5, 0xf2, 0x6f, 0x1, 0x40, 0x0, 0x2, 0xef,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0,
-
     /* U+9664 "除" */
     0x0, 0x0, 0x0, 0x0, 0xbf, 0x30, 0x0, 0x7,
     0xff, 0xff, 0x0, 0x5f, 0xed, 0x0, 0x0, 0x7f,
@@ -3062,6 +3066,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x9e, 0x0,
     0x0,
 
+    /* U+96C6 "集" */
+    0x0, 0x5, 0xc1, 0x4, 0xb1, 0x0, 0x0, 0x0,
+    0x0, 0xdd, 0x22, 0x5f, 0x72, 0x22, 0x20, 0x0,
+    0x8f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x4f,
+    0xf1, 0x11, 0x3f, 0x71, 0x11, 0x10, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x2, 0xd9, 0xf4,
+    0x44, 0x5f, 0x84, 0x44, 0x20, 0x0, 0x8f, 0xdd,
+    0xdd, 0xfe, 0xdd, 0xd7, 0x0, 0x8, 0xf5, 0x55,
+    0x6f, 0x95, 0x55, 0x50, 0x0, 0x6d, 0xdd, 0xdd,
+    0xdd, 0xdd, 0xdd, 0x10, 0x45, 0x55, 0x55, 0xc9,
+    0x55, 0x55, 0x51, 0xd, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x50, 0x0, 0x1, 0x9f, 0xff, 0xe6,
+    0x0, 0x0, 0x0, 0x5a, 0xfe, 0x6f, 0x98, 0xfe,
+    0x82, 0x4, 0xff, 0xe7, 0x0, 0xf8, 0x2, 0xaf,
+    0xfa, 0xa, 0x40, 0x0, 0xf, 0x80, 0x0, 0x5,
+    0x40,
+
     /* U+97F3 "音" */
     0x0, 0x0, 0x0, 0x1d, 0x80, 0x0, 0x0, 0x0,
     0x18, 0x88, 0x88, 0xfe, 0x88, 0x88, 0x80, 0x3,
@@ -4211,200 +4232,201 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 4796, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 4909, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
     {.bitmap_index = 5045, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 5173, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5293, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5413, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5173, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5293, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5405, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 5525, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5645, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5765, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 5869, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5989, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6109, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 6221, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5645, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 5749, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5869, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5989, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 6101, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6229, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6349, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6469, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6589, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6469, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6597, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6717, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6837, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6957, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7077, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7197, .adv_w = 252, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
-    {.bitmap_index = 7282, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7410, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7515, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7643, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7763, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7875, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7988, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 8093, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8206, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8326, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8446, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8574, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 8694, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8822, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8950, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9070, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9190, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9310, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 9438, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9551, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9671, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9784, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9889, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 9987, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10115, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10228, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10341, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10461, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10566, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 10664, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10769, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10889, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 11002, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 11138, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11266, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11386, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11506, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11626, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11754, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11874, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12002, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12130, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12258, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 12386, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12506, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12611, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 12723, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 12821, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 12949, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 13062, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13190, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13326, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 13439, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13575, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 13679, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13807, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13927, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14040, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14160, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 14288, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14408, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14528, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14656, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 14792, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 14890, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14988, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 15108, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 15220, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 15332, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 15445, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15565, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15670, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15790, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15903, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16031, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16151, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16271, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16391, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16519, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 16631, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16744, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16864, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16984, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17082, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 17180, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 17308, .adv_w = 252, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17427, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17540, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17668, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17773, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17901, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 18021, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18141, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 18253, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18373, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18501, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18621, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18741, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18861, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18989, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 19102, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 19207, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 19305, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 19425, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19529, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19641, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19753, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19866, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19971, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20084, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20196, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20316, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20429, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20565, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 20661, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 20773, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 20869, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 20935, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21063, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21191, .adv_w = 288, .box_w = 18, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 21317, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21445, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 21553, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21681, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 21737, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 21821, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21965, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 22061, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 22149, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 22229, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 22355, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22460, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22558, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 22638, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
-    {.bitmap_index = 22750, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22820, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22890, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22988, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
-    {.bitmap_index = 23016, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 23124, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 23284, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 23444, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 23572, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 23642, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 23712, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 23852, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 23948, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 24076, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 24221, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 24326, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 24438, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 24536, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 24634, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 24730, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 24826, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 24938, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 25050, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 25158, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 25320, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 25416, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 25566, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25666, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25766, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25866, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25966, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 26066, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 26213, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 26309, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 26421, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 26566, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 26686, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 26782, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 26876, .adv_w = 252, .box_w = 6, .box_h = 14, .ofs_x = 8, .ofs_y = -2},
-    {.bitmap_index = 26918, .adv_w = 252, .box_w = 5, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 26953, .adv_w = 252, .box_w = 5, .box_h = 6, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 26968, .adv_w = 252, .box_w = 4, .box_h = 10, .ofs_x = 2, .ofs_y = -1}
+    {.bitmap_index = 7077, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7205, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7310, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7438, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7558, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7670, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7783, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 7888, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8001, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8121, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 8219, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8339, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8467, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 8587, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8715, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8843, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8963, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9083, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9203, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9339, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9467, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9587, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 9692, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9805, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9910, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10008, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10136, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10249, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10362, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10482, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10587, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 10685, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10790, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10910, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 11023, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 11159, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11287, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11407, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11527, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11647, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11775, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11895, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12023, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12151, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12279, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 12407, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12527, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12632, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 12744, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 12842, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 12970, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13083, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13211, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13347, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13460, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13596, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13700, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13828, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13956, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14076, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14189, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14309, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14437, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14557, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14677, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14805, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14941, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15046, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15144, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15242, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 15362, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15474, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 15586, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 15699, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15819, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15924, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16044, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16157, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16285, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16405, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16525, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16645, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16773, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 16885, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16998, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17118, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17238, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 17336, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 17434, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 17562, .adv_w = 252, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 17681, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17794, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17922, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18027, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18155, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18275, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 18387, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18507, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18635, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18755, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18875, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18995, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 19123, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 19236, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 19341, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 19439, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 19559, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19663, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19775, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19888, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19993, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20106, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20219, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20331, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20451, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20564, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20700, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 20796, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 20908, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 21004, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 21070, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21198, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21326, .adv_w = 288, .box_w = 18, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 21452, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21580, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 21688, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21816, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 21872, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 21956, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 22100, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 22196, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 22284, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 22364, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 22490, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 22595, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 22693, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 22773, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 22885, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 22955, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 23025, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 23123, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
+    {.bitmap_index = 23151, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 23259, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 23419, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 23579, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 23707, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 23777, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 23847, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 23987, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 24083, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 24211, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 24356, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 24461, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 24573, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 24671, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 24769, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 24865, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 24961, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 25073, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 25185, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 25293, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 25455, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 25551, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 25701, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 25801, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 25901, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 26001, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 26101, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 26201, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 26348, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 26444, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 26556, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 26701, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 26821, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 26917, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 27011, .adv_w = 252, .box_w = 6, .box_h = 14, .ofs_x = 8, .ofs_y = -2},
+    {.bitmap_index = 27053, .adv_w = 252, .box_w = 5, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 27088, .adv_w = 252, .box_w = 5, .box_h = 6, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 27103, .adv_w = 252, .box_w = 4, .box_h = 10, .ofs_x = 2, .ofs_y = -1}
 };
 
 /*---------------------
@@ -4413,31 +4435,31 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
 
 static const uint16_t unicode_list_2[] = {
     0x0, 0x1, 0x1df0, 0x1dfd, 0x1e1d, 0x1e7e, 0x1e84, 0x1ec6,
-    0x1f43, 0x1f4c, 0x1f6f, 0x206f, 0x2131, 0x2155, 0x2158, 0x2163,
-    0x2166, 0x2175, 0x21a7, 0x21b0, 0x21ea, 0x21f6, 0x2207, 0x2226,
-    0x223d, 0x228f, 0x2290, 0x2298, 0x2306, 0x232a, 0x2337, 0x2372,
-    0x23b2, 0x23bd, 0x23c6, 0x23e7, 0x23fd, 0x23fe, 0x241f, 0x2718,
-    0x2720, 0x2730, 0x2747, 0x27cf, 0x28e0, 0x28f7, 0x28fd, 0x2921,
-    0x2b7c, 0x2b8a, 0x2bb6, 0x2c3f, 0x2de2, 0x2e45, 0x2e7f, 0x2e96,
+    0x1f43, 0x1f4c, 0x1f6f, 0x206f, 0x2155, 0x2158, 0x2163, 0x2166,
+    0x2175, 0x21a7, 0x21b0, 0x21ea, 0x21f6, 0x2207, 0x2226, 0x223d,
+    0x228f, 0x2290, 0x2298, 0x2306, 0x2337, 0x2372, 0x23b2, 0x23bd,
+    0x23c6, 0x23e7, 0x23fd, 0x23fe, 0x241f, 0x2658, 0x2718, 0x2720,
+    0x2730, 0x2747, 0x2873, 0x28e0, 0x28f7, 0x28fd, 0x2906, 0x2921,
+    0x2b8a, 0x2b94, 0x2bb6, 0x2c3f, 0x2de2, 0x2e45, 0x2e7f, 0x2e96,
     0x2eea, 0x2ef0, 0x2f43, 0x2f45, 0x2ff1, 0x3042, 0x3052, 0x3200,
     0x325b, 0x326e, 0x3395, 0x3397, 0x3468, 0x34bd, 0x3535, 0x3560,
     0x359d, 0x35a0, 0x35d0, 0x35e6, 0x362e, 0x366a, 0x371a, 0x371c,
-    0x372a, 0x37d5, 0x3a11, 0x3b53, 0x3c28, 0x3d78, 0x3e19, 0x3e6f,
-    0x3e80, 0x40dd, 0x4174, 0x4238, 0x42a6, 0x43f6, 0x4518, 0x4525,
-    0x466b, 0x4674, 0x47f1, 0x485e, 0x492a, 0x49e0, 0x49fb, 0x4b91,
-    0x4ba1, 0x4ceb, 0x4e97, 0x4ec1, 0x4ecc, 0x4ecf, 0x4edd, 0x4eef,
-    0x4f41, 0x4f5e, 0x5044, 0x50ed, 0x583c, 0x5855, 0x5971, 0x59d6,
-    0x5ba8, 0x5bae, 0x5bd2, 0x5be7, 0x5d15, 0x5f83, 0x5fcb, 0x5fcc,
-    0x5fce, 0x5ff0, 0x61bd, 0x61bf, 0x648f, 0x65dd, 0x65e4, 0x65f0,
-    0x6654, 0x668c, 0x67e3, 0x68be, 0x6978, 0x6ac8, 0xbff1, 0xbff8,
-    0xbffb, 0xbffc, 0xbffd, 0xc001, 0xc003, 0xc005, 0xc009, 0xc00c,
-    0xc011, 0xc016, 0xc017, 0xc018, 0xc02e, 0xc033, 0xc038, 0xc03b,
-    0xc03c, 0xc03d, 0xc041, 0xc042, 0xc043, 0xc044, 0xc057, 0xc058,
-    0xc05e, 0xc060, 0xc061, 0xc064, 0xc067, 0xc068, 0xc069, 0xc06b,
-    0xc083, 0xc085, 0xc0b4, 0xc0b5, 0xc0b7, 0xc0b9, 0xc0d0, 0xc0d7,
-    0xc0da, 0xc0e3, 0xc10c, 0xc114, 0xc14b, 0xc1db, 0xc230, 0xc231,
-    0xc232, 0xc233, 0xc234, 0xc277, 0xc283, 0xc2dd, 0xc2f4, 0xc54a,
-    0xc7b2, 0xc892, 0xcef8, 0xcef9, 0xcefc, 0xcf0a
+    0x372a, 0x37d5, 0x3a11, 0x3b53, 0x3c24, 0x3c28, 0x3d78, 0x3e19,
+    0x3e6f, 0x3e80, 0x40dd, 0x4174, 0x4238, 0x42a6, 0x439f, 0x43f6,
+    0x4518, 0x4525, 0x466b, 0x4674, 0x47f1, 0x485e, 0x492a, 0x49e0,
+    0x49fb, 0x4b91, 0x4ba1, 0x4ceb, 0x4e97, 0x4ec1, 0x4ecc, 0x4ecf,
+    0x4edd, 0x4eef, 0x4f41, 0x4f5e, 0x5044, 0x50ed, 0x583c, 0x5855,
+    0x5971, 0x59d6, 0x5bae, 0x5bd2, 0x5be7, 0x5d15, 0x5f83, 0x5fcb,
+    0x5fcc, 0x5fce, 0x5ff0, 0x61bd, 0x61bf, 0x648f, 0x65dd, 0x65e4,
+    0x6654, 0x668c, 0x66b6, 0x67e3, 0x68be, 0x6978, 0x6ac8, 0xbff1,
+    0xbff8, 0xbffb, 0xbffc, 0xbffd, 0xc001, 0xc003, 0xc005, 0xc009,
+    0xc00c, 0xc011, 0xc016, 0xc017, 0xc018, 0xc02e, 0xc033, 0xc038,
+    0xc03b, 0xc03c, 0xc03d, 0xc041, 0xc042, 0xc043, 0xc044, 0xc057,
+    0xc058, 0xc05e, 0xc060, 0xc061, 0xc064, 0xc067, 0xc068, 0xc069,
+    0xc06b, 0xc083, 0xc085, 0xc0b4, 0xc0b5, 0xc0b7, 0xc0b9, 0xc0d0,
+    0xc0d7, 0xc0da, 0xc0e3, 0xc10c, 0xc114, 0xc14b, 0xc1db, 0xc230,
+    0xc231, 0xc232, 0xc233, 0xc234, 0xc277, 0xc283, 0xc2dd, 0xc2f4,
+    0xc54a, 0xc7b2, 0xc892, 0xcef8, 0xcef9, 0xcefc, 0xcf0a
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -4453,7 +4475,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
     },
     {
         .range_start = 12304, .range_length = 53003, .glyph_id_start = 97,
-        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 206, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 207, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
@@ -4502,7 +4524,7 @@ static const uint8_t kern_left_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0, 0
 };
 
 /*Map glyph_ids to kern right classes*/
@@ -4545,7 +4567,7 @@ static const uint8_t kern_right_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0, 0
 };
 
 /*Kern values between classes*/

+ 146 - 72
main/ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_20.c

@@ -1024,6 +1024,77 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf9, 0x17, 0xf9, 0x3f, 0xd1, 0x5f, 0xff, 0xff,
     0x34, 0xc7, 0x0, 0x1a, 0xfe, 0x60,
 
+    /* U+5730 "地" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x89, 0x0, 0x0, 0x0, 0xcf,
+    0x10, 0x0, 0x0, 0x0, 0xd, 0xf1, 0x0, 0x21,
+    0xc, 0xf1, 0x0, 0x0, 0x0, 0x0, 0xdf, 0x10,
+    0x1f, 0xb0, 0xcf, 0x10, 0x0, 0x0, 0x0, 0xd,
+    0xf1, 0x1, 0xfb, 0xc, 0xf1, 0x16, 0xc3, 0x0,
+    0x0, 0xdf, 0x10, 0x1f, 0xb0, 0xcf, 0xcf, 0xff,
+    0x20, 0xa, 0xcf, 0xfc, 0x91, 0xfd, 0xaf, 0xff,
+    0xee, 0xf2, 0x0, 0xdf, 0xff, 0xfd, 0x9f, 0xff,
+    0xff, 0x40, 0xbf, 0x10, 0x2, 0x2d, 0xf3, 0xdf,
+    0xfe, 0x5c, 0xf1, 0xc, 0xf1, 0x0, 0x0, 0xdf,
+    0x16, 0x8f, 0xb0, 0xcf, 0x10, 0xdf, 0x0, 0x0,
+    0xd, 0xf1, 0x1, 0xfb, 0xc, 0xf1, 0xd, 0xf0,
+    0x0, 0x0, 0xdf, 0x10, 0x1f, 0xb0, 0xcf, 0x46,
+    0xff, 0x0, 0x0, 0xd, 0xf1, 0x1, 0xfb, 0xc,
+    0xf8, 0xff, 0xc0, 0x0, 0x0, 0xdf, 0x26, 0x2f,
+    0xb0, 0xcf, 0x3b, 0x82, 0x0, 0x0, 0xd, 0xff,
+    0xf6, 0xfb, 0xc, 0xf1, 0x0, 0x6b, 0x30, 0x6d,
+    0xff, 0xfb, 0x4f, 0xb0, 0x12, 0x0, 0x7, 0xf7,
+    0x3f, 0xff, 0x92, 0x1, 0xfe, 0x0, 0x0, 0x0,
+    0xbf, 0x50, 0xd6, 0x0, 0x0, 0xe, 0xff, 0xed,
+    0xde, 0xff, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x4c,
+    0xef, 0xff, 0xfe, 0xd6, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6696 "暖" */
+    0x0, 0x0, 0x0, 0x0, 0x12, 0x35, 0x79, 0xbc,
+    0xd, 0xdd, 0xdc, 0x5f, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0xff, 0xff, 0xf2, 0xbe, 0x98, 0xd8, 0x35,
+    0xb2, 0xf, 0xb0, 0xbf, 0x6, 0xf3, 0xf, 0xa0,
+    0xaf, 0x10, 0xfb, 0xb, 0xf0, 0x1e, 0x90, 0xad,
+    0x3f, 0xa0, 0xf, 0xb0, 0xbf, 0x5f, 0xff, 0xff,
+    0xff, 0xff, 0xf1, 0xfb, 0xb, 0xf2, 0x88, 0xfd,
+    0x88, 0x88, 0x88, 0xf, 0xd6, 0xdf, 0x0, 0x2f,
+    0xa0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf9, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x7f, 0xd7, 0xdf, 0x59,
+    0xdf, 0xa9, 0x99, 0x99, 0x94, 0xfb, 0xb, 0xf0,
+    0xd, 0xf9, 0x99, 0x99, 0x92, 0xf, 0xb0, 0xbf,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0x40, 0xfb, 0xb,
+    0xf0, 0x8f, 0xdf, 0x30, 0x3f, 0xe1, 0xf, 0xb0,
+    0xbf, 0x1f, 0xd2, 0xfe, 0x4e, 0xf5, 0x0, 0xff,
+    0xff, 0xfa, 0xf6, 0x5, 0xff, 0xf7, 0x0, 0xe,
+    0xee, 0xef, 0xfc, 0x1, 0x9f, 0xff, 0x92, 0x0,
+    0x0, 0x1, 0xff, 0xac, 0xff, 0xd6, 0xdf, 0xfd,
+    0x80, 0x0, 0x8, 0x7e, 0xfd, 0x60, 0x0, 0x5c,
+    0xf9, 0x0, 0x0, 0x0, 0x42, 0x0, 0x0, 0x0,
+    0x2, 0x10,
+
+    /* U+9600 "阀" */
+    0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xf6, 0xd, 0xff, 0xff, 0xff, 0xff, 0xfb,
+    0x3, 0xff, 0x29, 0xbb, 0xbb, 0xbb, 0xbb, 0xfb,
+    0x43, 0x59, 0x36, 0x4, 0x60, 0x71, 0x0, 0xfb,
+    0xfc, 0x0, 0xaf, 0x19, 0xf3, 0xfd, 0x10, 0xfb,
+    0xfc, 0x1, 0xfa, 0x9, 0xf0, 0x4f, 0x70, 0xfb,
+    0xfc, 0x9, 0xf3, 0x8, 0xf3, 0x5a, 0xa2, 0xfb,
+    0xfc, 0x2f, 0xf7, 0xce, 0xff, 0xff, 0xf4, 0xfb,
+    0xfc, 0xbf, 0xf8, 0xcc, 0xf9, 0x34, 0x20, 0xfb,
+    0xfe, 0xff, 0xf1, 0x2, 0xf7, 0x1e, 0xc0, 0xfb,
+    0xfc, 0x89, 0xf1, 0x0, 0xfc, 0xef, 0x30, 0xfb,
+    0xfc, 0x8, 0xf1, 0x0, 0xdf, 0xf4, 0x0, 0xfb,
+    0xfc, 0x8, 0xf1, 0x5d, 0xff, 0x50, 0x92, 0xfb,
+    0xfc, 0x8, 0xfd, 0xff, 0x9f, 0xb2, 0xf5, 0xfb,
+    0xfc, 0x8, 0xf6, 0x91, 0xa, 0xfe, 0xf1, 0xfb,
+    0xfc, 0x8, 0xf1, 0x0, 0x1, 0xcf, 0x82, 0xfb,
+    0xfc, 0x3, 0x50, 0x0, 0x0, 0x9, 0xdf, 0xfa,
+    0xfc, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xe3,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x0,
+
     /* U+F001 "" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -2560,66 +2631,69 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 6056, .adv_w = 67, .box_w = 3, .box_h = 19, .ofs_x = 1, .ofs_y = -4},
     {.bitmap_index = 6085, .adv_w = 106, .box_w = 6, .box_h = 19, .ofs_x = 0, .ofs_y = -4},
     {.bitmap_index = 6142, .adv_w = 182, .box_w = 11, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
-    {.bitmap_index = 6164, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 6374, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 6524, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6714, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 6864, .adv_w = 220, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 6969, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7179, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7389, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7608, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7818, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 7991, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 8201, .adv_w = 160, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 8281, .adv_w = 240, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 8401, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8620, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 8770, .adv_w = 220, .box_w = 14, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 8917, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 9041, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 9230, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9401, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9572, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 9696, .adv_w = 280, .box_w = 19, .box_h = 19, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 9877, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 9982, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 10087, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10258, .adv_w = 280, .box_w = 18, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
-    {.bitmap_index = 10303, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 10476, .adv_w = 400, .box_w = 26, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 10749, .adv_w = 360, .box_w = 24, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 11001, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11191, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 11290, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 11389, .adv_w = 400, .box_w = 26, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 11597, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 11747, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 11957, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 12178, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12349, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 12538, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12709, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 12862, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 13012, .adv_w = 200, .box_w = 14, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 13159, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13348, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13537, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 13710, .adv_w = 320, .box_w = 22, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 13941, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 14099, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14337, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14500, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14663, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14826, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14989, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 15152, .adv_w = 400, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 15373, .adv_w = 280, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 15541, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 15730, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 15951, .adv_w = 400, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 16139, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16297, .adv_w = 322, .box_w = 21, .box_h = 13, .ofs_x = 0, .ofs_y = 1}
+    {.bitmap_index = 6164, .adv_w = 315, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6354, .adv_w = 315, .box_w = 17, .box_h = 19, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 6516, .adv_w = 315, .box_w = 16, .box_h = 20, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 6676, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6886, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7036, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7226, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7376, .adv_w = 220, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7481, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7691, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7901, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8120, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 8330, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8503, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 8713, .adv_w = 160, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8793, .adv_w = 240, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 8913, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9132, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 9282, .adv_w = 220, .box_w = 14, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9429, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 9553, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9742, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9913, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10084, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 10208, .adv_w = 280, .box_w = 19, .box_h = 19, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 10389, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10494, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10599, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10770, .adv_w = 280, .box_w = 18, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
+    {.bitmap_index = 10815, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 10988, .adv_w = 400, .box_w = 26, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 11261, .adv_w = 360, .box_w = 24, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 11513, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11703, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 11802, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 11901, .adv_w = 400, .box_w = 26, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 12109, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 12259, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 12469, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 12690, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12861, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13050, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13221, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13374, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 13524, .adv_w = 200, .box_w = 14, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 13671, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13860, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14049, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 14222, .adv_w = 320, .box_w = 22, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 14453, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14611, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14849, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15012, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15175, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15338, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15501, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15664, .adv_w = 400, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15885, .adv_w = 280, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 16053, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16242, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 16463, .adv_w = 400, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 16651, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16809, .adv_w = 322, .box_w = 21, .box_h = 13, .ofs_x = 0, .ofs_y = 1}
 };
 
 /*---------------------
@@ -2627,14 +2701,14 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
  *--------------------*/
 
 static const uint16_t unicode_list_1[] = {
-    0x0, 0x7, 0xa, 0xb, 0xc, 0x10, 0x12, 0x14,
-    0x18, 0x1b, 0x20, 0x25, 0x26, 0x27, 0x3d, 0x42,
-    0x47, 0x4a, 0x4b, 0x4c, 0x50, 0x51, 0x52, 0x53,
-    0x66, 0x67, 0x6d, 0x6f, 0x70, 0x73, 0x76, 0x77,
-    0x78, 0x7a, 0x92, 0x94, 0xc3, 0xc4, 0xc6, 0xc8,
-    0xdf, 0xe6, 0xe9, 0xf2, 0x11b, 0x123, 0x15a, 0x1ea,
-    0x23f, 0x240, 0x241, 0x242, 0x243, 0x286, 0x292, 0x2ec,
-    0x303, 0x559, 0x7c1, 0x8a1
+    0x0, 0xf66, 0x3ed0, 0x98d1, 0x98d8, 0x98db, 0x98dc, 0x98dd,
+    0x98e1, 0x98e3, 0x98e5, 0x98e9, 0x98ec, 0x98f1, 0x98f6, 0x98f7,
+    0x98f8, 0x990e, 0x9913, 0x9918, 0x991b, 0x991c, 0x991d, 0x9921,
+    0x9922, 0x9923, 0x9924, 0x9937, 0x9938, 0x993e, 0x9940, 0x9941,
+    0x9944, 0x9947, 0x9948, 0x9949, 0x994b, 0x9963, 0x9965, 0x9994,
+    0x9995, 0x9997, 0x9999, 0x99b0, 0x99b7, 0x99ba, 0x99c3, 0x99ec,
+    0x99f4, 0x9a2b, 0x9abb, 0x9b10, 0x9b11, 0x9b12, 0x9b13, 0x9b14,
+    0x9b57, 0x9b63, 0x9bbd, 0x9bd4, 0x9e2a, 0xa092, 0xa172
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -2645,8 +2719,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
         .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 61441, .range_length = 2210, .glyph_id_start = 96,
-        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 60, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 22320, .range_length = 41331, .glyph_id_start = 96,
+        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 63, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
@@ -2677,7 +2751,7 @@ static const uint8_t kern_left_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0
 };
 
 /*Map glyph_ids to kern right classes*/
@@ -2702,7 +2776,7 @@ static const uint8_t kern_right_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0
 };
 
 /*Kern values between classes*/

+ 155 - 74
main/ui/generated/guider_fonts/lv_font_iconfont_25.c

@@ -22,6 +22,48 @@
 
 /*Store the image of the glyphs*/
 static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
+    /* U+E600 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0xda, 0x10,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff, 0xff,
+    0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x40, 0xbf, 0xff, 0xff, 0x71, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xbf, 0x67, 0xff,
+    0xff, 0xf3, 0x7f, 0xa1, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xef, 0x80, 0xb, 0xff, 0xf7, 0x0, 0x8f,
+    0xd2, 0x0, 0x0, 0x0, 0x1, 0xef, 0x40, 0x0,
+    0x3, 0x52, 0x0, 0x0, 0x4f, 0xe1, 0x0, 0x0,
+    0x0, 0xbf, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0xb0, 0x0, 0x0, 0x3f, 0x90, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x40,
+    0x0, 0xb, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xeb, 0x0, 0x0, 0xfa, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
+    0xf0, 0x0, 0x4f, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x4f, 0x40, 0x5, 0xf3,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xf5, 0x0, 0x5f, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x8e, 0xfa, 0x10, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, 0xfe, 0x80,
+    0x8f, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xc, 0xff, 0xff, 0x8e, 0xff, 0xff, 0xf2,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff,
+    0xfe, 0xff, 0xff, 0xff, 0x30, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xfa, 0xff, 0xff,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef,
+    0xff, 0xfa, 0x1c, 0xff, 0xe3, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xef, 0xfc, 0x10, 0x2,
+    0x30, 0x1f, 0xb2, 0x0, 0x0, 0x0, 0x1, 0x9f,
+    0x10, 0x32, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xfc,
+    0x75, 0x45, 0x7b, 0xff, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x28, 0xef, 0xff, 0xff, 0xe8,
+    0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x24, 0x54, 0x20, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+E60A "" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
@@ -149,6 +191,42 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xf9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x35,
     0x30, 0x0, 0x0, 0x0,
 
+    /* U+E6A2 "" */
+    0x0, 0x36, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x65, 0x10, 0x0, 0xcf, 0xed, 0xdd, 0xdd,
+    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0x60, 0x9e,
+    0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x8f, 0x2e, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xe7, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x7e, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xe7, 0xe7, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
+    0x7e, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xe7, 0xe7, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x7e,
+    0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xe7, 0xe7, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x7e, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf6, 0x9f, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x9f, 0x20, 0xaf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x50, 0x0, 0x25, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xc7, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
+    0xf8, 0xc, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x13,
+    0x33, 0x33, 0x20, 0x1c, 0xfe, 0xf8, 0x0, 0x33,
+    0x33, 0x33, 0xd, 0xff, 0xff, 0xff, 0x20, 0x2f,
+    0xfc, 0x0, 0x7f, 0xff, 0xff, 0xf6, 0x13, 0x33,
+    0x33, 0x20, 0x1c, 0xfe, 0xf8, 0x0, 0x33, 0x33,
+    0x33, 0x0, 0x0, 0x0, 0x0, 0xc, 0xf9, 0xc,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xc8, 0x0, 0xa, 0x80, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+F001 "" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -2298,70 +2376,72 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
 
 static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
-    {.bitmap_index = 0, .adv_w = 400, .box_w = 23, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 265, .adv_w = 400, .box_w = 22, .box_h = 21, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 496, .adv_w = 400, .box_w = 23, .box_h = 22, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 749, .adv_w = 400, .box_w = 15, .box_h = 25, .ofs_x = 5, .ofs_y = -3},
-    {.bitmap_index = 937, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 1288, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1526, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1814, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2052, .adv_w = 275, .box_w = 18, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2214, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 2527, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 2852, .adv_w = 450, .box_w = 29, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3186, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 3511, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 3787, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 4100, .adv_w = 200, .box_w = 13, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 4230, .adv_w = 300, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 4420, .adv_w = 450, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 4783, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 5021, .adv_w = 275, .box_w = 18, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 5255, .adv_w = 350, .box_w = 16, .box_h = 24, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 5447, .adv_w = 350, .box_w = 22, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 5744, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5997, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6250, .adv_w = 350, .box_w = 17, .box_h = 24, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 6454, .adv_w = 350, .box_w = 24, .box_h = 23, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 6730, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 6891, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 7052, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7305, .adv_w = 350, .box_w = 22, .box_h = 5, .ofs_x = 0, .ofs_y = 7},
-    {.bitmap_index = 7360, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 7636, .adv_w = 500, .box_w = 33, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 8065, .adv_w = 450, .box_w = 30, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 8455, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8743, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 8897, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 9051, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 9355, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 9593, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 9918, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 10269, .adv_w = 350, .box_w = 23, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10534, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 10820, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11073, .adv_w = 350, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 11293, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 11531, .adv_w = 250, .box_w = 17, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 11752, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 12038, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 12324, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 12600, .adv_w = 400, .box_w = 27, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 12965, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 13212, .adv_w = 500, .box_w = 32, .box_h = 24, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13596, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 13868, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14140, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14412, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14684, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14956, .adv_w = 500, .box_w = 32, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 15276, .adv_w = 350, .box_w = 20, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 15536, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 15822, .adv_w = 400, .box_w = 26, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 16160, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 16464, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 16711, .adv_w = 402, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 1}
+    {.bitmap_index = 0, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 313, .adv_w = 400, .box_w = 23, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 578, .adv_w = 400, .box_w = 22, .box_h = 21, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 809, .adv_w = 400, .box_w = 23, .box_h = 22, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 1062, .adv_w = 400, .box_w = 15, .box_h = 25, .ofs_x = 5, .ofs_y = -3},
+    {.bitmap_index = 1250, .adv_w = 400, .box_w = 23, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1515, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 1866, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2104, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2392, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2630, .adv_w = 275, .box_w = 18, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2792, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 3105, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 3430, .adv_w = 450, .box_w = 29, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3764, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 4089, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4365, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 4678, .adv_w = 200, .box_w = 13, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4808, .adv_w = 300, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4998, .adv_w = 450, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 5361, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 5599, .adv_w = 275, .box_w = 18, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 5833, .adv_w = 350, .box_w = 16, .box_h = 24, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 6025, .adv_w = 350, .box_w = 22, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 6322, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6575, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6828, .adv_w = 350, .box_w = 17, .box_h = 24, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 7032, .adv_w = 350, .box_w = 24, .box_h = 23, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 7308, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 7469, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 7630, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7883, .adv_w = 350, .box_w = 22, .box_h = 5, .ofs_x = 0, .ofs_y = 7},
+    {.bitmap_index = 7938, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8214, .adv_w = 500, .box_w = 33, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 8643, .adv_w = 450, .box_w = 30, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 9033, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9321, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 9475, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 9629, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 9933, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 10171, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 10496, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 10847, .adv_w = 350, .box_w = 23, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11112, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 11398, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11651, .adv_w = 350, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 11871, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 12109, .adv_w = 250, .box_w = 17, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 12330, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 12616, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 12902, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 13178, .adv_w = 400, .box_w = 27, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 13543, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 13790, .adv_w = 500, .box_w = 32, .box_h = 24, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14174, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 14446, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 14718, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 14990, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15262, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15534, .adv_w = 500, .box_w = 32, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15854, .adv_w = 350, .box_w = 20, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 16114, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 16400, .adv_w = 400, .box_w = 26, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 16738, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 17042, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 17289, .adv_w = 402, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 1}
 };
 
 /*---------------------
@@ -2369,22 +2449,23 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
  *--------------------*/
 
 static const uint16_t unicode_list_0[] = {
-    0x0, 0x5, 0x42, 0x56, 0x9f7, 0x9fe, 0xa01, 0xa02,
-    0xa03, 0xa07, 0xa09, 0xa0b, 0xa0f, 0xa12, 0xa17, 0xa1c,
-    0xa1d, 0xa1e, 0xa34, 0xa39, 0xa3e, 0xa41, 0xa42, 0xa43,
-    0xa47, 0xa48, 0xa49, 0xa4a, 0xa5d, 0xa5e, 0xa64, 0xa66,
-    0xa67, 0xa6a, 0xa6d, 0xa6e, 0xa6f, 0xa71, 0xa89, 0xa8b,
-    0xaba, 0xabb, 0xabd, 0xabf, 0xad6, 0xadd, 0xae0, 0xae9,
-    0xb12, 0xb1a, 0xb51, 0xbe1, 0xc36, 0xc37, 0xc38, 0xc39,
-    0xc3a, 0xc7d, 0xc89, 0xce3, 0xcfa, 0xf50, 0x11b8, 0x1298
+    0x0, 0xa, 0xf, 0x4c, 0x60, 0xa2, 0xa01, 0xa08,
+    0xa0b, 0xa0c, 0xa0d, 0xa11, 0xa13, 0xa15, 0xa19, 0xa1c,
+    0xa21, 0xa26, 0xa27, 0xa28, 0xa3e, 0xa43, 0xa48, 0xa4b,
+    0xa4c, 0xa4d, 0xa51, 0xa52, 0xa53, 0xa54, 0xa67, 0xa68,
+    0xa6e, 0xa70, 0xa71, 0xa74, 0xa77, 0xa78, 0xa79, 0xa7b,
+    0xa93, 0xa95, 0xac4, 0xac5, 0xac7, 0xac9, 0xae0, 0xae7,
+    0xaea, 0xaf3, 0xb1c, 0xb24, 0xb5b, 0xbeb, 0xc40, 0xc41,
+    0xc42, 0xc43, 0xc44, 0xc87, 0xc93, 0xced, 0xd04, 0xf5a,
+    0x11c2, 0x12a2
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
 static const lv_font_fmt_txt_cmap_t cmaps[] =
 {
     {
-        .range_start = 58890, .range_length = 4761, .glyph_id_start = 1,
-        .unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 64, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 58880, .range_length = 4771, .glyph_id_start = 1,
+        .unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 66, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 

+ 1 - 1
main/ui/generated/images/images_list.mk

@@ -1 +1 @@
-GEN_CSRCS += _main_bg_RGB565A8_480x480.c _swtich_RGB565A8_84x84.c _ac_mode_heat_RGB565A8_48x48.c _ac_mode_heat_sel_RGB565A8_48x48.c _ac_mode_cool_RGB565A8_48x48.c _ac_mode_cool_sel_RGB565A8_48x48.c _wifi_stron_RGB565A8_32x32.c _12_RGB565A8_480x480.c _back2_RGB565A8_45x45.c
+GEN_CSRCS += _187_RGB565A8_480x480_tresh.c _swtich_RGB565A8_84x84.c _ac_mode_heat_RGB565A8_48x48.c _ac_mode_heat_sel_RGB565A8_48x48.c _ac_mode_cool_RGB565A8_48x48.c _ac_mode_cool_sel_RGB565A8_48x48.c _wifi_stron_RGB565A8_32x32.c _12_RGB565A8_480x480.c _back2_RGB565A8_45x45.c

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
main/ui/generated/images/images_md5.json


+ 63 - 9
main/ui/generated/setup_scr_FactorySettingPage.c

@@ -137,7 +137,7 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
 
     //Write codes FactorySettingPage_btn_1
     ui->FactorySettingPage_btn_1 = lv_button_create(ui->FactorySettingPage_tabview_1_tab_1);
-    lv_obj_set_pos(ui->FactorySettingPage_btn_1, 142, 324);
+    lv_obj_set_pos(ui->FactorySettingPage_btn_1, 141, 335);
     lv_obj_set_size(ui->FactorySettingPage_btn_1, 153, 60);
     ui->FactorySettingPage_btn_1_label = lv_label_create(ui->FactorySettingPage_btn_1);
     lv_label_set_text(ui->FactorySettingPage_btn_1_label, "确定");
@@ -160,7 +160,7 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
 
     //Write codes FactorySettingPage_sw_valve_onoff
     ui->FactorySettingPage_sw_valve_onoff = lv_switch_create(ui->FactorySettingPage_tabview_1_tab_1);
-    lv_obj_set_pos(ui->FactorySettingPage_sw_valve_onoff, 96, 260);
+    lv_obj_set_pos(ui->FactorySettingPage_sw_valve_onoff, 97, 251);
     lv_obj_set_size(ui->FactorySettingPage_sw_valve_onoff, 65, 21);
 
     //Write style for FactorySettingPage_sw_valve_onoff, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
@@ -383,9 +383,9 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
 
     //Write codes FactorySettingPage_label_8
     ui->FactorySettingPage_label_8 = lv_label_create(ui->FactorySettingPage_tabview_1_tab_1);
-    lv_obj_set_pos(ui->FactorySettingPage_label_8, 167, 262);
-    lv_obj_set_size(ui->FactorySettingPage_label_8, 150, 20);
-    lv_label_set_text(ui->FactorySettingPage_label_8, "允许风阀完全关闭");
+    lv_obj_set_pos(ui->FactorySettingPage_label_8, 168, 254);
+    lv_obj_set_size(ui->FactorySettingPage_label_8, 191, 20);
+    lv_label_set_text(ui->FactorySettingPage_label_8, "开启智能分集水器功能");
     lv_label_set_long_mode(ui->FactorySettingPage_label_8, LV_LABEL_LONG_WRAP);
 
     //Write style for FactorySettingPage_label_8, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
@@ -404,6 +404,55 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
     lv_obj_set_style_pad_left(ui->FactorySettingPage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->FactorySettingPage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
+    //Write codes FactorySettingPage_sw_linkage
+    ui->FactorySettingPage_sw_linkage = lv_switch_create(ui->FactorySettingPage_tabview_1_tab_1);
+    lv_obj_set_pos(ui->FactorySettingPage_sw_linkage, 97, 291);
+    lv_obj_set_size(ui->FactorySettingPage_sw_linkage, 65, 21);
+
+    //Write style for FactorySettingPage_sw_linkage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_sw_linkage, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->FactorySettingPage_sw_linkage, lv_color_hex(0xe6e2e6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->FactorySettingPage_sw_linkage, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->FactorySettingPage_sw_linkage, 10, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for FactorySettingPage_sw_linkage, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_sw_linkage, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->FactorySettingPage_sw_linkage, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->FactorySettingPage_sw_linkage, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for FactorySettingPage_sw_linkage, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_sw_linkage, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->FactorySettingPage_sw_linkage, lv_color_hex(0xffffff), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->FactorySettingPage_sw_linkage, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->FactorySettingPage_sw_linkage, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes FactorySettingPage_label_9
+    ui->FactorySettingPage_label_9 = lv_label_create(ui->FactorySettingPage_tabview_1_tab_1);
+    lv_obj_set_pos(ui->FactorySettingPage_label_9, 168, 293);
+    lv_obj_set_size(ui->FactorySettingPage_label_9, 191, 20);
+    lv_label_set_text(ui->FactorySettingPage_label_9, "开启内外机联动");
+    lv_label_set_long_mode(ui->FactorySettingPage_label_9, LV_LABEL_LONG_WRAP);
+
+    //Write style for FactorySettingPage_label_9, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->FactorySettingPage_label_9, lv_color_hex(0xf21c1c), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->FactorySettingPage_label_9, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->FactorySettingPage_label_9, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->FactorySettingPage_label_9, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
     //Write codes 五恒模块
     ui->FactorySettingPage_tabview_1_tab_2 = lv_tabview_add_tab(ui->FactorySettingPage_tabview_1,"五恒模块");
     lv_obj_t * FactorySettingPage_tabview_1_tab_2_label = lv_label_create(ui->FactorySettingPage_tabview_1_tab_2);
@@ -608,10 +657,15 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
     lv_spinbox_set_value(ui->FactorySettingPage_sp_hum_recoup, system_setting.fix_hum);
     lv_spinbox_set_value(ui->FactorySettingPage_sp_temp_recoup, system_setting.fix_temp);
 
-// if(system_setting.allow_valve_onoff)
-//     lv_obj_add_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
-// else
-//     lv_obj_remove_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
+    if(system_setting.active_fjsq)
+        lv_obj_add_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
+    else
+        lv_obj_remove_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
+
+    if(system_setting.allow_linkage)
+        lv_obj_add_state(ui->FactorySettingPage_sw_linkage, LV_STATE_CHECKED);
+    else
+        lv_obj_remove_state(ui->FactorySettingPage_sw_linkage, LV_STATE_CHECKED);
 
     //Update current screen layout.
     lv_obj_update_layout(ui->FactorySettingPage);

+ 5 - 2
main/ui/generated/setup_scr_SettingPage.c

@@ -25,6 +25,9 @@ void setup_scr_SettingPage(lv_ui *ui)
 
     //Write style for SettingPage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->SettingPage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_src(ui->SettingPage, &_12_RGB565A8_480x480, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_opa(ui->SettingPage, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_recolor_opa(ui->SettingPage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //Write codes SettingPage_tabview_1
     ui->SettingPage_tabview_1 = lv_tabview_create(ui->SettingPage);
@@ -35,7 +38,7 @@ void setup_scr_SettingPage(lv_ui *ui)
     lv_tabview_set_tab_bar_size(ui->SettingPage_tabview_1, 50);
 
     //Write style for SettingPage_tabview_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_bg_opa(ui->SettingPage_tabview_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->SettingPage_tabview_1, 215, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_color(ui->SettingPage_tabview_1, lv_color_hex(0x1f1e23), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_grad_dir(ui->SettingPage_tabview_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_color(ui->SettingPage_tabview_1, lv_color_hex(0xfbb310), LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -51,7 +54,7 @@ void setup_scr_SettingPage(lv_ui *ui)
     static lv_style_t style_SettingPage_tabview_1_extra_btnm_main_default;
     ui_init_style(&style_SettingPage_tabview_1_extra_btnm_main_default);
 
-    lv_style_set_bg_opa(&style_SettingPage_tabview_1_extra_btnm_main_default, 255);
+    lv_style_set_bg_opa(&style_SettingPage_tabview_1_extra_btnm_main_default, 93);
     lv_style_set_bg_color(&style_SettingPage_tabview_1_extra_btnm_main_default, lv_color_hex(0x1f1e23));
     lv_style_set_bg_grad_dir(&style_SettingPage_tabview_1_extra_btnm_main_default, LV_GRAD_DIR_NONE);
     lv_style_set_border_width(&style_SettingPage_tabview_1_extra_btnm_main_default, 0);

+ 492 - 290
main/ui/generated/setup_scr_WaterValvePage.c

@@ -13,7 +13,7 @@
 #include "events_init.h"
 #include "widgets_init.h"
 #include "custom.h"
-
+#include "heatpump_controller.h"
 
 
 void setup_scr_WaterValvePage(lv_ui *ui)
@@ -25,34 +25,15 @@ void setup_scr_WaterValvePage(lv_ui *ui)
 
     //Write style for WaterValvePage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->WaterValvePage, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage, LV_GRAD_DIR_HOR, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_color(ui->WaterValvePage, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_main_stop(ui->WaterValvePage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_stop(ui->WaterValvePage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_image_src(ui->WaterValvePage, &_12_RGB565A8_480x480, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_image_opa(ui->WaterValvePage, 67, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_opa(ui->WaterValvePage, 125, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_image_recolor_opa(ui->WaterValvePage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
-    //Write codes WaterValvePage_cont_1
-    ui->WaterValvePage_cont_1 = lv_obj_create(ui->WaterValvePage);
-    lv_obj_set_pos(ui->WaterValvePage_cont_1, 1, 0);
-    lv_obj_set_size(ui->WaterValvePage_cont_1, 480, 480);
-    lv_obj_set_scrollbar_mode(ui->WaterValvePage_cont_1, LV_SCROLLBAR_MODE_OFF);
-
-    //Write style for WaterValvePage_cont_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
     //Write codes WaterValvePage_imgbtn_1
-    ui->WaterValvePage_imgbtn_1 = lv_imagebutton_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_imgbtn_1, 217, 419);
+    ui->WaterValvePage_imgbtn_1 = lv_imagebutton_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_imgbtn_1, 26, 27);
     lv_obj_set_size(ui->WaterValvePage_imgbtn_1, 45, 45);
     lv_obj_add_flag(ui->WaterValvePage_imgbtn_1, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->WaterValvePage_imgbtn_1, LV_IMAGEBUTTON_STATE_RELEASED, &_back2_RGB565A8_45x45, NULL, NULL);
@@ -90,289 +71,510 @@ void setup_scr_WaterValvePage(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->WaterValvePage_imgbtn_1, 0, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
     lv_obj_set_style_image_opa(ui->WaterValvePage_imgbtn_1, 255, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
 
-    //Write codes WaterValvePage_spangroup_1
-    ui->WaterValvePage_spangroup_1 = lv_spangroup_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_spangroup_1, 96, 85);
-    lv_obj_set_size(ui->WaterValvePage_spangroup_1, 132, 23);
-    lv_spangroup_set_align(ui->WaterValvePage_spangroup_1, LV_TEXT_ALIGN_LEFT);
-    lv_spangroup_set_overflow(ui->WaterValvePage_spangroup_1, LV_SPAN_OVERFLOW_CLIP);
-    lv_spangroup_set_mode(ui->WaterValvePage_spangroup_1, LV_SPAN_MODE_BREAK);
-    //create span
-    ui->WaterValvePage_spangroup_1_span = lv_spangroup_new_span(ui->WaterValvePage_spangroup_1);
-    lv_span_set_text(ui->WaterValvePage_spangroup_1_span, "外机联动");
-    lv_style_set_text_color(lv_span_get_style(ui->WaterValvePage_spangroup_1_span), lv_color_hex(0xffffff));
-    lv_style_set_text_decor(lv_span_get_style(ui->WaterValvePage_spangroup_1_span), LV_TEXT_DECOR_NONE);
-    lv_style_set_text_font(lv_span_get_style(ui->WaterValvePage_spangroup_1_span), &lv_font_Alibaba_PuHuiTi_Medium_24);
-
-    //Write style state: LV_STATE_DEFAULT for &style_WaterValvePage_spangroup_1_main_main_default
-    static lv_style_t style_WaterValvePage_spangroup_1_main_main_default;
-    ui_init_style(&style_WaterValvePage_spangroup_1_main_main_default);
-
-    lv_style_set_border_width(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_radius(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_bg_opa(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_top(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_right(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_bottom(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_left(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_shadow_width(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_obj_add_style(ui->WaterValvePage_spangroup_1, &style_WaterValvePage_spangroup_1_main_main_default, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_spangroup_refr_mode(ui->WaterValvePage_spangroup_1);
-
-    //Write codes WaterValvePage_spangroup_2
-    ui->WaterValvePage_spangroup_2 = lv_spangroup_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_spangroup_2, 215, 86);
-    lv_obj_set_size(ui->WaterValvePage_spangroup_2, 54, 19);
-    lv_spangroup_set_align(ui->WaterValvePage_spangroup_2, LV_TEXT_ALIGN_LEFT);
-    lv_spangroup_set_overflow(ui->WaterValvePage_spangroup_2, LV_SPAN_OVERFLOW_CLIP);
-    lv_spangroup_set_mode(ui->WaterValvePage_spangroup_2, LV_SPAN_MODE_BREAK);
-    //create span
-    ui->WaterValvePage_spangroup_2_span = lv_spangroup_new_span(ui->WaterValvePage_spangroup_2);
-    lv_span_set_text(ui->WaterValvePage_spangroup_2_span, "开   关");
-    lv_style_set_text_color(lv_span_get_style(ui->WaterValvePage_spangroup_2_span), lv_color_hex(0xffffff));
-    lv_style_set_text_decor(lv_span_get_style(ui->WaterValvePage_spangroup_2_span), LV_TEXT_DECOR_NONE);
-    lv_style_set_text_font(lv_span_get_style(ui->WaterValvePage_spangroup_2_span), &lv_font_Alibaba_PuHuiTi_Medium_18);
-
-    //Write style state: LV_STATE_DEFAULT for &style_WaterValvePage_spangroup_2_main_main_default
-    static lv_style_t style_WaterValvePage_spangroup_2_main_main_default;
-    ui_init_style(&style_WaterValvePage_spangroup_2_main_main_default);
-
-    lv_style_set_border_width(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_radius(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_bg_opa(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_top(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_right(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_bottom(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_left(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_shadow_width(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_obj_add_style(ui->WaterValvePage_spangroup_2, &style_WaterValvePage_spangroup_2_main_main_default, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_spangroup_refr_mode(ui->WaterValvePage_spangroup_2);
-
     //Write codes WaterValvePage_sw_1
-    ui->WaterValvePage_sw_1 = lv_switch_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_sw_1, 203, 78);
-    lv_obj_set_size(ui->WaterValvePage_sw_1, 74, 35);
+    ui->WaterValvePage_sw_1 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_1, 116, 146);
+    lv_obj_set_size(ui->WaterValvePage_sw_1, 78, 29);
 
     //Write style for WaterValvePage_sw_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 4, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_1, 153, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_sw_1, lv_color_hex(0x00bdff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_1, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_border_side(ui->WaterValvePage_sw_1, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 18, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
+    //Write style for WaterValvePage_sw_1, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
     //Write style for WaterValvePage_sw_1, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 97, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0x13359a), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_1, LV_GRAD_DIR_VER, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_color(ui->WaterValvePage_sw_1, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_main_stop(ui->WaterValvePage_sw_1, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_stop(ui->WaterValvePage_sw_1, 146, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_1, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
     lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
 
     //Write style for WaterValvePage_sw_1, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0xffffff), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_1, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 7, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_border_opa(ui->WaterValvePage_sw_1, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_border_color(ui->WaterValvePage_sw_1, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_border_side(ui->WaterValvePage_sw_1, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 13, LV_PART_KNOB|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cont_2
-    ui->WaterValvePage_cont_2 = lv_obj_create(ui->WaterValvePage);
-    lv_obj_set_pos(ui->WaterValvePage_cont_2, 88, 117);
-    lv_obj_set_size(ui->WaterValvePage_cont_2, 340, 278);
-    lv_obj_set_scrollbar_mode(ui->WaterValvePage_cont_2, LV_SCROLLBAR_MODE_OFF);
-
-    //Write style for WaterValvePage_cont_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cb_4
-    ui->WaterValvePage_cb_4 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_4, 181, 84);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_4, "区域一");
-
-    //Write style for WaterValvePage_cb_4, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_4, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_4, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_4, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_4, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_4, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_4, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_4, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_4, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_4, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_4, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_4, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_4, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_4, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_4, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_4, 25, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_4, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cb_3
-    ui->WaterValvePage_cb_3 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_3, 2, 85);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_3, "区域一");
-
-    //Write style for WaterValvePage_cb_3, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_3, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_3, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_3, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_3, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_3, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_3, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_3, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_3, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_3, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_3, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_3, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_3, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_3, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_3, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_3, 16, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_3, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cb_2
-    ui->WaterValvePage_cb_2 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_2, 181, 24);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_2, "区域一");
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_2, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_2, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_2, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_MAIN, State: LV_STATE_FOCUSED.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_2, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_2, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_2, 2, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_MAIN, State: LV_STATE_DISABLED.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_2, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_2, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_2, 2, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_2, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_2, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 25, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_INDICATOR, State: LV_STATE_PRESSED.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_2, 3, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 2, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_2, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_PRESSED);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_2, 3, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 2, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_2, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
-
-    //Write codes WaterValvePage_cb_1
-    ui->WaterValvePage_cb_1 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_1, 2, 25);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_1, "区域一");
-
-    //Write style for WaterValvePage_cb_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_1, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_1, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_1, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_1, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_1, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_1, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_1, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_1, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_1, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_1, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_1, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_1, 25, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_1, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_2
+    ui->WaterValvePage_sw_2 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_2, 116, 212);
+    lv_obj_set_size(ui->WaterValvePage_sw_2, 78, 29);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_2, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_2, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_2, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_2, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_2, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_2, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_2, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_2, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_2, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_2, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_2, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_2, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_3
+    ui->WaterValvePage_sw_3 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_3, 116, 278);
+    lv_obj_set_size(ui->WaterValvePage_sw_3, 78, 29);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_3, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_3, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_3, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_3, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_3, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_3, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_3, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_3, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_3, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_3, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_3, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_3, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_3, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_4
+    ui->WaterValvePage_sw_4 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_4, 116, 344);
+    lv_obj_set_size(ui->WaterValvePage_sw_4, 78, 29);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_4, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_4, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_4, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_4, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_4, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_4, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_4, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_4, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_4, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_4, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_4, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_4, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_4, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_8
+    ui->WaterValvePage_sw_8 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_8, 359, 344);
+    lv_obj_set_size(ui->WaterValvePage_sw_8, 78, 29);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_8, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_8, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_8, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_8, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_8, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_8, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_8, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_8, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_8, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_8, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_8, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_8, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_8, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_7
+    ui->WaterValvePage_sw_7 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_7, 359, 278);
+    lv_obj_set_size(ui->WaterValvePage_sw_7, 78, 29);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_7, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_7, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_7, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_7, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_7, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_7, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_7, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_7, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_7, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_7, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_7, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_7, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_7, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_6
+    ui->WaterValvePage_sw_6 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_6, 359, 212);
+    lv_obj_set_size(ui->WaterValvePage_sw_6, 78, 29);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_6, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_6, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_6, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_6, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_6, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_6, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_6, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_6, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_6, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_6, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_6, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_6, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_6, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_5
+    ui->WaterValvePage_sw_5 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_5, 359, 146);
+    lv_obj_set_size(ui->WaterValvePage_sw_5, 78, 29);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_5, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_5, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_5, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_5, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_5, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_5, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_5, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_5, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_5, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_5, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_5, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_5, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_5, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_1
+    ui->WaterValvePage_label_1 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_1, 14, 149);
+    lv_obj_set_size(ui->WaterValvePage_label_1, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_1, "第一路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_1, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_1, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_2
+    ui->WaterValvePage_label_2 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_2, 14, 216);
+    lv_obj_set_size(ui->WaterValvePage_label_2, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_2, "第二路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_2, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_2, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_2, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_3
+    ui->WaterValvePage_label_3 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_3, 14, 281);
+    lv_obj_set_size(ui->WaterValvePage_label_3, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_3, "第三路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_3, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_3, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_3, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_3, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_3, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_3, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_4
+    ui->WaterValvePage_label_4 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_4, 14, 348);
+    lv_obj_set_size(ui->WaterValvePage_label_4, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_4, "第四路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_4, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_4, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_4, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_4, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_4, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_4, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_5
+    ui->WaterValvePage_label_5 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_5, 257, 149);
+    lv_obj_set_size(ui->WaterValvePage_label_5, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_5, "第五路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_5, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_5, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_5, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_5, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_5, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_5, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_6
+    ui->WaterValvePage_label_6 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_6, 257, 216);
+    lv_obj_set_size(ui->WaterValvePage_label_6, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_6, "第六路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_6, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_6, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_6, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_6, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_6, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_6, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_7
+    ui->WaterValvePage_label_7 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_7, 257, 281);
+    lv_obj_set_size(ui->WaterValvePage_label_7, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_7, "第七路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_7, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_7, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_7, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_7, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_7, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_7, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_8
+    ui->WaterValvePage_label_8 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_8, 257, 348);
+    lv_obj_set_size(ui->WaterValvePage_label_8, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_8, "第八路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_8, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_8, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_8, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_8, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_8, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_8, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_9
+    ui->WaterValvePage_label_9 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_9, 190, 43);
+    lv_obj_set_size(ui->WaterValvePage_label_9, 100, 32);
+    lv_label_set_text(ui->WaterValvePage_label_9, "地暖阀");
+    lv_label_set_long_mode(ui->WaterValvePage_label_9, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_9, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_9, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_9, &lv_font_Alibaba_PuHuiTi_Medium_20, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_9, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_9, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //The custom code of WaterValvePage.
-
+    if((hp_controller.relay_status >> 0) & 1 )lv_obj_add_state(ui->WaterValvePage_sw_1, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 1) & 1) lv_obj_add_state(ui->WaterValvePage_sw_2, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 2) & 1) lv_obj_add_state(ui->WaterValvePage_sw_3, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 3) & 1) lv_obj_add_state(ui->WaterValvePage_sw_4, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 4) & 1) lv_obj_add_state(ui->WaterValvePage_sw_5, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 5) & 1) lv_obj_add_state(ui->WaterValvePage_sw_6, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 6) & 1) lv_obj_add_state(ui->WaterValvePage_sw_7, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 7) & 1) lv_obj_add_state(ui->WaterValvePage_sw_8, LV_STATE_CHECKED);
 
     //Update current screen layout.
     lv_obj_update_layout(ui->WaterValvePage);

+ 326 - 81
main/ui/generated/setup_scr_screen.c

@@ -26,10 +26,10 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write style for screen, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->screen, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->screen, lv_color_hex(0x1F1E23), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->screen, lv_color_hex(0x060505), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_grad_dir(ui->screen, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_image_src(ui->screen, &_main_bg_RGB565A8_480x480, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_image_opa(ui->screen, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_src(ui->screen, &_187_RGB565A8_480x480_tresh, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_opa(ui->screen, 113, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_image_recolor_opa(ui->screen, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //Write codes screen_cont_power_on
@@ -37,6 +37,7 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_pos(ui->screen_cont_power_on, 0, 0);
     lv_obj_set_size(ui->screen_cont_power_on, 480, 480);
     lv_obj_set_scrollbar_mode(ui->screen_cont_power_on, LV_SCROLLBAR_MODE_OFF);
+    lv_obj_add_flag(ui->screen_cont_power_on, LV_OBJ_FLAG_HIDDEN);
 
     //Write style for screen_cont_power_on, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_border_width(ui->screen_cont_power_on, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -52,6 +53,7 @@ void setup_scr_screen(lv_ui *ui)
     ui->screen_arc_temp = lv_arc_create(ui->screen_cont_power_on);
     lv_obj_set_pos(ui->screen_arc_temp, 73, 51);
     lv_obj_set_size(ui->screen_arc_temp, 340, 340);
+    lv_obj_remove_flag(ui->screen_arc_temp, LV_OBJ_FLAG_GESTURE_BUBBLE);
     lv_arc_set_mode(ui->screen_arc_temp, LV_ARC_MODE_NORMAL);
     lv_arc_set_range(ui->screen_arc_temp, 7, 60);
     lv_arc_set_bg_angles(ui->screen_arc_temp, 150, 30);
@@ -83,8 +85,8 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_pad_all(ui->screen_arc_temp, 5, LV_PART_KNOB|LV_STATE_DEFAULT);
 
     //Write style for screen_arc_temp, Part: LV_PART_KNOB, State: LV_STATE_FOCUSED.
-    lv_obj_set_style_bg_opa(ui->screen_arc_temp, 255, LV_PART_KNOB|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_color(ui->screen_arc_temp, lv_color_hex(0x2F92DA), LV_PART_KNOB|LV_STATE_FOCUSED);
+    lv_obj_set_style_bg_opa(ui->screen_arc_temp, 141, LV_PART_KNOB|LV_STATE_FOCUSED);
+    lv_obj_set_style_bg_color(ui->screen_arc_temp, lv_color_hex(0xffffff), LV_PART_KNOB|LV_STATE_FOCUSED);
     lv_obj_set_style_bg_grad_dir(ui->screen_arc_temp, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_FOCUSED);
     lv_obj_set_style_pad_all(ui->screen_arc_temp, 5, LV_PART_KNOB|LV_STATE_FOCUSED);
 
@@ -96,7 +98,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_label_6
     ui->screen_label_6 = lv_label_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_label_6, 252, 238);
+    lv_obj_set_pos(ui->screen_label_6, 255, 256);
     lv_obj_set_size(ui->screen_label_6, 71, 22);
     lv_label_set_text(ui->screen_label_6, "°C");
     lv_label_set_long_mode(ui->screen_label_6, LV_LABEL_LONG_WRAP);
@@ -104,7 +106,7 @@ void setup_scr_screen(lv_ui *ui)
     //Write style for screen_label_6, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_border_width(ui->screen_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_radius(ui->screen_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_label_6, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_6, lv_color_hex(0x2FCADA), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_font(ui->screen_label_6, &lv_font_montserratMedium_25, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_opa(ui->screen_label_6, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_letter_space(ui->screen_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -257,7 +259,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_lab_ac_temp
     ui->screen_lab_ac_temp = lv_label_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_lab_ac_temp, 165, 209);
+    lv_obj_set_pos(ui->screen_lab_ac_temp, 165, 226);
     lv_obj_set_size(ui->screen_lab_ac_temp, 132, 72);
     lv_label_set_text(ui->screen_lab_ac_temp, "12");
     lv_label_set_long_mode(ui->screen_lab_ac_temp, LV_LABEL_LONG_WRAP);
@@ -265,7 +267,7 @@ void setup_scr_screen(lv_ui *ui)
     //Write style for screen_lab_ac_temp, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_border_width(ui->screen_lab_ac_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_radius(ui->screen_lab_ac_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_lab_ac_temp, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_ac_temp, lv_color_hex(0x2FCADA), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_font(ui->screen_lab_ac_temp, &lv_font_PuHui_ExtraBold_60, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_opa(ui->screen_lab_ac_temp, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_letter_space(ui->screen_lab_ac_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -280,7 +282,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_ib_power
     ui->screen_ib_power = lv_imagebutton_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_ib_power, 198, 276);
+    lv_obj_set_pos(ui->screen_ib_power, 200, 387);
     lv_obj_set_size(ui->screen_ib_power, 84, 84);
     lv_obj_add_flag(ui->screen_ib_power, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->screen_ib_power, LV_IMAGEBUTTON_STATE_RELEASED, &_swtich_RGB565A8_84x84, NULL, NULL);
@@ -321,7 +323,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_ib_heat
     ui->screen_ib_heat = lv_imagebutton_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_ib_heat, 333, 417);
+    lv_obj_set_pos(ui->screen_ib_heat, 363, 417);
     lv_obj_set_size(ui->screen_ib_heat, 48, 48);
     lv_obj_add_flag(ui->screen_ib_heat, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->screen_ib_heat, LV_IMAGEBUTTON_STATE_RELEASED, &_ac_mode_heat_RGB565A8_48x48, NULL, NULL);
@@ -362,7 +364,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_ib_cool
     ui->screen_ib_cool = lv_imagebutton_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_ib_cool, 82, 415);
+    lv_obj_set_pos(ui->screen_ib_cool, 73, 417);
     lv_obj_set_size(ui->screen_ib_cool, 48, 48);
     lv_obj_add_flag(ui->screen_ib_cool, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->screen_ib_cool, LV_IMAGEBUTTON_STATE_RELEASED, &_ac_mode_cool_RGB565A8_48x48, NULL, NULL);
@@ -401,6 +403,167 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->screen_ib_cool, 0, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
     lv_obj_set_style_image_opa(ui->screen_ib_cool, 255, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
 
+    //Write codes screen_lab_mode
+    ui->screen_lab_mode = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_lab_mode, 188, 317);
+    lv_obj_set_size(ui->screen_lab_mode, 100, 19);
+    lv_label_set_text(ui->screen_lab_mode, "制冷热");
+    lv_label_set_long_mode(ui->screen_lab_mode, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_mode, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_mode, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_mode, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_mode, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_mode, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_12
+    ui->screen_label_12 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_12, 188, 203);
+    lv_obj_set_size(ui->screen_label_12, 100, 19);
+    lv_label_set_text(ui->screen_label_12, "设置水温");
+    lv_label_set_long_mode(ui->screen_label_12, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_12, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_12, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_12, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_12, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_12, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_in_temp
+    ui->screen_lab_in_temp = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_lab_in_temp, 327, 18);
+    lv_obj_set_size(ui->screen_lab_in_temp, 45, 20);
+    lv_label_set_text(ui->screen_lab_in_temp, "26°C");
+    lv_label_set_long_mode(ui->screen_lab_in_temp, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_in_temp, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_in_temp, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_in_temp, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_in_temp, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_in_temp, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_13
+    ui->screen_label_13 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_13, 284, 4);
+    lv_obj_set_size(ui->screen_label_13, 36, 33);
+    lv_label_set_text(ui->screen_label_13, "");
+    lv_label_set_long_mode(ui->screen_label_13, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_13, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_13, lv_color_hex(0xf9dd00), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_13, &lv_font_iconfont_36, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_13, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_13, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_out_temp
+    ui->screen_lab_out_temp = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_lab_out_temp, 421, 18);
+    lv_obj_set_size(ui->screen_lab_out_temp, 50, 20);
+    lv_label_set_text(ui->screen_lab_out_temp, "26°C");
+    lv_label_set_long_mode(ui->screen_lab_out_temp, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_out_temp, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_out_temp, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_out_temp, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_out_temp, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_out_temp, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_15
+    ui->screen_label_15 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_15, 375, 4);
+    lv_obj_set_size(ui->screen_label_15, 40, 34);
+    lv_label_set_text(ui->screen_label_15, "");
+    lv_label_set_long_mode(ui->screen_label_15, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_15, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_15, lv_color_hex(0x44cdfd), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_15, &lv_font_iconfont_36, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_15, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_15, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_16
+    ui->screen_label_16 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_16, 188, 117);
+    lv_obj_set_size(ui->screen_label_16, 100, 19);
+    lv_label_set_text(ui->screen_label_16, "室内环境");
+    lv_label_set_long_mode(ui->screen_label_16, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_16, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_16, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_16, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_16, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_16, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
     //Write codes screen_cont_power_off
     ui->screen_cont_power_off = lv_obj_create(ui->screen);
     lv_obj_set_pos(ui->screen_cont_power_off, 0, 0);
@@ -442,28 +605,28 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_pad_left(ui->screen_lab_env_hum_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->screen_lab_env_hum_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
-    //Write codes screen_label_9
-    ui->screen_label_9 = lv_label_create(ui->screen_cont_power_off);
-    lv_obj_set_pos(ui->screen_label_9, 184, 193);
-    lv_obj_set_size(ui->screen_label_9, 71, 20);
-    lv_label_set_text(ui->screen_label_9, "26°C");
-    lv_label_set_long_mode(ui->screen_label_9, LV_LABEL_LONG_WRAP);
-
-    //Write style for screen_label_9, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_label_9, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->screen_label_9, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->screen_label_9, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_line_space(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_align(ui->screen_label_9, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    //Write codes screen_lab_env_temp_2
+    ui->screen_lab_env_temp_2 = lv_label_create(ui->screen_cont_power_off);
+    lv_obj_set_pos(ui->screen_lab_env_temp_2, 184, 193);
+    lv_obj_set_size(ui->screen_lab_env_temp_2, 71, 20);
+    lv_label_set_text(ui->screen_lab_env_temp_2, "26°C");
+    lv_label_set_long_mode(ui->screen_lab_env_temp_2, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_env_temp_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_env_temp_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_env_temp_2, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_env_temp_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_env_temp_2, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //Write codes screen_label_10
     ui->screen_label_10 = lv_label_create(ui->screen_cont_power_off);
@@ -552,30 +715,6 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->screen_imgbtn_1, 0, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
     lv_obj_set_style_image_opa(ui->screen_imgbtn_1, 255, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
 
-    //Write codes screen_lab_icon_err
-    ui->screen_lab_icon_err = lv_label_create(ui->screen);
-    lv_obj_set_pos(ui->screen_lab_icon_err, 90, 11);
-    lv_obj_set_size(ui->screen_lab_icon_err, 26, 26);
-    lv_obj_add_flag(ui->screen_lab_icon_err, LV_OBJ_FLAG_HIDDEN);
-    lv_label_set_text(ui->screen_lab_icon_err, "");
-    lv_label_set_long_mode(ui->screen_lab_icon_err, LV_LABEL_LONG_WRAP);
-
-    //Write style for screen_lab_icon_err, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_lab_icon_err, lv_color_hex(0xff0028), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->screen_lab_icon_err, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->screen_lab_icon_err, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_line_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_align(ui->screen_lab_icon_err, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
     //Write codes screen_img_wifi
     ui->screen_img_wifi = lv_image_create(ui->screen);
     lv_obj_set_pos(ui->screen_img_wifi, 17, 8);
@@ -590,9 +729,26 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->screen_img_wifi, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_image_opa(ui->screen_img_wifi, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
 
+    //Write codes screen_cont_icons
+    ui->screen_cont_icons = lv_obj_create(ui->screen);
+    lv_obj_set_pos(ui->screen_cont_icons, 51, 8);
+    lv_obj_set_size(ui->screen_cont_icons, 257, 34);
+    lv_obj_set_scrollbar_mode(ui->screen_cont_icons, LV_SCROLLBAR_MODE_OFF);
+    lv_obj_remove_flag(ui->screen_cont_icons, LV_OBJ_FLAG_SCROLLABLE);
+
+    //Write style for screen_cont_icons, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
     //Write codes screen_lab_icon_cloud
-    ui->screen_lab_icon_cloud = lv_label_create(ui->screen);
-    lv_obj_set_pos(ui->screen_lab_icon_cloud, 57, 12);
+    ui->screen_lab_icon_cloud = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_cloud, 7, 6);
     lv_obj_set_size(ui->screen_lab_icon_cloud, 25, 23);
     lv_obj_add_flag(ui->screen_lab_icon_cloud, LV_OBJ_FLAG_HIDDEN);
     lv_label_set_text(ui->screen_lab_icon_cloud, "");
@@ -614,33 +770,112 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_pad_left(ui->screen_lab_icon_cloud, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->screen_lab_icon_cloud, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
-    //Write codes screen_lab_mode
-    ui->screen_lab_mode = lv_label_create(ui->screen);
-    lv_obj_set_pos(ui->screen_lab_mode, 186, 110);
-    lv_obj_set_size(ui->screen_lab_mode, 100, 32);
-    lv_label_set_text(ui->screen_lab_mode, "制冷热");
-    lv_label_set_long_mode(ui->screen_lab_mode, LV_LABEL_LONG_WRAP);
+    //Write codes screen_lab_icon_err
+    ui->screen_lab_icon_err = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_err, 36, 6);
+    lv_obj_set_size(ui->screen_lab_icon_err, 26, 26);
+    lv_obj_add_flag(ui->screen_lab_icon_err, LV_OBJ_FLAG_HIDDEN);
+    lv_label_set_text(ui->screen_lab_icon_err, "");
+    lv_label_set_long_mode(ui->screen_lab_icon_err, LV_LABEL_LONG_WRAP);
 
-    //Write style for screen_lab_mode, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_lab_mode, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->screen_lab_mode, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->screen_lab_mode, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_line_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_align(ui->screen_lab_mode, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    //Write style for screen_lab_icon_err, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_icon_err, lv_color_hex(0xff0028), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_icon_err, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_icon_err, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_icon_err, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_icon_485
+    ui->screen_lab_icon_485 = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_485, 66, 6);
+    lv_obj_set_size(ui->screen_lab_icon_485, 26, 26);
+    lv_obj_add_flag(ui->screen_lab_icon_485, LV_OBJ_FLAG_HIDDEN);
+    lv_label_set_text(ui->screen_lab_icon_485, "");
+    lv_label_set_long_mode(ui->screen_lab_icon_485, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_icon_485, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_icon_485, lv_color_hex(0xffc700), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_icon_485, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_icon_485, 253, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_icon_485, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_icon_linkage
+    ui->screen_lab_icon_linkage = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_linkage, 96, 6);
+    lv_obj_set_size(ui->screen_lab_icon_linkage, 26, 26);
+    lv_obj_add_flag(ui->screen_lab_icon_linkage, LV_OBJ_FLAG_HIDDEN);
+    lv_label_set_text(ui->screen_lab_icon_linkage, "");
+    lv_label_set_long_mode(ui->screen_lab_icon_linkage, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_icon_linkage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_icon_linkage, lv_color_hex(0x0bfffc), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_icon_linkage, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_icon_linkage, 253, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_icon_linkage, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_cont_1
+    ui->screen_cont_1 = lv_obj_create(ui->screen);
+    lv_obj_set_pos(ui->screen_cont_1, 18, 46);
+    lv_obj_set_size(ui->screen_cont_1, 447, 420);
+    lv_obj_set_scrollbar_mode(ui->screen_cont_1, LV_SCROLLBAR_MODE_OFF);
+    lv_obj_add_flag(ui->screen_cont_1, LV_OBJ_FLAG_HIDDEN);
+
+    //Write style for screen_cont_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //The custom code of screen.
     lv_obj_add_flag(ui->screen_arc_temp, LV_OBJ_FLAG_ADV_HITTEST);
     lv_obj_set_ext_click_area(ui->screen_arc_temp, 40);
+    if(system_setting.allow_linkage)lv_obj_remove_flag(ui->screen_lab_icon_linkage, LV_OBJ_FLAG_HIDDEN);
+    if(hp_controller.power == 1) {
+        lv_obj_remove_flag(ui->screen_cont_power_on, LV_OBJ_FLAG_HIDDEN);
+        lv_obj_add_flag(ui->screen_cont_power_off, LV_OBJ_FLAG_HIDDEN);
+    } else {
+        lv_obj_remove_flag(ui->screen_cont_power_off, LV_OBJ_FLAG_HIDDEN);
+        lv_obj_add_flag(ui->screen_cont_power_on, LV_OBJ_FLAG_HIDDEN);
+    }
     if(hp_controller.mode == MODE_COOL) {
+        lv_obj_set_style_text_color(guider_ui.screen_lab_ac_temp, lv_color_hex(0x00d9ff), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_text_color(guider_ui.screen_label_6, lv_color_hex(0x00d9ff), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_arc_color(guider_ui.screen_arc_temp, lv_color_hex(0x00d9ff),
+                                   LV_PART_INDICATOR | LV_STATE_DEFAULT);
+
         lv_arc_set_range(ui->screen_arc_temp, 7*2,22*2);
         lv_label_set_text_fmt(ui->screen_lab_ac_temp, "%d", hp_controller.cool_set_temp);
         lv_arc_set_value(guider_ui.screen_arc_temp, hp_controller.cool_set_temp * 2);
@@ -649,6 +884,10 @@ void setup_scr_screen(lv_ui *ui)
         lv_label_set_text_static(ui->screen_lab_temp_high, "22°C");
         lv_obj_add_state(ui->screen_ib_cool, LV_STATE_CHECKED);
     } else if(hp_controller.mode == MODE_HEAT) {
+        lv_obj_set_style_text_color(guider_ui.screen_lab_ac_temp, lv_color_hex(0xff9700), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_text_color(guider_ui.screen_label_6, lv_color_hex(0xff9700), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_arc_color(guider_ui.screen_arc_temp, lv_color_hex(0xff9700),
+                                   LV_PART_INDICATOR | LV_STATE_DEFAULT);
         lv_arc_set_range(ui->screen_arc_temp, 30*2,60*2);
         lv_arc_set_value(ui->screen_arc_temp, hp_controller.heat_set_temp * 2);
         lv_label_set_text_fmt(ui->screen_lab_ac_temp, "%d", hp_controller.heat_set_temp);
@@ -658,6 +897,12 @@ void setup_scr_screen(lv_ui *ui)
         lv_obj_add_state(ui->screen_ib_heat, LV_STATE_CHECKED);
     }
 
+    lv_obj_set_layout(ui->screen_cont_icons, LV_LAYOUT_FLEX);
+    lv_obj_set_flex_flow(ui->screen_cont_icons, LV_FLEX_FLOW_ROW_WRAP);
+    lv_obj_set_flex_align(ui->screen_cont_icons, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER);
+
+
+
     //Update current screen layout.
     lv_obj_update_layout(ui->screen);
 

+ 27 - 2
readme.md

@@ -2,6 +2,29 @@
 
 ### 1.云端接入文档
 
+
+#### 1.0 外机总故障上报
+
+
+* 标识符: `error`
+* 参数:
+
+```json
+{
+  "action": "devSend",
+  "msgId": 0,
+  "deviceCode": "30EDA0AD0D34",
+  "subDeviceId": "",
+  "timestamp": 1757575301000,
+  "data": {
+    "cmd": "error",
+    "params": {
+      "error": 1
+    }
+  }
+}
+```
+
 #### 1.1 运行状态上报
 
 _线控器向云端上报的自己的运行状态_
@@ -29,7 +52,8 @@ _线控器向云端上报的自己的运行状态_
       "out_water_temp": 0,
       "in_water_temp": 0,
       "fjsq_exist": 0,
-      "fjsq_status": 255
+      "fjsq_status": 255,
+      "linkage": 0
     }
   }
 }
@@ -50,6 +74,7 @@ _线控器向云端上报的自己的运行状态_
 | mode                | W/R  | int | 模式(1:制冷2:制热)                                        |
 | fjsq_exist          | R    | int | 是否存在分集水器,1:存在,0:不存在                                 |
 | fjsq_status         | W/R  | int | 分集水器状态,1-8个bit表示分集水器的运行状态,如0011 0011表示1,2,5,6路为开启状态 |
+| linkage             | W/R  | int | 内外机联动标识,1:联动,0:不联动                                  |                                        |
 
 #### 1.2 电源开关
 
@@ -125,7 +150,7 @@ _线控器向云端上报的自己的运行状态_
 
 ```json
 {
-  "cmd": "setWaterTemp",
+  "cmd": "setIO",
   "params": {
     "no": 1,
     "value": 1

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 1
wj-wire-controller-ui/fp-wire-controller.guiguider


+ 199 - 4
wj-wire-controller-ui/generated/events_init.c

@@ -13,7 +13,7 @@
 
 #if LV_USE_GUIDER_SIMULATOR && LV_USE_FREEMASTER
 #include "freemaster_client.h"
-#endifa
+#endif
 
 #include "custom.h"
 #include "actions.h"
@@ -33,6 +33,12 @@ static void screen_event_handler (lv_event_t *e)
             on_screen_gesture_bottom(e);
             break;
         }
+        case LV_DIR_LEFT:
+        {
+            lv_indev_wait_release(lv_indev_active());
+            on_screen_gesture_left(e);
+            break;
+        }
         default:
             break;
         }
@@ -43,7 +49,28 @@ static void screen_event_handler (lv_event_t *e)
     }
 }
 
-
+static void screen_item-1_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_GESTURE:
+    {
+        lv_dir_t dir = lv_indev_get_gesture_dir(lv_indev_active());
+        switch(dir) {
+        case LV_DIR_BOTTOM:
+        {
+            lv_indev_wait_release(lv_indev_active());
+            break;
+        }
+        default:
+            break;
+        }
+        break;
+    }
+    default:
+        break;
+    }
+}
 
 static void screen_arc_temp_event_handler (lv_event_t *e)
 {
@@ -128,15 +155,30 @@ static void screen_imgbtn_1_event_handler (lv_event_t *e)
     }
 }
 
+static void screen_cont_1_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_PRESSED:
+    {
+        lv_obj_add_flag(guider_ui.screen_cont_1, LV_OBJ_FLAG_HIDDEN);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
 void events_init_screen (lv_ui *ui)
 {
     lv_obj_add_event_cb(ui->screen, screen_event_handler, LV_EVENT_ALL, ui);
-  //  lv_obj_add_event_cb(ui->screen_item-1, screen_item-1_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->screen_item-1, screen_item-1_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_arc_temp, screen_arc_temp_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_ib_power, screen_ib_power_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_ib_heat, screen_ib_heat_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_ib_cool, screen_ib_cool_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->screen_imgbtn_1, screen_imgbtn_1_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->screen_cont_1, screen_cont_1_event_handler, LV_EVENT_ALL, ui);
 }
 
 static void WaterValvePage_imgbtn_1_event_handler (lv_event_t *e)
@@ -145,7 +187,135 @@ static void WaterValvePage_imgbtn_1_event_handler (lv_event_t *e)
     switch (code) {
     case LV_EVENT_PRESSED:
     {
-        ui_load_scr_animation(&guider_ui, &guider_ui.screen, guider_ui.screen_del, &guider_ui.WaterValvePage_del, setup_scr_screen, LV_SCR_LOAD_ANIM_NONE, 200, 200, false, false);
+        ui_load_scr_animation(&guider_ui, &guider_ui.screen, guider_ui.screen_del, &guider_ui.WaterValvePage_del, setup_scr_screen, LV_SCR_LOAD_ANIM_MOVE_RIGHT, 100, 0, false, false);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_1_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,1);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_2_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,2);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_3_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,3);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_4_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,4);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_8_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,8);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_7_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,7);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_6_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,6);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
+static void WaterValvePage_sw_5_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_CLICKED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_relay_status(e,5);
         break;
     }
     default:
@@ -156,6 +326,14 @@ static void WaterValvePage_imgbtn_1_event_handler (lv_event_t *e)
 void events_init_WaterValvePage (lv_ui *ui)
 {
     lv_obj_add_event_cb(ui->WaterValvePage_imgbtn_1, WaterValvePage_imgbtn_1_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_1, WaterValvePage_sw_1_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_2, WaterValvePage_sw_2_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_3, WaterValvePage_sw_3_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_4, WaterValvePage_sw_4_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_8, WaterValvePage_sw_8_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_7, WaterValvePage_sw_7_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_6, WaterValvePage_sw_6_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->WaterValvePage_sw_5, WaterValvePage_sw_5_event_handler, LV_EVENT_ALL, ui);
 }
 
 static void SettingPage_event_handler (lv_event_t *e)
@@ -410,6 +588,22 @@ static void FactorySettingPage_sw_valve_onoff_event_handler (lv_event_t *e)
     }
 }
 
+static void FactorySettingPage_sw_linkage_event_handler (lv_event_t *e)
+{
+    lv_event_code_t code = lv_event_get_code(e);
+    switch (code) {
+    case LV_EVENT_VALUE_CHANGED:
+    {
+        lv_obj_t * status_obj = lv_event_get_target(e);
+        int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
+        on_set_allow_linkage(e);
+        break;
+    }
+    default:
+        break;
+    }
+}
+
 static void FactorySettingPage_cont_wh_module_event_handler (lv_event_t *e)
 {
     lv_event_code_t code = lv_event_get_code(e);
@@ -472,6 +666,7 @@ void events_init_FactorySettingPage (lv_ui *ui)
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_2, FactorySettingPage_btn_2_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_1, FactorySettingPage_btn_1_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_sw_valve_onoff, FactorySettingPage_sw_valve_onoff_event_handler, LV_EVENT_ALL, ui);
+    lv_obj_add_event_cb(ui->FactorySettingPage_sw_linkage, FactorySettingPage_sw_linkage_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_cont_wh_module, FactorySettingPage_cont_wh_module_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_4, FactorySettingPage_btn_4_event_handler, LV_EVENT_ALL, ui);
     lv_obj_add_event_cb(ui->FactorySettingPage_btn_5, FactorySettingPage_btn_5_event_handler, LV_EVENT_ALL, ui);

+ 34 - 17
wj-wire-controller-ui/generated/gui_guider.h

@@ -37,32 +37,48 @@ typedef struct
 	lv_obj_t *screen_ib_heat_label;
 	lv_obj_t *screen_ib_cool;
 	lv_obj_t *screen_ib_cool_label;
+	lv_obj_t *screen_lab_mode;
+	lv_obj_t *screen_label_12;
+	lv_obj_t *screen_lab_in_temp;
+	lv_obj_t *screen_label_13;
+	lv_obj_t *screen_lab_out_temp;
+	lv_obj_t *screen_label_15;
+	lv_obj_t *screen_label_16;
 	lv_obj_t *screen_cont_power_off;
 	lv_obj_t *screen_lab_env_hum_2;
-	lv_obj_t *screen_label_9;
+	lv_obj_t *screen_lab_env_temp_2;
 	lv_obj_t *screen_label_10;
 	lv_obj_t *screen_label_11;
 	lv_obj_t *screen_imgbtn_1;
 	lv_obj_t *screen_imgbtn_1_label;
-	lv_obj_t *screen_lab_icon_err;
 	lv_obj_t *screen_img_wifi;
+	lv_obj_t *screen_cont_icons;
 	lv_obj_t *screen_lab_icon_cloud;
-	lv_obj_t *screen_lab_mode;
+	lv_obj_t *screen_lab_icon_err;
+	lv_obj_t *screen_lab_icon_485;
+	lv_obj_t *screen_lab_icon_linkage;
+	lv_obj_t *screen_cont_1;
 	lv_obj_t *WaterValvePage;
 	bool WaterValvePage_del;
-	lv_obj_t *WaterValvePage_cont_1;
 	lv_obj_t *WaterValvePage_imgbtn_1;
 	lv_obj_t *WaterValvePage_imgbtn_1_label;
-	lv_obj_t *WaterValvePage_spangroup_1;
-	lv_span_t *WaterValvePage_spangroup_1_span;
-	lv_obj_t *WaterValvePage_spangroup_2;
-	lv_span_t *WaterValvePage_spangroup_2_span;
 	lv_obj_t *WaterValvePage_sw_1;
-	lv_obj_t *WaterValvePage_cont_2;
-	lv_obj_t *WaterValvePage_cb_4;
-	lv_obj_t *WaterValvePage_cb_3;
-	lv_obj_t *WaterValvePage_cb_2;
-	lv_obj_t *WaterValvePage_cb_1;
+	lv_obj_t *WaterValvePage_sw_2;
+	lv_obj_t *WaterValvePage_sw_3;
+	lv_obj_t *WaterValvePage_sw_4;
+	lv_obj_t *WaterValvePage_sw_8;
+	lv_obj_t *WaterValvePage_sw_7;
+	lv_obj_t *WaterValvePage_sw_6;
+	lv_obj_t *WaterValvePage_sw_5;
+	lv_obj_t *WaterValvePage_label_1;
+	lv_obj_t *WaterValvePage_label_2;
+	lv_obj_t *WaterValvePage_label_3;
+	lv_obj_t *WaterValvePage_label_4;
+	lv_obj_t *WaterValvePage_label_5;
+	lv_obj_t *WaterValvePage_label_6;
+	lv_obj_t *WaterValvePage_label_7;
+	lv_obj_t *WaterValvePage_label_8;
+	lv_obj_t *WaterValvePage_label_9;
 	lv_obj_t *SettingPage;
 	bool SettingPage_del;
 	lv_obj_t *SettingPage_tabview_1;
@@ -134,6 +150,8 @@ typedef struct
 	lv_obj_t *FactorySettingPage_sp_hum_recoup_btn_minus;
 	lv_obj_t *FactorySettingPage_label_7;
 	lv_obj_t *FactorySettingPage_label_8;
+	lv_obj_t *FactorySettingPage_sw_linkage;
+	lv_obj_t *FactorySettingPage_label_9;
 	lv_obj_t *FactorySettingPage_cont_wh_module;
 	lv_obj_t *FactorySettingPage_cb_28;
 	lv_obj_t *FactorySettingPage_cb_27;
@@ -189,7 +207,7 @@ void setup_scr_SettingPage(lv_ui *ui);
 void setup_scr_FactorySettingPage(lv_ui *ui);
 void setup_scr_OTAPage(lv_ui *ui);
 
-LV_IMAGE_DECLARE(_main_bg_RGB565A8_480x480);
+LV_IMAGE_DECLARE(_187_RGB565A8_480x480_tresh);
 LV_IMAGE_DECLARE(_swtich_RGB565A8_84x84);
 LV_IMAGE_DECLARE(_ac_mode_heat_RGB565A8_48x48);
 LV_IMAGE_DECLARE(_ac_mode_heat_sel_RGB565A8_48x48);
@@ -206,9 +224,8 @@ LV_FONT_DECLARE(lv_font_iconfont_25)
 LV_FONT_DECLARE(lv_font_PuHui_ExtraBold_60)
 LV_FONT_DECLARE(lv_font_montserratMedium_12)
 LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_16)
-LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_24)
-LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_18)
-LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_26)
+LV_FONT_DECLARE(lv_font_iconfont_36)
+LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_21)
 LV_FONT_DECLARE(lv_font_Alibaba_PuHuiTi_Medium_20)
 LV_FONT_DECLARE(lv_font_PuHui_ExtraBold_20)
 LV_FONT_DECLARE(lv_font_SourceHanSerifSC_Regular_20)

+ 1 - 1
wj-wire-controller-ui/generated/guider_fonts/fonts_list.mk

@@ -1 +1 @@
-GEN_CSRCS += lv_font_montserratMedium_25.c lv_font_montserratMedium_16.c lv_font_iconfont_25.c lv_font_PuHui_ExtraBold_60.c lv_font_montserratMedium_12.c lv_font_Alibaba_PuHuiTi_Medium_16.c lv_font_Alibaba_PuHuiTi_Medium_24.c lv_font_Alibaba_PuHuiTi_Medium_18.c lv_font_Alibaba_PuHuiTi_Medium_26.c lv_font_Alibaba_PuHuiTi_Medium_20.c lv_font_PuHui_ExtraBold_20.c lv_font_SourceHanSerifSC_Regular_20.c
+GEN_CSRCS += lv_font_montserratMedium_25.c lv_font_montserratMedium_16.c lv_font_iconfont_25.c lv_font_PuHui_ExtraBold_60.c lv_font_montserratMedium_12.c lv_font_Alibaba_PuHuiTi_Medium_16.c lv_font_iconfont_36.c lv_font_Alibaba_PuHuiTi_Medium_21.c lv_font_Alibaba_PuHuiTi_Medium_20.c lv_font_PuHui_ExtraBold_20.c lv_font_SourceHanSerifSC_Regular_20.c

+ 333 - 311
wj-wire-controller-ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_16.c

@@ -931,23 +931,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x50, 0x8, 0xe0, 0x23, 0x10, 0x0, 0x0, 0xb1,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5141 "允" */
-    0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0x1e, 0xe0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0xb, 0xf6, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x9, 0xfa, 0x0, 0xad, 0x10, 0x0, 0x0, 0x7,
-    0xfc, 0x0, 0x4, 0xfd, 0x10, 0x0, 0x8, 0xfc,
-    0x0, 0x0, 0x5, 0xfd, 0x10, 0xa, 0xff, 0xee,
-    0xef, 0xff, 0xff, 0xfc, 0x0, 0x6d, 0xdd, 0xfc,
-    0x9d, 0xf8, 0x78, 0xc0, 0x0, 0x0, 0x7f, 0x40,
-    0x9f, 0x10, 0x0, 0x0, 0x0, 0x8, 0xf2, 0x9,
-    0xf1, 0x0, 0x0, 0x0, 0x0, 0xcf, 0x0, 0x9f,
-    0x10, 0x2, 0x0, 0x0, 0x3f, 0xc0, 0x9, 0xf1,
-    0x0, 0xbe, 0x0, 0x1d, 0xf4, 0x0, 0x9f, 0x10,
-    0xd, 0xd0, 0x5e, 0xf8, 0x0, 0x7, 0xfd, 0xbc,
-    0xfa, 0x2f, 0xf6, 0x0, 0x0, 0x1c, 0xff, 0xfc,
-    0x20, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
     /* U+5165 "入" */
     0x0, 0x0, 0x4, 0x40, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xb, 0xf8, 0x0, 0x0, 0x0, 0x0,
@@ -1218,19 +1201,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf9, 0x0, 0xf, 0xa0, 0x0, 0x7e, 0xff, 0xfc,
     0x20, 0x0, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+533A "区" */
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xd9,
-    0x99, 0x99, 0x99, 0xa9, 0x94, 0xfa, 0x2e, 0x50,
-    0x0, 0xd, 0xb0, 0xf, 0xa2, 0xef, 0x60, 0xb,
-    0xf6, 0x0, 0xfa, 0x2, 0xef, 0x69, 0xfa, 0x0,
-    0xf, 0xa0, 0x2, 0xef, 0xfb, 0x0, 0x0, 0xfa,
-    0x0, 0x9, 0xff, 0x80, 0x0, 0xf, 0xa0, 0x9,
-    0xfd, 0xef, 0x80, 0x0, 0xfa, 0xa, 0xfc, 0x12,
-    0xef, 0x80, 0xf, 0xbd, 0xfb, 0x0, 0x3, 0xff,
-    0x50, 0xfa, 0x99, 0x0, 0x0, 0x3, 0xc0, 0xf,
-    0xd9, 0x99, 0x99, 0x99, 0x99, 0x97, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xc0,
-
     /* U+5347 "升" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x14, 0x8a, 0xd, 0xc0, 0x0, 0x3,
@@ -1383,6 +1353,21 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xb0, 0x8f, 0x20, 0xaf, 0xff, 0xff, 0xff, 0xfb,
     0x0, 0x30, 0xa, 0xf0, 0x0, 0x0, 0xe, 0xb0,
 
+    /* U+5668 "器" */
+    0x5, 0xff, 0xff, 0xf0, 0xdf, 0xff, 0xfa, 0x0,
+    0x6f, 0x44, 0x8f, 0x1d, 0xa4, 0x4d, 0xa0, 0x6,
+    0xf5, 0x58, 0xf1, 0xdb, 0x55, 0xda, 0x0, 0x5f,
+    0xff, 0xff, 0xd, 0xff, 0xff, 0x90, 0x0, 0x0,
+    0x0, 0x5e, 0x41, 0xe6, 0x0, 0x0, 0xef, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf2, 0x5, 0x66, 0x9f,
+    0xf7, 0xef, 0x96, 0x66, 0x10, 0x15, 0xbf, 0xe4,
+    0x1, 0xcf, 0xb5, 0x10, 0x6f, 0xff, 0xe7, 0x60,
+    0x56, 0xcf, 0xff, 0xb3, 0xaf, 0xdd, 0xef, 0xd,
+    0xfd, 0xdf, 0xc5, 0x4, 0xf2, 0x6, 0xf0, 0xd9,
+    0x0, 0xe8, 0x0, 0x4f, 0x64, 0x9f, 0xd, 0xb4,
+    0x4e, 0x80, 0x4, 0xff, 0xff, 0xf0, 0xdf, 0xff,
+    0xf8, 0x0,
+
     /* U+5728 "在" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x2f, 0x60, 0x0, 0x0, 0x0, 0x0,
@@ -1453,23 +1438,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xef, 0x90, 0x0, 0x1, 0xbf, 0xc0,
     0x0, 0x0, 0x54, 0x0, 0x0, 0x0, 0x4, 0x30,
 
-    /* U+57DF "域" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
-    0x0, 0x5c, 0x0, 0x0, 0x0, 0xf8, 0xe8, 0x0,
-    0x0, 0x6f, 0x10, 0x0, 0x0, 0xf8, 0x6f, 0x30,
-    0x0, 0x6f, 0x13, 0x77, 0x77, 0xfb, 0x7c, 0x70,
-    0x0, 0x6f, 0x15, 0xff, 0xff, 0xff, 0xff, 0xe0,
-    0xd, 0xff, 0xf7, 0x0, 0x0, 0xe9, 0x1, 0x0,
-    0x4, 0x9f, 0x68, 0xff, 0xf8, 0xd9, 0xe, 0x70,
-    0x0, 0x6f, 0x16, 0xf7, 0xd8, 0xca, 0x4f, 0x30,
-    0x0, 0x6f, 0x16, 0xe0, 0xb8, 0xac, 0xad, 0x0,
-    0x0, 0x6f, 0x16, 0xe6, 0xd8, 0x9e, 0xf6, 0x0,
-    0x0, 0x6f, 0x28, 0xff, 0xf8, 0x6f, 0xe0, 0x0,
-    0x1, 0x9f, 0xf8, 0x0, 0x1, 0x6f, 0x60, 0x0,
-    0x3f, 0xff, 0xb5, 0x5a, 0xea, 0xef, 0x72, 0xe1,
-    0x1c, 0x61, 0x7f, 0xff, 0xef, 0xfe, 0xc5, 0xf0,
-    0x0, 0x0, 0x4b, 0x63, 0xdf, 0x56, 0xfe, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0xa5, 0x0, 0xaf, 0x50,
+    /* U+5883 "境" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x8e, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0,
+    0x0, 0x8e, 0x5, 0xee, 0xef, 0xfe, 0xee, 0x60,
+    0x0, 0x8e, 0x1, 0x4b, 0xd4, 0x4e, 0xb4, 0x10,
+    0x1, 0x8e, 0x12, 0x4a, 0xe4, 0x5f, 0x94, 0x40,
+    0xe, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xe0,
+    0x7, 0xcf, 0x81, 0x33, 0x33, 0x33, 0x32, 0x0,
+    0x0, 0x8e, 0x1, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x8e, 0x1, 0xf6, 0x33, 0x33, 0xac, 0x0,
+    0x0, 0x8e, 0x1, 0xff, 0xff, 0xff, 0xfc, 0x0,
+    0x0, 0x8e, 0x1, 0xf6, 0x33, 0x33, 0xac, 0x0,
+    0x0, 0x8f, 0xc9, 0xff, 0xff, 0xff, 0xfb, 0x0,
+    0x3d, 0xff, 0xb4, 0xa, 0xe0, 0xba, 0x0, 0x81,
+    0x19, 0x40, 0x2, 0x9f, 0x70, 0xbb, 0x3, 0xf1,
+    0x0, 0x0, 0xbf, 0xe6, 0x0, 0x6f, 0xde, 0xb0,
+    0x0, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x0,
 
     /* U+58F0 "声" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -1522,6 +1507,25 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x20, 0x7, 0xef, 0xfd, 0x94, 0x15, 0xaf, 0xff,
     0x90, 0x37, 0x41, 0x0, 0x0, 0x0, 0x2, 0x53,
 
+    /* U+5916 "外" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x4, 0xe4, 0x0, 0x9, 0xe0, 0x0, 0x0,
+    0x0, 0x9, 0xf3, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0xe, 0xf9, 0x99, 0x59, 0xf0, 0x0, 0x0,
+    0x0, 0x5f, 0xff, 0xff, 0x89, 0xf0, 0x0, 0x0,
+    0x0, 0xbf, 0x20, 0x3f, 0x69, 0xf2, 0x0, 0x0,
+    0x3, 0xfa, 0x0, 0x7f, 0x29, 0xff, 0x90, 0x0,
+    0xc, 0xfd, 0x30, 0xbe, 0x9, 0xfb, 0xfc, 0x10,
+    0x4f, 0xcf, 0xf5, 0xfa, 0x9, 0xf0, 0x8f, 0xd0,
+    0x1c, 0x13, 0xda, 0xf3, 0x9, 0xf0, 0x6, 0x80,
+    0x0, 0x0, 0x3f, 0xc0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0xdf, 0x30, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0xa, 0xf8, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0x9f, 0xb0, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x9, 0xfd, 0x0, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x6, 0xd1, 0x0, 0x0, 0x9, 0xf0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
     /* U+5931 "失" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x33, 0x0, 0xfb, 0x0, 0x0, 0x0, 0x0,
@@ -1540,23 +1544,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x70, 0xba, 0x20, 0x0, 0x0, 0x0, 0x5, 0xd2,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
-    /* U+5B8C "完" */
-    0x0, 0x0, 0x0, 0x4c, 0x50, 0x0, 0x0, 0x0,
-    0x45, 0x55, 0x57, 0xfb, 0x55, 0x55, 0x50, 0xc,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xcd,
-    0x22, 0x22, 0x22, 0x22, 0x29, 0xf0, 0xc, 0xc2,
-    0x33, 0x33, 0x33, 0x33, 0x8f, 0x0, 0x11, 0xef,
-    0xff, 0xff, 0xff, 0xf3, 0x20, 0x0, 0x3, 0x44,
-    0x44, 0x44, 0x44, 0x0, 0x0, 0x11, 0x11, 0x11,
-    0x11, 0x11, 0x11, 0x10, 0xe, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x30, 0x56, 0x6a, 0xf8, 0x6b,
-    0xf6, 0x66, 0x61, 0x0, 0x0, 0x9f, 0x20, 0x9f,
-    0x0, 0x2, 0x0, 0x0, 0x3f, 0xd0, 0x9, 0xf0,
-    0x0, 0xf8, 0x2, 0x9f, 0xf3, 0x0, 0x8f, 0x97,
-    0x9f, 0x61, 0xff, 0xc2, 0x0, 0x1, 0xcf, 0xff,
-    0xb0, 0x5, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0x0,
-
     /* U+5B9A "定" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x3, 0xe7, 0x0, 0x0, 0x0, 0x3,
@@ -1574,6 +1561,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x76, 0x4f, 0xa0, 0x3, 0x9d, 0xff, 0xff, 0xff,
     0xa0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+5BA4 "室" */
+    0x0, 0x0, 0x0, 0x1a, 0x60, 0x0, 0x0, 0x0,
+    0x13, 0x33, 0x33, 0xfd, 0x33, 0x33, 0x30, 0x9,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x9f,
+    0x33, 0x33, 0x33, 0x33, 0x36, 0xf4, 0x2, 0x66,
+    0x66, 0x66, 0x66, 0x66, 0x75, 0x10, 0x6, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x20, 0x0, 0x0, 0x9f,
+    0x90, 0x5, 0xf6, 0x0, 0x0, 0x5, 0xdf, 0xa5,
+    0x56, 0x6e, 0xf8, 0x0, 0x0, 0x9f, 0xff, 0xff,
+    0xfd, 0xdd, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xea,
+    0x0, 0x3, 0x10, 0x0, 0x8f, 0xff, 0xff, 0xff,
+    0xff, 0xf3, 0x0, 0x3, 0x77, 0x77, 0xfc, 0x77,
+    0x77, 0x10, 0x5, 0x55, 0x55, 0x5f, 0xc5, 0x55,
+    0x55, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xfc,
+
     /* U+5BC6 "密" */
     0x0, 0x0, 0x0, 0x2d, 0x50, 0x0, 0x0, 0x0,
     0x37, 0x77, 0x77, 0xfc, 0x77, 0x77, 0x70, 0x8,
@@ -2154,6 +2157,24 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
     0x3b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0,
 
+    /* U+6C34 "水" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x1f, 0x90, 0x0, 0x51, 0x0,
+    0x1, 0x11, 0x11, 0x1f, 0xe0, 0x4, 0xfb, 0x0,
+    0xe, 0xff, 0xff, 0x3f, 0xf3, 0x4f, 0xf4, 0x0,
+    0x8, 0x99, 0xcf, 0x2f, 0xfc, 0xff, 0x30, 0x0,
+    0x0, 0x0, 0xbd, 0x1f, 0xef, 0xe3, 0x0, 0x0,
+    0x0, 0x1, 0xf8, 0x1f, 0x9e, 0xb0, 0x0, 0x0,
+    0x0, 0x9, 0xf2, 0x1f, 0x86, 0xf6, 0x0, 0x0,
+    0x0, 0x4f, 0x90, 0x1f, 0x80, 0xbf, 0x40, 0x0,
+    0x1, 0xee, 0x10, 0x1f, 0x80, 0x1e, 0xf4, 0x0,
+    0xc, 0xf4, 0x0, 0x1f, 0x80, 0x2, 0xff, 0x60,
+    0x7f, 0x70, 0x0, 0x3f, 0x80, 0x0, 0x3e, 0xb0,
+    0x4, 0x0, 0x2e, 0xff, 0x70, 0x0, 0x2, 0x0,
+    0x0, 0x0, 0xb, 0xb8, 0x0, 0x0, 0x0, 0x0,
+
     /* U+6C38 "永" */
     0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xa, 0xf9, 0x30, 0x0, 0x0, 0x0,
@@ -2312,6 +2333,22 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0xfc, 0xd1, 0x0, 0x0, 0xb, 0x70,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
 
+    /* U+73AF "环" */
+    0x9, 0x99, 0x99, 0x6c, 0xcc, 0xcc, 0xcc, 0x50,
+    0xff, 0xff, 0xf8, 0xdd, 0xef, 0xed, 0xd5, 0x0,
+    0x3f, 0x50, 0x0, 0xa, 0xf1, 0x0, 0x0, 0x3,
+    0xf5, 0x0, 0x1, 0xfb, 0x0, 0x0, 0x0, 0x3f,
+    0x50, 0x0, 0x9f, 0x50, 0x0, 0x0, 0xdf, 0xff,
+    0xf0, 0x3f, 0xff, 0xc1, 0x0, 0x8, 0xaf, 0xb9,
+    0xd, 0xef, 0xbe, 0xc0, 0x0, 0x3, 0xf5, 0x9,
+    0xf5, 0xfa, 0x3f, 0xb0, 0x0, 0x3f, 0x57, 0xfa,
+    0xf, 0xa0, 0x6f, 0x90, 0x3, 0xf5, 0x1c, 0x0,
+    0xfa, 0x0, 0xa8, 0x2, 0x7f, 0xdf, 0x60, 0xf,
+    0xa0, 0x0, 0x6, 0xff, 0xfe, 0xb4, 0x0, 0xfa,
+    0x0, 0x0, 0x37, 0x41, 0x0, 0x0, 0xf, 0xa0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfa, 0x0,
+    0x0,
+
     /* U+7406 "理" */
     0x7, 0x88, 0x87, 0xbf, 0xff, 0xff, 0xff, 0x10,
     0xef, 0xff, 0xeb, 0xe7, 0xbf, 0x7a, 0xf1, 0x0,
@@ -2763,23 +2800,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x4f, 0x30, 0xc, 0xf7, 0xba, 0x87, 0x65, 0xf3,
     0x14, 0x0, 0x4, 0x40, 0x0, 0x0, 0x0, 0x30,
 
-    /* U+8BB8 "许" */
-    0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-    0x76, 0x0, 0x4, 0xf5, 0x0, 0x0, 0x0, 0xc,
-    0xf4, 0x0, 0xaf, 0x10, 0x0, 0x0, 0x0, 0x1e,
-    0xe1, 0x1f, 0xff, 0xff, 0xff, 0xb0, 0x0, 0x4b,
-    0x8, 0xfa, 0xaf, 0xda, 0xa7, 0x0, 0x0, 0x1,
-    0xed, 0x1, 0xf8, 0x0, 0x0, 0xdf, 0xf7, 0x7f,
-    0x50, 0x1f, 0x80, 0x0, 0x8, 0xaf, 0x70, 0x50,
-    0x1, 0xf8, 0x0, 0x0, 0x1, 0xf7, 0x49, 0x99,
-    0x9f, 0xc9, 0x99, 0x30, 0x1f, 0x77, 0xff, 0xff,
-    0xff, 0xff, 0xf6, 0x1, 0xf7, 0x0, 0x0, 0x1f,
-    0x80, 0x0, 0x0, 0x1f, 0x76, 0x60, 0x1, 0xf8,
-    0x0, 0x0, 0x1, 0xfe, 0xfb, 0x0, 0x1f, 0x80,
-    0x0, 0x0, 0x2f, 0xfc, 0x20, 0x1, 0xf8, 0x0,
-    0x0, 0x2, 0xf9, 0x0, 0x0, 0x1f, 0x80, 0x0,
-    0x0, 0x3, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0,
-
     /* U+8BBE "设" */
     0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x9f, 0x50, 0xa, 0xff, 0xff, 0xf0, 0x0,
@@ -3013,22 +3033,6 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x1c, 0xf0, 0x9f, 0x10, 0x0, 0x0, 0x7, 0xff,
     0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
 
-    /* U+9600 "阀" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
-    0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xf7,
-    0x4f, 0xff, 0xff, 0xff, 0xf3, 0x26, 0xae, 0x6a,
-    0xae, 0x8a, 0x68, 0xf3, 0x6f, 0x12, 0xd8, 0x5e,
-    0x5f, 0x63, 0xf3, 0x6f, 0x5, 0xf2, 0x5f, 0x5,
-    0x84, 0xf3, 0x6f, 0xd, 0xe4, 0x9f, 0xcf, 0xf6,
-    0xf3, 0x6f, 0x8f, 0xec, 0xef, 0x96, 0x54, 0xf3,
-    0x6f, 0xef, 0xe0, 0xf, 0x48, 0xd3, 0xf3, 0x6f,
-    0x57, 0xe0, 0xd, 0xcf, 0x43, 0xf3, 0x6f, 0x6,
-    0xe0, 0x1d, 0xf6, 0x3, 0xf3, 0x6f, 0x6, 0xf8,
-    0xff, 0xf1, 0xb7, 0xf3, 0x6f, 0x6, 0xec, 0x92,
-    0xeb, 0xf5, 0xf2, 0x6f, 0x6, 0xe0, 0x0, 0x5f,
-    0xb5, 0xf2, 0x6f, 0x1, 0x40, 0x0, 0x2, 0xef,
-    0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0,
-
     /* U+9664 "除" */
     0x0, 0x0, 0x0, 0x0, 0xbf, 0x30, 0x0, 0x7,
     0xff, 0xff, 0x0, 0x5f, 0xed, 0x0, 0x0, 0x7f,
@@ -3062,6 +3066,23 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x9e, 0x0,
     0x0,
 
+    /* U+96C6 "集" */
+    0x0, 0x5, 0xc1, 0x4, 0xb1, 0x0, 0x0, 0x0,
+    0x0, 0xdd, 0x22, 0x5f, 0x72, 0x22, 0x20, 0x0,
+    0x8f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x4f,
+    0xf1, 0x11, 0x3f, 0x71, 0x11, 0x10, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xf8, 0x2, 0xd9, 0xf4,
+    0x44, 0x5f, 0x84, 0x44, 0x20, 0x0, 0x8f, 0xdd,
+    0xdd, 0xfe, 0xdd, 0xd7, 0x0, 0x8, 0xf5, 0x55,
+    0x6f, 0x95, 0x55, 0x50, 0x0, 0x6d, 0xdd, 0xdd,
+    0xdd, 0xdd, 0xdd, 0x10, 0x45, 0x55, 0x55, 0xc9,
+    0x55, 0x55, 0x51, 0xd, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0x50, 0x0, 0x1, 0x9f, 0xff, 0xe6,
+    0x0, 0x0, 0x0, 0x5a, 0xfe, 0x6f, 0x98, 0xfe,
+    0x82, 0x4, 0xff, 0xe7, 0x0, 0xf8, 0x2, 0xaf,
+    0xfa, 0xa, 0x40, 0x0, 0xf, 0x80, 0x0, 0x5,
+    0x40,
+
     /* U+97F3 "音" */
     0x0, 0x0, 0x0, 0x1d, 0x80, 0x0, 0x0, 0x0,
     0x18, 0x88, 0x88, 0xfe, 0x88, 0x88, 0x80, 0x3,
@@ -4211,200 +4232,201 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 4796, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 4909, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
     {.bitmap_index = 5045, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 5173, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5293, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5413, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5173, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5293, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 5405, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 5525, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5645, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5765, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 5869, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5989, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6109, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 6221, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5645, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 5749, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5869, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 5989, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 6101, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6229, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6349, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6469, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6589, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6469, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6597, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6717, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6837, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
     {.bitmap_index = 6957, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7077, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7197, .adv_w = 252, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
-    {.bitmap_index = 7282, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7410, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7515, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7643, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7763, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7875, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7988, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 8093, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8206, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8326, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8446, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8574, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 8694, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8822, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8950, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9070, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9190, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9310, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 9438, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9551, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9671, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9784, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9889, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 9987, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10115, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10228, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10341, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10461, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10566, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 10664, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10769, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10889, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 11002, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 11138, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11266, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11386, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11506, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11626, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11754, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11874, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12002, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12130, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12258, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 12386, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12506, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12611, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 12723, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 12821, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 12949, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 13062, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13190, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13326, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 13439, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13575, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 13679, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13807, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13927, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14040, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14160, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 14288, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14408, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14528, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14656, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 14792, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 14890, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14988, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 15108, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 15220, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 15332, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 15445, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15565, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15670, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15790, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 15903, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16031, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16151, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16271, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16391, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16519, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 16631, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16744, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16864, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 16984, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17082, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 17180, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 17308, .adv_w = 252, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 17427, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17540, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17668, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17773, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 17901, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 18021, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18141, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 18253, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18373, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18501, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18621, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18741, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18861, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 18989, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 19102, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 19207, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 19305, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 19425, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19529, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19641, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19753, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19866, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 19971, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20084, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20196, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20316, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20429, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 20565, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 20661, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 20773, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 20869, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 20935, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21063, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21191, .adv_w = 288, .box_w = 18, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 21317, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21445, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 21553, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21681, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 21737, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 21821, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 21965, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 22061, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 22149, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 22229, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 22355, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22460, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22558, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 22638, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
-    {.bitmap_index = 22750, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22820, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22890, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 22988, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
-    {.bitmap_index = 23016, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 23124, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 23284, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 23444, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 23572, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 23642, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 23712, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 23852, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 23948, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 24076, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 24221, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 24326, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 24438, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 24536, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 24634, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 24730, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 24826, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 24938, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 25050, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 25158, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 25320, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 25416, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 25566, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25666, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25766, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25866, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 25966, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 26066, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 26213, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 26309, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 26421, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 26566, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 26686, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 26782, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 26876, .adv_w = 252, .box_w = 6, .box_h = 14, .ofs_x = 8, .ofs_y = -2},
-    {.bitmap_index = 26918, .adv_w = 252, .box_w = 5, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 26953, .adv_w = 252, .box_w = 5, .box_h = 6, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 26968, .adv_w = 252, .box_w = 4, .box_h = 10, .ofs_x = 2, .ofs_y = -1}
+    {.bitmap_index = 7077, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7205, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7310, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7438, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7558, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7670, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7783, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 7888, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8001, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8121, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 8219, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8339, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8467, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 8587, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8715, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8843, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8963, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9083, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9203, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9339, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9467, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9587, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 9692, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9805, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9910, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10008, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10136, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10249, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10362, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10482, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10587, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 10685, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10790, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10910, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 11023, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 11159, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11287, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11407, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11527, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11647, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11775, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11895, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12023, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12151, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12279, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 12407, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12527, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12632, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 12744, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 12842, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 12970, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13083, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13211, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13347, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13460, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13596, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13700, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13828, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13956, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14076, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14189, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14309, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14437, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14557, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14677, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14805, .adv_w = 252, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14941, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15046, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15144, .adv_w = 252, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15242, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 15362, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15474, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 15586, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 15699, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15819, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 15924, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16044, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16157, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16285, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16405, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16525, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16645, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16773, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 16885, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 16998, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17118, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17238, .adv_w = 252, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 17336, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 17434, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 17562, .adv_w = 252, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 17681, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17794, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 17922, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18027, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18155, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18275, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 18387, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18507, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18635, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18755, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18875, .adv_w = 252, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 18995, .adv_w = 252, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 19123, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 19236, .adv_w = 252, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 19341, .adv_w = 252, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 19439, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 19559, .adv_w = 252, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19663, .adv_w = 252, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19775, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19888, .adv_w = 252, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 19993, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20106, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20219, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20331, .adv_w = 252, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20451, .adv_w = 252, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20564, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 20700, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 20796, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 20908, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 21004, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 21070, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21198, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21326, .adv_w = 288, .box_w = 18, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 21452, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21580, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 21688, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 21816, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 21872, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 21956, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 22100, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 22196, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 22284, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 22364, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 22490, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 22595, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 22693, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 22773, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 22885, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 22955, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 23025, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 23123, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
+    {.bitmap_index = 23151, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 23259, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 23419, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 23579, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 23707, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 23777, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 23847, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 23987, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 24083, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 24211, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 24356, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 24461, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 24573, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 24671, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 24769, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 24865, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 24961, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 25073, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 25185, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 25293, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 25455, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 25551, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 25701, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 25801, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 25901, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 26001, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 26101, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 26201, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 26348, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 26444, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 26556, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 26701, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 26821, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 26917, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 27011, .adv_w = 252, .box_w = 6, .box_h = 14, .ofs_x = 8, .ofs_y = -2},
+    {.bitmap_index = 27053, .adv_w = 252, .box_w = 5, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 27088, .adv_w = 252, .box_w = 5, .box_h = 6, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 27103, .adv_w = 252, .box_w = 4, .box_h = 10, .ofs_x = 2, .ofs_y = -1}
 };
 
 /*---------------------
@@ -4413,31 +4435,31 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
 
 static const uint16_t unicode_list_2[] = {
     0x0, 0x1, 0x1df0, 0x1dfd, 0x1e1d, 0x1e7e, 0x1e84, 0x1ec6,
-    0x1f43, 0x1f4c, 0x1f6f, 0x206f, 0x2131, 0x2155, 0x2158, 0x2163,
-    0x2166, 0x2175, 0x21a7, 0x21b0, 0x21ea, 0x21f6, 0x2207, 0x2226,
-    0x223d, 0x228f, 0x2290, 0x2298, 0x2306, 0x232a, 0x2337, 0x2372,
-    0x23b2, 0x23bd, 0x23c6, 0x23e7, 0x23fd, 0x23fe, 0x241f, 0x2718,
-    0x2720, 0x2730, 0x2747, 0x27cf, 0x28e0, 0x28f7, 0x28fd, 0x2921,
-    0x2b7c, 0x2b8a, 0x2bb6, 0x2c3f, 0x2de2, 0x2e45, 0x2e7f, 0x2e96,
+    0x1f43, 0x1f4c, 0x1f6f, 0x206f, 0x2155, 0x2158, 0x2163, 0x2166,
+    0x2175, 0x21a7, 0x21b0, 0x21ea, 0x21f6, 0x2207, 0x2226, 0x223d,
+    0x228f, 0x2290, 0x2298, 0x2306, 0x2337, 0x2372, 0x23b2, 0x23bd,
+    0x23c6, 0x23e7, 0x23fd, 0x23fe, 0x241f, 0x2658, 0x2718, 0x2720,
+    0x2730, 0x2747, 0x2873, 0x28e0, 0x28f7, 0x28fd, 0x2906, 0x2921,
+    0x2b8a, 0x2b94, 0x2bb6, 0x2c3f, 0x2de2, 0x2e45, 0x2e7f, 0x2e96,
     0x2eea, 0x2ef0, 0x2f43, 0x2f45, 0x2ff1, 0x3042, 0x3052, 0x3200,
     0x325b, 0x326e, 0x3395, 0x3397, 0x3468, 0x34bd, 0x3535, 0x3560,
     0x359d, 0x35a0, 0x35d0, 0x35e6, 0x362e, 0x366a, 0x371a, 0x371c,
-    0x372a, 0x37d5, 0x3a11, 0x3b53, 0x3c28, 0x3d78, 0x3e19, 0x3e6f,
-    0x3e80, 0x40dd, 0x4174, 0x4238, 0x42a6, 0x43f6, 0x4518, 0x4525,
-    0x466b, 0x4674, 0x47f1, 0x485e, 0x492a, 0x49e0, 0x49fb, 0x4b91,
-    0x4ba1, 0x4ceb, 0x4e97, 0x4ec1, 0x4ecc, 0x4ecf, 0x4edd, 0x4eef,
-    0x4f41, 0x4f5e, 0x5044, 0x50ed, 0x583c, 0x5855, 0x5971, 0x59d6,
-    0x5ba8, 0x5bae, 0x5bd2, 0x5be7, 0x5d15, 0x5f83, 0x5fcb, 0x5fcc,
-    0x5fce, 0x5ff0, 0x61bd, 0x61bf, 0x648f, 0x65dd, 0x65e4, 0x65f0,
-    0x6654, 0x668c, 0x67e3, 0x68be, 0x6978, 0x6ac8, 0xbff1, 0xbff8,
-    0xbffb, 0xbffc, 0xbffd, 0xc001, 0xc003, 0xc005, 0xc009, 0xc00c,
-    0xc011, 0xc016, 0xc017, 0xc018, 0xc02e, 0xc033, 0xc038, 0xc03b,
-    0xc03c, 0xc03d, 0xc041, 0xc042, 0xc043, 0xc044, 0xc057, 0xc058,
-    0xc05e, 0xc060, 0xc061, 0xc064, 0xc067, 0xc068, 0xc069, 0xc06b,
-    0xc083, 0xc085, 0xc0b4, 0xc0b5, 0xc0b7, 0xc0b9, 0xc0d0, 0xc0d7,
-    0xc0da, 0xc0e3, 0xc10c, 0xc114, 0xc14b, 0xc1db, 0xc230, 0xc231,
-    0xc232, 0xc233, 0xc234, 0xc277, 0xc283, 0xc2dd, 0xc2f4, 0xc54a,
-    0xc7b2, 0xc892, 0xcef8, 0xcef9, 0xcefc, 0xcf0a
+    0x372a, 0x37d5, 0x3a11, 0x3b53, 0x3c24, 0x3c28, 0x3d78, 0x3e19,
+    0x3e6f, 0x3e80, 0x40dd, 0x4174, 0x4238, 0x42a6, 0x439f, 0x43f6,
+    0x4518, 0x4525, 0x466b, 0x4674, 0x47f1, 0x485e, 0x492a, 0x49e0,
+    0x49fb, 0x4b91, 0x4ba1, 0x4ceb, 0x4e97, 0x4ec1, 0x4ecc, 0x4ecf,
+    0x4edd, 0x4eef, 0x4f41, 0x4f5e, 0x5044, 0x50ed, 0x583c, 0x5855,
+    0x5971, 0x59d6, 0x5bae, 0x5bd2, 0x5be7, 0x5d15, 0x5f83, 0x5fcb,
+    0x5fcc, 0x5fce, 0x5ff0, 0x61bd, 0x61bf, 0x648f, 0x65dd, 0x65e4,
+    0x6654, 0x668c, 0x66b6, 0x67e3, 0x68be, 0x6978, 0x6ac8, 0xbff1,
+    0xbff8, 0xbffb, 0xbffc, 0xbffd, 0xc001, 0xc003, 0xc005, 0xc009,
+    0xc00c, 0xc011, 0xc016, 0xc017, 0xc018, 0xc02e, 0xc033, 0xc038,
+    0xc03b, 0xc03c, 0xc03d, 0xc041, 0xc042, 0xc043, 0xc044, 0xc057,
+    0xc058, 0xc05e, 0xc060, 0xc061, 0xc064, 0xc067, 0xc068, 0xc069,
+    0xc06b, 0xc083, 0xc085, 0xc0b4, 0xc0b5, 0xc0b7, 0xc0b9, 0xc0d0,
+    0xc0d7, 0xc0da, 0xc0e3, 0xc10c, 0xc114, 0xc14b, 0xc1db, 0xc230,
+    0xc231, 0xc232, 0xc233, 0xc234, 0xc277, 0xc283, 0xc2dd, 0xc2f4,
+    0xc54a, 0xc7b2, 0xc892, 0xcef8, 0xcef9, 0xcefc, 0xcf0a
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -4453,7 +4475,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
     },
     {
         .range_start = 12304, .range_length = 53003, .glyph_id_start = 97,
-        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 206, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .unicode_list = unicode_list_2, .glyph_id_ofs_list = NULL, .list_length = 207, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
@@ -4502,7 +4524,7 @@ static const uint8_t kern_left_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0, 0
 };
 
 /*Map glyph_ids to kern right classes*/
@@ -4545,7 +4567,7 @@ static const uint8_t kern_right_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0, 0
 };
 
 /*Kern values between classes*/

+ 146 - 72
wj-wire-controller-ui/generated/guider_fonts/lv_font_Alibaba_PuHuiTi_Medium_20.c

@@ -1024,6 +1024,77 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xf9, 0x17, 0xf9, 0x3f, 0xd1, 0x5f, 0xff, 0xff,
     0x34, 0xc7, 0x0, 0x1a, 0xfe, 0x60,
 
+    /* U+5730 "地" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x89, 0x0, 0x0, 0x0, 0xcf,
+    0x10, 0x0, 0x0, 0x0, 0xd, 0xf1, 0x0, 0x21,
+    0xc, 0xf1, 0x0, 0x0, 0x0, 0x0, 0xdf, 0x10,
+    0x1f, 0xb0, 0xcf, 0x10, 0x0, 0x0, 0x0, 0xd,
+    0xf1, 0x1, 0xfb, 0xc, 0xf1, 0x16, 0xc3, 0x0,
+    0x0, 0xdf, 0x10, 0x1f, 0xb0, 0xcf, 0xcf, 0xff,
+    0x20, 0xa, 0xcf, 0xfc, 0x91, 0xfd, 0xaf, 0xff,
+    0xee, 0xf2, 0x0, 0xdf, 0xff, 0xfd, 0x9f, 0xff,
+    0xff, 0x40, 0xbf, 0x10, 0x2, 0x2d, 0xf3, 0xdf,
+    0xfe, 0x5c, 0xf1, 0xc, 0xf1, 0x0, 0x0, 0xdf,
+    0x16, 0x8f, 0xb0, 0xcf, 0x10, 0xdf, 0x0, 0x0,
+    0xd, 0xf1, 0x1, 0xfb, 0xc, 0xf1, 0xd, 0xf0,
+    0x0, 0x0, 0xdf, 0x10, 0x1f, 0xb0, 0xcf, 0x46,
+    0xff, 0x0, 0x0, 0xd, 0xf1, 0x1, 0xfb, 0xc,
+    0xf8, 0xff, 0xc0, 0x0, 0x0, 0xdf, 0x26, 0x2f,
+    0xb0, 0xcf, 0x3b, 0x82, 0x0, 0x0, 0xd, 0xff,
+    0xf6, 0xfb, 0xc, 0xf1, 0x0, 0x6b, 0x30, 0x6d,
+    0xff, 0xfb, 0x4f, 0xb0, 0x12, 0x0, 0x7, 0xf7,
+    0x3f, 0xff, 0x92, 0x1, 0xfe, 0x0, 0x0, 0x0,
+    0xbf, 0x50, 0xd6, 0x0, 0x0, 0xe, 0xff, 0xed,
+    0xde, 0xff, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x4c,
+    0xef, 0xff, 0xfe, 0xd6, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+
+    /* U+6696 "暖" */
+    0x0, 0x0, 0x0, 0x0, 0x12, 0x35, 0x79, 0xbc,
+    0xd, 0xdd, 0xdc, 0x5f, 0xff, 0xff, 0xff, 0xff,
+    0xc0, 0xff, 0xff, 0xf2, 0xbe, 0x98, 0xd8, 0x35,
+    0xb2, 0xf, 0xb0, 0xbf, 0x6, 0xf3, 0xf, 0xa0,
+    0xaf, 0x10, 0xfb, 0xb, 0xf0, 0x1e, 0x90, 0xad,
+    0x3f, 0xa0, 0xf, 0xb0, 0xbf, 0x5f, 0xff, 0xff,
+    0xff, 0xff, 0xf1, 0xfb, 0xb, 0xf2, 0x88, 0xfd,
+    0x88, 0x88, 0x88, 0xf, 0xd6, 0xdf, 0x0, 0x2f,
+    0xa0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xf9, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0x7f, 0xd7, 0xdf, 0x59,
+    0xdf, 0xa9, 0x99, 0x99, 0x94, 0xfb, 0xb, 0xf0,
+    0xd, 0xf9, 0x99, 0x99, 0x92, 0xf, 0xb0, 0xbf,
+    0x2, 0xff, 0xff, 0xff, 0xff, 0x40, 0xfb, 0xb,
+    0xf0, 0x8f, 0xdf, 0x30, 0x3f, 0xe1, 0xf, 0xb0,
+    0xbf, 0x1f, 0xd2, 0xfe, 0x4e, 0xf5, 0x0, 0xff,
+    0xff, 0xfa, 0xf6, 0x5, 0xff, 0xf7, 0x0, 0xe,
+    0xee, 0xef, 0xfc, 0x1, 0x9f, 0xff, 0x92, 0x0,
+    0x0, 0x1, 0xff, 0xac, 0xff, 0xd6, 0xdf, 0xfd,
+    0x80, 0x0, 0x8, 0x7e, 0xfd, 0x60, 0x0, 0x5c,
+    0xf9, 0x0, 0x0, 0x0, 0x42, 0x0, 0x0, 0x0,
+    0x2, 0x10,
+
+    /* U+9600 "阀" */
+    0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x3f, 0xf6, 0xd, 0xff, 0xff, 0xff, 0xff, 0xfb,
+    0x3, 0xff, 0x29, 0xbb, 0xbb, 0xbb, 0xbb, 0xfb,
+    0x43, 0x59, 0x36, 0x4, 0x60, 0x71, 0x0, 0xfb,
+    0xfc, 0x0, 0xaf, 0x19, 0xf3, 0xfd, 0x10, 0xfb,
+    0xfc, 0x1, 0xfa, 0x9, 0xf0, 0x4f, 0x70, 0xfb,
+    0xfc, 0x9, 0xf3, 0x8, 0xf3, 0x5a, 0xa2, 0xfb,
+    0xfc, 0x2f, 0xf7, 0xce, 0xff, 0xff, 0xf4, 0xfb,
+    0xfc, 0xbf, 0xf8, 0xcc, 0xf9, 0x34, 0x20, 0xfb,
+    0xfe, 0xff, 0xf1, 0x2, 0xf7, 0x1e, 0xc0, 0xfb,
+    0xfc, 0x89, 0xf1, 0x0, 0xfc, 0xef, 0x30, 0xfb,
+    0xfc, 0x8, 0xf1, 0x0, 0xdf, 0xf4, 0x0, 0xfb,
+    0xfc, 0x8, 0xf1, 0x5d, 0xff, 0x50, 0x92, 0xfb,
+    0xfc, 0x8, 0xfd, 0xff, 0x9f, 0xb2, 0xf5, 0xfb,
+    0xfc, 0x8, 0xf6, 0x91, 0xa, 0xfe, 0xf1, 0xfb,
+    0xfc, 0x8, 0xf1, 0x0, 0x1, 0xcf, 0x82, 0xfb,
+    0xfc, 0x3, 0x50, 0x0, 0x0, 0x9, 0xdf, 0xfa,
+    0xfc, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff, 0xe3,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x0,
+
     /* U+F001 "" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -2560,66 +2631,69 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 6056, .adv_w = 67, .box_w = 3, .box_h = 19, .ofs_x = 1, .ofs_y = -4},
     {.bitmap_index = 6085, .adv_w = 106, .box_w = 6, .box_h = 19, .ofs_x = 0, .ofs_y = -4},
     {.bitmap_index = 6142, .adv_w = 182, .box_w = 11, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
-    {.bitmap_index = 6164, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 6374, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 6524, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6714, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 6864, .adv_w = 220, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 6969, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7179, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7389, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7608, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 7818, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 7991, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 8201, .adv_w = 160, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 8281, .adv_w = 240, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 8401, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8620, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 8770, .adv_w = 220, .box_w = 14, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 8917, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 9041, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 9230, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9401, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 9572, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 9696, .adv_w = 280, .box_w = 19, .box_h = 19, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 9877, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 9982, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 10087, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10258, .adv_w = 280, .box_w = 18, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
-    {.bitmap_index = 10303, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 10476, .adv_w = 400, .box_w = 26, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 10749, .adv_w = 360, .box_w = 24, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 11001, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11191, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 11290, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 11389, .adv_w = 400, .box_w = 26, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 11597, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 11747, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 11957, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 12178, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12349, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 12538, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 12709, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 12862, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 13012, .adv_w = 200, .box_w = 14, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 13159, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13348, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 13537, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 13710, .adv_w = 320, .box_w = 22, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 13941, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 14099, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 14337, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14500, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14663, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14826, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14989, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 15152, .adv_w = 400, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 15373, .adv_w = 280, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 15541, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 15730, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
-    {.bitmap_index = 15951, .adv_w = 400, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 16139, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 16297, .adv_w = 322, .box_w = 21, .box_h = 13, .ofs_x = 0, .ofs_y = 1}
+    {.bitmap_index = 6164, .adv_w = 315, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6354, .adv_w = 315, .box_w = 17, .box_h = 19, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 6516, .adv_w = 315, .box_w = 16, .box_h = 20, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 6676, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 6886, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7036, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7226, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7376, .adv_w = 220, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 7481, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7691, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 7901, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 8120, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 8330, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8503, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 8713, .adv_w = 160, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8793, .adv_w = 240, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 8913, .adv_w = 360, .box_w = 23, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9132, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 9282, .adv_w = 220, .box_w = 14, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9429, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 9553, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 9742, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9913, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10084, .adv_w = 280, .box_w = 13, .box_h = 19, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 10208, .adv_w = 280, .box_w = 19, .box_h = 19, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 10389, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10494, .adv_w = 200, .box_w = 11, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 10599, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 10770, .adv_w = 280, .box_w = 18, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
+    {.bitmap_index = 10815, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 10988, .adv_w = 400, .box_w = 26, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 11261, .adv_w = 360, .box_w = 24, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 11513, .adv_w = 320, .box_w = 20, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11703, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 11802, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 11901, .adv_w = 400, .box_w = 26, .box_h = 16, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 12109, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 12259, .adv_w = 320, .box_w = 20, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 12469, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 12690, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 12861, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13050, .adv_w = 280, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 13221, .adv_w = 280, .box_w = 18, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 13374, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 13524, .adv_w = 200, .box_w = 14, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 13671, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 13860, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14049, .adv_w = 360, .box_w = 23, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 14222, .adv_w = 320, .box_w = 22, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 14453, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 14611, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14849, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15012, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15175, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15338, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15501, .adv_w = 400, .box_w = 25, .box_h = 13, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15664, .adv_w = 400, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15885, .adv_w = 280, .box_w = 16, .box_h = 21, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 16053, .adv_w = 280, .box_w = 18, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16242, .adv_w = 320, .box_w = 21, .box_h = 21, .ofs_x = -1, .ofs_y = -3},
+    {.bitmap_index = 16463, .adv_w = 400, .box_w = 25, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 16651, .adv_w = 240, .box_w = 15, .box_h = 21, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 16809, .adv_w = 322, .box_w = 21, .box_h = 13, .ofs_x = 0, .ofs_y = 1}
 };
 
 /*---------------------
@@ -2627,14 +2701,14 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
  *--------------------*/
 
 static const uint16_t unicode_list_1[] = {
-    0x0, 0x7, 0xa, 0xb, 0xc, 0x10, 0x12, 0x14,
-    0x18, 0x1b, 0x20, 0x25, 0x26, 0x27, 0x3d, 0x42,
-    0x47, 0x4a, 0x4b, 0x4c, 0x50, 0x51, 0x52, 0x53,
-    0x66, 0x67, 0x6d, 0x6f, 0x70, 0x73, 0x76, 0x77,
-    0x78, 0x7a, 0x92, 0x94, 0xc3, 0xc4, 0xc6, 0xc8,
-    0xdf, 0xe6, 0xe9, 0xf2, 0x11b, 0x123, 0x15a, 0x1ea,
-    0x23f, 0x240, 0x241, 0x242, 0x243, 0x286, 0x292, 0x2ec,
-    0x303, 0x559, 0x7c1, 0x8a1
+    0x0, 0xf66, 0x3ed0, 0x98d1, 0x98d8, 0x98db, 0x98dc, 0x98dd,
+    0x98e1, 0x98e3, 0x98e5, 0x98e9, 0x98ec, 0x98f1, 0x98f6, 0x98f7,
+    0x98f8, 0x990e, 0x9913, 0x9918, 0x991b, 0x991c, 0x991d, 0x9921,
+    0x9922, 0x9923, 0x9924, 0x9937, 0x9938, 0x993e, 0x9940, 0x9941,
+    0x9944, 0x9947, 0x9948, 0x9949, 0x994b, 0x9963, 0x9965, 0x9994,
+    0x9995, 0x9997, 0x9999, 0x99b0, 0x99b7, 0x99ba, 0x99c3, 0x99ec,
+    0x99f4, 0x9a2b, 0x9abb, 0x9b10, 0x9b11, 0x9b12, 0x9b13, 0x9b14,
+    0x9b57, 0x9b63, 0x9bbd, 0x9bd4, 0x9e2a, 0xa092, 0xa172
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -2645,8 +2719,8 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
         .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
     },
     {
-        .range_start = 61441, .range_length = 2210, .glyph_id_start = 96,
-        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 60, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 22320, .range_length = 41331, .glyph_id_start = 96,
+        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 63, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
@@ -2677,7 +2751,7 @@ static const uint8_t kern_left_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0
 };
 
 /*Map glyph_ids to kern right classes*/
@@ -2702,7 +2776,7 @@ static const uint8_t kern_right_class_mapping[] =
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0
+    0, 0, 0, 0, 0, 0, 0
 };
 
 /*Kern values between classes*/

+ 155 - 74
wj-wire-controller-ui/generated/guider_fonts/lv_font_iconfont_25.c

@@ -22,6 +22,48 @@
 
 /*Store the image of the glyphs*/
 static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
+    /* U+E600 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0xda, 0x10,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff, 0xff,
+    0xf5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x40, 0xbf, 0xff, 0xff, 0x71, 0x40, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x1, 0xbf, 0x67, 0xff,
+    0xff, 0xf3, 0x7f, 0xa1, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xef, 0x80, 0xb, 0xff, 0xf7, 0x0, 0x8f,
+    0xd2, 0x0, 0x0, 0x0, 0x1, 0xef, 0x40, 0x0,
+    0x3, 0x52, 0x0, 0x0, 0x4f, 0xe1, 0x0, 0x0,
+    0x0, 0xbf, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x3f, 0xb0, 0x0, 0x0, 0x3f, 0x90, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x40,
+    0x0, 0xb, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xeb, 0x0, 0x0, 0xfa, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
+    0xf0, 0x0, 0x4f, 0x60, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x4f, 0x40, 0x5, 0xf3,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x2, 0xf5, 0x0, 0x5f, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x50, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x8e, 0xfa, 0x10, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x1a, 0xfe, 0x80,
+    0x8f, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xc, 0xff, 0xff, 0x8e, 0xff, 0xff, 0xf2,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0xff,
+    0xfe, 0xff, 0xff, 0xff, 0x30, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x3f, 0xff, 0xff, 0xfa, 0xff, 0xff,
+    0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef,
+    0xff, 0xfa, 0x1c, 0xff, 0xe3, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x3, 0xef, 0xfc, 0x10, 0x2,
+    0x30, 0x1f, 0xb2, 0x0, 0x0, 0x0, 0x1, 0x9f,
+    0x10, 0x32, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xfc,
+    0x75, 0x45, 0x7b, 0xff, 0x80, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x28, 0xef, 0xff, 0xff, 0xe8,
+    0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x24, 0x54, 0x20, 0x0, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+E60A "" */
     0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
@@ -149,6 +191,42 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
     0xff, 0xf9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x35,
     0x30, 0x0, 0x0, 0x0,
 
+    /* U+E6A2 "" */
+    0x0, 0x36, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x65, 0x10, 0x0, 0xcf, 0xed, 0xdd, 0xdd,
+    0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0x60, 0x9e,
+    0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x8f, 0x2e, 0x80, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xe7, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xe, 0x7e, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xe7, 0xe7, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
+    0x7e, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xe7, 0xe7, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x7e,
+    0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xe7, 0xe7, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x7e, 0x90,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xf6, 0x9f, 0x40, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x9f, 0x20, 0xaf, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x50, 0x0, 0x25, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0xc7, 0x0, 0xb, 0x80,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
+    0xf8, 0xc, 0xf7, 0x0, 0x0, 0x0, 0x0, 0x13,
+    0x33, 0x33, 0x20, 0x1c, 0xfe, 0xf8, 0x0, 0x33,
+    0x33, 0x33, 0xd, 0xff, 0xff, 0xff, 0x20, 0x2f,
+    0xfc, 0x0, 0x7f, 0xff, 0xff, 0xf6, 0x13, 0x33,
+    0x33, 0x20, 0x1c, 0xfe, 0xf8, 0x0, 0x33, 0x33,
+    0x33, 0x0, 0x0, 0x0, 0x0, 0xc, 0xf9, 0xc,
+    0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0xc8, 0x0, 0xa, 0x80, 0x0, 0x0, 0x0,
+    0x0,
+
     /* U+F001 "" */
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -2298,70 +2376,72 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
 
 static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
-    {.bitmap_index = 0, .adv_w = 400, .box_w = 23, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 265, .adv_w = 400, .box_w = 22, .box_h = 21, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 496, .adv_w = 400, .box_w = 23, .box_h = 22, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 749, .adv_w = 400, .box_w = 15, .box_h = 25, .ofs_x = 5, .ofs_y = -3},
-    {.bitmap_index = 937, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 1288, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1526, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1814, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2052, .adv_w = 275, .box_w = 18, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2214, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 2527, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 2852, .adv_w = 450, .box_w = 29, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3186, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 3511, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 3787, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 4100, .adv_w = 200, .box_w = 13, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 4230, .adv_w = 300, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 4420, .adv_w = 450, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 4783, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 5021, .adv_w = 275, .box_w = 18, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 5255, .adv_w = 350, .box_w = 16, .box_h = 24, .ofs_x = 3, .ofs_y = -3},
-    {.bitmap_index = 5447, .adv_w = 350, .box_w = 22, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 5744, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 5997, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 6250, .adv_w = 350, .box_w = 17, .box_h = 24, .ofs_x = 2, .ofs_y = -3},
-    {.bitmap_index = 6454, .adv_w = 350, .box_w = 24, .box_h = 23, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 6730, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 6891, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 7052, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 7305, .adv_w = 350, .box_w = 22, .box_h = 5, .ofs_x = 0, .ofs_y = 7},
-    {.bitmap_index = 7360, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 7636, .adv_w = 500, .box_w = 33, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 8065, .adv_w = 450, .box_w = 30, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 8455, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 8743, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 8897, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
-    {.bitmap_index = 9051, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 9355, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 9593, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 9918, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 10269, .adv_w = 350, .box_w = 23, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 10534, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 10820, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 11073, .adv_w = 350, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 11293, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 11531, .adv_w = 250, .box_w = 17, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 11752, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 12038, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 12324, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 12600, .adv_w = 400, .box_w = 27, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 12965, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 13212, .adv_w = 500, .box_w = 32, .box_h = 24, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 13596, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 13868, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14140, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14412, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14684, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 14956, .adv_w = 500, .box_w = 32, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 15276, .adv_w = 350, .box_w = 20, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
-    {.bitmap_index = 15536, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 15822, .adv_w = 400, .box_w = 26, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
-    {.bitmap_index = 16160, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 16464, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
-    {.bitmap_index = 16711, .adv_w = 402, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 1}
+    {.bitmap_index = 0, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 313, .adv_w = 400, .box_w = 23, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 578, .adv_w = 400, .box_w = 22, .box_h = 21, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 809, .adv_w = 400, .box_w = 23, .box_h = 22, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 1062, .adv_w = 400, .box_w = 15, .box_h = 25, .ofs_x = 5, .ofs_y = -3},
+    {.bitmap_index = 1250, .adv_w = 400, .box_w = 23, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1515, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 1866, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2104, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2392, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2630, .adv_w = 275, .box_w = 18, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2792, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 3105, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 3430, .adv_w = 450, .box_w = 29, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3764, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 4089, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4365, .adv_w = 400, .box_w = 25, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 4678, .adv_w = 200, .box_w = 13, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4808, .adv_w = 300, .box_w = 19, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 4998, .adv_w = 450, .box_w = 29, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 5361, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 5599, .adv_w = 275, .box_w = 18, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 5833, .adv_w = 350, .box_w = 16, .box_h = 24, .ofs_x = 3, .ofs_y = -3},
+    {.bitmap_index = 6025, .adv_w = 350, .box_w = 22, .box_h = 27, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 6322, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6575, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 6828, .adv_w = 350, .box_w = 17, .box_h = 24, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 7032, .adv_w = 350, .box_w = 24, .box_h = 23, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 7308, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 7469, .adv_w = 250, .box_w = 14, .box_h = 23, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 7630, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 7883, .adv_w = 350, .box_w = 22, .box_h = 5, .ofs_x = 0, .ofs_y = 7},
+    {.bitmap_index = 7938, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 8214, .adv_w = 500, .box_w = 33, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 8643, .adv_w = 450, .box_w = 30, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 9033, .adv_w = 400, .box_w = 25, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 9321, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 9475, .adv_w = 350, .box_w = 22, .box_h = 14, .ofs_x = 0, .ofs_y = 2},
+    {.bitmap_index = 9629, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 9933, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 10171, .adv_w = 400, .box_w = 25, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 10496, .adv_w = 400, .box_w = 26, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 10847, .adv_w = 350, .box_w = 23, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11112, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 11398, .adv_w = 350, .box_w = 22, .box_h = 23, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 11651, .adv_w = 350, .box_w = 22, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 11871, .adv_w = 400, .box_w = 25, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 12109, .adv_w = 250, .box_w = 17, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 12330, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 12616, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 12902, .adv_w = 450, .box_w = 29, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 13178, .adv_w = 400, .box_w = 27, .box_h = 27, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 13543, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 13790, .adv_w = 500, .box_w = 32, .box_h = 24, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 14174, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 14446, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 14718, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 14990, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15262, .adv_w = 500, .box_w = 32, .box_h = 17, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 15534, .adv_w = 500, .box_w = 32, .box_h = 20, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 15854, .adv_w = 350, .box_w = 20, .box_h = 26, .ofs_x = 1, .ofs_y = -4},
+    {.bitmap_index = 16114, .adv_w = 350, .box_w = 22, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 16400, .adv_w = 400, .box_w = 26, .box_h = 26, .ofs_x = -1, .ofs_y = -4},
+    {.bitmap_index = 16738, .adv_w = 500, .box_w = 32, .box_h = 19, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 17042, .adv_w = 300, .box_w = 19, .box_h = 26, .ofs_x = 0, .ofs_y = -4},
+    {.bitmap_index = 17289, .adv_w = 402, .box_w = 26, .box_h = 17, .ofs_x = 0, .ofs_y = 1}
 };
 
 /*---------------------
@@ -2369,22 +2449,23 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
  *--------------------*/
 
 static const uint16_t unicode_list_0[] = {
-    0x0, 0x5, 0x42, 0x56, 0x9f7, 0x9fe, 0xa01, 0xa02,
-    0xa03, 0xa07, 0xa09, 0xa0b, 0xa0f, 0xa12, 0xa17, 0xa1c,
-    0xa1d, 0xa1e, 0xa34, 0xa39, 0xa3e, 0xa41, 0xa42, 0xa43,
-    0xa47, 0xa48, 0xa49, 0xa4a, 0xa5d, 0xa5e, 0xa64, 0xa66,
-    0xa67, 0xa6a, 0xa6d, 0xa6e, 0xa6f, 0xa71, 0xa89, 0xa8b,
-    0xaba, 0xabb, 0xabd, 0xabf, 0xad6, 0xadd, 0xae0, 0xae9,
-    0xb12, 0xb1a, 0xb51, 0xbe1, 0xc36, 0xc37, 0xc38, 0xc39,
-    0xc3a, 0xc7d, 0xc89, 0xce3, 0xcfa, 0xf50, 0x11b8, 0x1298
+    0x0, 0xa, 0xf, 0x4c, 0x60, 0xa2, 0xa01, 0xa08,
+    0xa0b, 0xa0c, 0xa0d, 0xa11, 0xa13, 0xa15, 0xa19, 0xa1c,
+    0xa21, 0xa26, 0xa27, 0xa28, 0xa3e, 0xa43, 0xa48, 0xa4b,
+    0xa4c, 0xa4d, 0xa51, 0xa52, 0xa53, 0xa54, 0xa67, 0xa68,
+    0xa6e, 0xa70, 0xa71, 0xa74, 0xa77, 0xa78, 0xa79, 0xa7b,
+    0xa93, 0xa95, 0xac4, 0xac5, 0xac7, 0xac9, 0xae0, 0xae7,
+    0xaea, 0xaf3, 0xb1c, 0xb24, 0xb5b, 0xbeb, 0xc40, 0xc41,
+    0xc42, 0xc43, 0xc44, 0xc87, 0xc93, 0xced, 0xd04, 0xf5a,
+    0x11c2, 0x12a2
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
 static const lv_font_fmt_txt_cmap_t cmaps[] =
 {
     {
-        .range_start = 58890, .range_length = 4761, .glyph_id_start = 1,
-        .unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 64, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .range_start = 58880, .range_length = 4771, .glyph_id_start = 1,
+        .unicode_list = unicode_list_0, .glyph_id_ofs_list = NULL, .list_length = 66, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 

+ 1 - 1
wj-wire-controller-ui/generated/images/images_list.mk

@@ -1 +1 @@
-GEN_CSRCS += _main_bg_RGB565A8_480x480.c _swtich_RGB565A8_84x84.c _ac_mode_heat_RGB565A8_48x48.c _ac_mode_heat_sel_RGB565A8_48x48.c _ac_mode_cool_RGB565A8_48x48.c _ac_mode_cool_sel_RGB565A8_48x48.c _wifi_stron_RGB565A8_32x32.c _12_RGB565A8_480x480.c _back2_RGB565A8_45x45.c
+GEN_CSRCS += _187_RGB565A8_480x480_tresh.c _swtich_RGB565A8_84x84.c _ac_mode_heat_RGB565A8_48x48.c _ac_mode_heat_sel_RGB565A8_48x48.c _ac_mode_cool_RGB565A8_48x48.c _ac_mode_cool_sel_RGB565A8_48x48.c _wifi_stron_RGB565A8_32x32.c _12_RGB565A8_480x480.c _back2_RGB565A8_45x45.c

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
wj-wire-controller-ui/generated/images/images_md5.json


+ 63 - 9
wj-wire-controller-ui/generated/setup_scr_FactorySettingPage.c

@@ -137,7 +137,7 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
 
     //Write codes FactorySettingPage_btn_1
     ui->FactorySettingPage_btn_1 = lv_button_create(ui->FactorySettingPage_tabview_1_tab_1);
-    lv_obj_set_pos(ui->FactorySettingPage_btn_1, 142, 324);
+    lv_obj_set_pos(ui->FactorySettingPage_btn_1, 141, 335);
     lv_obj_set_size(ui->FactorySettingPage_btn_1, 153, 60);
     ui->FactorySettingPage_btn_1_label = lv_label_create(ui->FactorySettingPage_btn_1);
     lv_label_set_text(ui->FactorySettingPage_btn_1_label, "确定");
@@ -160,7 +160,7 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
 
     //Write codes FactorySettingPage_sw_valve_onoff
     ui->FactorySettingPage_sw_valve_onoff = lv_switch_create(ui->FactorySettingPage_tabview_1_tab_1);
-    lv_obj_set_pos(ui->FactorySettingPage_sw_valve_onoff, 96, 260);
+    lv_obj_set_pos(ui->FactorySettingPage_sw_valve_onoff, 97, 251);
     lv_obj_set_size(ui->FactorySettingPage_sw_valve_onoff, 65, 21);
 
     //Write style for FactorySettingPage_sw_valve_onoff, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
@@ -383,9 +383,9 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
 
     //Write codes FactorySettingPage_label_8
     ui->FactorySettingPage_label_8 = lv_label_create(ui->FactorySettingPage_tabview_1_tab_1);
-    lv_obj_set_pos(ui->FactorySettingPage_label_8, 167, 262);
-    lv_obj_set_size(ui->FactorySettingPage_label_8, 150, 20);
-    lv_label_set_text(ui->FactorySettingPage_label_8, "允许风阀完全关闭");
+    lv_obj_set_pos(ui->FactorySettingPage_label_8, 168, 254);
+    lv_obj_set_size(ui->FactorySettingPage_label_8, 191, 20);
+    lv_label_set_text(ui->FactorySettingPage_label_8, "开启智能分集水器功能");
     lv_label_set_long_mode(ui->FactorySettingPage_label_8, LV_LABEL_LONG_WRAP);
 
     //Write style for FactorySettingPage_label_8, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
@@ -404,6 +404,55 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
     lv_obj_set_style_pad_left(ui->FactorySettingPage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->FactorySettingPage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
+    //Write codes FactorySettingPage_sw_linkage
+    ui->FactorySettingPage_sw_linkage = lv_switch_create(ui->FactorySettingPage_tabview_1_tab_1);
+    lv_obj_set_pos(ui->FactorySettingPage_sw_linkage, 97, 291);
+    lv_obj_set_size(ui->FactorySettingPage_sw_linkage, 65, 21);
+
+    //Write style for FactorySettingPage_sw_linkage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_sw_linkage, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->FactorySettingPage_sw_linkage, lv_color_hex(0xe6e2e6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->FactorySettingPage_sw_linkage, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->FactorySettingPage_sw_linkage, 10, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for FactorySettingPage_sw_linkage, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_sw_linkage, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->FactorySettingPage_sw_linkage, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->FactorySettingPage_sw_linkage, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for FactorySettingPage_sw_linkage, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_sw_linkage, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->FactorySettingPage_sw_linkage, lv_color_hex(0xffffff), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->FactorySettingPage_sw_linkage, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->FactorySettingPage_sw_linkage, 0, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->FactorySettingPage_sw_linkage, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes FactorySettingPage_label_9
+    ui->FactorySettingPage_label_9 = lv_label_create(ui->FactorySettingPage_tabview_1_tab_1);
+    lv_obj_set_pos(ui->FactorySettingPage_label_9, 168, 293);
+    lv_obj_set_size(ui->FactorySettingPage_label_9, 191, 20);
+    lv_label_set_text(ui->FactorySettingPage_label_9, "开启内外机联动");
+    lv_label_set_long_mode(ui->FactorySettingPage_label_9, LV_LABEL_LONG_WRAP);
+
+    //Write style for FactorySettingPage_label_9, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->FactorySettingPage_label_9, lv_color_hex(0xf21c1c), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->FactorySettingPage_label_9, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->FactorySettingPage_label_9, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->FactorySettingPage_label_9, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->FactorySettingPage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
     //Write codes 五恒模块
     ui->FactorySettingPage_tabview_1_tab_2 = lv_tabview_add_tab(ui->FactorySettingPage_tabview_1,"五恒模块");
     lv_obj_t * FactorySettingPage_tabview_1_tab_2_label = lv_label_create(ui->FactorySettingPage_tabview_1_tab_2);
@@ -608,10 +657,15 @@ void setup_scr_FactorySettingPage(lv_ui *ui)
     lv_spinbox_set_value(ui->FactorySettingPage_sp_hum_recoup, system_setting.fix_hum);
     lv_spinbox_set_value(ui->FactorySettingPage_sp_temp_recoup, system_setting.fix_temp);
 
-// if(system_setting.allow_valve_onoff)
-//     lv_obj_add_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
-// else
-//     lv_obj_remove_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
+    if(system_setting.active_fjsq)
+        lv_obj_add_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
+    else
+        lv_obj_remove_state(ui->FactorySettingPage_sw_valve_onoff, LV_STATE_CHECKED);
+
+    if(system_setting.allow_linkage)
+        lv_obj_add_state(ui->FactorySettingPage_sw_linkage, LV_STATE_CHECKED);
+    else
+        lv_obj_remove_state(ui->FactorySettingPage_sw_linkage, LV_STATE_CHECKED);
 
     //Update current screen layout.
     lv_obj_update_layout(ui->FactorySettingPage);

+ 5 - 2
wj-wire-controller-ui/generated/setup_scr_SettingPage.c

@@ -25,6 +25,9 @@ void setup_scr_SettingPage(lv_ui *ui)
 
     //Write style for SettingPage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->SettingPage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_src(ui->SettingPage, &_12_RGB565A8_480x480, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_opa(ui->SettingPage, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_recolor_opa(ui->SettingPage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //Write codes SettingPage_tabview_1
     ui->SettingPage_tabview_1 = lv_tabview_create(ui->SettingPage);
@@ -35,7 +38,7 @@ void setup_scr_SettingPage(lv_ui *ui)
     lv_tabview_set_tab_bar_size(ui->SettingPage_tabview_1, 50);
 
     //Write style for SettingPage_tabview_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_bg_opa(ui->SettingPage_tabview_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->SettingPage_tabview_1, 215, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_color(ui->SettingPage_tabview_1, lv_color_hex(0x1f1e23), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_grad_dir(ui->SettingPage_tabview_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_color(ui->SettingPage_tabview_1, lv_color_hex(0xfbb310), LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -51,7 +54,7 @@ void setup_scr_SettingPage(lv_ui *ui)
     static lv_style_t style_SettingPage_tabview_1_extra_btnm_main_default;
     ui_init_style(&style_SettingPage_tabview_1_extra_btnm_main_default);
 
-    lv_style_set_bg_opa(&style_SettingPage_tabview_1_extra_btnm_main_default, 255);
+    lv_style_set_bg_opa(&style_SettingPage_tabview_1_extra_btnm_main_default, 93);
     lv_style_set_bg_color(&style_SettingPage_tabview_1_extra_btnm_main_default, lv_color_hex(0x1f1e23));
     lv_style_set_bg_grad_dir(&style_SettingPage_tabview_1_extra_btnm_main_default, LV_GRAD_DIR_NONE);
     lv_style_set_border_width(&style_SettingPage_tabview_1_extra_btnm_main_default, 0);

+ 492 - 290
wj-wire-controller-ui/generated/setup_scr_WaterValvePage.c

@@ -13,7 +13,7 @@
 #include "events_init.h"
 #include "widgets_init.h"
 #include "custom.h"
-
+#include "heatpump_controller.h"
 
 
 void setup_scr_WaterValvePage(lv_ui *ui)
@@ -25,34 +25,15 @@ void setup_scr_WaterValvePage(lv_ui *ui)
 
     //Write style for WaterValvePage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->WaterValvePage, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage, LV_GRAD_DIR_HOR, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_color(ui->WaterValvePage, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_main_stop(ui->WaterValvePage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_stop(ui->WaterValvePage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_image_src(ui->WaterValvePage, &_12_RGB565A8_480x480, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_image_opa(ui->WaterValvePage, 67, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_opa(ui->WaterValvePage, 125, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_image_recolor_opa(ui->WaterValvePage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
-    //Write codes WaterValvePage_cont_1
-    ui->WaterValvePage_cont_1 = lv_obj_create(ui->WaterValvePage);
-    lv_obj_set_pos(ui->WaterValvePage_cont_1, 1, 0);
-    lv_obj_set_size(ui->WaterValvePage_cont_1, 480, 480);
-    lv_obj_set_scrollbar_mode(ui->WaterValvePage_cont_1, LV_SCROLLBAR_MODE_OFF);
-
-    //Write style for WaterValvePage_cont_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
     //Write codes WaterValvePage_imgbtn_1
-    ui->WaterValvePage_imgbtn_1 = lv_imagebutton_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_imgbtn_1, 217, 419);
+    ui->WaterValvePage_imgbtn_1 = lv_imagebutton_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_imgbtn_1, 26, 27);
     lv_obj_set_size(ui->WaterValvePage_imgbtn_1, 45, 45);
     lv_obj_add_flag(ui->WaterValvePage_imgbtn_1, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->WaterValvePage_imgbtn_1, LV_IMAGEBUTTON_STATE_RELEASED, &_back2_RGB565A8_45x45, NULL, NULL);
@@ -90,289 +71,510 @@ void setup_scr_WaterValvePage(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->WaterValvePage_imgbtn_1, 0, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
     lv_obj_set_style_image_opa(ui->WaterValvePage_imgbtn_1, 255, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
 
-    //Write codes WaterValvePage_spangroup_1
-    ui->WaterValvePage_spangroup_1 = lv_spangroup_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_spangroup_1, 96, 85);
-    lv_obj_set_size(ui->WaterValvePage_spangroup_1, 132, 23);
-    lv_spangroup_set_align(ui->WaterValvePage_spangroup_1, LV_TEXT_ALIGN_LEFT);
-    lv_spangroup_set_overflow(ui->WaterValvePage_spangroup_1, LV_SPAN_OVERFLOW_CLIP);
-    lv_spangroup_set_mode(ui->WaterValvePage_spangroup_1, LV_SPAN_MODE_BREAK);
-    //create span
-    ui->WaterValvePage_spangroup_1_span = lv_spangroup_new_span(ui->WaterValvePage_spangroup_1);
-    lv_span_set_text(ui->WaterValvePage_spangroup_1_span, "外机联动");
-    lv_style_set_text_color(lv_span_get_style(ui->WaterValvePage_spangroup_1_span), lv_color_hex(0xffffff));
-    lv_style_set_text_decor(lv_span_get_style(ui->WaterValvePage_spangroup_1_span), LV_TEXT_DECOR_NONE);
-    lv_style_set_text_font(lv_span_get_style(ui->WaterValvePage_spangroup_1_span), &lv_font_Alibaba_PuHuiTi_Medium_24);
-
-    //Write style state: LV_STATE_DEFAULT for &style_WaterValvePage_spangroup_1_main_main_default
-    static lv_style_t style_WaterValvePage_spangroup_1_main_main_default;
-    ui_init_style(&style_WaterValvePage_spangroup_1_main_main_default);
-
-    lv_style_set_border_width(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_radius(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_bg_opa(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_top(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_right(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_bottom(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_pad_left(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_style_set_shadow_width(&style_WaterValvePage_spangroup_1_main_main_default, 0);
-    lv_obj_add_style(ui->WaterValvePage_spangroup_1, &style_WaterValvePage_spangroup_1_main_main_default, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_spangroup_refr_mode(ui->WaterValvePage_spangroup_1);
-
-    //Write codes WaterValvePage_spangroup_2
-    ui->WaterValvePage_spangroup_2 = lv_spangroup_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_spangroup_2, 215, 86);
-    lv_obj_set_size(ui->WaterValvePage_spangroup_2, 54, 19);
-    lv_spangroup_set_align(ui->WaterValvePage_spangroup_2, LV_TEXT_ALIGN_LEFT);
-    lv_spangroup_set_overflow(ui->WaterValvePage_spangroup_2, LV_SPAN_OVERFLOW_CLIP);
-    lv_spangroup_set_mode(ui->WaterValvePage_spangroup_2, LV_SPAN_MODE_BREAK);
-    //create span
-    ui->WaterValvePage_spangroup_2_span = lv_spangroup_new_span(ui->WaterValvePage_spangroup_2);
-    lv_span_set_text(ui->WaterValvePage_spangroup_2_span, "开   关");
-    lv_style_set_text_color(lv_span_get_style(ui->WaterValvePage_spangroup_2_span), lv_color_hex(0xffffff));
-    lv_style_set_text_decor(lv_span_get_style(ui->WaterValvePage_spangroup_2_span), LV_TEXT_DECOR_NONE);
-    lv_style_set_text_font(lv_span_get_style(ui->WaterValvePage_spangroup_2_span), &lv_font_Alibaba_PuHuiTi_Medium_18);
-
-    //Write style state: LV_STATE_DEFAULT for &style_WaterValvePage_spangroup_2_main_main_default
-    static lv_style_t style_WaterValvePage_spangroup_2_main_main_default;
-    ui_init_style(&style_WaterValvePage_spangroup_2_main_main_default);
-
-    lv_style_set_border_width(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_radius(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_bg_opa(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_top(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_right(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_bottom(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_pad_left(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_style_set_shadow_width(&style_WaterValvePage_spangroup_2_main_main_default, 0);
-    lv_obj_add_style(ui->WaterValvePage_spangroup_2, &style_WaterValvePage_spangroup_2_main_main_default, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_spangroup_refr_mode(ui->WaterValvePage_spangroup_2);
-
     //Write codes WaterValvePage_sw_1
-    ui->WaterValvePage_sw_1 = lv_switch_create(ui->WaterValvePage_cont_1);
-    lv_obj_set_pos(ui->WaterValvePage_sw_1, 203, 78);
-    lv_obj_set_size(ui->WaterValvePage_sw_1, 74, 35);
+    ui->WaterValvePage_sw_1 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_1, 116, 146);
+    lv_obj_set_size(ui->WaterValvePage_sw_1, 78, 29);
 
     //Write style for WaterValvePage_sw_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 4, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_1, 153, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_sw_1, lv_color_hex(0x00bdff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_1, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_border_side(ui->WaterValvePage_sw_1, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 18, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
+    //Write style for WaterValvePage_sw_1, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_1, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
     //Write style for WaterValvePage_sw_1, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 97, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0x13359a), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_1, LV_GRAD_DIR_VER, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_color(ui->WaterValvePage_sw_1, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_main_stop(ui->WaterValvePage_sw_1, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_stop(ui->WaterValvePage_sw_1, 146, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_1, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
     lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
 
     //Write style for WaterValvePage_sw_1, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_1, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0xffffff), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_1, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_1, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 7, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_1, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_border_opa(ui->WaterValvePage_sw_1, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_border_color(ui->WaterValvePage_sw_1, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
     lv_obj_set_style_border_side(ui->WaterValvePage_sw_1, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 13, LV_PART_KNOB|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cont_2
-    ui->WaterValvePage_cont_2 = lv_obj_create(ui->WaterValvePage);
-    lv_obj_set_pos(ui->WaterValvePage_cont_2, 88, 117);
-    lv_obj_set_size(ui->WaterValvePage_cont_2, 340, 278);
-    lv_obj_set_scrollbar_mode(ui->WaterValvePage_cont_2, LV_SCROLLBAR_MODE_OFF);
-
-    //Write style for WaterValvePage_cont_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cont_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cb_4
-    ui->WaterValvePage_cb_4 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_4, 181, 84);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_4, "区域一");
-
-    //Write style for WaterValvePage_cb_4, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_4, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_4, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_4, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_4, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_4, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_4, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_4, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_4, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_4, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_4, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_4, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_4, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_4, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_4, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_4, 25, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_4, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cb_3
-    ui->WaterValvePage_cb_3 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_3, 2, 85);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_3, "区域一");
-
-    //Write style for WaterValvePage_cb_3, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_3, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_3, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_3, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_3, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_3, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_3, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_3, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_3, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_3, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_3, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_3, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_3, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_3, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_3, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_3, 16, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_3, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-
-    //Write codes WaterValvePage_cb_2
-    ui->WaterValvePage_cb_2 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_2, 181, 24);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_2, "区域一");
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_2, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_2, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_2, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_MAIN, State: LV_STATE_FOCUSED.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_2, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_2, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_2, 2, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_FOCUSED);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_FOCUSED);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_MAIN, State: LV_STATE_DISABLED.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_2, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_2, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_2, 2, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DISABLED);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_2, 0, LV_PART_MAIN|LV_STATE_DISABLED);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_2, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_2, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 25, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_INDICATOR, State: LV_STATE_PRESSED.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_2, 3, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 2, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_2, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_PRESSED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_PRESSED);
-
-    //Write style for WaterValvePage_cb_2, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_2, 3, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_2, 2, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_2, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_2, 6, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_2, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_2, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_CHECKED);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_2, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
-
-    //Write codes WaterValvePage_cb_1
-    ui->WaterValvePage_cb_1 = lv_checkbox_create(ui->WaterValvePage_cont_2);
-    lv_obj_set_pos(ui->WaterValvePage_cb_1, 2, 25);
-    lv_checkbox_set_text(ui->WaterValvePage_cb_1, "区域一");
-
-    //Write style for WaterValvePage_cb_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_top(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->WaterValvePage_cb_1, lv_color_hex(0x0D3055), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->WaterValvePage_cb_1, &lv_font_Alibaba_PuHuiTi_Medium_26, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->WaterValvePage_cb_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->WaterValvePage_cb_1, 5, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_1, 16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_1, 44, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->WaterValvePage_cb_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_cb_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->WaterValvePage_cb_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
-    //Write style for WaterValvePage_cb_1, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_pad_all(ui->WaterValvePage_cb_1, 3, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_width(ui->WaterValvePage_cb_1, 2, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_opa(ui->WaterValvePage_cb_1, 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_color(ui->WaterValvePage_cb_1, lv_color_hex(0x2195f6), LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_border_side(ui->WaterValvePage_cb_1, LV_BORDER_SIDE_FULL, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->WaterValvePage_cb_1, 25, LV_PART_INDICATOR|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->WaterValvePage_cb_1, 0, LV_PART_INDICATOR|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_1, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_2
+    ui->WaterValvePage_sw_2 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_2, 116, 212);
+    lv_obj_set_size(ui->WaterValvePage_sw_2, 78, 29);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_2, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_2, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_2, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_2, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_2, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_2, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_2, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_2, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_2, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_2, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_2, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_2, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_2, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_2, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_2, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_2, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_3
+    ui->WaterValvePage_sw_3 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_3, 116, 278);
+    lv_obj_set_size(ui->WaterValvePage_sw_3, 78, 29);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_3, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_3, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_3, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_3, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_3, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_3, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_3, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_3, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_3, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_3, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_3, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_3, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_3, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_3, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_3, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_3, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_3, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_4
+    ui->WaterValvePage_sw_4 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_4, 116, 344);
+    lv_obj_set_size(ui->WaterValvePage_sw_4, 78, 29);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_4, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_4, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_4, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_4, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_4, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_4, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_4, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_4, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_4, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_4, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_4, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_4, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_4, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_4, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_4, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_4, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_4, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_8
+    ui->WaterValvePage_sw_8 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_8, 359, 344);
+    lv_obj_set_size(ui->WaterValvePage_sw_8, 78, 29);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_8, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_8, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_8, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_8, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_8, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_8, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_8, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_8, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_8, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_8, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_8, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_8, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_8, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_8, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_8, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_8, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_8, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_7
+    ui->WaterValvePage_sw_7 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_7, 359, 278);
+    lv_obj_set_size(ui->WaterValvePage_sw_7, 78, 29);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_7, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_7, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_7, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_7, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_7, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_7, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_7, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_7, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_7, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_7, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_7, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_7, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_7, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_7, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_7, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_7, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_7, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_6
+    ui->WaterValvePage_sw_6 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_6, 359, 212);
+    lv_obj_set_size(ui->WaterValvePage_sw_6, 78, 29);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_6, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_6, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_6, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_6, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_6, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_6, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_6, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_6, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_6, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_6, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_6, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_6, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_6, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_6, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_6, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_6, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_6, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_sw_5
+    ui->WaterValvePage_sw_5 = lv_switch_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_sw_5, 359, 146);
+    lv_obj_set_size(ui->WaterValvePage_sw_5, 78, 29);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_5, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_5, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_5, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_5, 15, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_MAIN, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_5, 15, LV_PART_MAIN|LV_STATE_CHECKED);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_sw_5, 0, LV_PART_MAIN|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_INDICATOR, State: LV_STATE_CHECKED.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 255, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_5, lv_color_hex(0x18dc7f), LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_5, LV_GRAD_DIR_NONE, LV_PART_INDICATOR|LV_STATE_CHECKED);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 0, LV_PART_INDICATOR|LV_STATE_CHECKED);
+
+    //Write style for WaterValvePage_sw_5, Part: LV_PART_KNOB, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_sw_5, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->WaterValvePage_sw_5, lv_color_hex(0xe2e5e7), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_grad_dir(ui->WaterValvePage_sw_5, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_width(ui->WaterValvePage_sw_5, 3, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_opa(ui->WaterValvePage_sw_5, 255, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_color(ui->WaterValvePage_sw_5, lv_color_hex(0x2195f6), LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_border_side(ui->WaterValvePage_sw_5, LV_BORDER_SIDE_FULL, LV_PART_KNOB|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_sw_5, 10, LV_PART_KNOB|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_1
+    ui->WaterValvePage_label_1 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_1, 14, 149);
+    lv_obj_set_size(ui->WaterValvePage_label_1, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_1, "第一路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_1, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_1, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_2
+    ui->WaterValvePage_label_2 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_2, 14, 216);
+    lv_obj_set_size(ui->WaterValvePage_label_2, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_2, "第二路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_2, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_2, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_2, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_3
+    ui->WaterValvePage_label_3 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_3, 14, 281);
+    lv_obj_set_size(ui->WaterValvePage_label_3, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_3, "第三路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_3, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_3, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_3, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_3, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_3, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_3, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_3, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_4
+    ui->WaterValvePage_label_4 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_4, 14, 348);
+    lv_obj_set_size(ui->WaterValvePage_label_4, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_4, "第四路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_4, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_4, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_4, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_4, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_4, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_4, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_4, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_5
+    ui->WaterValvePage_label_5 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_5, 257, 149);
+    lv_obj_set_size(ui->WaterValvePage_label_5, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_5, "第五路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_5, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_5, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_5, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_5, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_5, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_5, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_5, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_6
+    ui->WaterValvePage_label_6 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_6, 257, 216);
+    lv_obj_set_size(ui->WaterValvePage_label_6, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_6, "第六路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_6, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_6, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_6, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_6, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_6, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_6, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_7
+    ui->WaterValvePage_label_7 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_7, 257, 281);
+    lv_obj_set_size(ui->WaterValvePage_label_7, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_7, "第七路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_7, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_7, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_7, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_7, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_7, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_7, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_7, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_8
+    ui->WaterValvePage_label_8 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_8, 257, 348);
+    lv_obj_set_size(ui->WaterValvePage_label_8, 100, 23);
+    lv_label_set_text(ui->WaterValvePage_label_8, "第八路\n");
+    lv_label_set_long_mode(ui->WaterValvePage_label_8, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_8, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_8, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_8, &lv_font_Alibaba_PuHuiTi_Medium_21, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_8, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_8, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_8, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes WaterValvePage_label_9
+    ui->WaterValvePage_label_9 = lv_label_create(ui->WaterValvePage);
+    lv_obj_set_pos(ui->WaterValvePage_label_9, 190, 43);
+    lv_obj_set_size(ui->WaterValvePage_label_9, 100, 32);
+    lv_label_set_text(ui->WaterValvePage_label_9, "地暖阀");
+    lv_label_set_long_mode(ui->WaterValvePage_label_9, LV_LABEL_LONG_WRAP);
+
+    //Write style for WaterValvePage_label_9, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->WaterValvePage_label_9, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->WaterValvePage_label_9, &lv_font_Alibaba_PuHuiTi_Medium_20, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->WaterValvePage_label_9, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->WaterValvePage_label_9, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->WaterValvePage_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //The custom code of WaterValvePage.
-
+    if((hp_controller.relay_status >> 0) & 1 )lv_obj_add_state(ui->WaterValvePage_sw_1, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 1) & 1) lv_obj_add_state(ui->WaterValvePage_sw_2, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 2) & 1) lv_obj_add_state(ui->WaterValvePage_sw_3, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 3) & 1) lv_obj_add_state(ui->WaterValvePage_sw_4, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 4) & 1) lv_obj_add_state(ui->WaterValvePage_sw_5, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 5) & 1) lv_obj_add_state(ui->WaterValvePage_sw_6, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 6) & 1) lv_obj_add_state(ui->WaterValvePage_sw_7, LV_STATE_CHECKED);
+    if((hp_controller.relay_status >> 7) & 1) lv_obj_add_state(ui->WaterValvePage_sw_8, LV_STATE_CHECKED);
 
     //Update current screen layout.
     lv_obj_update_layout(ui->WaterValvePage);

+ 326 - 81
wj-wire-controller-ui/generated/setup_scr_screen.c

@@ -26,10 +26,10 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write style for screen, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_bg_opa(ui->screen, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_color(ui->screen, lv_color_hex(0x1F1E23), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_color(ui->screen, lv_color_hex(0x060505), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_grad_dir(ui->screen, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_image_src(ui->screen, &_main_bg_RGB565A8_480x480, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_image_opa(ui->screen, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_src(ui->screen, &_187_RGB565A8_480x480_tresh, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_image_opa(ui->screen, 113, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_bg_image_recolor_opa(ui->screen, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //Write codes screen_cont_power_on
@@ -37,6 +37,7 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_pos(ui->screen_cont_power_on, 0, 0);
     lv_obj_set_size(ui->screen_cont_power_on, 480, 480);
     lv_obj_set_scrollbar_mode(ui->screen_cont_power_on, LV_SCROLLBAR_MODE_OFF);
+    lv_obj_add_flag(ui->screen_cont_power_on, LV_OBJ_FLAG_HIDDEN);
 
     //Write style for screen_cont_power_on, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_border_width(ui->screen_cont_power_on, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -52,6 +53,7 @@ void setup_scr_screen(lv_ui *ui)
     ui->screen_arc_temp = lv_arc_create(ui->screen_cont_power_on);
     lv_obj_set_pos(ui->screen_arc_temp, 73, 51);
     lv_obj_set_size(ui->screen_arc_temp, 340, 340);
+    lv_obj_remove_flag(ui->screen_arc_temp, LV_OBJ_FLAG_GESTURE_BUBBLE);
     lv_arc_set_mode(ui->screen_arc_temp, LV_ARC_MODE_NORMAL);
     lv_arc_set_range(ui->screen_arc_temp, 7, 60);
     lv_arc_set_bg_angles(ui->screen_arc_temp, 150, 30);
@@ -83,8 +85,8 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_pad_all(ui->screen_arc_temp, 5, LV_PART_KNOB|LV_STATE_DEFAULT);
 
     //Write style for screen_arc_temp, Part: LV_PART_KNOB, State: LV_STATE_FOCUSED.
-    lv_obj_set_style_bg_opa(ui->screen_arc_temp, 255, LV_PART_KNOB|LV_STATE_FOCUSED);
-    lv_obj_set_style_bg_color(ui->screen_arc_temp, lv_color_hex(0x2F92DA), LV_PART_KNOB|LV_STATE_FOCUSED);
+    lv_obj_set_style_bg_opa(ui->screen_arc_temp, 141, LV_PART_KNOB|LV_STATE_FOCUSED);
+    lv_obj_set_style_bg_color(ui->screen_arc_temp, lv_color_hex(0xffffff), LV_PART_KNOB|LV_STATE_FOCUSED);
     lv_obj_set_style_bg_grad_dir(ui->screen_arc_temp, LV_GRAD_DIR_NONE, LV_PART_KNOB|LV_STATE_FOCUSED);
     lv_obj_set_style_pad_all(ui->screen_arc_temp, 5, LV_PART_KNOB|LV_STATE_FOCUSED);
 
@@ -96,7 +98,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_label_6
     ui->screen_label_6 = lv_label_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_label_6, 252, 238);
+    lv_obj_set_pos(ui->screen_label_6, 255, 256);
     lv_obj_set_size(ui->screen_label_6, 71, 22);
     lv_label_set_text(ui->screen_label_6, "°C");
     lv_label_set_long_mode(ui->screen_label_6, LV_LABEL_LONG_WRAP);
@@ -104,7 +106,7 @@ void setup_scr_screen(lv_ui *ui)
     //Write style for screen_label_6, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_border_width(ui->screen_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_radius(ui->screen_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_label_6, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_6, lv_color_hex(0x2FCADA), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_font(ui->screen_label_6, &lv_font_montserratMedium_25, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_opa(ui->screen_label_6, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_letter_space(ui->screen_label_6, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -257,7 +259,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_lab_ac_temp
     ui->screen_lab_ac_temp = lv_label_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_lab_ac_temp, 165, 209);
+    lv_obj_set_pos(ui->screen_lab_ac_temp, 165, 226);
     lv_obj_set_size(ui->screen_lab_ac_temp, 132, 72);
     lv_label_set_text(ui->screen_lab_ac_temp, "12");
     lv_label_set_long_mode(ui->screen_lab_ac_temp, LV_LABEL_LONG_WRAP);
@@ -265,7 +267,7 @@ void setup_scr_screen(lv_ui *ui)
     //Write style for screen_lab_ac_temp, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
     lv_obj_set_style_border_width(ui->screen_lab_ac_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_radius(ui->screen_lab_ac_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_lab_ac_temp, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_ac_temp, lv_color_hex(0x2FCADA), LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_font(ui->screen_lab_ac_temp, &lv_font_PuHui_ExtraBold_60, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_opa(ui->screen_lab_ac_temp, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_text_letter_space(ui->screen_lab_ac_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
@@ -280,7 +282,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_ib_power
     ui->screen_ib_power = lv_imagebutton_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_ib_power, 198, 276);
+    lv_obj_set_pos(ui->screen_ib_power, 200, 387);
     lv_obj_set_size(ui->screen_ib_power, 84, 84);
     lv_obj_add_flag(ui->screen_ib_power, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->screen_ib_power, LV_IMAGEBUTTON_STATE_RELEASED, &_swtich_RGB565A8_84x84, NULL, NULL);
@@ -321,7 +323,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_ib_heat
     ui->screen_ib_heat = lv_imagebutton_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_ib_heat, 333, 417);
+    lv_obj_set_pos(ui->screen_ib_heat, 363, 417);
     lv_obj_set_size(ui->screen_ib_heat, 48, 48);
     lv_obj_add_flag(ui->screen_ib_heat, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->screen_ib_heat, LV_IMAGEBUTTON_STATE_RELEASED, &_ac_mode_heat_RGB565A8_48x48, NULL, NULL);
@@ -362,7 +364,7 @@ void setup_scr_screen(lv_ui *ui)
 
     //Write codes screen_ib_cool
     ui->screen_ib_cool = lv_imagebutton_create(ui->screen_cont_power_on);
-    lv_obj_set_pos(ui->screen_ib_cool, 82, 415);
+    lv_obj_set_pos(ui->screen_ib_cool, 73, 417);
     lv_obj_set_size(ui->screen_ib_cool, 48, 48);
     lv_obj_add_flag(ui->screen_ib_cool, LV_OBJ_FLAG_CHECKABLE);
     lv_imagebutton_set_src(ui->screen_ib_cool, LV_IMAGEBUTTON_STATE_RELEASED, &_ac_mode_cool_RGB565A8_48x48, NULL, NULL);
@@ -401,6 +403,167 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->screen_ib_cool, 0, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
     lv_obj_set_style_image_opa(ui->screen_ib_cool, 255, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
 
+    //Write codes screen_lab_mode
+    ui->screen_lab_mode = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_lab_mode, 188, 317);
+    lv_obj_set_size(ui->screen_lab_mode, 100, 19);
+    lv_label_set_text(ui->screen_lab_mode, "制冷热");
+    lv_label_set_long_mode(ui->screen_lab_mode, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_mode, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_mode, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_mode, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_mode, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_mode, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_12
+    ui->screen_label_12 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_12, 188, 203);
+    lv_obj_set_size(ui->screen_label_12, 100, 19);
+    lv_label_set_text(ui->screen_label_12, "设置水温");
+    lv_label_set_long_mode(ui->screen_label_12, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_12, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_12, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_12, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_12, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_12, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_12, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_in_temp
+    ui->screen_lab_in_temp = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_lab_in_temp, 327, 18);
+    lv_obj_set_size(ui->screen_lab_in_temp, 45, 20);
+    lv_label_set_text(ui->screen_lab_in_temp, "26°C");
+    lv_label_set_long_mode(ui->screen_lab_in_temp, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_in_temp, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_in_temp, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_in_temp, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_in_temp, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_in_temp, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_in_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_13
+    ui->screen_label_13 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_13, 284, 4);
+    lv_obj_set_size(ui->screen_label_13, 36, 33);
+    lv_label_set_text(ui->screen_label_13, "");
+    lv_label_set_long_mode(ui->screen_label_13, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_13, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_13, lv_color_hex(0xf9dd00), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_13, &lv_font_iconfont_36, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_13, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_13, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_13, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_out_temp
+    ui->screen_lab_out_temp = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_lab_out_temp, 421, 18);
+    lv_obj_set_size(ui->screen_lab_out_temp, 50, 20);
+    lv_label_set_text(ui->screen_lab_out_temp, "26°C");
+    lv_label_set_long_mode(ui->screen_lab_out_temp, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_out_temp, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_out_temp, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_out_temp, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_out_temp, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_out_temp, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_out_temp, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_15
+    ui->screen_label_15 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_15, 375, 4);
+    lv_obj_set_size(ui->screen_label_15, 40, 34);
+    lv_label_set_text(ui->screen_label_15, "");
+    lv_label_set_long_mode(ui->screen_label_15, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_15, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_15, lv_color_hex(0x44cdfd), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_15, &lv_font_iconfont_36, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_15, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_15, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_15, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_label_16
+    ui->screen_label_16 = lv_label_create(ui->screen_cont_power_on);
+    lv_obj_set_pos(ui->screen_label_16, 188, 117);
+    lv_obj_set_size(ui->screen_label_16, 100, 19);
+    lv_label_set_text(ui->screen_label_16, "室内环境");
+    lv_label_set_long_mode(ui->screen_label_16, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_label_16, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_label_16, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_label_16, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_label_16, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_label_16, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_label_16, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
     //Write codes screen_cont_power_off
     ui->screen_cont_power_off = lv_obj_create(ui->screen);
     lv_obj_set_pos(ui->screen_cont_power_off, 0, 0);
@@ -442,28 +605,28 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_pad_left(ui->screen_lab_env_hum_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->screen_lab_env_hum_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
-    //Write codes screen_label_9
-    ui->screen_label_9 = lv_label_create(ui->screen_cont_power_off);
-    lv_obj_set_pos(ui->screen_label_9, 184, 193);
-    lv_obj_set_size(ui->screen_label_9, 71, 20);
-    lv_label_set_text(ui->screen_label_9, "26°C");
-    lv_label_set_long_mode(ui->screen_label_9, LV_LABEL_LONG_WRAP);
-
-    //Write style for screen_label_9, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_label_9, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->screen_label_9, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->screen_label_9, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_line_space(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_align(ui->screen_label_9, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->screen_label_9, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    //Write codes screen_lab_env_temp_2
+    ui->screen_lab_env_temp_2 = lv_label_create(ui->screen_cont_power_off);
+    lv_obj_set_pos(ui->screen_lab_env_temp_2, 184, 193);
+    lv_obj_set_size(ui->screen_lab_env_temp_2, 71, 20);
+    lv_label_set_text(ui->screen_lab_env_temp_2, "26°C");
+    lv_label_set_long_mode(ui->screen_lab_env_temp_2, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_env_temp_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_env_temp_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_env_temp_2, &lv_font_montserratMedium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_env_temp_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_env_temp_2, LV_TEXT_ALIGN_LEFT, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_env_temp_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //Write codes screen_label_10
     ui->screen_label_10 = lv_label_create(ui->screen_cont_power_off);
@@ -552,30 +715,6 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->screen_imgbtn_1, 0, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
     lv_obj_set_style_image_opa(ui->screen_imgbtn_1, 255, LV_PART_MAIN|LV_IMAGEBUTTON_STATE_RELEASED);
 
-    //Write codes screen_lab_icon_err
-    ui->screen_lab_icon_err = lv_label_create(ui->screen);
-    lv_obj_set_pos(ui->screen_lab_icon_err, 90, 11);
-    lv_obj_set_size(ui->screen_lab_icon_err, 26, 26);
-    lv_obj_add_flag(ui->screen_lab_icon_err, LV_OBJ_FLAG_HIDDEN);
-    lv_label_set_text(ui->screen_lab_icon_err, "");
-    lv_label_set_long_mode(ui->screen_lab_icon_err, LV_LABEL_LONG_WRAP);
-
-    //Write style for screen_lab_icon_err, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_lab_icon_err, lv_color_hex(0xff0028), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->screen_lab_icon_err, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->screen_lab_icon_err, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_line_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_align(ui->screen_lab_icon_err, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-
     //Write codes screen_img_wifi
     ui->screen_img_wifi = lv_image_create(ui->screen);
     lv_obj_set_pos(ui->screen_img_wifi, 17, 8);
@@ -590,9 +729,26 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_image_recolor_opa(ui->screen_img_wifi, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_image_opa(ui->screen_img_wifi, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
 
+    //Write codes screen_cont_icons
+    ui->screen_cont_icons = lv_obj_create(ui->screen);
+    lv_obj_set_pos(ui->screen_cont_icons, 51, 8);
+    lv_obj_set_size(ui->screen_cont_icons, 257, 34);
+    lv_obj_set_scrollbar_mode(ui->screen_cont_icons, LV_SCROLLBAR_MODE_OFF);
+    lv_obj_remove_flag(ui->screen_cont_icons, LV_OBJ_FLAG_SCROLLABLE);
+
+    //Write style for screen_cont_icons, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_cont_icons, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
     //Write codes screen_lab_icon_cloud
-    ui->screen_lab_icon_cloud = lv_label_create(ui->screen);
-    lv_obj_set_pos(ui->screen_lab_icon_cloud, 57, 12);
+    ui->screen_lab_icon_cloud = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_cloud, 7, 6);
     lv_obj_set_size(ui->screen_lab_icon_cloud, 25, 23);
     lv_obj_add_flag(ui->screen_lab_icon_cloud, LV_OBJ_FLAG_HIDDEN);
     lv_label_set_text(ui->screen_lab_icon_cloud, "");
@@ -614,33 +770,112 @@ void setup_scr_screen(lv_ui *ui)
     lv_obj_set_style_pad_left(ui->screen_lab_icon_cloud, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
     lv_obj_set_style_shadow_width(ui->screen_lab_icon_cloud, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
-    //Write codes screen_lab_mode
-    ui->screen_lab_mode = lv_label_create(ui->screen);
-    lv_obj_set_pos(ui->screen_lab_mode, 186, 110);
-    lv_obj_set_size(ui->screen_lab_mode, 100, 32);
-    lv_label_set_text(ui->screen_lab_mode, "制冷热");
-    lv_label_set_long_mode(ui->screen_lab_mode, LV_LABEL_LONG_WRAP);
+    //Write codes screen_lab_icon_err
+    ui->screen_lab_icon_err = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_err, 36, 6);
+    lv_obj_set_size(ui->screen_lab_icon_err, 26, 26);
+    lv_obj_add_flag(ui->screen_lab_icon_err, LV_OBJ_FLAG_HIDDEN);
+    lv_label_set_text(ui->screen_lab_icon_err, "");
+    lv_label_set_long_mode(ui->screen_lab_icon_err, LV_LABEL_LONG_WRAP);
 
-    //Write style for screen_lab_mode, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
-    lv_obj_set_style_border_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_radius(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_color(ui->screen_lab_mode, lv_color_hex(0x989696), LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_font(ui->screen_lab_mode, &lv_font_Alibaba_PuHuiTi_Medium_16, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_opa(ui->screen_lab_mode, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_letter_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_line_space(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_text_align(ui->screen_lab_mode, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_bg_opa(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_top(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_right(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_bottom(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_pad_left(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
-    lv_obj_set_style_shadow_width(ui->screen_lab_mode, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    //Write style for screen_lab_icon_err, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_icon_err, lv_color_hex(0xff0028), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_icon_err, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_icon_err, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_icon_err, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_icon_err, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_icon_485
+    ui->screen_lab_icon_485 = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_485, 66, 6);
+    lv_obj_set_size(ui->screen_lab_icon_485, 26, 26);
+    lv_obj_add_flag(ui->screen_lab_icon_485, LV_OBJ_FLAG_HIDDEN);
+    lv_label_set_text(ui->screen_lab_icon_485, "");
+    lv_label_set_long_mode(ui->screen_lab_icon_485, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_icon_485, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_icon_485, lv_color_hex(0xffc700), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_icon_485, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_icon_485, 253, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_icon_485, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_icon_485, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_lab_icon_linkage
+    ui->screen_lab_icon_linkage = lv_label_create(ui->screen_cont_icons);
+    lv_obj_set_pos(ui->screen_lab_icon_linkage, 96, 6);
+    lv_obj_set_size(ui->screen_lab_icon_linkage, 26, 26);
+    lv_obj_add_flag(ui->screen_lab_icon_linkage, LV_OBJ_FLAG_HIDDEN);
+    lv_label_set_text(ui->screen_lab_icon_linkage, "");
+    lv_label_set_long_mode(ui->screen_lab_icon_linkage, LV_LABEL_LONG_WRAP);
+
+    //Write style for screen_lab_icon_linkage, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_color(ui->screen_lab_icon_linkage, lv_color_hex(0x0bfffc), LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_font(ui->screen_lab_icon_linkage, &lv_font_iconfont_25, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_opa(ui->screen_lab_icon_linkage, 253, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_letter_space(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_line_space(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_text_align(ui->screen_lab_icon_linkage, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_lab_icon_linkage, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+
+    //Write codes screen_cont_1
+    ui->screen_cont_1 = lv_obj_create(ui->screen);
+    lv_obj_set_pos(ui->screen_cont_1, 18, 46);
+    lv_obj_set_size(ui->screen_cont_1, 447, 420);
+    lv_obj_set_scrollbar_mode(ui->screen_cont_1, LV_SCROLLBAR_MODE_OFF);
+    lv_obj_add_flag(ui->screen_cont_1, LV_OBJ_FLAG_HIDDEN);
+
+    //Write style for screen_cont_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
+    lv_obj_set_style_border_width(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_radius(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_bg_opa(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_top(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_bottom(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_left(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_pad_right(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
+    lv_obj_set_style_shadow_width(ui->screen_cont_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
 
     //The custom code of screen.
     lv_obj_add_flag(ui->screen_arc_temp, LV_OBJ_FLAG_ADV_HITTEST);
     lv_obj_set_ext_click_area(ui->screen_arc_temp, 40);
+    if(system_setting.allow_linkage)lv_obj_remove_flag(ui->screen_lab_icon_linkage, LV_OBJ_FLAG_HIDDEN);
+    if(hp_controller.power == 1) {
+        lv_obj_remove_flag(ui->screen_cont_power_on, LV_OBJ_FLAG_HIDDEN);
+        lv_obj_add_flag(ui->screen_cont_power_off, LV_OBJ_FLAG_HIDDEN);
+    } else {
+        lv_obj_remove_flag(ui->screen_cont_power_off, LV_OBJ_FLAG_HIDDEN);
+        lv_obj_add_flag(ui->screen_cont_power_on, LV_OBJ_FLAG_HIDDEN);
+    }
     if(hp_controller.mode == MODE_COOL) {
+        lv_obj_set_style_text_color(guider_ui.screen_lab_ac_temp, lv_color_hex(0x00d9ff), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_text_color(guider_ui.screen_label_6, lv_color_hex(0x00d9ff), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_arc_color(guider_ui.screen_arc_temp, lv_color_hex(0x00d9ff),
+                                   LV_PART_INDICATOR | LV_STATE_DEFAULT);
+
         lv_arc_set_range(ui->screen_arc_temp, 7*2,22*2);
         lv_label_set_text_fmt(ui->screen_lab_ac_temp, "%d", hp_controller.cool_set_temp);
         lv_arc_set_value(guider_ui.screen_arc_temp, hp_controller.cool_set_temp * 2);
@@ -649,6 +884,10 @@ void setup_scr_screen(lv_ui *ui)
         lv_label_set_text_static(ui->screen_lab_temp_high, "22°C");
         lv_obj_add_state(ui->screen_ib_cool, LV_STATE_CHECKED);
     } else if(hp_controller.mode == MODE_HEAT) {
+        lv_obj_set_style_text_color(guider_ui.screen_lab_ac_temp, lv_color_hex(0xff9700), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_text_color(guider_ui.screen_label_6, lv_color_hex(0xff9700), LV_PART_MAIN|LV_STATE_DEFAULT);
+        lv_obj_set_style_arc_color(guider_ui.screen_arc_temp, lv_color_hex(0xff9700),
+                                   LV_PART_INDICATOR | LV_STATE_DEFAULT);
         lv_arc_set_range(ui->screen_arc_temp, 30*2,60*2);
         lv_arc_set_value(ui->screen_arc_temp, hp_controller.heat_set_temp * 2);
         lv_label_set_text_fmt(ui->screen_lab_ac_temp, "%d", hp_controller.heat_set_temp);
@@ -658,6 +897,12 @@ void setup_scr_screen(lv_ui *ui)
         lv_obj_add_state(ui->screen_ib_heat, LV_STATE_CHECKED);
     }
 
+    lv_obj_set_layout(ui->screen_cont_icons, LV_LAYOUT_FLEX);
+    lv_obj_set_flex_flow(ui->screen_cont_icons, LV_FLEX_FLOW_ROW_WRAP);
+    lv_obj_set_flex_align(ui->screen_cont_icons, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER);
+
+
+
     //Update current screen layout.
     lv_obj_update_layout(ui->screen);
 

BIN
wj-wire-controller-ui/import/font/iconfont.ttf


BIN
wj-wire-controller-ui_bak.zip


Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov