feat: enhance display handling with EInkDisplayHandler class and update DisplayHandler interface

This commit is contained in:
GW_MC
2026-01-24 10:38:58 +08:00
parent 4fa8dc608f
commit 4f7418c77a
2 changed files with 66 additions and 4 deletions

View File

@@ -12,18 +12,22 @@ public:
DisplayHandler(
EventGroupHandle_t system_event_group
) : _system_event_group(system_event_group) { }
~DisplayHandler();
virtual ~DisplayHandler();
// required to be called by inheriting class after SPI device is created
// set set_display_ready to false if further initialization is needed before marking display ready
void init_devices(bool set_display_ready = true);
virtual void init_devices(bool set_display_ready = true);
protected:
// Allow derived classes to access touch handle
esp_lcd_touch_handle_t get_touch_handle() const { return _tp_handle; }
void epd_write_cmd(uint8_t cmd);
void epd_write_data(uint8_t data);
void epd_write_cmd_with_data(uint8_t cmd, const uint8_t* data, size_t data_len);
private:
protected:
SemaphoreHandle_t _spi_mutex = xSemaphoreCreateMutex();
spi_device_handle_t _spi = nullptr;
EventGroupHandle_t _system_event_group = nullptr;