CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
IPowerManager.h
Go to the documentation of this file.
1#pragma once
2
3#include "cdc_core/IService.h"
4#include <cstdint>
5
6namespace cdc::hal {
7
18
22enum class PowerSource : uint8_t {
26};
27
32public:
37 using PreShipModeCallback = void (*)();
38
39 virtual ~IPowerManager() = default;
40
44 virtual uint16_t getBatteryVoltage() const = 0;
45
49 virtual uint8_t getBatteryPercent() const = 0;
50
54 virtual bool isUsbConnected() const = 0;
55
59 virtual PowerSource getPowerSource() const = 0;
60
64 virtual ChargeStatus getChargeStatus() const = 0;
65
69 virtual bool isBatteryLow() const = 0;
70
74 virtual bool isBatteryCritical() const = 0;
75
79 virtual bool isBatteryPresent() const = 0;
80
84 virtual void setChargingEnabled(bool enabled) = 0;
85
89 virtual void enterShipMode() = 0;
90
96
100 virtual void update() = 0;
101
108 virtual void refresh() = 0;
109
115 virtual void prepareForSleep() = 0;
116
122 virtual void recoverFromSleep() = 0;
123};
124
125// Factory function to get power manager instance
127
128} // namespace cdc::hal
virtual void setChargingEnabled(bool enabled)=0
virtual uint16_t getBatteryVoltage() const =0
virtual void enterShipMode()=0
virtual bool isBatteryLow() const =0
virtual void recoverFromSleep()=0
virtual void update()=0
virtual void prepareForSleep()=0
virtual void refresh()=0
virtual ~IPowerManager()=default
virtual PowerSource getPowerSource() const =0
virtual bool isBatteryPresent() const =0
virtual ChargeStatus getChargeStatus() const =0
virtual uint8_t getBatteryPercent() const =0
virtual bool isUsbConnected() const =0
virtual void setPreShipModeCallback(PreShipModeCallback cb)=0
virtual bool isBatteryCritical() const =0
#define CHARGE_DONE
Definition host_api.h:122
IPowerManager * getPowerManagerInstance()
Returns the singleton power manager instance.