|
CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
|
Public Member Functions | |
| Esp32SleepController ()=default | |
| bool | init () override |
| Initializes sleep controller configuration and wake-state tracking. | |
| bool | start () override |
| void | stop () override |
| core::ServiceState | getState () const override |
| const char * | getName () const override |
| void | enterLightSleep () override |
| Enters light sleep with configured wake sources. | |
| void | enterDeepSleep () override |
| Enters deep sleep mode and never returns. | |
| WakeupSource | getWakeupSource () const override |
| Returns last wakeup source reported by ESP-IDF. | |
| bool | wasInDeepSleep () const override |
| void | clearDeepSleepFlag () override |
| void | setLightSleepInterval (uint32_t seconds) override |
| Updates light-sleep interval and persists it. | |
| uint32_t | getLightSleepInterval () const override |
| void | prepareGpioForSleep () override |
| Prepares GPIO/keypad state for entering sleep. | |
| void | stabilizeGpioAfterWakeup () override |
| Restores/stabilizes GPIO/keypad state after wake. | |
| bool | registerPreSleepCallback (const SleepCallbackEntry &entry) override |
| Registers callback invoked before sleep transition. | |
| bool | registerWakeupCallback (const SleepCallbackEntry &entry) override |
| Registers callback invoked after wakeup. | |
| void | unregisterCallbacks (const char *moduleName) override |
| Removes all callbacks belonging to one module. | |
| Public Member Functions inherited from cdc::hal::ISleepController | |
| virtual | ~ISleepController ()=default |
| Public Member Functions inherited from cdc::core::IService | |
| virtual | ~IService ()=default |
Definition at line 50 of file SleepController.cpp.
|
default |
|
inlineoverridevirtual |
Clear deep sleep flag (call after handling deep sleep wake)
Implements cdc::hal::ISleepController.
Definition at line 66 of file SleepController.cpp.
References cdc::hal::g_was_in_deep_sleep.
|
overridevirtual |
Enters deep sleep mode and never returns.
Implements cdc::hal::ISleepController.
Definition at line 192 of file SleepController.cpp.
References EXP_IRQ_PIN, cdc::hal::g_diag_deep_sleep_count, cdc::hal::g_was_in_deep_sleep, LOG_I, and TAG.
|
overridevirtual |
Enters light sleep with configured wake sources.
Implements cdc::hal::ISleepController.
Definition at line 138 of file SleepController.cpp.
References EXP_IRQ_PIN, LOG_D, LOG_I, prepareGpioForSleep(), stabilizeGpioAfterWakeup(), and TAG.
|
inlineoverridevirtual |
Get light sleep timer interval
Implements cdc::hal::ISleepController.
Definition at line 68 of file SleepController.cpp.
|
inlineoverridevirtual |
Get service name (for logging/debugging)
Implements cdc::core::IService.
Definition at line 59 of file SleepController.cpp.
|
inlineoverridevirtual |
Get current service state
Implements cdc::core::IService.
Definition at line 58 of file SleepController.cpp.
|
overridevirtual |
Returns last wakeup source reported by ESP-IDF.
Implements cdc::hal::ISleepController.
Definition at line 215 of file SleepController.cpp.
References cdc::hal::EXT0, cdc::hal::EXT1, cdc::hal::GPIO, cdc::hal::TIMER, cdc::hal::TOUCHPAD, and cdc::hal::UNKNOWN.
|
overridevirtual |
Initializes sleep controller configuration and wake-state tracking.
Implements cdc::core::IService.
Definition at line 99 of file SleepController.cpp.
References cdc::hal::g_diag_boot_count, cdc::hal::g_diag_deep_sleep_count, cdc::hal::g_was_in_deep_sleep, cdc::core::INITIALIZED, LOG_I, LOG_W, cdc::core::STARTED, TAG, and cdc::core::UNINITIALIZED.
|
overridevirtual |
Prepares GPIO/keypad state for entering sleep.
Implements cdc::hal::ISleepController.
Definition at line 253 of file SleepController.cpp.
References cdc::hal::getKeypadInstance(), LOG_D, and TAG.
Referenced by enterLightSleep().
|
overridevirtual |
Registers callback invoked before sleep transition.
| entry | Callback registration descriptor. |
Implements cdc::hal::ISleepController.
Definition at line 319 of file SleepController.cpp.
|
overridevirtual |
Registers callback invoked after wakeup.
| entry | Callback registration descriptor. |
Implements cdc::hal::ISleepController.
Definition at line 328 of file SleepController.cpp.
|
overridevirtual |
Updates light-sleep interval and persists it.
| seconds | New interval in seconds. |
Implements cdc::hal::ISleepController.
Definition at line 238 of file SleepController.cpp.
|
overridevirtual |
Restores/stabilizes GPIO/keypad state after wake.
Implements cdc::hal::ISleepController.
Definition at line 266 of file SleepController.cpp.
References cdc::hal::getKeypadInstance(), LOG_D, and TAG.
Referenced by enterLightSleep().
|
inlineoverridevirtual |
Start the service (can be called after init or stop)
Implements cdc::core::IService.
Definition at line 56 of file SleepController.cpp.
References cdc::core::STARTED.
|
inlineoverridevirtual |
Stop the service (reversible, can start again)
Implements cdc::core::IService.
Definition at line 57 of file SleepController.cpp.
References cdc::core::STOPPED.
|
overridevirtual |
Removes all callbacks belonging to one module.
| moduleName | Module name key. |
Implements cdc::hal::ISleepController.
Definition at line 336 of file SleepController.cpp.
|
inlineoverridevirtual |
Check if device just woke from deep sleep (persistent flag in RTC memory)
Implements cdc::hal::ISleepController.
Definition at line 65 of file SleepController.cpp.
References cdc::hal::g_was_in_deep_sleep.