|
CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
|
Public Member Functions | |
| bool | init () override |
| Initializes display hardware, backlight, and render task. | |
| bool | start () override |
| Starts display service and enables backlight. | |
| void | stop () override |
| Stops display service and disables backlight. | |
| core::ServiceState | getState () const override |
| const char * | getName () const override |
| void | clear () override |
| Clears framebuffer to white. | |
| void | flush (RefreshMode mode) override |
| Requests asynchronous display refresh. | |
| void | flushSync (RefreshMode mode) override |
| Performs synchronous display refresh. | |
| bool | isBusy () const override |
| uint16_t | getWidth () const override |
| uint16_t | getHeight () const override |
| void | setBacklight (uint16_t level) override |
| Sets current backlight level and applies immediately. | |
| void | saveBacklight () override |
| Persists current backlight level. | |
| uint16_t | getBacklight () const override |
| bool | isBacklightOn () const override |
| void | backlightOn () override |
| Enables backlight using current configured level. | |
| void | backlightOff () override |
| Disables backlight output. | |
| void * | getNativeHandle () override |
| void | showSplash (const char *subtitle=nullptr) override |
| Renders and displays boot splash screen. | |
| void | drawPixel (int16_t x, int16_t y, uint16_t color) override |
| Adafruit-GFX method implementations. | |
| void | drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color) override |
| Draws a line on framebuffer. | |
| void | drawRect (int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) override |
| Draws rectangle outline on framebuffer. | |
| void | fillRect (int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) override |
| Draws filled rectangle on framebuffer. | |
| void | setCursor (int16_t x, int16_t y) override |
| Sets text cursor position. | |
| void | setTextColor (uint16_t color) override |
| Sets active text color. | |
| void | setTextSize (uint8_t size) override |
| Sets active text scale. | |
| void | setFont (const void *font) override |
| Sets active font pointer. | |
| void | print (const char *text) override |
| Prints text at current cursor position. | |
| void | printf (const char *fmt,...) override |
| Formatted print helper for display text output. | |
| Public Member Functions inherited from cdc::hal::IDisplay | |
| virtual | ~IDisplay ()=default |
| Public Member Functions inherited from cdc::core::IService | |
| virtual | ~IService ()=default |
Simple display wrapper using static functions
Definition at line 173 of file EpaperDisplay.cpp.
|
overridevirtual |
Disables backlight output.
Implements cdc::hal::IDisplay.
Definition at line 400 of file EpaperDisplay.cpp.
References cdc::hal::applyBacklight(), LOG_I, cdc::hal::s_backlightOn, and TAG.
|
overridevirtual |
Enables backlight using current configured level.
Implements cdc::hal::IDisplay.
Definition at line 391 of file EpaperDisplay.cpp.
References cdc::hal::applyBacklight(), LOG_I, cdc::hal::s_backlightLevel, cdc::hal::s_backlightOn, and TAG.
|
overridevirtual |
Clears framebuffer to white.
Implements cdc::hal::IDisplay.
Definition at line 319 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Draws a line on framebuffer.
| x0 | Start x. |
| y0 | Start y. |
| x1 | End x. |
| y1 | End y. |
| color | Line color. |
Implements cdc::hal::IDisplay.
Definition at line 476 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Adafruit-GFX method implementations.
Draws a single pixel on framebuffer.
| x | X coordinate. |
| y | Y coordinate. |
| color | Pixel color. |
Implements cdc::hal::IDisplay.
Definition at line 464 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Draws rectangle outline on framebuffer.
| x | Left coordinate. |
| y | Top coordinate. |
| w | Width. |
| h | Height. |
| color | Outline color. |
Implements cdc::hal::IDisplay.
Definition at line 488 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Draws filled rectangle on framebuffer.
| x | Left coordinate. |
| y | Top coordinate. |
| w | Width. |
| h | Height. |
| color | Fill color. |
Implements cdc::hal::IDisplay.
Definition at line 500 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Requests asynchronous display refresh.
| mode | Refresh mode. |
Implements cdc::hal::IDisplay.
Definition at line 329 of file EpaperDisplay.cpp.
References flushSync(), cdc::hal::refreshStrength(), cdc::hal::s_renderMode, cdc::hal::s_renderMutex, cdc::hal::s_renderPending, and cdc::hal::s_renderTask.
|
overridevirtual |
Performs synchronous display refresh.
| mode | Refresh mode. |
Implements cdc::hal::IDisplay.
Definition at line 354 of file EpaperDisplay.cpp.
References cdc::hal::HEIGHT, cdc::hal::resolveFullRefresh(), cdc::hal::s_epd_display, cdc::hal::s_panelMutex, and cdc::hal::WIDTH.
Referenced by flush().
|
inlineoverridevirtual |
Get current backlight level
Implements cdc::hal::IDisplay.
Definition at line 189 of file EpaperDisplay.cpp.
References cdc::hal::s_backlightLevel.
|
inlineoverridevirtual |
Implements cdc::hal::IDisplay.
Definition at line 186 of file EpaperDisplay.cpp.
References cdc::hal::HEIGHT.
|
inlineoverridevirtual |
Get service name (for logging/debugging)
Implements cdc::core::IService.
Definition at line 179 of file EpaperDisplay.cpp.
|
inlineoverridevirtual |
Get native display handle (for direct GFX access) Returns Gdey029T94* for the CDC Badge
Implements cdc::hal::IDisplay.
Definition at line 193 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
inlineoverridevirtual |
Get current service state
Implements cdc::core::IService.
Definition at line 178 of file EpaperDisplay.cpp.
|
inlineoverridevirtual |
Get display dimensions
Implements cdc::hal::IDisplay.
Definition at line 185 of file EpaperDisplay.cpp.
References cdc::hal::WIDTH.
|
overridevirtual |
Initializes display hardware, backlight, and render task.
Implements cdc::core::IService.
Definition at line 216 of file EpaperDisplay.cpp.
References EPD_LED_PIN, cdc::core::ERROR, cdc::hal::HEIGHT, cdc::core::INITIALIZED, cdc::hal::LEDC_CHANNEL, cdc::hal::LEDC_DUTY_RES, cdc::hal::LEDC_FREQUENCY, cdc::hal::LEDC_MODE, cdc::hal::LEDC_TIMER, cdc::hal::loadBacklight(), LOG_E, LOG_I, cdc::hal::renderTask(), cdc::hal::s_backlightLevel, cdc::hal::s_epd_display, cdc::hal::s_epd_spi, cdc::hal::s_initialized, cdc::hal::s_panelMutex, cdc::hal::s_renderMutex, cdc::hal::s_renderTask, TAG, and cdc::hal::WIDTH.
|
inlineoverridevirtual |
Check if backlight is on (level > 0)
Implements cdc::hal::IDisplay.
Definition at line 190 of file EpaperDisplay.cpp.
References cdc::hal::s_backlightLevel, and cdc::hal::s_backlightOn.
|
inlineoverridevirtual |
Check if display is busy (refreshing)
Implements cdc::hal::IDisplay.
Definition at line 184 of file EpaperDisplay.cpp.
References cdc::hal::s_renderPending.
|
overridevirtual |
Prints text at current cursor position.
| text | Null-terminated string. |
Implements cdc::hal::IDisplay.
Definition at line 541 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Formatted print helper for display text output.
| fmt | Printf-style format string. |
Implements cdc::hal::IDisplay.
Definition at line 549 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Persists current backlight level.
Implements cdc::hal::IDisplay.
Definition at line 384 of file EpaperDisplay.cpp.
References cdc::hal::persistBacklight(), and cdc::hal::s_backlightLevel.
|
overridevirtual |
Sets current backlight level and applies immediately.
| level | New backlight level. |
Implements cdc::hal::IDisplay.
Definition at line 370 of file EpaperDisplay.cpp.
References cdc::hal::applyBacklight(), cdc::hal::BACKLIGHT_MAX, cdc::hal::s_backlightLevel, and cdc::hal::s_backlightOn.
|
overridevirtual |
Sets text cursor position.
| x | Cursor x. |
| y | Cursor y. |
Implements cdc::hal::IDisplay.
Definition at line 509 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Sets active font pointer.
| font | Font pointer cast-compatible with GFXfont. |
Implements cdc::hal::IDisplay.
Definition at line 533 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Sets active text color.
| color | Text color. |
Implements cdc::hal::IDisplay.
Definition at line 517 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Sets active text scale.
| size | Text size factor. |
Implements cdc::hal::IDisplay.
Definition at line 525 of file EpaperDisplay.cpp.
References cdc::hal::s_epd_display.
|
overridevirtual |
Renders and displays boot splash screen.
| subtitle | Optional subtitle override. |
Implements cdc::hal::IDisplay.
Definition at line 410 of file EpaperDisplay.cpp.
References LOG_I, cdc::hal::s_epd_display, SPLASH_TITLE, SPLASH_VERSION, and TAG.
|
overridevirtual |
Starts display service and enables backlight.
Implements cdc::core::IService.
Definition at line 295 of file EpaperDisplay.cpp.
References cdc::hal::applyBacklight(), cdc::core::INITIALIZED, cdc::hal::s_backlightLevel, cdc::hal::s_backlightOn, and cdc::core::STARTED.
|
overridevirtual |
Stops display service and disables backlight.
Implements cdc::core::IService.
Definition at line 308 of file EpaperDisplay.cpp.
References cdc::hal::applyBacklight(), cdc::hal::s_backlightOn, cdc::core::STARTED, and cdc::core::STOPPED.