From eb580f0467a6df68edfe05100ae7cd5a9562d2c7 Mon Sep 17 00:00:00 2001 From: William Emfinger Date: Thu, 28 Dec 2023 13:29:39 -0600 Subject: [PATCH] feat(ui): add battery status indication * Update espp submodule to fix bug when unsubscribing from an event * Update menu to properly unsubscribe the menu component instead of the gui component (copy paste error from long ago) * Add battery header to box-emu-hal which includes the serialization component, adds a battery topic, and adds a BatteryInfo structure (the message data) * Updated menu and gui to have battery status icons (battery level symbol, charge symbol) and battery status labels * Updated menu and gui to subscribe to the battery topic and update their battery status displays when the event fires * Updated main to send new battery info every second to test charge and discharge display in main gui and menu (until hardware V1 arrives with support for actual SoC / charge measurement Closes #24 --- CMakeLists.txt | 2 +- components/box-emu-hal/CMakeLists.txt | 2 +- components/box-emu-hal/include/battery.hpp | 10 + components/espp | 2 +- components/gui/generated/CMakeLists.txt | 3 +- .../gui/generated/components/ui_comp_hook.c | 2 +- components/gui/generated/filelist.txt | 1 + .../gui/generated/screens/ui_romscreen.c | 24 +- .../gui/generated/screens/ui_settingsscreen.c | 26 +- components/gui/generated/ui.c | 8 +- components/gui/generated/ui.h | 8 +- components/gui/generated/ui_events.h | 2 +- components/gui/generated/ui_helpers.c | 2 +- components/gui/generated/ui_helpers.h | 2 +- components/gui/include/gui.hpp | 9 +- components/gui/squareline/emu.sll | 2 +- components/gui/squareline/emu.spj | 3528 ++++++++++++----- components/gui/src/gui.cpp | 37 + components/menu/generated/CMakeLists.txt | 3 +- .../menu/generated/components/ui_comp_hook.c | 2 +- components/menu/generated/filelist.txt | 1 + .../menu/generated/screens/ui_Screen1.c | 30 +- components/menu/generated/ui.c | 6 +- components/menu/generated/ui.h | 6 +- components/menu/generated/ui_events.h | 2 +- components/menu/generated/ui_helpers.c | 2 +- components/menu/generated/ui_helpers.h | 2 +- components/menu/include/menu.hpp | 9 +- components/menu/squareline/menu.sll | 2 +- components/menu/squareline/menu.spj | 697 +++- components/menu/src/menu.cpp | 29 + main/main.cpp | 30 + 32 files changed, 3497 insertions(+), 994 deletions(-) create mode 100644 components/box-emu-hal/include/battery.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index d2dcb0a1..278e035e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,7 +71,7 @@ set(EMULATOR_COMPONENTS set( COMPONENTS - "main esptool_py esp_lcd esp_psram task format display display_drivers monitor esp-idf-cxx ${EMULATOR_COMPONENTS} box-emu-hal gui menu" + "main esptool_py esp_lcd esp_psram task format display display_drivers monitor timer ${EMULATOR_COMPONENTS} box-emu-hal gui menu" CACHE STRING "List of components to include" ) diff --git a/components/box-emu-hal/CMakeLists.txt b/components/box-emu-hal/CMakeLists.txt index 59813342..d345b0e8 100644 --- a/components/box-emu-hal/CMakeLists.txt +++ b/components/box-emu-hal/CMakeLists.txt @@ -1,5 +1,5 @@ idf_component_register( INCLUDE_DIRS "include" SRC_DIRS "src" - REQUIRES "driver" "heap" "fatfs" "esp_lcd" "esp_psram" "hal" "usb" "esp_tinyusb" "spi_flash" "nvs_flash" "codec" "aw9523" "display" "display_drivers" "mcp23x17" "input_drivers" "tt21100" "gt911" "drv2605" "event_manager" "i2c" "task" "timer" + REQUIRES "driver" "heap" "fatfs" "esp_lcd" "esp_psram" "hal" "usb" "esp_tinyusb" "spi_flash" "nvs_flash" "codec" "aw9523" "display" "display_drivers" "mcp23x17" "input_drivers" "tt21100" "gt911" "drv2605" "event_manager" "i2c" "task" "timer" "serialization" ) diff --git a/components/box-emu-hal/include/battery.hpp b/components/box-emu-hal/include/battery.hpp new file mode 100644 index 00000000..181cfc92 --- /dev/null +++ b/components/box-emu-hal/include/battery.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include "serialization.hpp" + +static const std::string battery_topic = "battery"; + +struct BatteryInfo { + uint8_t level; + bool charging; +}; diff --git a/components/espp b/components/espp index a497a95e..af0852fd 160000 --- a/components/espp +++ b/components/espp @@ -1 +1 @@ -Subproject commit a497a95ece33afed72fed56c64417c3d26bb5d63 +Subproject commit af0852fd08a428fe620c1c6fa6470ba6d2183709 diff --git a/components/gui/generated/CMakeLists.txt b/components/gui/generated/CMakeLists.txt index aa27f4a9..fd0ca1d6 100644 --- a/components/gui/generated/CMakeLists.txt +++ b/components/gui/generated/CMakeLists.txt @@ -2,6 +2,7 @@ SET(SOURCES screens/ui_romscreen.c screens/ui_settingsscreen.c ui.c components/ui_comp_hook.c - ui_helpers.c) + ui_helpers.c + ui_events.c) add_library(ui ${SOURCES}) diff --git a/components/gui/generated/components/ui_comp_hook.c b/components/gui/generated/components/ui_comp_hook.c index 11533e50..609e8fa3 100644 --- a/components/gui/generated/components/ui_comp_hook.c +++ b/components/gui/generated/components/ui_comp_hook.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu diff --git a/components/gui/generated/filelist.txt b/components/gui/generated/filelist.txt index 395f2205..08c02f26 100644 --- a/components/gui/generated/filelist.txt +++ b/components/gui/generated/filelist.txt @@ -3,3 +3,4 @@ screens/ui_settingsscreen.c ui.c components/ui_comp_hook.c ui_helpers.c +ui_events.c diff --git a/components/gui/generated/screens/ui_romscreen.c b/components/gui/generated/screens/ui_romscreen.c index 50c4a882..d57b3c43 100644 --- a/components/gui/generated/screens/ui_romscreen.c +++ b/components/gui/generated/screens/ui_romscreen.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu @@ -29,6 +29,28 @@ lv_obj_set_height( ui_Screen1_Label2, LV_SIZE_CONTENT); /// 1 lv_obj_set_align( ui_Screen1_Label2, LV_ALIGN_CENTER ); lv_label_set_text(ui_Screen1_Label2,LV_SYMBOL_SETTINGS); +ui_battery_soc_symbol_1 = lv_label_create(ui_header); +lv_obj_set_width( ui_battery_soc_symbol_1, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_battery_soc_symbol_1, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_battery_soc_symbol_1, 52 ); +lv_obj_set_y( ui_battery_soc_symbol_1, 5 ); +lv_label_set_text(ui_battery_soc_symbol_1,LV_SYMBOL_BATTERY_EMPTY); + +ui_battery_charging_symbol_1 = lv_label_create(ui_header); +lv_obj_set_width( ui_battery_charging_symbol_1, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_battery_charging_symbol_1, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_battery_charging_symbol_1, 70 ); +lv_obj_set_y( ui_battery_charging_symbol_1, 5 ); +lv_label_set_text(ui_battery_charging_symbol_1,""); + +ui_battery_soc_text_1 = lv_label_create(ui_header); +lv_obj_set_width( ui_battery_soc_text_1, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_battery_soc_text_1, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_battery_soc_text_1, 52 ); +lv_obj_set_y( ui_battery_soc_text_1, -5 ); +lv_obj_set_align( ui_battery_soc_text_1, LV_ALIGN_BOTTOM_LEFT ); +lv_label_set_text(ui_battery_soc_text_1,"100%"); + ui_Screen1_Label1 = lv_label_create(ui_header); lv_obj_set_width( ui_Screen1_Label1, LV_SIZE_CONTENT); /// 1 lv_obj_set_height( ui_Screen1_Label1, LV_SIZE_CONTENT); /// 1 diff --git a/components/gui/generated/screens/ui_settingsscreen.c b/components/gui/generated/screens/ui_settingsscreen.c index 4cf31188..1c5b85af 100644 --- a/components/gui/generated/screens/ui_settingsscreen.c +++ b/components/gui/generated/screens/ui_settingsscreen.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu @@ -16,6 +16,28 @@ lv_obj_set_width( ui_header1, lv_pct(100)); lv_obj_set_align( ui_header1, LV_ALIGN_TOP_MID ); lv_obj_clear_flag( ui_header1, LV_OBJ_FLAG_SCROLLABLE ); /// Flags +ui_battery_charging_symbol = lv_label_create(ui_header1); +lv_obj_set_width( ui_battery_charging_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_battery_charging_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_battery_charging_symbol, 70 ); +lv_obj_set_y( ui_battery_charging_symbol, 5 ); +lv_label_set_text(ui_battery_charging_symbol,""); + +ui_battery_soc_symbol = lv_label_create(ui_header1); +lv_obj_set_width( ui_battery_soc_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_battery_soc_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_battery_soc_symbol, 52 ); +lv_obj_set_y( ui_battery_soc_symbol, 5 ); +lv_label_set_text(ui_battery_soc_symbol,LV_SYMBOL_BATTERY_EMPTY); + +ui_battery_soc_text = lv_label_create(ui_header1); +lv_obj_set_width( ui_battery_soc_text, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_battery_soc_text, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_battery_soc_text, 52 ); +lv_obj_set_y( ui_battery_soc_text, -5 ); +lv_obj_set_align( ui_battery_soc_text, LV_ALIGN_BOTTOM_LEFT ); +lv_label_set_text(ui_battery_soc_text,"100%"); + ui_closebutton = lv_btn_create(ui_header1); lv_obj_set_width( ui_closebutton, 48); lv_obj_set_height( ui_closebutton, 48); @@ -54,6 +76,7 @@ lv_obj_clear_flag( ui_volumepanel, LV_OBJ_FLAG_SCROLLABLE ); /// Flags ui_volumebar = lv_bar_create(ui_volumepanel); lv_bar_set_value(ui_volumebar,25,LV_ANIM_OFF); +lv_bar_set_start_value(ui_volumebar, 0, LV_ANIM_OFF); lv_obj_set_width( ui_volumebar, 130); lv_obj_set_height( ui_volumebar, 10); lv_obj_set_x( ui_volumebar, 25 ); @@ -111,6 +134,7 @@ lv_obj_clear_flag( ui_brightnesspanel, LV_OBJ_FLAG_SCROLLABLE ); /// Flags ui_brightnessbar = lv_bar_create(ui_brightnesspanel); lv_bar_set_value(ui_brightnessbar,100,LV_ANIM_OFF); +lv_bar_set_start_value(ui_brightnessbar, 0, LV_ANIM_OFF); lv_obj_set_width( ui_brightnessbar, 180); lv_obj_set_height( ui_brightnessbar, 10); lv_obj_set_align( ui_brightnessbar, LV_ALIGN_CENTER ); diff --git a/components/gui/generated/ui.c b/components/gui/generated/ui.c index 48b91e55..de2cefd7 100644 --- a/components/gui/generated/ui.c +++ b/components/gui/generated/ui.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu @@ -16,6 +16,9 @@ lv_obj_t *ui_header; void ui_event_settingsbutton( lv_event_t * e); lv_obj_t *ui_settingsbutton; lv_obj_t *ui_Screen1_Label2; +lv_obj_t *ui_battery_soc_symbol_1; +lv_obj_t *ui_battery_charging_symbol_1; +lv_obj_t *ui_battery_soc_text_1; lv_obj_t *ui_Screen1_Label1; lv_obj_t *ui_playbutton; lv_obj_t *ui_Screen1_Label3; @@ -28,6 +31,9 @@ lv_obj_t *ui_boxart; void ui_settingsscreen_screen_init(void); lv_obj_t *ui_settingsscreen; lv_obj_t *ui_header1; +lv_obj_t *ui_battery_charging_symbol; +lv_obj_t *ui_battery_soc_symbol; +lv_obj_t *ui_battery_soc_text; void ui_event_closebutton( lv_event_t * e); lv_obj_t *ui_closebutton; lv_obj_t *ui_Screen1_Label4; diff --git a/components/gui/generated/ui.h b/components/gui/generated/ui.h index 4258a614..341de1f3 100644 --- a/components/gui/generated/ui.h +++ b/components/gui/generated/ui.h @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu @@ -21,6 +21,9 @@ extern lv_obj_t *ui_header; void ui_event_settingsbutton( lv_event_t * e); extern lv_obj_t *ui_settingsbutton; extern lv_obj_t *ui_Screen1_Label2; +extern lv_obj_t *ui_battery_soc_symbol_1; +extern lv_obj_t *ui_battery_charging_symbol_1; +extern lv_obj_t *ui_battery_soc_text_1; extern lv_obj_t *ui_Screen1_Label1; extern lv_obj_t *ui_playbutton; extern lv_obj_t *ui_Screen1_Label3; @@ -31,6 +34,9 @@ extern lv_obj_t *ui_boxart; void ui_settingsscreen_screen_init(void); extern lv_obj_t *ui_settingsscreen; extern lv_obj_t *ui_header1; +extern lv_obj_t *ui_battery_charging_symbol; +extern lv_obj_t *ui_battery_soc_symbol; +extern lv_obj_t *ui_battery_soc_text; void ui_event_closebutton( lv_event_t * e); extern lv_obj_t *ui_closebutton; extern lv_obj_t *ui_Screen1_Label4; diff --git a/components/gui/generated/ui_events.h b/components/gui/generated/ui_events.h index 45f5c299..5dc9a30a 100644 --- a/components/gui/generated/ui_events.h +++ b/components/gui/generated/ui_events.h @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu diff --git a/components/gui/generated/ui_helpers.c b/components/gui/generated/ui_helpers.c index 1473fb37..cc8e7562 100644 --- a/components/gui/generated/ui_helpers.c +++ b/components/gui/generated/ui_helpers.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu diff --git a/components/gui/generated/ui_helpers.h b/components/gui/generated/ui_helpers.h index ed29bc97..a9b27876 100644 --- a/components/gui/generated/ui_helpers.h +++ b/components/gui/generated/ui_helpers.h @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.3.3 // Project name: emu diff --git a/components/gui/include/gui.hpp b/components/gui/include/gui.hpp index d357a57c..7069ad6e 100644 --- a/components/gui/include/gui.hpp +++ b/components/gui/include/gui.hpp @@ -11,6 +11,7 @@ #include "task.hpp" #include "logger.hpp" +#include "battery.hpp" #include "fs_init.hpp" #include "input.h" #include "hal_events.hpp" @@ -52,12 +53,16 @@ class Gui { espp::EventManager::get().add_subscriber(mute_button_topic, "gui", std::bind(&Gui::on_mute_button_pressed, this, _1)); + espp::EventManager::get().add_subscriber(battery_topic, + "gui", + std::bind(&Gui::on_battery, this, _1)); } ~Gui() { + espp::EventManager::get().remove_subscriber(mute_button_topic, "gui"); + espp::EventManager::get().remove_subscriber(battery_topic, "gui"); task_->stop(); deinit_ui(); - espp::EventManager::get().remove_subscriber(mute_button_topic, "gui"); } void ready_to_play(bool new_state) { @@ -152,6 +157,8 @@ class Gui { set_mute(is_muted()); } + void on_battery(const std::vector& data); + lv_img_dsc_t make_boxart(const std::string& path) { // load the file // auto start = std::chrono::high_resolution_clock::now(); diff --git a/components/gui/squareline/emu.sll b/components/gui/squareline/emu.sll index 6ea7e737..e15a8ab9 100644 --- a/components/gui/squareline/emu.sll +++ b/components/gui/squareline/emu.sll @@ -1 +1 @@ -{"name":"emu.spj","depth":2,"width":320,"height":240,"rotation":0,"offset_x":0,"offset_y":0,"shape":"RECTANGLE","multilang":"DISABLE","description":"","board":"Eclipse with SDL for development on PC","board_version":"v1.0.1","editor_version":"1.3.3","image":"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","force_export_images":false,"flat_export":false,"pointfilter":false,"theme_simplified":false,"theme_dark":true,"theme_color1":5,"theme_color2":0,"exportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/gui/generated","projectExportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/gui/squareline","backup_cnt":25,"autosave_cnt":0,"lvgl_version":"8.3.3","callfuncsexport":"C_FILE","lvgl_include_path":""} \ No newline at end of file +{"name":"emu.spj","depth":2,"width":320,"height":240,"rotation":0,"offset_x":0,"offset_y":0,"shape":"RECTANGLE","multilang":"DISABLE","description":"","board":"Eclipse with SDL for development on PC","board_version":"v1.0.1","editor_version":"1.3.4","image":"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","force_export_images":false,"flat_export":false,"pointfilter":false,"theme_simplified":false,"theme_dark":true,"theme_color1":5,"theme_color2":0,"uiExportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/gui/generated","projectExportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/gui/squareline","backup_cnt":46,"autosave_cnt":0,"lvgl_version":"8.3.3","callfuncsexport":"C_FILE","lvgl_include_path":""} \ No newline at end of file diff --git a/components/gui/squareline/emu.spj b/components/gui/squareline/emu.spj index 33bfd4e0..15fe518d 100644 --- a/components/gui/squareline/emu.spj +++ b/components/gui/squareline/emu.spj @@ -767,22 +767,23 @@ "InheritedType": 4 } ], - "saved_objtypeKey": "BUTTON" + "saved_objtypeKey": "BUTTON", + "tree_closed": true }, { - "guid": "GUID59992799-185482S6861311", - "deepid": -1180335275, + "guid": "GUID31363711-543869S382361", + "deepid": -919676975, "locked": false, "properties": [ { - "nid": -1290593206, + "nid": 1285843310, "strtype": "OBJECT/Name", - "strval": "Screen1 Label1", + "strval": "battery soc symbol 1", "InheritedType": 10 }, { - "nid": -1139039527, - "strtype": "LABEL/Layout", + "nid": 459704457, + "strtype": "OBJECT/Layout", "InheritedType": 1 }, { @@ -793,28 +794,28 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": 239094992, - "strtype": "LABEL/Layout_type", + "nid": -880049094, + "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": 163870194, + "nid": -1778164604, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": 430154773, + "nid": -374151452, "flags": 17, "strtype": "OBJECT/Position", "intarray": [ - 0, - 0 + 52, + 5 ], "InheritedType": 7 }, { - "nid": -655296272, + "nid": -477327175, "flags": 51, "strtype": "OBJECT/Size", "intarray": [ @@ -824,539 +825,252 @@ "InheritedType": 7 }, { - "nid": 2108986733, + "nid": 1639714163, "strtype": "OBJECT/Align", - "strval": "CENTER", + "strval": "TOP_LEFT", "InheritedType": 3 }, { - "nid": -1621394025, + "nid": -1600780230, "flags": 1048576, "strtype": "OBJECT/Flags", "InheritedType": 1 }, { - "nid": 247034819, + "nid": 96656041, "strtype": "OBJECT/Hidden", "strval": "False", "InheritedType": 2 }, { - "nid": 1006551844, + "nid": 704187832, "strtype": "OBJECT/Clickable", "strval": "False", "InheritedType": 2 }, { - "nid": 308827085, + "nid": 1493817634, "strtype": "OBJECT/Checkable", "strval": "False", "InheritedType": 2 }, { - "nid": -1481357983, + "nid": -609233255, "strtype": "OBJECT/Press_lock", "strval": "True", "InheritedType": 2 }, { - "nid": -2106251302, + "nid": 860955083, "strtype": "OBJECT/Click_focusable", "strval": "True", "InheritedType": 2 }, { - "nid": -802226996, + "nid": 861533538, "strtype": "OBJECT/Adv_hittest", "strval": "False", "InheritedType": 2 }, { - "nid": 1376466370, + "nid": 1722743978, "strtype": "OBJECT/Ignore_layout", "strval": "False", "InheritedType": 2 }, { - "nid": 1220879529, + "nid": -381208601, "strtype": "OBJECT/Floating", "strval": "False", "InheritedType": 2 }, { - "nid": -731753882, - "strtype": "LABEL/Overflow_visible", + "nid": 468058161, + "strtype": "OBJECT/Overflow_visible", "strval": "False", "InheritedType": 2 }, { - "nid": 628168038, - "strtype": "LABEL/Flex_in_new_track", + "nid": -1269665254, + "strtype": "OBJECT/Flex_in_new_track", "strval": "False", "InheritedType": 2 }, { - "nid": 625738716, + "nid": 887331167, "strtype": "OBJECT/Event_bubble", "strval": "False", "InheritedType": 2 }, { - "nid": 901383996, + "nid": 1665231486, "strtype": "OBJECT/Gesture_bubble", "strval": "True", "InheritedType": 2 }, { - "nid": 1414017030, + "nid": -1502776789, "strtype": "OBJECT/Snappable", "strval": "True", "InheritedType": 2 }, { - "nid": 590586875, + "nid": -1969669190, "strtype": "OBJECT/Scrollable", "strval": "True", "InheritedType": 2 }, { - "nid": -1900123583, + "nid": 937259977, "strtype": "OBJECT/Scroll_elastic", "strval": "True", "InheritedType": 2 }, { - "nid": 652011905, + "nid": 300686016, "strtype": "OBJECT/Scroll_momentum", "strval": "True", "InheritedType": 2 }, { - "nid": -1359373998, + "nid": 312747351, "strtype": "OBJECT/Scroll_on_focus", "strval": "False", "InheritedType": 2 }, { - "nid": 1709376103, + "nid": -1198123730, "strtype": "OBJECT/Scroll_chain", "strval": "True", "InheritedType": 2 }, { - "nid": -2004971208, - "strtype": "LABEL/Scroll_with_arrow", + "nid": 1511255897, + "strtype": "OBJECT/Scroll_with_arrow", "strval": "False", "InheritedType": 2 }, { - "nid": 556060833, + "nid": -1113523810, "strtype": "OBJECT/Scroll_one", "strval": "False", "InheritedType": 2 }, { - "nid": 2090948622, + "nid": -884477115, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": 806115801, + "nid": -850075239, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 }, { - "nid": 131074994, + "nid": -1886577219, "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, { - "nid": -1375148533, + "nid": 557122638, "strtype": "OBJECT/Checked", "strval": "False", "InheritedType": 2 }, { - "nid": -421645467, + "nid": 1806219188, "strtype": "OBJECT/Disabled", "strval": "False", "InheritedType": 2 }, { - "nid": 1518033214, + "nid": 387674303, "strtype": "OBJECT/Focused", "strval": "False", "InheritedType": 2 }, { - "nid": -218083494, + "nid": 1051812556, "strtype": "OBJECT/Pressed", "strval": "False", "InheritedType": 2 }, { - "nid": -1544685538, - "strtype": "LABEL/User_1", + "nid": -1811167669, + "strtype": "OBJECT/User_1", "strval": "False", "InheritedType": 2 }, { - "nid": 1854317558, - "strtype": "LABEL/User_2", + "nid": 716652208, + "strtype": "OBJECT/User_2", "strval": "False", "InheritedType": 2 }, { - "nid": -1228045771, - "strtype": "LABEL/User_3", + "nid": 1991661602, + "strtype": "OBJECT/User_3", "strval": "False", "InheritedType": 2 }, { - "nid": -1715828318, - "strtype": "LABEL/User_4", + "nid": -1806347053, + "strtype": "OBJECT/User_4", "strval": "False", "InheritedType": 2 }, { - "nid": 737081825, + "nid": 1057841249, "strtype": "LABEL/Label", "InheritedType": 1 }, { - "nid": 107894546, + "nid": 90873727, "strtype": "LABEL/Long_mode", "strval": "WRAP", "InheritedType": 3 }, { - "nid": 1505493626, + "nid": 2026484083, "strtype": "LABEL/Text", - "strval": "Select Rom", + "strval": "LV_SYMBOL_BATTERY_EMPTY", "InheritedType": 10 }, { "part": "lv.PART.MAIN", "childs": [], - "nid": 1764472988, + "nid": 233064373, "strtype": "LABEL/Style_main", "strval": "lv.PART.MAIN, Text, Rectangle, Pad", "InheritedType": 11 }, { - "nid": -295841366, + "nid": -1855626832, "strtype": "LABEL/Recolor", "strval": "False", "InheritedType": 2 } ], - "saved_objtypeKey": "LABEL" + "saved_objtypeKey": "LABEL", + "tree_closed": true }, { - "guid": "GUID24964206-186481S2471311", - "deepid": -319034606, - "children": [ + "guid": "GUID76863381-548290S3772362", + "deepid": -919676975, + "locked": false, + "properties": [ { - "guid": "GUID29700096-186480S2471311", - "deepid": 1744197136, - "locked": false, - "properties": [ - { - "nid": 768421321, - "strtype": "OBJECT/Name", - "strval": "Screen1 Label3", - "InheritedType": 10 - }, - { - "nid": 1968908557, - "strtype": "LABEL/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": 247236939, - "strtype": "LABEL/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 61493129, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -1279143560, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": -1288738998, - "flags": 51, - "strtype": "OBJECT/Size", - "intarray": [ - 1, - 1 - ], - "InheritedType": 7 - }, - { - "nid": -705584082, - "strtype": "OBJECT/Align", - "strval": "CENTER", - "InheritedType": 3 - }, - { - "nid": 1136535165, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": -1775006322, - "strtype": "OBJECT/Hidden", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 668105945, - "strtype": "OBJECT/Clickable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 569431364, - "strtype": "OBJECT/Checkable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 1630764848, - "strtype": "OBJECT/Press_lock", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -535982790, - "strtype": "OBJECT/Click_focusable", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -703030184, - "strtype": "OBJECT/Adv_hittest", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -955720851, - "strtype": "OBJECT/Ignore_layout", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 128209807, - "strtype": "OBJECT/Floating", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -666429562, - "strtype": "LABEL/Overflow_visible", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1534268579, - "strtype": "LABEL/Flex_in_new_track", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -2062981217, - "strtype": "OBJECT/Event_bubble", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -100551205, - "strtype": "OBJECT/Gesture_bubble", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -813001541, - "strtype": "OBJECT/Snappable", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 315108684, - "strtype": "OBJECT/Scrollable", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -114625118, - "strtype": "OBJECT/Scroll_elastic", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -1538054804, - "strtype": "OBJECT/Scroll_momentum", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 881190556, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -2008827562, - "strtype": "OBJECT/Scroll_chain", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 543094896, - "strtype": "LABEL/Scroll_with_arrow", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 1739255701, - "strtype": "OBJECT/Scroll_one", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 926261608, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1087428325, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": 710605013, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -1267366761, - "strtype": "OBJECT/Checked", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1648789018, - "strtype": "OBJECT/Disabled", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -465692407, - "strtype": "OBJECT/Focused", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 259710568, - "strtype": "OBJECT/Pressed", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 605592415, - "strtype": "LABEL/User_1", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -614171990, - "strtype": "LABEL/User_2", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 1274952779, - "strtype": "LABEL/User_3", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1196235289, - "strtype": "LABEL/User_4", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -941315432, - "strtype": "LABEL/Label", - "InheritedType": 1 - }, - { - "nid": 1493802716, - "strtype": "LABEL/Long_mode", - "strval": "WRAP", - "InheritedType": 3 - }, - { - "nid": -846609210, - "strtype": "LABEL/Text", - "strval": "LV_SYMBOL_PLAY", - "InheritedType": 10 - }, - { - "part": "lv.PART.MAIN", - "childs": [], - "nid": -169174998, - "strtype": "LABEL/Style_main", - "strval": "lv.PART.MAIN, Text, Rectangle, Pad", - "InheritedType": 11 - }, - { - "nid": 1168885217, - "strtype": "LABEL/Recolor", - "strval": "False", - "InheritedType": 2 - } - ], - "saved_objtypeKey": "LABEL" - } - ], - "locked": false, - "properties": [ - { - "nid": 1589302611, + "nid": -890871839, "strtype": "OBJECT/Name", - "strval": "playbutton", + "strval": "battery charging symbol 1", "InheritedType": 10 }, { - "nid": 2023958936, - "strtype": "BUTTON/Layout", + "nid": -1880321874, + "strtype": "OBJECT/Layout", "InheritedType": 1 }, { @@ -1367,594 +1081,1743 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": 883305061, - "strtype": "BUTTON/Layout_type", + "nid": -1387422764, + "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": -675571315, + "nid": 210668602, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": 483113871, + "nid": 535130715, "flags": 17, "strtype": "OBJECT/Position", "intarray": [ - 0, - 0 + 70, + 5 ], "InheritedType": 7 }, { - "nid": 1373937859, - "flags": 17, + "nid": -1555537412, + "flags": 51, "strtype": "OBJECT/Size", "intarray": [ - 48, - 48 + 1, + 1 ], "InheritedType": 7 }, { - "nid": -1350483583, + "nid": -724414358, "strtype": "OBJECT/Align", - "strval": "RIGHT_MID", + "strval": "TOP_LEFT", "InheritedType": 3 }, { - "nid": -428542643, + "nid": -258309139, "flags": 1048576, "strtype": "OBJECT/Flags", "InheritedType": 1 }, { - "nid": -948719095, + "nid": -1209311487, "strtype": "OBJECT/Hidden", "strval": "False", "InheritedType": 2 }, { - "nid": -1592351677, + "nid": -1290925020, "strtype": "OBJECT/Clickable", - "strval": "True", + "strval": "False", "InheritedType": 2 }, { - "nid": -598750578, + "nid": 1769402949, "strtype": "OBJECT/Checkable", "strval": "False", "InheritedType": 2 }, { - "nid": 644485506, + "nid": 1399046730, "strtype": "OBJECT/Press_lock", "strval": "True", "InheritedType": 2 }, { - "nid": 1950426769, + "nid": 624336747, "strtype": "OBJECT/Click_focusable", "strval": "True", "InheritedType": 2 }, { - "nid": 175111144, + "nid": 1558723677, "strtype": "OBJECT/Adv_hittest", "strval": "False", "InheritedType": 2 }, { - "nid": 1026708970, + "nid": 2018703931, "strtype": "OBJECT/Ignore_layout", "strval": "False", "InheritedType": 2 }, { - "nid": -905245580, + "nid": -1912377913, "strtype": "OBJECT/Floating", "strval": "False", "InheritedType": 2 }, { - "nid": -1505142414, - "strtype": "BUTTON/Overflow_visible", + "nid": -841017761, + "strtype": "OBJECT/Overflow_visible", "strval": "False", "InheritedType": 2 }, { - "nid": 1210840900, - "strtype": "BUTTON/Flex_in_new_track", + "nid": 1820758177, + "strtype": "OBJECT/Flex_in_new_track", "strval": "False", "InheritedType": 2 }, { - "nid": -681190793, + "nid": 8073706, "strtype": "OBJECT/Event_bubble", "strval": "False", "InheritedType": 2 }, { - "nid": -679540114, + "nid": -1593290741, "strtype": "OBJECT/Gesture_bubble", "strval": "True", "InheritedType": 2 }, { - "nid": 1358169722, + "nid": 2020535029, "strtype": "OBJECT/Snappable", "strval": "True", "InheritedType": 2 }, { - "nid": 1314643040, + "nid": -441827238, "strtype": "OBJECT/Scrollable", - "strval": "False", + "strval": "True", "InheritedType": 2 }, { - "nid": 1738195762, + "nid": -1934312558, "strtype": "OBJECT/Scroll_elastic", "strval": "True", "InheritedType": 2 }, { - "nid": 621111986, + "nid": 1999834418, "strtype": "OBJECT/Scroll_momentum", "strval": "True", "InheritedType": 2 }, { - "nid": 759167708, + "nid": -200243445, "strtype": "OBJECT/Scroll_on_focus", - "strval": "True", + "strval": "False", "InheritedType": 2 }, { - "nid": 1410322306, + "nid": -731402019, "strtype": "OBJECT/Scroll_chain", "strval": "True", "InheritedType": 2 }, { - "nid": 2042483848, - "strtype": "BUTTON/Scroll_with_arrow", + "nid": -586503574, + "strtype": "OBJECT/Scroll_with_arrow", "strval": "False", "InheritedType": 2 }, { - "nid": 674656452, + "nid": 1030742217, "strtype": "OBJECT/Scroll_one", "strval": "False", "InheritedType": 2 }, { - "nid": 89186766, + "nid": -1532137864, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": 574920142, + "nid": 802077228, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 }, { - "nid": 1732642989, + "nid": -470281137, + "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, { - "nid": 10954893, + "nid": 201858396, "strtype": "OBJECT/Checked", - "strval": "True", + "strval": "False", "InheritedType": 2 }, { - "nid": 1525392534, + "nid": 1029887011, "strtype": "OBJECT/Disabled", "strval": "False", "InheritedType": 2 }, { - "nid": -1851451361, + "nid": 96545607, "strtype": "OBJECT/Focused", "strval": "False", "InheritedType": 2 }, { - "nid": 872498834, + "nid": 280565734, "strtype": "OBJECT/Pressed", "strval": "False", "InheritedType": 2 }, { - "nid": 160076551, - "strtype": "BUTTON/User_1", + "nid": 968354392, + "strtype": "OBJECT/User_1", "strval": "False", "InheritedType": 2 }, { - "nid": 1153562740, - "strtype": "BUTTON/User_2", + "nid": -1623415198, + "strtype": "OBJECT/User_2", "strval": "False", "InheritedType": 2 }, { - "nid": -1719183281, - "strtype": "BUTTON/User_3", + "nid": 560599948, + "strtype": "OBJECT/User_3", "strval": "False", "InheritedType": 2 }, { - "nid": 677503380, - "strtype": "BUTTON/User_4", + "nid": 1398406550, + "strtype": "OBJECT/User_4", "strval": "False", "InheritedType": 2 }, + { + "nid": 1747230494, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": 446493810, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": 870227381, + "strtype": "LABEL/Text", + "strval": "", + "InheritedType": 10 + }, { "part": "lv.PART.MAIN", - "childs": [ - { - "nid": 272140409, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ - { - "nid": 650150665, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -547472153, - "strtype": "_style/StyleState", - "strval": "CHECKED", - "childs": [ - { - "nid": 336602657, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 558555342, - "strtype": "_style/StyleState", - "strval": "PRESSED", - "childs": [ - { - "nid": 2003992284, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -1375378946, - "strtype": "_style/StyleState", - "strval": "DISABLED", - "childs": [ - { - "nid": -256328219, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 855311850, - "strtype": "_style/StyleState", - "strval": "FOCUSED", - "childs": [ - { - "nid": 1040756563, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 369875057, - "strtype": "_style/StyleState", - "strval": "CHECKED|PRESSED", - "childs": [ - { - "nid": 729683925, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 1863295554, - "strtype": "_style/StyleState", - "strval": "USER_1", - "childs": [ - { - "nid": 1125116942, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -1906060616, - "strtype": "_style/StyleState", - "strval": "USER_2", - "childs": [ - { - "nid": 524202732, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -329498224, - "strtype": "_style/StyleState", - "strval": "USER_3", - "childs": [ - { - "nid": 1826624367, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -620901523, - "strtype": "_style/StyleState", - "strval": "USER_4", - "childs": [ - { - "nid": -94549582, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - } - ], - "nid": 1961753684, - "strtype": "BUTTON/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text ", + "childs": [], + "nid": 1074575697, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", "InheritedType": 11 + }, + { + "nid": -684460972, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 } ], - "saved_objtypeKey": "BUTTON" - } - ], - "locked": false, - "properties": [ - { - "nid": -2075149394, - "strtype": "OBJECT/Name", - "strval": "header", - "InheritedType": 10 - }, - { - "nid": -1876954458, - "strtype": "PANEL/Layout", - "InheritedType": 1 - }, - { - "Flow": 0, - "Wrap": false, - "Reversed": false, - "MainAlignment": 0, - "CrossAlignment": 0, - "TrackAlignment": 0, - "LayoutType": 0, - "nid": -1194864081, - "strtype": "PANEL/Layout_type", - "strval": "No_layout", - "InheritedType": 13 - }, - { - "nid": 694045763, - "strtype": "OBJECT/Transform", - "InheritedType": 1 - }, - { - "nid": -1217914541, - "flags": 17, - "strtype": "OBJECT/Position", - "intarray": [ - 0, - 0 - ], - "InheritedType": 7 - }, - { - "nid": 874312949, - "flags": 18, - "strtype": "OBJECT/Size", - "intarray": [ - 100, - 75 - ], - "InheritedType": 7 - }, - { - "nid": 437051860, - "strtype": "OBJECT/Align", - "strval": "TOP_MID", - "InheritedType": 3 - }, - { - "nid": 1441842160, - "flags": 1048576, - "strtype": "OBJECT/Flags", - "InheritedType": 1 - }, - { - "nid": 1959303567, - "strtype": "OBJECT/Hidden", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 1809136658, - "strtype": "OBJECT/Clickable", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 1189011624, - "strtype": "OBJECT/Checkable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -724844703, - "strtype": "OBJECT/Press_lock", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -3259665, - "strtype": "OBJECT/Click_focusable", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -2133884457, - "strtype": "OBJECT/Adv_hittest", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 1634568808, - "strtype": "OBJECT/Ignore_layout", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1026346933, - "strtype": "OBJECT/Floating", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -1867658826, - "strtype": "PANEL/Overflow_visible", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -734423796, - "strtype": "PANEL/Flex_in_new_track", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 175907554, - "strtype": "OBJECT/Event_bubble", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": 48882448, - "strtype": "OBJECT/Gesture_bubble", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -81820157, - "strtype": "OBJECT/Snappable", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 1633626360, - "strtype": "OBJECT/Scrollable", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -427043301, - "strtype": "OBJECT/Scroll_elastic", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": -949157007, - "strtype": "OBJECT/Scroll_momentum", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 1424714686, - "strtype": "OBJECT/Scroll_on_focus", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -153007185, - "strtype": "OBJECT/Scroll_chain", - "strval": "True", - "InheritedType": 2 - }, - { - "nid": 826553609, - "strtype": "PANEL/Scroll_with_arrow", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -86749051, - "strtype": "OBJECT/Scroll_one", - "strval": "False", - "InheritedType": 2 + "saved_objtypeKey": "LABEL", + "tree_closed": true }, { - "nid": 2073125369, - "strtype": "OBJECT/Scrollbar_mode", - "strval": "AUTO", - "InheritedType": 3 - }, - { - "nid": 1748060483, - "strtype": "OBJECT/Scroll_direction", - "strval": "ALL", - "InheritedType": 3 - }, - { - "nid": -1081332065, - "flags": 1048576, - "strtype": "OBJECT/States", - "InheritedType": 1 - }, - { - "nid": -410497902, - "strtype": "OBJECT/Checked", - "strval": "False", - "InheritedType": 2 - }, - { - "nid": -306248434, - "strtype": "OBJECT/Disabled", - "strval": "False", - "InheritedType": 2 + "guid": "GUID58616-544981S682362", + "deepid": -919676975, + "locked": false, + "properties": [ + { + "nid": 454213013, + "strtype": "OBJECT/Name", + "strval": "battery soc text 1", + "InheritedType": 10 + }, + { + "nid": -1238038625, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 1439179212, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": -1431825651, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 488575059, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 52, + -5 + ], + "InheritedType": 7 + }, + { + "nid": 494210482, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 2048551142, + "strtype": "OBJECT/Align", + "strval": "BOTTOM_LEFT", + "InheritedType": 3 + }, + { + "nid": -1329685597, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": -165277019, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -914474599, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1358605067, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -789361084, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1069659096, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1025417091, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -127982717, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 574436585, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 252578000, + "strtype": "OBJECT/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1188558586, + "strtype": "OBJECT/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1121169627, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -192931272, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 662952115, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 560034133, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1883619644, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1351261888, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 2834206, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1911811355, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -833385172, + "strtype": "OBJECT/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -287028192, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1914847264, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": -1394636805, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": -1102332216, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -1811332771, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 758078616, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1978363715, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 744404252, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1457544261, + "strtype": "OBJECT/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1266572911, + "strtype": "OBJECT/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 27999174, + "strtype": "OBJECT/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 349052358, + "strtype": "OBJECT/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 974348541, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -47065260, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": 1965358142, + "strtype": "LABEL/Text", + "strval": "100%", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -718969157, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": 1536253359, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "LABEL", + "tree_closed": true }, { - "nid": 709524044, - "strtype": "OBJECT/Focused", - "strval": "False", - "InheritedType": 2 + "guid": "GUID59992799-185482S6861311", + "deepid": -1180335275, + "locked": false, + "properties": [ + { + "nid": -1290593206, + "strtype": "OBJECT/Name", + "strval": "Screen1 Label1", + "InheritedType": 10 + }, + { + "nid": -1139039527, + "strtype": "LABEL/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 239094992, + "strtype": "LABEL/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 163870194, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 430154773, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": -655296272, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 2108986733, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": -1621394025, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 247034819, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1006551844, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 308827085, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1481357983, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -2106251302, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -802226996, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1376466370, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1220879529, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -731753882, + "strtype": "LABEL/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 628168038, + "strtype": "LABEL/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 625738716, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 901383996, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1414017030, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 590586875, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1900123583, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 652011905, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1359373998, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1709376103, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -2004971208, + "strtype": "LABEL/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 556060833, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 2090948622, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 806115801, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 131074994, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -1375148533, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -421645467, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1518033214, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -218083494, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1544685538, + "strtype": "LABEL/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1854317558, + "strtype": "LABEL/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1228045771, + "strtype": "LABEL/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1715828318, + "strtype": "LABEL/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 737081825, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": 107894546, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": 1505493626, + "strtype": "LABEL/Text", + "strval": "Select Rom", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": 1764472988, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": -295841366, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "LABEL" + }, + { + "guid": "GUID24964206-186481S2471311", + "deepid": -319034606, + "children": [ + { + "guid": "GUID29700096-186480S2471311", + "deepid": 1744197136, + "locked": false, + "properties": [ + { + "nid": 768421321, + "strtype": "OBJECT/Name", + "strval": "Screen1 Label3", + "InheritedType": 10 + }, + { + "nid": 1968908557, + "strtype": "LABEL/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 247236939, + "strtype": "LABEL/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 61493129, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1279143560, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": -1288738998, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": -705584082, + "strtype": "OBJECT/Align", + "strval": "CENTER", + "InheritedType": 3 + }, + { + "nid": 1136535165, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": -1775006322, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 668105945, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 569431364, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1630764848, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -535982790, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -703030184, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -955720851, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 128209807, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -666429562, + "strtype": "LABEL/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1534268579, + "strtype": "LABEL/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -2062981217, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -100551205, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -813001541, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 315108684, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -114625118, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1538054804, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 881190556, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -2008827562, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 543094896, + "strtype": "LABEL/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1739255701, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 926261608, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 1087428325, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 710605013, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -1267366761, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1648789018, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -465692407, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 259710568, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 605592415, + "strtype": "LABEL/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -614171990, + "strtype": "LABEL/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1274952779, + "strtype": "LABEL/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1196235289, + "strtype": "LABEL/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -941315432, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": 1493802716, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": -846609210, + "strtype": "LABEL/Text", + "strval": "LV_SYMBOL_PLAY", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -169174998, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": 1168885217, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "LABEL" + } + ], + "locked": false, + "properties": [ + { + "nid": 1589302611, + "strtype": "OBJECT/Name", + "strval": "playbutton", + "InheritedType": 10 + }, + { + "nid": 2023958936, + "strtype": "BUTTON/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 883305061, + "strtype": "BUTTON/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": -675571315, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 483113871, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 1373937859, + "flags": 17, + "strtype": "OBJECT/Size", + "intarray": [ + 48, + 48 + ], + "InheritedType": 7 + }, + { + "nid": -1350483583, + "strtype": "OBJECT/Align", + "strval": "RIGHT_MID", + "InheritedType": 3 + }, + { + "nid": -428542643, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": -948719095, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1592351677, + "strtype": "OBJECT/Clickable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -598750578, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 644485506, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1950426769, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 175111144, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1026708970, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -905245580, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1505142414, + "strtype": "BUTTON/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1210840900, + "strtype": "BUTTON/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -681190793, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -679540114, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1358169722, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1314643040, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1738195762, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 621111986, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 759167708, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1410322306, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 2042483848, + "strtype": "BUTTON/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 674656452, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 89186766, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 574920142, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 1732642989, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 10954893, + "strtype": "OBJECT/Checked", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1525392534, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1851451361, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 872498834, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 160076551, + "strtype": "BUTTON/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1153562740, + "strtype": "BUTTON/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1719183281, + "strtype": "BUTTON/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 677503380, + "strtype": "BUTTON/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "part": "lv.PART.MAIN", + "childs": [ + { + "nid": 272140409, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": 650150665, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -547472153, + "strtype": "_style/StyleState", + "strval": "CHECKED", + "childs": [ + { + "nid": 336602657, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 558555342, + "strtype": "_style/StyleState", + "strval": "PRESSED", + "childs": [ + { + "nid": 2003992284, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -1375378946, + "strtype": "_style/StyleState", + "strval": "DISABLED", + "childs": [ + { + "nid": -256328219, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 855311850, + "strtype": "_style/StyleState", + "strval": "FOCUSED", + "childs": [ + { + "nid": 1040756563, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 369875057, + "strtype": "_style/StyleState", + "strval": "CHECKED|PRESSED", + "childs": [ + { + "nid": 729683925, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 1863295554, + "strtype": "_style/StyleState", + "strval": "USER_1", + "childs": [ + { + "nid": 1125116942, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -1906060616, + "strtype": "_style/StyleState", + "strval": "USER_2", + "childs": [ + { + "nid": 524202732, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -329498224, + "strtype": "_style/StyleState", + "strval": "USER_3", + "childs": [ + { + "nid": 1826624367, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -620901523, + "strtype": "_style/StyleState", + "strval": "USER_4", + "childs": [ + { + "nid": -94549582, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + } + ], + "nid": 1961753684, + "strtype": "BUTTON/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text ", + "InheritedType": 11 + } + ], + "saved_objtypeKey": "BUTTON", + "tree_closed": true + } + ], + "locked": false, + "properties": [ + { + "nid": -2075149394, + "strtype": "OBJECT/Name", + "strval": "header", + "InheritedType": 10 + }, + { + "nid": -1876954458, + "strtype": "PANEL/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": -1194864081, + "strtype": "PANEL/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 694045763, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1217914541, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 0, + 0 + ], + "InheritedType": 7 + }, + { + "nid": 874312949, + "flags": 18, + "strtype": "OBJECT/Size", + "intarray": [ + 100, + 75 + ], + "InheritedType": 7 + }, + { + "nid": 437051860, + "strtype": "OBJECT/Align", + "strval": "TOP_MID", + "InheritedType": 3 + }, + { + "nid": 1441842160, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 1959303567, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1809136658, + "strtype": "OBJECT/Clickable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1189011624, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -724844703, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -3259665, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -2133884457, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1634568808, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1026346933, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1867658826, + "strtype": "PANEL/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -734423796, + "strtype": "PANEL/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 175907554, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 48882448, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -81820157, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1633626360, + "strtype": "OBJECT/Scrollable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -427043301, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -949157007, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1424714686, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -153007185, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 826553609, + "strtype": "PANEL/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -86749051, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 2073125369, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 1748060483, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": -1081332065, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -410497902, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -306248434, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 709524044, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 }, { "nid": 117979946, @@ -3036,153 +3899,1014 @@ "part": "lv.PART.MAIN", "childs": [ { - "nid": 1134044721, - "strtype": "_style/StyleState", - "strval": "DEFAULT", - "childs": [ + "nid": 1134044721, + "strtype": "_style/StyleState", + "strval": "DEFAULT", + "childs": [ + { + "nid": -526081505, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -466270481, + "strtype": "_style/StyleState", + "strval": "CHECKED", + "childs": [ + { + "nid": 1542392930, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 1121318053, + "strtype": "_style/StyleState", + "strval": "PRESSED", + "childs": [ + { + "nid": 1078579350, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 1654887382, + "strtype": "_style/StyleState", + "strval": "CHECKED|PRESSED", + "childs": [ + { + "nid": -1772694724, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -2073654570, + "strtype": "_style/StyleState", + "strval": "DISABLED", + "childs": [ + { + "nid": -335591984, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -220865925, + "strtype": "_style/StyleState", + "strval": "USER_1", + "childs": [ + { + "nid": -1041993235, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 1807781073, + "strtype": "_style/StyleState", + "strval": "USER_2", + "childs": [ + { + "nid": 2028238605, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": 1610814953, + "strtype": "_style/StyleState", + "strval": "USER_3", + "childs": [ + { + "nid": -1524328064, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + }, + { + "nid": -309799346, + "strtype": "_style/StyleState", + "strval": "USER_4", + "childs": [ + { + "nid": -942183200, + "strtype": "_style/Paddings", + "InheritedType": 1 + } + ], + "InheritedType": 1 + } + ], + "nid": -1411917506, + "strtype": "SCREEN/Style_main", + "strval": "lv.PART.MAIN, Rectangle, Pad, Text", + "InheritedType": 11 + }, + { + "part": "lv.PART.SCROLLBAR", + "childs": [], + "nid": 133477643, + "strtype": "SCREEN/Style_scrollbar", + "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": -169599917, + "strtype": "SCREEN/Don't export screen", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "SCREEN" + }, + { + "guid": "GUID11083184-186700S7241311", + "deepid": -1399510403, + "children": [ + { + "guid": "GUID71242329-188602S5821311", + "deepid": -1351072138, + "children": [ + { + "guid": "GUID32676449-548839S9982362", + "deepid": 1739464789, + "locked": false, + "properties": [ + { + "nid": -505342994, + "strtype": "OBJECT/Name", + "strval": "battery charging symbol", + "InheritedType": 10 + }, + { + "nid": 1069819125, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 1938708871, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 1800684457, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -850602471, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 70, + 5 + ], + "InheritedType": 7 + }, + { + "nid": -581071880, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 581958178, + "strtype": "OBJECT/Align", + "strval": "TOP_LEFT", + "InheritedType": 3 + }, + { + "nid": -1139583681, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 105434333, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 397840947, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1321283374, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1042463961, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1234649191, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -960654190, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1660571155, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 136876109, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 859329838, + "strtype": "OBJECT/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1676280042, + "strtype": "OBJECT/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1593121358, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -322974162, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 616874257, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -2056859151, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 858602679, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1770123112, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 249899280, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -2052417651, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1869422114, + "strtype": "OBJECT/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 413163513, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 903066872, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 877869640, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": -314534994, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -1234203175, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -2133510284, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 2037092725, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -451281141, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 690999965, + "strtype": "OBJECT/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 373563845, + "strtype": "OBJECT/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1120271089, + "strtype": "OBJECT/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -802067, + "strtype": "OBJECT/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1460721529, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": 133648956, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": 845382162, + "strtype": "LABEL/Text", + "strval": "", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": 738953596, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": 161410287, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "LABEL", + "tree_closed": true + }, + { + "guid": "GUID53809853-544982S2492362", + "deepid": 1739464789, + "locked": false, + "properties": [ + { + "nid": -478763953, + "strtype": "OBJECT/Name", + "strval": "battery soc symbol", + "InheritedType": 10 + }, + { + "nid": -902583121, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 2020974250, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": -992805291, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -1920869996, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 52, + 5 + ], + "InheritedType": 7 + }, + { + "nid": -850885536, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": -909859038, + "strtype": "OBJECT/Align", + "strval": "TOP_LEFT", + "InheritedType": 3 + }, + { + "nid": -412904941, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 1150643211, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1834940880, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 2111077903, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 73173452, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -2146845741, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -575514635, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 828941628, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1982169423, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -491606607, + "strtype": "OBJECT/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -110746769, + "strtype": "OBJECT/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1162755900, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 967865159, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1733771548, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 612312284, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1702761904, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1622870150, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1830206200, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 431190922, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 559403095, + "strtype": "OBJECT/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1560541440, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -269597124, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 204051245, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 1487945881, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": 887330226, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 2110465699, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 35017909, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -842818394, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 533199250, + "strtype": "OBJECT/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -738843056, + "strtype": "OBJECT/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 854719703, + "strtype": "OBJECT/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -100456451, + "strtype": "OBJECT/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 668113181, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -1419618762, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": -1648513398, + "strtype": "LABEL/Text", + "strval": "LV_SYMBOL_BATTERY_EMPTY", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -810936272, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": -1362371227, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "LABEL", + "tree_closed": true + }, + { + "guid": "GUID1294866-546094S5722362", + "deepid": 1739464789, + "locked": false, + "properties": [ + { + "nid": 5433230, + "strtype": "OBJECT/Name", + "strval": "battery soc text", + "InheritedType": 10 + }, + { + "nid": -315095726, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 197456820, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": -1723585304, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": -989797405, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + 52, + -5 + ], + "InheritedType": 7 + }, + { + "nid": -561921628, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": 555308498, + "strtype": "OBJECT/Align", + "strval": "BOTTOM_LEFT", + "InheritedType": 3 + }, + { + "nid": 1032045947, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": -1675201118, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -49508017, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -399414722, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1947384554, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1866186047, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -2116422941, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1900077170, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -189463838, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, { - "nid": -526081505, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -466270481, - "strtype": "_style/StyleState", - "strval": "CHECKED", - "childs": [ + "nid": 485763596, + "strtype": "OBJECT/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, { - "nid": 1542392930, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 1121318053, - "strtype": "_style/StyleState", - "strval": "PRESSED", - "childs": [ + "nid": 134382473, + "strtype": "OBJECT/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, { - "nid": 1078579350, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 1654887382, - "strtype": "_style/StyleState", - "strval": "CHECKED|PRESSED", - "childs": [ + "nid": -983427511, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, { - "nid": -1772694724, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -2073654570, - "strtype": "_style/StyleState", - "strval": "DISABLED", - "childs": [ + "nid": 1368768272, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, { - "nid": -335591984, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -220865925, - "strtype": "_style/StyleState", - "strval": "USER_1", - "childs": [ + "nid": 183672847, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, { - "nid": -1041993235, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 1807781073, - "strtype": "_style/StyleState", - "strval": "USER_2", - "childs": [ + "nid": 578764366, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, { - "nid": 2028238605, - "strtype": "_style/Paddings", - "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": 1610814953, - "strtype": "_style/StyleState", - "strval": "USER_3", - "childs": [ + "nid": -1597324350, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, { - "nid": -1524328064, - "strtype": "_style/Paddings", + "nid": 709472135, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -2006520239, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -410803559, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 993458096, + "strtype": "OBJECT/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1003472685, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -792259332, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": -1851767240, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": -1941503328, + "flags": 1048576, + "strtype": "OBJECT/States", "InheritedType": 1 - } - ], - "InheritedType": 1 - }, - { - "nid": -309799346, - "strtype": "_style/StyleState", - "strval": "USER_4", - "childs": [ + }, { - "nid": -942183200, - "strtype": "_style/Paddings", + "nid": -981202412, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1961949069, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 2051926707, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1183214454, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -594792558, + "strtype": "OBJECT/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -898856953, + "strtype": "OBJECT/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1088870629, + "strtype": "OBJECT/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1635344945, + "strtype": "OBJECT/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 596042228, + "strtype": "LABEL/Label", "InheritedType": 1 + }, + { + "nid": 316997854, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": -735072748, + "strtype": "LABEL/Text", + "strval": "100%", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -97494653, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": -610222201, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 } ], - "InheritedType": 1 - } - ], - "nid": -1411917506, - "strtype": "SCREEN/Style_main", - "strval": "lv.PART.MAIN, Rectangle, Pad, Text", - "InheritedType": 11 - }, - { - "part": "lv.PART.SCROLLBAR", - "childs": [], - "nid": 133477643, - "strtype": "SCREEN/Style_scrollbar", - "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", - "InheritedType": 11 - }, - { - "nid": -169599917, - "strtype": "SCREEN/Don't export screen", - "strval": "False", - "InheritedType": 2 - } - ], - "saved_objtypeKey": "SCREEN" - }, - { - "guid": "GUID11083184-186700S7241311", - "deepid": -1399510403, - "children": [ - { - "guid": "GUID71242329-188602S5821311", - "deepid": -1351072138, - "children": [ + "saved_objtypeKey": "LABEL", + "tree_closed": true + }, { "guid": "GUID93658042-187867S5801311", "deepid": -319034606, @@ -14935,7 +16659,7 @@ "description": "", "board": "Eclipse with SDL for development on PC", "board_version": "v1.0.1", - "editor_version": "1.3.3", + "editor_version": "1.3.4", "image": "", "force_export_images": false, "flat_export": false, @@ -14944,9 +16668,9 @@ "theme_dark": true, "theme_color1": 5, "theme_color2": 0, - "exportFolderPath": "/Users/bob/esp-cpp/esp-box-emu/components/gui/generated", + "uiExportFolderPath": "/Users/bob/esp-cpp/esp-box-emu/components/gui/generated", "projectExportFolderPath": "/Users/bob/esp-cpp/esp-box-emu/components/gui/squareline", - "backup_cnt": 24, + "backup_cnt": 45, "autosave_cnt": 0, "lvgl_version": "8.3.3", "callfuncsexport": "C_FILE", diff --git a/components/gui/src/gui.cpp b/components/gui/src/gui.cpp index a774d558..ff8dd805 100644 --- a/components/gui/src/gui.cpp +++ b/components/gui/src/gui.cpp @@ -352,6 +352,43 @@ void Gui::on_pressed(lv_event_t *e) { } } +void Gui::on_battery(const std::vector& data) { + // parse the data as a BatteryInfo message + std::error_code ec; + auto battery_info = espp::deserialize(data, ec); + if (ec) { + return; + } + // update the battery soc labels (text) + lv_label_set_text(ui_battery_soc_text, fmt::format("{} %", battery_info.level).c_str()); + lv_label_set_text(ui_battery_soc_text_1, fmt::format("{} %", battery_info.level).c_str()); + // update the battery soc symbols (battery icon using LVGL font symbols) + if (battery_info.level > 90) { + lv_label_set_text(ui_battery_soc_symbol, LV_SYMBOL_BATTERY_FULL); + lv_label_set_text(ui_battery_soc_symbol_1, LV_SYMBOL_BATTERY_FULL); + } else if (battery_info.level > 70) { + lv_label_set_text(ui_battery_soc_symbol, LV_SYMBOL_BATTERY_3); + lv_label_set_text(ui_battery_soc_symbol_1, LV_SYMBOL_BATTERY_3); + } else if (battery_info.level > 50) { + lv_label_set_text(ui_battery_soc_symbol, LV_SYMBOL_BATTERY_2); + lv_label_set_text(ui_battery_soc_symbol_1, LV_SYMBOL_BATTERY_2); + } else if (battery_info.level > 30) { + lv_label_set_text(ui_battery_soc_symbol, LV_SYMBOL_BATTERY_1); + lv_label_set_text(ui_battery_soc_symbol_1, LV_SYMBOL_BATTERY_1); + } else { + lv_label_set_text(ui_battery_soc_symbol, LV_SYMBOL_BATTERY_EMPTY); + lv_label_set_text(ui_battery_soc_symbol_1, LV_SYMBOL_BATTERY_EMPTY); + } + // if the battery is charging, then show the charging symbol + if (battery_info.charging) { + lv_label_set_text(ui_battery_charging_symbol, LV_SYMBOL_CHARGE); + lv_label_set_text(ui_battery_charging_symbol_1, LV_SYMBOL_CHARGE); + } else { + lv_label_set_text(ui_battery_charging_symbol, ""); + lv_label_set_text(ui_battery_charging_symbol_1, ""); + } +} + void Gui::toggle_usb() { fmt::print("Toggling USB\n"); // toggle the usb diff --git a/components/menu/generated/CMakeLists.txt b/components/menu/generated/CMakeLists.txt index 92b63e50..a6e73d85 100644 --- a/components/menu/generated/CMakeLists.txt +++ b/components/menu/generated/CMakeLists.txt @@ -1,6 +1,7 @@ SET(SOURCES screens/ui_Screen1.c ui.c components/ui_comp_hook.c - ui_helpers.c) + ui_helpers.c + ui_events.c) add_library(ui ${SOURCES}) diff --git a/components/menu/generated/components/ui_comp_hook.c b/components/menu/generated/components/ui_comp_hook.c index e38a8559..9c9d488f 100644 --- a/components/menu/generated/components/ui_comp_hook.c +++ b/components/menu/generated/components/ui_comp_hook.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.2.0 // Project name: menu diff --git a/components/menu/generated/filelist.txt b/components/menu/generated/filelist.txt index 92447dd3..56bfe02d 100644 --- a/components/menu/generated/filelist.txt +++ b/components/menu/generated/filelist.txt @@ -2,3 +2,4 @@ screens/ui_Screen1.c ui.c components/ui_comp_hook.c ui_helpers.c +ui_events.c diff --git a/components/menu/generated/screens/ui_Screen1.c b/components/menu/generated/screens/ui_Screen1.c index b2c47c01..dc8bb9fd 100644 --- a/components/menu/generated/screens/ui_Screen1.c +++ b/components/menu/generated/screens/ui_Screen1.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.2.0 // Project name: menu @@ -15,11 +15,27 @@ lv_obj_set_width( ui_menu_panel, lv_pct(100)); lv_obj_set_height( ui_menu_panel, lv_pct(100)); lv_obj_set_align( ui_menu_panel, LV_ALIGN_CENTER ); -ui_menu_title = lv_label_create(ui_menu_panel); -lv_obj_set_width( ui_menu_title, LV_SIZE_CONTENT); /// 1 -lv_obj_set_height( ui_menu_title, LV_SIZE_CONTENT); /// 1 -lv_obj_set_align( ui_menu_title, LV_ALIGN_TOP_RIGHT ); -lv_label_set_text(ui_menu_title,"Emulation Paused"); +ui_menu_battery_soc_symbol = lv_label_create(ui_menu_panel); +lv_obj_set_width( ui_menu_battery_soc_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_menu_battery_soc_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_align( ui_menu_battery_soc_symbol, LV_ALIGN_TOP_RIGHT ); +lv_label_set_text(ui_menu_battery_soc_symbol,LV_SYMBOL_BATTERY_EMPTY); + +ui_menu_battery_charging_symbol = lv_label_create(ui_menu_panel); +lv_obj_set_width( ui_menu_battery_charging_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_menu_battery_charging_symbol, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_menu_battery_charging_symbol, -64 ); +lv_obj_set_y( ui_menu_battery_charging_symbol, 0 ); +lv_obj_set_align( ui_menu_battery_charging_symbol, LV_ALIGN_TOP_RIGHT ); +lv_label_set_text(ui_menu_battery_charging_symbol,""); + +ui_menu_battery_soc_text = lv_label_create(ui_menu_panel); +lv_obj_set_width( ui_menu_battery_soc_text, LV_SIZE_CONTENT); /// 1 +lv_obj_set_height( ui_menu_battery_soc_text, LV_SIZE_CONTENT); /// 1 +lv_obj_set_x( ui_menu_battery_soc_text, -24 ); +lv_obj_set_y( ui_menu_battery_soc_text, 0 ); +lv_obj_set_align( ui_menu_battery_soc_text, LV_ALIGN_TOP_RIGHT ); +lv_label_set_text(ui_menu_battery_soc_text,"100%"); ui_fps_label = lv_label_create(ui_menu_panel); lv_obj_set_width( ui_fps_label, LV_SIZE_CONTENT); /// 1 @@ -83,6 +99,7 @@ lv_label_set_text(ui_Label11,LV_SYMBOL_VOLUME_MID); ui_Bar2 = lv_bar_create(ui_Panel3); lv_bar_set_value(ui_Bar2,25,LV_ANIM_OFF); +lv_bar_set_start_value(ui_Bar2, 0, LV_ANIM_OFF); lv_obj_set_width( ui_Bar2, 150); lv_obj_set_height( ui_Bar2, 10); lv_obj_set_x( ui_Bar2, -50 ); @@ -129,6 +146,7 @@ lv_label_set_text(ui_Label13,LV_SYMBOL_MINUS); ui_brightness_bar = lv_bar_create(ui_Panel5); lv_bar_set_value(ui_brightness_bar,25,LV_ANIM_OFF); +lv_bar_set_start_value(ui_brightness_bar, 0, LV_ANIM_OFF); lv_obj_set_width( ui_brightness_bar, 185); lv_obj_set_height( ui_brightness_bar, 10); lv_obj_set_align( ui_brightness_bar, LV_ALIGN_CENTER ); diff --git a/components/menu/generated/ui.c b/components/menu/generated/ui.c index c3254b4f..bd4d8d7a 100644 --- a/components/menu/generated/ui.c +++ b/components/menu/generated/ui.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.2.0 // Project name: menu @@ -13,7 +13,9 @@ void ui_Screen1_screen_init(void); lv_obj_t *ui_Screen1; lv_obj_t *ui_menu_panel; -lv_obj_t *ui_menu_title; +lv_obj_t *ui_menu_battery_soc_symbol; +lv_obj_t *ui_menu_battery_charging_symbol; +lv_obj_t *ui_menu_battery_soc_text; lv_obj_t *ui_fps_label; lv_obj_t *ui_resume_btn; lv_obj_t *ui_Label6; diff --git a/components/menu/generated/ui.h b/components/menu/generated/ui.h index 0f74c97f..1451cf70 100644 --- a/components/menu/generated/ui.h +++ b/components/menu/generated/ui.h @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.2.0 // Project name: menu @@ -18,7 +18,9 @@ extern "C" { void ui_Screen1_screen_init(void); extern lv_obj_t *ui_Screen1; extern lv_obj_t *ui_menu_panel; -extern lv_obj_t *ui_menu_title; +extern lv_obj_t *ui_menu_battery_soc_symbol; +extern lv_obj_t *ui_menu_battery_charging_symbol; +extern lv_obj_t *ui_menu_battery_soc_text; extern lv_obj_t *ui_fps_label; extern lv_obj_t *ui_resume_btn; extern lv_obj_t *ui_Label6; diff --git a/components/menu/generated/ui_events.h b/components/menu/generated/ui_events.h index 806d1142..392eb78b 100644 --- a/components/menu/generated/ui_events.h +++ b/components/menu/generated/ui_events.h @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.2.0 // Project name: menu diff --git a/components/menu/generated/ui_helpers.c b/components/menu/generated/ui_helpers.c index 5881dffe..04cd6b57 100644 --- a/components/menu/generated/ui_helpers.c +++ b/components/menu/generated/ui_helpers.c @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.2.0 // Project name: menu diff --git a/components/menu/generated/ui_helpers.h b/components/menu/generated/ui_helpers.h index d0d6965b..ece98ce6 100644 --- a/components/menu/generated/ui_helpers.h +++ b/components/menu/generated/ui_helpers.h @@ -1,5 +1,5 @@ // This file was generated by SquareLine Studio -// SquareLine Studio version: SquareLine Studio 1.3.3 +// SquareLine Studio version: SquareLine Studio 1.3.4 // LVGL version: 8.2.0 // Project name: menu diff --git a/components/menu/include/menu.hpp b/components/menu/include/menu.hpp index 1ec836bd..36cf9f9d 100644 --- a/components/menu/include/menu.hpp +++ b/components/menu/include/menu.hpp @@ -9,6 +9,7 @@ #include "task.hpp" #include "logger.hpp" +#include "battery.hpp" #include "input.h" #include "hal_events.hpp" #include "i2s_audio.h" @@ -51,11 +52,15 @@ class Menu { espp::EventManager::get().add_subscriber(mute_button_topic, "menu", std::bind(&Menu::on_mute_button_pressed, this, _1)); + espp::EventManager::get().add_subscriber(battery_topic, + "menu", + std::bind(&Menu::on_battery, this, _1)); logger_.info("Menu created"); } ~Menu() { - espp::EventManager::get().remove_subscriber(mute_button_topic, "gui"); + espp::EventManager::get().remove_subscriber(mute_button_topic, "menu"); + espp::EventManager::get().remove_subscriber(battery_topic, "menu"); task_->stop(); deinit_ui(); } @@ -177,6 +182,8 @@ class Menu { void on_value_changed(lv_event_t *e); void on_key(lv_event_t *e); + void on_battery(const std::vector& data); + // LVLG menu objects lv_style_t button_style_; lv_group_t *group_{nullptr}; diff --git a/components/menu/squareline/menu.sll b/components/menu/squareline/menu.sll index 1c72d8c8..6dbea519 100644 --- a/components/menu/squareline/menu.sll +++ b/components/menu/squareline/menu.sll @@ -1 +1 @@ -{"name":"menu.spj","depth":2,"width":320,"height":240,"rotation":0,"offset_x":0,"offset_y":0,"shape":"RECTANGLE","multilang":"","description":"The menu that the user can open while playing a rom.","board":"ESP-BOX","board_version":"1.0.0","editor_version":"1.3.3","image":"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","force_export_images":false,"flat_export":false,"pointfilter":false,"theme_simplified":false,"theme_dark":true,"theme_color1":5,"theme_color2":0,"exportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/menu/generated","projectExportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/menu/squareline","backup_cnt":14,"autosave_cnt":0,"lvgl_version":"8.2.0","callfuncsexport":"C_FILE","lvgl_include_path":""} \ No newline at end of file +{"name":"menu.spj","depth":2,"width":320,"height":240,"rotation":0,"offset_x":0,"offset_y":0,"shape":"RECTANGLE","multilang":"","description":"The menu that the user can open while playing a rom.","board":"ESP-BOX","board_version":"1.0.0","editor_version":"1.3.4","image":"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","force_export_images":false,"flat_export":false,"pointfilter":false,"theme_simplified":false,"theme_dark":true,"theme_color1":5,"theme_color2":0,"uiExportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/menu/generated","projectExportFolderPath":"/Users/bob/esp-cpp/esp-box-emu/components/menu/squareline","backup_cnt":17,"autosave_cnt":0,"lvgl_version":"8.2.0","callfuncsexport":"C_FILE","lvgl_include_path":""} \ No newline at end of file diff --git a/components/menu/squareline/menu.spj b/components/menu/squareline/menu.spj index 31fa9fd9..d9cdd30c 100644 --- a/components/menu/squareline/menu.spj +++ b/components/menu/squareline/menu.spj @@ -12,19 +12,19 @@ "deepid": 1938164396, "children": [ { - "guid": "GUID31231652-473373S988257", - "deepid": -1759796579, + "guid": "GUID39633216-598766S7892362", + "deepid": -1000614417, "locked": false, "properties": [ { - "nid": -1168951726, + "nid": 1470375087, "strtype": "OBJECT/Name", - "strval": "menu title", + "strval": "menu battery soc symbol", "InheritedType": 10 }, { - "nid": 1951489133, - "strtype": "LABEL/Layout", + "nid": -902246280, + "strtype": "OBJECT/Layout", "InheritedType": 1 }, { @@ -35,18 +35,18 @@ "CrossAlignment": 0, "TrackAlignment": 0, "LayoutType": 0, - "nid": -23987501, - "strtype": "LABEL/Layout_type", + "nid": -774299015, + "strtype": "OBJECT/Layout_type", "strval": "No_layout", "InheritedType": 13 }, { - "nid": -1138651574, + "nid": -830823087, "strtype": "OBJECT/Transform", "InheritedType": 1 }, { - "nid": -1202746772, + "nid": 274924660, "flags": 17, "strtype": "OBJECT/Position", "intarray": [ @@ -56,7 +56,7 @@ "InheritedType": 7 }, { - "nid": 596632477, + "nid": 57366701, "flags": 51, "strtype": "OBJECT/Size", "intarray": [ @@ -66,236 +66,811 @@ "InheritedType": 7 }, { - "nid": -1107605690, + "nid": 148960062, "strtype": "OBJECT/Align", "strval": "TOP_RIGHT", "InheritedType": 3 }, { - "nid": -2068611080, + "nid": 704462636, "flags": 1048576, "strtype": "OBJECT/Flags", "InheritedType": 1 }, { - "nid": 514166785, + "nid": 1743585739, "strtype": "OBJECT/Hidden", "strval": "False", "InheritedType": 2 }, { - "nid": 834090453, + "nid": 147892370, "strtype": "OBJECT/Clickable", "strval": "False", "InheritedType": 2 }, { - "nid": -229901605, + "nid": -911321518, "strtype": "OBJECT/Checkable", "strval": "False", "InheritedType": 2 }, { - "nid": -200733565, + "nid": -398004781, "strtype": "OBJECT/Press_lock", "strval": "True", "InheritedType": 2 }, { - "nid": -1664009333, + "nid": -17804437, "strtype": "OBJECT/Click_focusable", "strval": "True", "InheritedType": 2 }, { - "nid": -931222528, + "nid": 1402442326, "strtype": "OBJECT/Adv_hittest", "strval": "False", "InheritedType": 2 }, { - "nid": 1573757838, + "nid": 350758480, "strtype": "OBJECT/Ignore_layout", "strval": "False", "InheritedType": 2 }, { - "nid": -1626510289, + "nid": -515438835, "strtype": "OBJECT/Floating", "strval": "False", "InheritedType": 2 }, { - "nid": 1853085241, - "strtype": "LABEL/Overflow_visible", + "nid": 1991986050, + "strtype": "OBJECT/Overflow_visible", "strval": "False", "InheritedType": 2 }, { - "nid": 1650040554, - "strtype": "LABEL/Flex_in_new_track", + "nid": 1204748817, + "strtype": "OBJECT/Flex_in_new_track", "strval": "False", "InheritedType": 2 }, { - "nid": 323297519, + "nid": 1246740689, "strtype": "OBJECT/Event_bubble", "strval": "False", "InheritedType": 2 }, { - "nid": 678414772, + "nid": 2074439527, "strtype": "OBJECT/Gesture_bubble", "strval": "True", "InheritedType": 2 }, { - "nid": 539332422, + "nid": 1144515962, "strtype": "OBJECT/Snappable", "strval": "True", "InheritedType": 2 }, { - "nid": -386438660, + "nid": 624880911, "strtype": "OBJECT/Scrollable", "strval": "True", "InheritedType": 2 }, { - "nid": 1162762786, + "nid": 1758993062, "strtype": "OBJECT/Scroll_elastic", "strval": "True", "InheritedType": 2 }, { - "nid": -1190801012, + "nid": -393780670, "strtype": "OBJECT/Scroll_momentum", "strval": "True", "InheritedType": 2 }, { - "nid": 1848773353, + "nid": 27904620, "strtype": "OBJECT/Scroll_on_focus", "strval": "False", "InheritedType": 2 }, { - "nid": -13432167, + "nid": 767633268, "strtype": "OBJECT/Scroll_chain", "strval": "True", "InheritedType": 2 }, { - "nid": -1846518823, - "strtype": "LABEL/Scroll_with_arrow", + "nid": -1455739584, + "strtype": "OBJECT/Scroll_with_arrow", "strval": "False", "InheritedType": 2 }, { - "nid": 1512601134, + "nid": -1209036372, "strtype": "OBJECT/Scroll_one", "strval": "False", "InheritedType": 2 }, { - "nid": -2095861269, + "nid": 1917349559, "strtype": "OBJECT/Scrollbar_mode", "strval": "AUTO", "InheritedType": 3 }, { - "nid": -391340092, + "nid": 434455895, "strtype": "OBJECT/Scroll_direction", "strval": "ALL", "InheritedType": 3 }, { - "nid": -1138352299, + "nid": -1943773680, "flags": 1048576, "strtype": "OBJECT/States", "InheritedType": 1 }, { - "nid": -1293058613, + "nid": 384753567, "strtype": "OBJECT/Checked", "strval": "False", "InheritedType": 2 }, { - "nid": -2025662424, + "nid": -266798119, "strtype": "OBJECT/Disabled", "strval": "False", "InheritedType": 2 }, { - "nid": 1868675785, + "nid": 54420568, "strtype": "OBJECT/Focused", "strval": "False", "InheritedType": 2 }, { - "nid": 1250112172, + "nid": 2006339892, "strtype": "OBJECT/Pressed", "strval": "False", "InheritedType": 2 }, { - "nid": -1372564053, - "strtype": "LABEL/User_1", + "nid": 384945531, + "strtype": "OBJECT/User_1", "strval": "False", "InheritedType": 2 }, { - "nid": -318905041, - "strtype": "LABEL/User_2", + "nid": 137660547, + "strtype": "OBJECT/User_2", "strval": "False", "InheritedType": 2 }, { - "nid": 1539337188, - "strtype": "LABEL/User_3", + "nid": 468407175, + "strtype": "OBJECT/User_3", "strval": "False", "InheritedType": 2 }, { - "nid": 1797108554, - "strtype": "LABEL/User_4", + "nid": -1152451634, + "strtype": "OBJECT/User_4", "strval": "False", "InheritedType": 2 }, { - "nid": 304865421, + "nid": -630854993, "strtype": "LABEL/Label", "InheritedType": 1 }, { - "nid": 781657167, + "nid": -266006031, "strtype": "LABEL/Long_mode", "strval": "WRAP", "InheritedType": 3 }, { - "nid": 578175868, + "nid": 580522280, "strtype": "LABEL/Text", - "strval": "Emulation Paused", + "strval": "LV_SYMBOL_BATTERY_EMPTY", "InheritedType": 10 }, { "part": "lv.PART.MAIN", "childs": [], - "nid": -397118578, + "nid": -1538578106, "strtype": "LABEL/Style_main", "strval": "lv.PART.MAIN, Text, Rectangle, Pad", "InheritedType": 11 }, { - "nid": 396729725, + "nid": 221469152, "strtype": "LABEL/Recolor", "strval": "False", "InheritedType": 2 } ], - "saved_objtypeKey": "LABEL" + "saved_objtypeKey": "LABEL", + "tree_closed": true + }, + { + "guid": "GUID32696414-599878S92362", + "deepid": -1000614417, + "locked": false, + "properties": [ + { + "nid": -1323124486, + "strtype": "OBJECT/Name", + "strval": "menu battery charging symbol", + "InheritedType": 10 + }, + { + "nid": 100732073, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": 1756049396, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": -700928975, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 1993024668, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + -64, + 0 + ], + "InheritedType": 7 + }, + { + "nid": -82104982, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": -1356042857, + "strtype": "OBJECT/Align", + "strval": "TOP_RIGHT", + "InheritedType": 3 + }, + { + "nid": 1706381619, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": 2052092901, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1484167300, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1201866718, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -770259491, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -495529552, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -519211450, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 226378784, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1362629197, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1473159213, + "strtype": "OBJECT/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -65231554, + "strtype": "OBJECT/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -686580032, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -464786018, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 2089000685, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 376296286, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -209769834, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -575153750, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1969650937, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1566867568, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1285716877, + "strtype": "OBJECT/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -525763794, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 116676398, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": 920618110, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 1859310268, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -1473971363, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1358473750, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 328187563, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 545016979, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1925874615, + "strtype": "OBJECT/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -949187184, + "strtype": "OBJECT/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -2125901573, + "strtype": "OBJECT/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1260707695, + "strtype": "OBJECT/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -31111349, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -1081302849, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": 208477070, + "strtype": "LABEL/Text", + "strval": "", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -1249653575, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": 1720183809, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "LABEL", + "tree_closed": true + }, + { + "guid": "GUID15306022-600427S6092362", + "deepid": -1000614417, + "locked": false, + "properties": [ + { + "nid": -783075690, + "strtype": "OBJECT/Name", + "strval": "menu battery soc text", + "InheritedType": 10 + }, + { + "nid": -2018784910, + "strtype": "OBJECT/Layout", + "InheritedType": 1 + }, + { + "Flow": 0, + "Wrap": false, + "Reversed": false, + "MainAlignment": 0, + "CrossAlignment": 0, + "TrackAlignment": 0, + "LayoutType": 0, + "nid": -468545354, + "strtype": "OBJECT/Layout_type", + "strval": "No_layout", + "InheritedType": 13 + }, + { + "nid": 168240749, + "strtype": "OBJECT/Transform", + "InheritedType": 1 + }, + { + "nid": 934734857, + "flags": 17, + "strtype": "OBJECT/Position", + "intarray": [ + -24, + 0 + ], + "InheritedType": 7 + }, + { + "nid": -698356335, + "flags": 51, + "strtype": "OBJECT/Size", + "intarray": [ + 1, + 1 + ], + "InheritedType": 7 + }, + { + "nid": -951355936, + "strtype": "OBJECT/Align", + "strval": "TOP_RIGHT", + "InheritedType": 3 + }, + { + "nid": -161762030, + "flags": 1048576, + "strtype": "OBJECT/Flags", + "InheritedType": 1 + }, + { + "nid": -138433355, + "strtype": "OBJECT/Hidden", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1621606604, + "strtype": "OBJECT/Clickable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1058420767, + "strtype": "OBJECT/Checkable", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -637039575, + "strtype": "OBJECT/Press_lock", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1564326302, + "strtype": "OBJECT/Click_focusable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -609410301, + "strtype": "OBJECT/Adv_hittest", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -217284723, + "strtype": "OBJECT/Ignore_layout", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1063310005, + "strtype": "OBJECT/Floating", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -755892534, + "strtype": "OBJECT/Overflow_visible", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1150216821, + "strtype": "OBJECT/Flex_in_new_track", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 587599233, + "strtype": "OBJECT/Event_bubble", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1564889002, + "strtype": "OBJECT/Gesture_bubble", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1153209098, + "strtype": "OBJECT/Snappable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 327507618, + "strtype": "OBJECT/Scrollable", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1735174606, + "strtype": "OBJECT/Scroll_elastic", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1281976757, + "strtype": "OBJECT/Scroll_momentum", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": -1337559999, + "strtype": "OBJECT/Scroll_on_focus", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -2132663065, + "strtype": "OBJECT/Scroll_chain", + "strval": "True", + "InheritedType": 2 + }, + { + "nid": 1863089403, + "strtype": "OBJECT/Scroll_with_arrow", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -997097001, + "strtype": "OBJECT/Scroll_one", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1122595826, + "strtype": "OBJECT/Scrollbar_mode", + "strval": "AUTO", + "InheritedType": 3 + }, + { + "nid": -2069122835, + "strtype": "OBJECT/Scroll_direction", + "strval": "ALL", + "InheritedType": 3 + }, + { + "nid": 1656114736, + "flags": 1048576, + "strtype": "OBJECT/States", + "InheritedType": 1 + }, + { + "nid": -416182498, + "strtype": "OBJECT/Checked", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -39111603, + "strtype": "OBJECT/Disabled", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 937847046, + "strtype": "OBJECT/Focused", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -1217235590, + "strtype": "OBJECT/Pressed", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 1195825841, + "strtype": "OBJECT/User_1", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -278127678, + "strtype": "OBJECT/User_2", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": -591076901, + "strtype": "OBJECT/User_3", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 2092919948, + "strtype": "OBJECT/User_4", + "strval": "False", + "InheritedType": 2 + }, + { + "nid": 941831802, + "strtype": "LABEL/Label", + "InheritedType": 1 + }, + { + "nid": -1937218322, + "strtype": "LABEL/Long_mode", + "strval": "WRAP", + "InheritedType": 3 + }, + { + "nid": -562493104, + "strtype": "LABEL/Text", + "strval": "100%", + "InheritedType": 10 + }, + { + "part": "lv.PART.MAIN", + "childs": [], + "nid": -635260397, + "strtype": "LABEL/Style_main", + "strval": "lv.PART.MAIN, Text, Rectangle, Pad", + "InheritedType": 11 + }, + { + "nid": 976446039, + "strtype": "LABEL/Recolor", + "strval": "False", + "InheritedType": 2 + } + ], + "saved_objtypeKey": "LABEL", + "tree_closed": true }, { "guid": "GUID70158934-695564S02338", @@ -11577,7 +12152,7 @@ "description": "The menu that the user can open while playing a rom.", "board": "ESP-BOX", "board_version": "1.0.0", - "editor_version": "1.3.3", + "editor_version": "1.3.4", "image": "", "force_export_images": false, "flat_export": false, @@ -11586,9 +12161,9 @@ "theme_dark": true, "theme_color1": 5, "theme_color2": 0, - "exportFolderPath": "/Users/bob/esp-cpp/esp-box-emu/components/menu/generated", + "uiExportFolderPath": "/Users/bob/esp-cpp/esp-box-emu/components/menu/generated", "projectExportFolderPath": "/Users/bob/esp-cpp/esp-box-emu/components/menu/squareline", - "backup_cnt": 13, + "backup_cnt": 16, "autosave_cnt": 0, "lvgl_version": "8.2.0", "callfuncsexport": "C_FILE", diff --git a/components/menu/src/menu.cpp b/components/menu/src/menu.cpp index a5e850f8..2bd07293 100644 --- a/components/menu/src/menu.cpp +++ b/components/menu/src/menu.cpp @@ -331,6 +331,35 @@ void Menu::on_pressed(lv_event_t *e) { } } +void Menu::on_battery(const std::vector& data) { + // parse the data as a BatteryInfo message + std::error_code ec; + auto battery_info = espp::deserialize(data, ec); + if (ec) { + return; + } + // update the battery soc labels (text) + lv_label_set_text(ui_menu_battery_soc_text, fmt::format("{} %", battery_info.level).c_str()); + // update the battery soc symbols (battery icon using LVGL font symbols) + if (battery_info.level > 90) { + lv_label_set_text(ui_menu_battery_soc_symbol, LV_SYMBOL_BATTERY_FULL); + } else if (battery_info.level > 70) { + lv_label_set_text(ui_menu_battery_soc_symbol, LV_SYMBOL_BATTERY_3); + } else if (battery_info.level > 50) { + lv_label_set_text(ui_menu_battery_soc_symbol, LV_SYMBOL_BATTERY_2); + } else if (battery_info.level > 30) { + lv_label_set_text(ui_menu_battery_soc_symbol, LV_SYMBOL_BATTERY_1); + } else { + lv_label_set_text(ui_menu_battery_soc_symbol, LV_SYMBOL_BATTERY_EMPTY); + } + // if the battery is charging, then show the charging symbol + if (battery_info.charging) { + lv_label_set_text(ui_menu_battery_charging_symbol, LV_SYMBOL_CHARGE); + } else { + lv_label_set_text(ui_menu_battery_charging_symbol, ""); + } +} + void Menu::on_key(lv_event_t *e) { // get the target of the event lv_obj_t * target = lv_event_get_target(e); diff --git a/main/main.cpp b/main/main.cpp index f9f32665..9409235a 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -13,6 +13,7 @@ #include "format.hpp" #include "st7789.hpp" #include "task_monitor.hpp" +#include "timer.hpp" #include "usb.hpp" #include "drv2605.hpp" @@ -114,6 +115,35 @@ extern "C" void app_main(void) { haptic_motor.set_waveform(3, espp::Drv2605::Waveform::END, ec); }; + auto battery_test_timer = espp::Timer({.name = "Timer 1", + .period = 1s, + .callback = []() { + static int new_battery_level = 100; + static bool new_battery_charging = false; + if (new_battery_charging) { + new_battery_level += 10; + } else { + new_battery_level -= 10; + } + if (new_battery_level > 100) { + new_battery_level = 100; + new_battery_charging = false; + } else if (new_battery_level < 0) { + new_battery_level = 0; + new_battery_charging = true; + } + BatteryInfo bi { + .level = (uint8_t)new_battery_level, + .charging = new_battery_charging, + }; + std::vector buffer; + espp::serialize(bi, buffer); + espp::EventManager::get().publish(battery_topic, buffer); + // don't want to stop the timer + return false; + }, + .log_level = espp::Logger::Verbosity::WARN}); + fmt::print("initializing gui...\n"); // initialize the gui Gui gui({