diff --git a/Boards/CYD-2432S024C/Source/hal/YellowDisplayConstants.h b/Boards/CYD-2432S024C/Source/hal/YellowDisplayConstants.h index a188175b..71dfc446 100644 --- a/Boards/CYD-2432S024C/Source/hal/YellowDisplayConstants.h +++ b/Boards/CYD-2432S024C/Source/hal/YellowDisplayConstants.h @@ -15,7 +15,7 @@ #define TWODOTFOUR_LCD_VERTICAL_RESOLUTION 320 #define TWODOTFOUR_LCD_BITS_PER_PIXEL 16 #define TWODOTFOUR_LCD_DRAW_BUFFER_HEIGHT (TWODOTFOUR_LCD_VERTICAL_RESOLUTION / 10) -#define TWODOTFOUR_LCD_DRAW_BUFFER_SIZE (TWODOTFOUR_LCD_HORIZONTAL_RESOLUTION * TWODOTFOUR_LCD_DRAW_BUFFER_HEIGHT * (TWODOTFOUR_LCD_BITS_PER_PIXEL / 8)) +#define TWODOTFOUR_LCD_DRAW_BUFFER_SIZE (TWODOTFOUR_LCD_HORIZONTAL_RESOLUTION * TWODOTFOUR_LCD_DRAW_BUFFER_HEIGHT) #define TWODOTFOUR_LCD_PIN_CS GPIO_NUM_15 #define TWODOTFOUR_LCD_PIN_DC GPIO_NUM_2 diff --git a/Boards/LilygoTdeck/Source/hal/TdeckDisplay.cpp b/Boards/LilygoTdeck/Source/hal/TdeckDisplay.cpp index 00caaa99..8d42a7eb 100644 --- a/Boards/LilygoTdeck/Source/hal/TdeckDisplay.cpp +++ b/Boards/LilygoTdeck/Source/hal/TdeckDisplay.cpp @@ -138,8 +138,8 @@ bool TdeckDisplay::start() { .io_handle = ioHandle, .panel_handle = panelHandle, .control_handle = nullptr, - .buffer_size = TDECK_LCD_HORIZONTAL_RESOLUTION * TDECK_LCD_DRAW_BUFFER_HEIGHT * (TDECK_LCD_BITS_PER_PIXEL / 8), - .double_buffer = true, // Disable to free up SPIRAM + .buffer_size = TDECK_LCD_HORIZONTAL_RESOLUTION * TDECK_LCD_DRAW_BUFFER_HEIGHT, + .double_buffer = false, // Disable to free up memory .trans_size = 0, .hres = TDECK_LCD_HORIZONTAL_RESOLUTION, .vres = TDECK_LCD_VERTICAL_RESOLUTION, @@ -151,8 +151,8 @@ bool TdeckDisplay::start() { }, .color_format = LV_COLOR_FORMAT_RGB565, .flags = { - .buff_dma = false, - .buff_spiram = true, + .buff_dma = true, + .buff_spiram = false, .sw_rotate = false, .swap_bytes = false, .full_refresh = false, diff --git a/Boards/M5stackCore2/Source/hal/Core2Display.cpp b/Boards/M5stackCore2/Source/hal/Core2Display.cpp index 501360fe..e1e9446e 100644 --- a/Boards/M5stackCore2/Source/hal/Core2Display.cpp +++ b/Boards/M5stackCore2/Source/hal/Core2Display.cpp @@ -73,7 +73,7 @@ bool Core2Display::start() { .panel_handle = panelHandle, .control_handle = nullptr, .buffer_size = CORE2_LCD_DRAW_BUFFER_SIZE, - .double_buffer = true, + .double_buffer = false, .trans_size = 0, .hres = CORE2_LCD_HORIZONTAL_RESOLUTION, .vres = CORE2_LCD_VERTICAL_RESOLUTION, @@ -85,8 +85,8 @@ bool Core2Display::start() { }, .color_format = LV_COLOR_FORMAT_RGB565, .flags = { - .buff_dma = false, - .buff_spiram = true, + .buff_dma = true, + .buff_spiram = false, .sw_rotate = false, .swap_bytes = true, .full_refresh = false, diff --git a/Boards/M5stackCore2/Source/hal/Core2DisplayConstants.h b/Boards/M5stackCore2/Source/hal/Core2DisplayConstants.h index fa65c5a1..d6e3053a 100644 --- a/Boards/M5stackCore2/Source/hal/Core2DisplayConstants.h +++ b/Boards/M5stackCore2/Source/hal/Core2DisplayConstants.h @@ -8,4 +8,4 @@ #define CORE2_LCD_VERTICAL_RESOLUTION 240 #define CORE2_LCD_BITS_PER_PIXEL 16 #define CORE2_LCD_DRAW_BUFFER_HEIGHT (CORE2_LCD_VERTICAL_RESOLUTION / 10) -#define CORE2_LCD_DRAW_BUFFER_SIZE (CORE2_LCD_HORIZONTAL_RESOLUTION * CORE2_LCD_DRAW_BUFFER_HEIGHT * (CORE2_LCD_BITS_PER_PIXEL / 8)) +#define CORE2_LCD_DRAW_BUFFER_SIZE (CORE2_LCD_HORIZONTAL_RESOLUTION * CORE2_LCD_DRAW_BUFFER_HEIGHT) diff --git a/Boards/M5stackCoreS3/Source/hal/CoreS3Display.cpp b/Boards/M5stackCoreS3/Source/hal/CoreS3Display.cpp index cff6f5bc..25d568f9 100644 --- a/Boards/M5stackCoreS3/Source/hal/CoreS3Display.cpp +++ b/Boards/M5stackCoreS3/Source/hal/CoreS3Display.cpp @@ -93,7 +93,7 @@ bool CoreS3Display::start() { .panel_handle = panelHandle, .control_handle = nullptr, .buffer_size = CORES3_LCD_DRAW_BUFFER_SIZE, - .double_buffer = true, + .double_buffer = false, .trans_size = 0, .hres = CORES3_LCD_HORIZONTAL_RESOLUTION, .vres = CORES3_LCD_VERTICAL_RESOLUTION, @@ -105,8 +105,8 @@ bool CoreS3Display::start() { }, .color_format = LV_COLOR_FORMAT_RGB565, .flags = { - .buff_dma = false, - .buff_spiram = true, + .buff_dma = true, + .buff_spiram = false, .sw_rotate = false, .swap_bytes = true, .full_refresh = false, diff --git a/Boards/M5stackCoreS3/Source/hal/CoreS3DisplayConstants.h b/Boards/M5stackCoreS3/Source/hal/CoreS3DisplayConstants.h index c815eeb1..a757bbe3 100644 --- a/Boards/M5stackCoreS3/Source/hal/CoreS3DisplayConstants.h +++ b/Boards/M5stackCoreS3/Source/hal/CoreS3DisplayConstants.h @@ -8,4 +8,4 @@ #define CORES3_LCD_VERTICAL_RESOLUTION 240 #define CORES3_LCD_BITS_PER_PIXEL 16 #define CORES3_LCD_DRAW_BUFFER_HEIGHT (CORES3_LCD_VERTICAL_RESOLUTION / 10) -#define CORES3_LCD_DRAW_BUFFER_SIZE (CORES3_LCD_HORIZONTAL_RESOLUTION * CORES3_LCD_DRAW_BUFFER_HEIGHT * (CORES3_LCD_BITS_PER_PIXEL / 8)) +#define CORES3_LCD_DRAW_BUFFER_SIZE (CORES3_LCD_HORIZONTAL_RESOLUTION * CORES3_LCD_DRAW_BUFFER_HEIGHT) diff --git a/Boards/UnPhone/Source/hal/UnPhoneDisplay.cpp b/Boards/UnPhone/Source/hal/UnPhoneDisplay.cpp index d3ba9b43..d1c078a9 100644 --- a/Boards/UnPhone/Source/hal/UnPhoneDisplay.cpp +++ b/Boards/UnPhone/Source/hal/UnPhoneDisplay.cpp @@ -3,8 +3,6 @@ #include "UnPhoneTouch.h" #include -#include - #include "UnPhoneFeatures.h" #include "esp_err.h" #include "hx8357/disp_spi.h" @@ -30,15 +28,13 @@ bool UnPhoneDisplay::start() { lv_display_set_color_format(displayHandle, LV_COLOR_FORMAT_NATIVE); // TODO malloc to use SPIRAM - buffer1 = (uint8_t*)heap_caps_malloc(BUFFER_SIZE, MALLOC_CAP_SPIRAM); - buffer2 = (uint8_t*)heap_caps_malloc(BUFFER_SIZE, MALLOC_CAP_SPIRAM); - assert(buffer1 != nullptr); - assert(buffer2 != nullptr); + buffer = (uint8_t*)heap_caps_malloc(BUFFER_SIZE, MALLOC_CAP_DMA); + assert(buffer != nullptr); lv_display_set_buffers( displayHandle, - buffer1, - buffer2, + buffer, + nullptr, BUFFER_SIZE, LV_DISPLAY_RENDER_MODE_PARTIAL ); @@ -61,10 +57,8 @@ bool UnPhoneDisplay::stop() { lv_display_delete(displayHandle); displayHandle = nullptr; - heap_caps_free(buffer1); - heap_caps_free(buffer2); - buffer1 = nullptr; - buffer2 = nullptr; + heap_caps_free(buffer); + buffer = nullptr; return true; } diff --git a/Boards/UnPhone/Source/hal/UnPhoneDisplay.h b/Boards/UnPhone/Source/hal/UnPhoneDisplay.h index 2810530c..84e87d3d 100644 --- a/Boards/UnPhone/Source/hal/UnPhoneDisplay.h +++ b/Boards/UnPhone/Source/hal/UnPhoneDisplay.h @@ -11,8 +11,7 @@ class UnPhoneDisplay : public tt::hal::Display { private: lv_display_t* displayHandle = nullptr; - uint8_t* buffer1 = nullptr; - uint8_t* buffer2 = nullptr; + uint8_t* buffer = nullptr; public: diff --git a/Data/system/app/WifiManage/lock.png b/Data/system/app/WifiManage/lock.png deleted file mode 100644 index 0594d913..00000000 Binary files a/Data/system/app/WifiManage/lock.png and /dev/null differ diff --git a/Data/system/app/WifiManage/signal_medium.png b/Data/system/app/WifiManage/signal_medium.png deleted file mode 100644 index a15156d5..00000000 Binary files a/Data/system/app/WifiManage/signal_medium.png and /dev/null differ diff --git a/Data/system/app/WifiManage/signal_strong.png b/Data/system/app/WifiManage/signal_strong.png deleted file mode 100644 index 8d05a0f3..00000000 Binary files a/Data/system/app/WifiManage/signal_strong.png and /dev/null differ diff --git a/Data/system/app/WifiManage/signal_weak.png b/Data/system/app/WifiManage/signal_weak.png deleted file mode 100644 index badd73b7..00000000 Binary files a/Data/system/app/WifiManage/signal_weak.png and /dev/null differ diff --git a/Tactility/Source/app/wifimanage/View.cpp b/Tactility/Source/app/wifimanage/View.cpp index 6ac01914..48016f9f 100644 --- a/Tactility/Source/app/wifimanage/View.cpp +++ b/Tactility/Source/app/wifimanage/View.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -17,14 +18,16 @@ namespace tt::app::wifimanage { std::shared_ptr _Nullable optWifiManage(); -const char* getWifiStatusIconForRssi(int rssi) { - if (rssi >= -60) { - return "signal_strong.png"; - } else if (rssi >= -70) { - return "signal_medium.png"; - } else { - return "signal_weak.png"; +uint8_t mapRssiToPercentage(int rssi) { + auto abs_rssi = std::abs(rssi); + if (abs_rssi < 30U) { + abs_rssi = 30U; + } else if (abs_rssi > 90U) { + abs_rssi = 90U; } + + auto percentage = (float)(90U - abs_rssi) / 60.f * 100.f; + return (uint8_t)percentage; } static void on_enable_switch_changed(lv_event_t* event) { @@ -115,18 +118,19 @@ void View::createSsidListItem(const service::wifi::ApRecord& record, bool isConn lv_obj_t* connecting_spinner = tt::lvgl::spinner_create(wrapper); lv_obj_align_to(connecting_spinner, info_wrapper, LV_ALIGN_OUT_LEFT_MID, -8, 0); } else { - const char* icon = getWifiStatusIconForRssi(record.rssi); - auto icon_path = paths->getSystemPathLvgl(icon); - lv_obj_t* rssi_image = lv_image_create(wrapper); - lv_image_set_src(rssi_image, icon_path.c_str()); - lv_obj_align(rssi_image, LV_ALIGN_RIGHT_MID, -42, 0); + auto percentage = mapRssiToPercentage(record.rssi); - if (record.auth_mode != WIFI_AUTH_OPEN) { - lv_obj_t* lock_image = lv_image_create(wrapper); - auto lock = paths->getSystemPathLvgl("lock.png"); - lv_image_set_src(lock_image, lock.c_str()); - lv_obj_align(lock_image, LV_ALIGN_RIGHT_MID, -62, 0); + std::string auth_info; + if (record.auth_mode == WIFI_AUTH_OPEN) { + auth_info = "(open) "; + } else { + auth_info = ""; } + + std::string info = std::format("{}{}%", auth_info, percentage); + lv_obj_t* open_label = lv_label_create(wrapper); + lv_label_set_text(open_label, info.c_str()); + lv_obj_align(open_label, LV_ALIGN_RIGHT_MID, -42, 0); } } diff --git a/sdkconfig.board.cyd-2432S024c b/sdkconfig.board.cyd-2432S024c index 0a7be86e..2f8b527a 100644 --- a/sdkconfig.board.cyd-2432S024c +++ b/sdkconfig.board.cyd-2432S024c @@ -38,8 +38,7 @@ CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y CONFIG_FLASHMODE_QIO=y # LVGL -CONFIG_LV_DISP_DEF_REFR_PERIOD=17 -CONFIG_LV_INDEV_DEF_READ_PERIOD=17 +CONFIG_LV_DISP_DEF_REFR_PERIOD=10 CONFIG_LV_DPI_DEF=160 # Fix for IRAM CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y diff --git a/sdkconfig.board.lilygo-tdeck b/sdkconfig.board.lilygo-tdeck index 01b9acf9..23a2b858 100644 --- a/sdkconfig.board.lilygo-tdeck +++ b/sdkconfig.board.lilygo-tdeck @@ -47,9 +47,8 @@ CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y # SPI Flash (can set back to 80MHz after ESP-IDF bug is resolved) CONFIG_ESPTOOLPY_FLASHFREQ_120M=y # LVGL -CONFIG_LV_DISP_DEF_REFR_PERIOD=17 -CONFIG_LV_INDEV_DEF_READ_PERIOD=17 CONFIG_LV_DPI_DEF=139 +CONFIG_LV_DISP_DEF_REFR_PERIOD=10 # USB CONFIG_TINYUSB_MSC_ENABLED=y CONFIG_TINYUSB_MSC_MOUNT_PATH="/sdcard" \ No newline at end of file diff --git a/sdkconfig.board.m5stack-core2 b/sdkconfig.board.m5stack-core2 index 5dd02e0e..f32cbe38 100644 --- a/sdkconfig.board.m5stack-core2 +++ b/sdkconfig.board.m5stack-core2 @@ -46,8 +46,7 @@ CONFIG_SPIRAM_MODE_QUAD=y CONFIG_SPIRAM_SPEED_80M=y CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y # LVGL -CONFIG_LV_DISP_DEF_REFR_PERIOD=17 -CONFIG_LV_INDEV_DEF_READ_PERIOD=17 +CONFIG_LV_DISP_DEF_REFR_PERIOD=10 CONFIG_LV_DPI_DEF=139 # Fix for IRAM CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y diff --git a/sdkconfig.board.m5stack-cores3 b/sdkconfig.board.m5stack-cores3 index c3eefef5..63cb0df4 100644 --- a/sdkconfig.board.m5stack-cores3 +++ b/sdkconfig.board.m5stack-cores3 @@ -52,8 +52,7 @@ CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y # SPI Flash (can set back to 80MHz after ESP-IDF bug is resolved) CONFIG_ESPTOOLPY_FLASHFREQ_120M=y # LVGL -CONFIG_LV_DISP_DEF_REFR_PERIOD=17 -CONFIG_LV_INDEV_DEF_READ_PERIOD=17 +CONFIG_LV_DISP_DEF_REFR_PERIOD=10 CONFIG_LV_DPI_DEF=139 # USB CONFIG_TINYUSB_MSC_ENABLED=y diff --git a/sdkconfig.board.unphone b/sdkconfig.board.unphone index 855555e6..fe0f4401 100644 --- a/sdkconfig.board.unphone +++ b/sdkconfig.board.unphone @@ -44,9 +44,8 @@ CONFIG_SPIRAM_SPEED_80M=y CONFIG_SPIRAM_USE_MALLOC=y CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y # LVGL -CONFIG_LV_DISP_DEF_REFR_PERIOD=17 -CONFIG_LV_INDEV_DEF_READ_PERIOD=17 CONFIG_LV_DPI_DEF=139 +CONFIG_LV_DISP_DEF_REFR_PERIOD=10 CONFIG_LV_COLOR_DEPTH_24=y CONFIG_LV_COLOR_DEPTH=24 # TinyUSB: Currently not working (no error in log, mounting takes minutes or more) diff --git a/sdkconfig.defaults b/sdkconfig.defaults index db740a9a..8fb7ba73 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -31,5 +31,4 @@ CONFIG_FATFS_VOLUME_COUNT=3 # Hardware defaults CONFIG_TT_BOARD_CUSTOM=y # LVGL -CONFIG_LV_DISP_DEF_REFR_PERIOD=17 -CONFIG_LV_INDEV_DEF_READ_PERIOD=17 +CONFIG_LV_DISP_DEF_REFR_PERIOD=10