90 void tick(uint32_t currentUptimeMs);
Definition event_bus.h:48
static EventBus & instance()
Definition event_bus.cpp:10
Definition power_manager.h:65
void noteActivity(uint32_t currentUptimeMs)
Definition power_manager.cpp:124
bool cachedCharging_
Definition power_manager.h:153
uint32_t getBatterySampleAgeMs(uint32_t nowMs) const
Return the age of the most recent battery sample in milliseconds.
Definition power_manager.h:114
WakeLock acquireWakeLock(const char *tag)
Definition power_manager.cpp:77
void enterDeepSleep(uint64_t sleepTimeUs=0)
Definition power_manager.cpp:233
uint32_t lastBatterySampleMs_
Definition power_manager.h:147
bool canSleep() const
Definition power_manager.cpp:228
uint32_t getIdleTimeMs(uint32_t currentUptimeMs) const
Definition power_manager.cpp:129
static constexpr uint8_t LOW_BATTERY_PERCENT
Definition power_manager.h:72
bool isBatteryConnected() const
Return whether a usable battery is connected.
Definition power_manager.cpp:208
void tick(uint32_t currentUptimeMs)
Definition power_manager.cpp:136
hal::IBattery & battery_
Definition power_manager.h:142
size_t getActiveWakeLockCount() const
Return the number of active wake locks.
Definition power_manager.cpp:116
PowerState state_
Definition power_manager.h:145
static constexpr uint32_t DEEP_SLEEP_TIMEOUT_MS
Definition power_manager.h:70
static constexpr uint8_t CRITICAL_BATTERY_PERCENT
Definition power_manager.h:76
bool hasBatterySample() const
Return whether at least one battery sample has been recorded.
Definition power_manager.h:116
uint16_t getBatteryMv() const
Return the latest battery voltage in millivolts.
Definition power_manager.cpp:200
BatteryPowerLevel batteryPowerLevel_
Definition power_manager.h:154
bool releaseWakeLockRaw(const char *tag)
Definition power_manager.cpp:102
bool acquireWakeLockRaw(const char *tag)
Definition power_manager.cpp:81
void requestState(PowerState state)
Set the service-level power state.
Definition power_manager.cpp:224
uint32_t nextBatterySampleDelayMs(uint32_t currentUptimeMs) const
Definition power_manager.cpp:194
bool hasWakeLocks() const
Return whether at least one wake lock blocks sleep.
Definition power_manager.cpp:120
static constexpr size_t MAX_WAKE_LOCKS
Definition power_manager.h:68
static void setInstance(PowerManager *instance)
Install the process-wide power manager.
Definition power_manager.cpp:54
bool isCharging() const
Return whether external charging power is present.
Definition power_manager.cpp:212
size_t activeWakeLocks_
Definition power_manager.h:159
uint32_t batterySampleIntervalMs() const
Definition power_manager.cpp:180
BatteryPowerLevel getBatteryPowerLevel() const
Definition power_manager.cpp:216
Result< void > init()
Definition power_manager.cpp:66
uint8_t getBatteryPercent() const
Return estimated battery charge as a percentage.
Definition power_manager.cpp:204
uint16_t cachedMv_
Definition power_manager.h:150
PowerState getState() const
Return the current service-level power state.
Definition power_manager.cpp:220
static constexpr uint16_t LOW_BATTERY_MV
Definition power_manager.h:74
bool cachedConnected_
Definition power_manager.h:152
static constexpr uint16_t CRITICAL_BATTERY_MV
Definition power_manager.h:78
uint8_t criticalSampleCount_
Definition power_manager.h:155
events::EventBus & bus_
Definition power_manager.h:143
static PowerManager & instance()
Return the installed process-wide power manager.
Definition power_manager.cpp:50
uint8_t cachedPercent_
Definition power_manager.h:151
uint32_t lastActivityMs_
Definition power_manager.h:146
const char * wakeLockTags_[MAX_WAKE_LOCKS]
Definition power_manager.h:157
uint16_t wakeLockReferences_[MAX_WAKE_LOCKS]
Definition power_manager.h:158
Definition power_manager.h:35
~WakeLock()
Definition power_manager.cpp:21
const char * tag_
Definition power_manager.h:54
void release()
Definition power_manager.cpp:42
WakeLock & operator=(const WakeLock &)=delete
bool active_
Definition power_manager.h:55
WakeLock(const WakeLock &)=delete
PowerState
Definition power_manager.h:13
BatteryPowerLevel
Definition power_manager.h:21
Definition application.h:10
char tag[32]
Definition ota_service.cpp:43