From 5568c70cb4f38c349fd228333d751c854427873c Mon Sep 17 00:00:00 2001 From: Terrence Date: Sat, 8 Mar 2025 19:56:56 +0800 Subject: [PATCH] fix no oled display error --- main/CMakeLists.txt | 1 - .../bread-compact-esp32/esp32_bread_board.cc | 3 ++- .../bread-compact-ml307/compact_ml307_board.cc | 3 ++- .../bread-compact-wifi/compact_wifi_board.cc | 3 ++- main/boards/common/board.cc | 2 +- main/boards/kevin-box-1/kevin_box_board.cc | 3 ++- main/boards/kevin-box-2/kevin_box_board.cc | 3 ++- main/boards/tudouzi/kevin_box_board.cc | 3 ++- .../xingzhi-cube-0.96oled-ml307.cc | 3 ++- .../xingzhi-cube-0.96oled-wifi.cc | 3 ++- main/boards/xmini-c3/xmini_c3_board.cc | 3 ++- main/display/display.h | 8 ++++++++ main/display/no_display.cc | 11 ----------- main/display/no_display.h | 16 ---------------- 14 files changed, 27 insertions(+), 38 deletions(-) delete mode 100644 main/display/no_display.cc delete mode 100644 main/display/no_display.h diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 2436ad3d..271e4efa 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -8,7 +8,6 @@ set(SOURCES "audio_codecs/audio_codec.cc" "led/circular_strip.cc" "led/gpio_led.cc" "display/display.cc" - "display/no_display.cc" "display/lcd_display.cc" "display/oled_display.cc" "protocols/protocol.cc" diff --git a/main/boards/bread-compact-esp32/esp32_bread_board.cc b/main/boards/bread-compact-esp32/esp32_bread_board.cc index cedee79b..148969de 100644 --- a/main/boards/bread-compact-esp32/esp32_bread_board.cc +++ b/main/boards/bread-compact-esp32/esp32_bread_board.cc @@ -29,7 +29,7 @@ private: i2c_master_bus_handle_t display_i2c_bus_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; - OledDisplay* display_ = nullptr; + Display* display_ = nullptr; void InitializeDisplayI2c() { i2c_master_bus_config_t bus_config = { @@ -83,6 +83,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/bread-compact-ml307/compact_ml307_board.cc b/main/boards/bread-compact-ml307/compact_ml307_board.cc index f0ac6f52..c197dbea 100644 --- a/main/boards/bread-compact-ml307/compact_ml307_board.cc +++ b/main/boards/bread-compact-ml307/compact_ml307_board.cc @@ -24,7 +24,7 @@ private: i2c_master_bus_handle_t display_i2c_bus_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; - OledDisplay* display_ = nullptr; + Display* display_ = nullptr; Button boot_button_; Button touch_button_; Button volume_up_button_; @@ -82,6 +82,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/bread-compact-wifi/compact_wifi_board.cc b/main/boards/bread-compact-wifi/compact_wifi_board.cc index 8758609b..4a0b1b52 100644 --- a/main/boards/bread-compact-wifi/compact_wifi_board.cc +++ b/main/boards/bread-compact-wifi/compact_wifi_board.cc @@ -25,7 +25,7 @@ private: i2c_master_bus_handle_t display_i2c_bus_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; - OledDisplay* display_ = nullptr; + Display* display_ = nullptr; Button boot_button_; Button touch_button_; Button volume_up_button_; @@ -83,6 +83,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/common/board.cc b/main/boards/common/board.cc index b4919647..893ee7f1 100644 --- a/main/boards/common/board.cc +++ b/main/boards/common/board.cc @@ -1,7 +1,7 @@ #include "board.h" #include "system_info.h" #include "settings.h" -#include "display/no_display.h" +#include "display/display.h" #include "assets/lang_config.h" #include diff --git a/main/boards/kevin-box-1/kevin_box_board.cc b/main/boards/kevin-box-1/kevin_box_board.cc index 33d451d1..e06c24a4 100644 --- a/main/boards/kevin-box-1/kevin_box_board.cc +++ b/main/boards/kevin-box-1/kevin_box_board.cc @@ -26,7 +26,7 @@ private: i2c_master_bus_handle_t codec_i2c_bus_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; - OledDisplay* display_ = nullptr; + Display* display_ = nullptr; Button boot_button_; Button volume_up_button_; Button volume_down_button_; @@ -108,6 +108,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/kevin-box-2/kevin_box_board.cc b/main/boards/kevin-box-2/kevin_box_board.cc index 32a2630e..1eee73f8 100644 --- a/main/boards/kevin-box-2/kevin_box_board.cc +++ b/main/boards/kevin-box-2/kevin_box_board.cc @@ -57,7 +57,7 @@ private: i2c_master_bus_handle_t codec_i2c_bus_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; - OledDisplay* display_ = nullptr; + Display* display_ = nullptr; Pmic* pmic_ = nullptr; Button boot_button_; Button volume_up_button_; @@ -137,6 +137,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/tudouzi/kevin_box_board.cc b/main/boards/tudouzi/kevin_box_board.cc index eeac0e27..dd3ff285 100644 --- a/main/boards/tudouzi/kevin_box_board.cc +++ b/main/boards/tudouzi/kevin_box_board.cc @@ -58,7 +58,7 @@ private: i2c_master_bus_handle_t codec_i2c_bus_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; - OledDisplay* display_ = nullptr; + Display* display_ = nullptr; Pmic* pmic_ = nullptr; Button boot_button_; Button volume_up_button_; @@ -156,6 +156,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc b/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc index de7791b8..d735e57f 100644 --- a/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc +++ b/main/boards/xingzhi-cube-0.96oled-ml307/xingzhi-cube-0.96oled-ml307.cc @@ -30,7 +30,7 @@ private: Button boot_button_; Button volume_up_button_; Button volume_down_button_; - OledDisplay* display_; + Display* display_; PowerSaveTimer* power_save_timer_; PowerManager* power_manager_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; @@ -127,6 +127,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc b/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc index 66d1c84c..7b99813b 100644 --- a/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc +++ b/main/boards/xingzhi-cube-0.96oled-wifi/xingzhi-cube-0.96oled-wifi.cc @@ -32,7 +32,7 @@ private: Button boot_button_; Button volume_up_button_; Button volume_down_button_; - OledDisplay* display_; + Display* display_; PowerSaveTimer* power_save_timer_; PowerManager* power_manager_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; @@ -129,6 +129,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/boards/xmini-c3/xmini_c3_board.cc b/main/boards/xmini-c3/xmini_c3_board.cc index 156dce27..9e765b57 100644 --- a/main/boards/xmini-c3/xmini_c3_board.cc +++ b/main/boards/xmini-c3/xmini_c3_board.cc @@ -27,7 +27,7 @@ private: i2c_master_bus_handle_t codec_i2c_bus_; esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; - OledDisplay* display_ = nullptr; + Display* display_ = nullptr; Button boot_button_; bool press_to_talk_enabled_ = false; PowerSaveTimer* power_save_timer_; @@ -107,6 +107,7 @@ private: ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_)); if (esp_lcd_panel_init(panel_) != ESP_OK) { ESP_LOGE(TAG, "Failed to initialize display"); + display_ = new NoDisplay(); return; } diff --git a/main/display/display.h b/main/display/display.h index 3e816e19..f1ead9a7 100644 --- a/main/display/display.h +++ b/main/display/display.h @@ -75,4 +75,12 @@ private: Display *display_; }; +class NoDisplay : public Display { +private: + virtual bool Lock(int timeout_ms = 0) override { + return true; + } + virtual void Unlock() override {} +}; + #endif diff --git a/main/display/no_display.cc b/main/display/no_display.cc deleted file mode 100644 index 0c717be0..00000000 --- a/main/display/no_display.cc +++ /dev/null @@ -1,11 +0,0 @@ -#include "no_display.h" - -NoDisplay::NoDisplay() {} - -NoDisplay::~NoDisplay() {} - -bool NoDisplay::Lock(int timeout_ms) { - return true; -} - -void NoDisplay::Unlock() {} diff --git a/main/display/no_display.h b/main/display/no_display.h deleted file mode 100644 index e9d4eefe..00000000 --- a/main/display/no_display.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _NO_DISPLAY_H_ -#define _NO_DISPLAY_H_ - -#include "display.h" - -class NoDisplay : public Display { -private: - virtual bool Lock(int timeout_ms = 0) override; - virtual void Unlock() override; - -public: - NoDisplay(); - ~NoDisplay(); -}; - -#endif