CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
cdc::hal::BQ25895Power Class Reference
Inheritance diagram for cdc::hal::BQ25895Power:
cdc::hal::IPowerManager cdc::core::IService

Public Member Functions

 BQ25895Power ()=default
IService implementation
bool init () override
 Initializes charger hardware and applies safe boot defaults.
bool start () override
 Starts power manager service state.
void stop () override
 Stops power manager service state.
core::ServiceState getState () const override
const char * getName () const override
IPowerManager implementation
uint16_t getBatteryVoltage () const override
 Returns measured battery voltage in millivolts.
uint8_t getBatteryPercent () const override
 Estimates battery percentage from measured voltage.
bool isUsbConnected () const override
 Returns cached USB power presence.
PowerSource getPowerSource () const override
 Returns current active power source.
ChargeStatus getChargeStatus () const override
 Returns cached charge-state machine value.
bool isBatteryLow () const override
 Indicates low-battery threshold state.
bool isBatteryCritical () const override
 Indicates critical-battery threshold state.
bool isBatteryPresent () const override
 Returns whether a battery is considered present.
void setChargingEnabled (bool enabled) override
 Enables or effectively disables charging current.
void enterShipMode () override
 Requests battery ship mode via BATFET disconnect.
void update () override
 Periodic power-manager update handling watchdog and IRQ-driven refresh.
void refresh () override
 Forces a synchronous re-read of charger status registers.
Public Member Functions inherited from cdc::hal::IPowerManager
virtual ~IPowerManager ()=default
Public Member Functions inherited from cdc::core::IService
virtual ~IService ()=default

Detailed Description

BQ25895 Power Manager Implementation

Definition at line 86 of file BQ25895Power.cpp.

Constructor & Destructor Documentation

◆ BQ25895Power()

cdc::hal::BQ25895Power::BQ25895Power ( )
default

Referenced by getBatteryVoltage().

Member Function Documentation

◆ enterShipMode()

void cdc::hal::BQ25895Power::enterShipMode ( )
overridevirtual

Requests battery ship mode via BATFET disconnect.

Implements cdc::hal::IPowerManager.

Definition at line 558 of file BQ25895Power.cpp.

References cdc::hal::BQ_REG_MISC, LOG_E, LOG_I, and TAG.

Referenced by update().

◆ getBatteryPercent()

uint8_t cdc::hal::BQ25895Power::getBatteryPercent ( ) const
overridevirtual

Estimates battery percentage from measured voltage.

Returns
Battery level in percent.

Implements cdc::hal::IPowerManager.

Definition at line 480 of file BQ25895Power.cpp.

References cdc::hal::BATTERY_EMPTY_MV, cdc::hal::BATTERY_FULL_MV, and getBatteryVoltage().

Referenced by isBatteryCritical(), and isBatteryLow().

◆ getBatteryVoltage()

uint16_t cdc::hal::BQ25895Power::getBatteryVoltage ( ) const
overridevirtual

Returns measured battery voltage in millivolts.

Returns
Battery voltage in mV, or 0 on read failure.

Implements cdc::hal::IPowerManager.

Definition at line 457 of file BQ25895Power.cpp.

References BQ25895Power(), cdc::hal::BQ_REG_ADC_CTRL, and cdc::hal::BQ_REG_BATV.

Referenced by getBatteryPercent().

◆ getChargeStatus()

ChargeStatus cdc::hal::BQ25895Power::getChargeStatus ( ) const
overridevirtual

Returns cached charge-state machine value.

Returns
Current charge status enum.

Implements cdc::hal::IPowerManager.

Definition at line 513 of file BQ25895Power.cpp.

◆ getName()

const char * cdc::hal::BQ25895Power::getName ( ) const
inlineoverridevirtual

Get service name (for logging/debugging)

Implements cdc::core::IService.

Definition at line 98 of file BQ25895Power.cpp.

◆ getPowerSource()

PowerSource cdc::hal::BQ25895Power::getPowerSource ( ) const
overridevirtual

Returns current active power source.

Returns
PowerSource::USB or PowerSource::BATTERY.

Implements cdc::hal::IPowerManager.

Definition at line 505 of file BQ25895Power.cpp.

References cdc::hal::BATTERY, and cdc::hal::USB.

◆ getState()

core::ServiceState cdc::hal::BQ25895Power::getState ( ) const
inlineoverridevirtual

Get current service state

Implements cdc::core::IService.

Definition at line 97 of file BQ25895Power.cpp.

◆ init()

bool cdc::hal::BQ25895Power::init ( )
overridevirtual

◆ isBatteryCritical()

bool cdc::hal::BQ25895Power::isBatteryCritical ( ) const
overridevirtual

Indicates critical-battery threshold state.

Returns
true if battery level is below 5%.

Implements cdc::hal::IPowerManager.

Definition at line 529 of file BQ25895Power.cpp.

References getBatteryPercent().

◆ isBatteryLow()

bool cdc::hal::BQ25895Power::isBatteryLow ( ) const
overridevirtual

Indicates low-battery threshold state.

Returns
true if battery level is below 20%.

Implements cdc::hal::IPowerManager.

Definition at line 521 of file BQ25895Power.cpp.

References getBatteryPercent().

◆ isBatteryPresent()

bool cdc::hal::BQ25895Power::isBatteryPresent ( ) const
overridevirtual

Returns whether a battery is considered present.

Returns
true if battery presence is detected.

Implements cdc::hal::IPowerManager.

Definition at line 537 of file BQ25895Power.cpp.

◆ isUsbConnected()

bool cdc::hal::BQ25895Power::isUsbConnected ( ) const
overridevirtual

Returns cached USB power presence.

Returns
true when USB input is detected.

Implements cdc::hal::IPowerManager.

Definition at line 496 of file BQ25895Power.cpp.

◆ refresh()

void cdc::hal::BQ25895Power::refresh ( )
overridevirtual

Forces a synchronous re-read of charger status registers.

Implements cdc::hal::IPowerManager.

Definition at line 623 of file BQ25895Power.cpp.

◆ setChargingEnabled()

void cdc::hal::BQ25895Power::setChargingEnabled ( bool enabled)
overridevirtual

Enables or effectively disables charging current.

Parameters
enabledDesired charging enable state.

Implements cdc::hal::IPowerManager.

Definition at line 545 of file BQ25895Power.cpp.

References cdc::hal::CHARGE_CURRENT_FAST, cdc::hal::CHARGE_CURRENT_MIN, cdc::hal::CHARGE_CURRENT_SLOW, LOG_I, and TAG.

◆ start()

bool cdc::hal::BQ25895Power::start ( )
overridevirtual

Starts power manager service state.

Returns
true if service is started after the call.

Implements cdc::core::IService.

Definition at line 323 of file BQ25895Power.cpp.

References cdc::core::INITIALIZED, cdc::core::STARTED, and cdc::core::STOPPED.

◆ stop()

void cdc::hal::BQ25895Power::stop ( )
overridevirtual

Stops power manager service state.

Implements cdc::core::IService.

Definition at line 335 of file BQ25895Power.cpp.

References cdc::core::STARTED, and cdc::core::STOPPED.

◆ update()

void cdc::hal::BQ25895Power::update ( )
overridevirtual

Periodic power-manager update handling watchdog and IRQ-driven refresh.

Implements cdc::hal::IPowerManager.

Definition at line 591 of file BQ25895Power.cpp.

References cdc::hal::charger_irq_pending, enterShipMode(), FLASH_BTN_PIN, cdc::hal::kPowerButtonLongPressMs, LOG_W, and TAG.


The documentation for this class was generated from the following file: