Update to 2.0.0
This commit is contained in:
@@ -1,87 +1,30 @@
|
||||
#include "custom_lcd_display.h"
|
||||
|
||||
#include "config.h"
|
||||
#include "custom_lcd_display.h"
|
||||
#include "lcd_display.h"
|
||||
#include "assets/lang_config.h"
|
||||
#include "settings.h"
|
||||
#include "board.h"
|
||||
|
||||
#include <vector>
|
||||
#include <cstring>
|
||||
|
||||
#include <esp_lcd_panel_io.h>
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#include <freertos/task.h>
|
||||
#include <freertos/semphr.h>
|
||||
#include <esp_log.h>
|
||||
#include <esp_err.h>
|
||||
#include <esp_lvgl_port.h>
|
||||
#include "assets/lang_config.h"
|
||||
#include <cstring>
|
||||
#include "settings.h"
|
||||
|
||||
#include "esp_lcd_panel_io.h"
|
||||
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "freertos/semphr.h"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "board.h"
|
||||
|
||||
|
||||
#define TAG "CustomLcdDisplay"
|
||||
|
||||
// Color definitions for dark theme
|
||||
#define DARK_BACKGROUND_COLOR lv_color_hex(0x121212) // Dark background
|
||||
#define DARK_TEXT_COLOR lv_color_white() // White text
|
||||
#define DARK_CHAT_BACKGROUND_COLOR lv_color_hex(0x1E1E1E) // Slightly lighter than background
|
||||
#define DARK_USER_BUBBLE_COLOR lv_color_hex(0x1A6C37) // Dark green
|
||||
#define DARK_ASSISTANT_BUBBLE_COLOR lv_color_hex(0x333333) // Dark gray
|
||||
#define DARK_SYSTEM_BUBBLE_COLOR lv_color_hex(0x2A2A2A) // Medium gray
|
||||
#define DARK_SYSTEM_TEXT_COLOR lv_color_hex(0xAAAAAA) // Light gray text
|
||||
#define DARK_BORDER_COLOR lv_color_hex(0x333333) // Dark gray border
|
||||
#define DARK_LOW_BATTERY_COLOR lv_color_hex(0xFF0000) // Red for dark mode
|
||||
|
||||
// Color definitions for light theme
|
||||
#define LIGHT_BACKGROUND_COLOR lv_color_white() // White background
|
||||
#define LIGHT_TEXT_COLOR lv_color_black() // Black text
|
||||
#define LIGHT_CHAT_BACKGROUND_COLOR lv_color_hex(0xE0E0E0) // Light gray background
|
||||
#define LIGHT_USER_BUBBLE_COLOR lv_color_hex(0x95EC69) // WeChat green
|
||||
#define LIGHT_ASSISTANT_BUBBLE_COLOR lv_color_white() // White
|
||||
#define LIGHT_SYSTEM_BUBBLE_COLOR lv_color_hex(0xE0E0E0) // Light gray
|
||||
#define LIGHT_SYSTEM_TEXT_COLOR lv_color_hex(0x666666) // Dark gray text
|
||||
#define LIGHT_BORDER_COLOR lv_color_hex(0xE0E0E0) // Light gray border
|
||||
#define LIGHT_LOW_BATTERY_COLOR lv_color_black() // Black for light mode
|
||||
|
||||
|
||||
// Define dark theme colors
|
||||
static const ThemeColors DARK_THEME = {
|
||||
.background = DARK_BACKGROUND_COLOR,
|
||||
.text = DARK_TEXT_COLOR,
|
||||
.chat_background = DARK_CHAT_BACKGROUND_COLOR,
|
||||
.user_bubble = DARK_USER_BUBBLE_COLOR,
|
||||
.assistant_bubble = DARK_ASSISTANT_BUBBLE_COLOR,
|
||||
.system_bubble = DARK_SYSTEM_BUBBLE_COLOR,
|
||||
.system_text = DARK_SYSTEM_TEXT_COLOR,
|
||||
.border = DARK_BORDER_COLOR,
|
||||
.low_battery = DARK_LOW_BATTERY_COLOR
|
||||
};
|
||||
|
||||
// Define light theme colors
|
||||
static const ThemeColors LIGHT_THEME = {
|
||||
.background = LIGHT_BACKGROUND_COLOR,
|
||||
.text = LIGHT_TEXT_COLOR,
|
||||
.chat_background = LIGHT_CHAT_BACKGROUND_COLOR,
|
||||
.user_bubble = LIGHT_USER_BUBBLE_COLOR,
|
||||
.assistant_bubble = LIGHT_ASSISTANT_BUBBLE_COLOR,
|
||||
.system_bubble = LIGHT_SYSTEM_BUBBLE_COLOR,
|
||||
.system_text = LIGHT_SYSTEM_TEXT_COLOR,
|
||||
.border = LIGHT_BORDER_COLOR,
|
||||
.low_battery = LIGHT_LOW_BATTERY_COLOR
|
||||
};
|
||||
|
||||
// Current theme - initialize based on default config
|
||||
static ThemeColors current_theme = LIGHT_THEME;
|
||||
|
||||
static SemaphoreHandle_t trans_done_sem = NULL;
|
||||
static uint16_t *trans_act;
|
||||
static uint16_t *trans_buf_1;
|
||||
static uint16_t *trans_buf_2;
|
||||
|
||||
|
||||
|
||||
bool CustomLcdDisplay::lvgl_port_flush_io_ready_callback(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_io_event_data_t *edata, void *user_ctx)
|
||||
{
|
||||
BaseType_t taskAwake = pdFALSE;
|
||||
@@ -99,7 +42,6 @@ void CustomLcdDisplay::lvgl_port_flush_callback(lv_display_t *drv, const lv_area
|
||||
esp_lcd_panel_handle_t panel_handle = (esp_lcd_panel_handle_t)lv_display_get_driver_data(drv);
|
||||
assert(panel_handle != NULL);
|
||||
|
||||
|
||||
size_t len = lv_area_get_size(area);
|
||||
lv_draw_sw_rgb565_swap(color_map, len);
|
||||
|
||||
@@ -249,11 +191,9 @@ void CustomLcdDisplay::lvgl_port_flush_callback(lv_display_t *drv, const lv_area
|
||||
lv_disp_flush_ready(drv);
|
||||
}
|
||||
|
||||
|
||||
CustomLcdDisplay::CustomLcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handle_t panel,
|
||||
int width, int height, int offset_x, int offset_y, bool mirror_x, bool mirror_y, bool swap_xy,
|
||||
DisplayFonts fonts)
|
||||
: LcdDisplay(panel_io, panel, fonts, width, height) {
|
||||
int width, int height, int offset_x, int offset_y, bool mirror_x, bool mirror_y, bool swap_xy)
|
||||
: LcdDisplay(panel_io, panel, width, height) {
|
||||
// width_ = width;
|
||||
// height_ = height;
|
||||
|
||||
@@ -341,12 +281,6 @@ CustomLcdDisplay::CustomLcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_p
|
||||
lv_display_set_offset(display_, offset_x, offset_y);
|
||||
}
|
||||
|
||||
// Update the theme
|
||||
if (current_theme_name_ == "dark") {
|
||||
current_theme = DARK_THEME;
|
||||
} else if (current_theme_name_ == "light") {
|
||||
current_theme = LIGHT_THEME;
|
||||
}
|
||||
|
||||
SetupUI();
|
||||
}
|
||||
@@ -8,8 +8,7 @@ class CustomLcdDisplay : public LcdDisplay {
|
||||
public:
|
||||
CustomLcdDisplay(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_handle_t panel,
|
||||
int width, int height, int offset_x, int offset_y,
|
||||
bool mirror_x, bool mirror_y, bool swap_xy,
|
||||
DisplayFonts fonts);
|
||||
bool mirror_x, bool mirror_y, bool swap_xy);
|
||||
private:
|
||||
static bool lvgl_port_flush_io_ready_callback(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_io_event_data_t *edata, void *user_ctx);
|
||||
static void lvgl_port_flush_callback(lv_display_t *drv, const lv_area_t *area, uint8_t *color_map);
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#include "axp2101.h"
|
||||
#include "power_save_timer.h"
|
||||
|
||||
|
||||
#include "esp_lcd_axs15231b.h"
|
||||
|
||||
#include "custom_lcd_display.h"
|
||||
@@ -34,11 +33,6 @@
|
||||
|
||||
#define TAG "waveshare_lcd_3_5b"
|
||||
|
||||
|
||||
LV_FONT_DECLARE(font_puhui_16_4);
|
||||
LV_FONT_DECLARE(font_awesome_16_4);
|
||||
|
||||
|
||||
static const axs15231b_lcd_init_cmd_t lcd_init_cmds[] = {
|
||||
{0xBB, (uint8_t[]){0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA5}, 8, 0},
|
||||
{0xA0, (uint8_t[]){0xC0, 0x10, 0x00, 0x02, 0x00, 0x00, 0x04, 0x3F, 0x20, 0x05, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00}, 17, 0},
|
||||
@@ -75,8 +69,6 @@ static const axs15231b_lcd_init_cmd_t lcd_init_cmds[] = {
|
||||
{0x2a, (uint8_t[]){0x00, 0x00, 0x01, 0x3f}, 4, 0},
|
||||
{0x2b, (uint8_t[]){0x00, 0x00, 0x01, 0xdf}, 4, 0}};
|
||||
|
||||
|
||||
|
||||
class Pmic : public Axp2101 {
|
||||
public:
|
||||
Pmic(i2c_master_bus_handle_t i2c_bus, uint8_t addr) : Axp2101(i2c_bus, addr) {
|
||||
@@ -260,8 +252,7 @@ private:
|
||||
.vendor_config = (void *)&vendor_config,
|
||||
};
|
||||
esp_lcd_new_panel_axs15231b(panel_io, &panel_config, &panel);
|
||||
|
||||
|
||||
|
||||
esp_lcd_panel_reset(panel);
|
||||
|
||||
esp_lcd_panel_init(panel);
|
||||
@@ -271,14 +262,7 @@ private:
|
||||
esp_lcd_panel_mirror(panel, DISPLAY_MIRROR_X, DISPLAY_MIRROR_Y);
|
||||
|
||||
display_ = new CustomLcdDisplay(panel_io, panel,
|
||||
DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_OFFSET_X, DISPLAY_OFFSET_Y, DISPLAY_MIRROR_X, DISPLAY_MIRROR_Y, DISPLAY_SWAP_XY,
|
||||
{
|
||||
.text_font = &font_puhui_16_4,
|
||||
.icon_font = &font_awesome_16_4,
|
||||
.emoji_font = font_emoji_32_init(),
|
||||
});
|
||||
// display_ = new CustomLcdDisplay(panel_io, panel, DISPLAY_BACKLIGHT_PIN, DISPLAY_BACKLIGHT_OUTPUT_INVERT,
|
||||
// DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_OFFSET_X, DISPLAY_OFFSET_Y, DISPLAY_MIRROR_X, DISPLAY_MIRROR_Y, DISPLAY_SWAP_XY);
|
||||
DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_OFFSET_X, DISPLAY_OFFSET_Y, DISPLAY_MIRROR_X, DISPLAY_MIRROR_Y, DISPLAY_SWAP_XY);
|
||||
}
|
||||
|
||||
void InitializeButtons() {
|
||||
@@ -291,7 +275,6 @@ private:
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
void InitializeTouch()
|
||||
{
|
||||
esp_lcd_touch_handle_t tp;
|
||||
@@ -324,7 +307,6 @@ private:
|
||||
ESP_LOGI(TAG, "Touch panel initialized successfully");
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
CustomBoard() :
|
||||
boot_button_(BOOT_BUTTON_GPIO) {
|
||||
@@ -364,6 +346,7 @@ public:
|
||||
virtual Camera* GetCamera() override {
|
||||
return camera_;
|
||||
}
|
||||
|
||||
#if PMIC_ENABLE
|
||||
virtual bool GetBatteryLevel(int &level, bool& charging, bool& discharging) override {
|
||||
static bool last_discharging = false;
|
||||
|
||||
Reference in New Issue
Block a user