Battery Service
The battery service exposes the Battery Level and other information for a battery in the context of the battery’s electrical connection to a device.
Examples
API Reference
Header File
Functions
-
esp_err_t esp_ble_bas_get_battery_level(uint8_t *level)
Get the current battery level of the device.
- Parameters
level – [in] The pointer to store the current battery level
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery level
-
esp_err_t esp_ble_bas_set_battery_level(uint8_t *level)
Set the current battery level of the device.
- Parameters
level – [in] The pointer to store the current battery level
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery level
-
esp_err_t esp_ble_bas_get_level_status(esp_ble_bas_level_status_t *status)
Get the summary information related to the battery status of the device.
- Parameters
status – [in] The pointer to store the the summary information related to the battery status
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery status
-
esp_err_t esp_ble_bas_set_level_status(esp_ble_bas_level_status_t *status)
Set the summary information related to the battery status of the device.
- Parameters
status – [in] The pointer to store the the summary information related to the battery status
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery status
-
esp_err_t esp_ble_bas_get_estimated_date(uint32_t *estimated_date)
Get the current estimated date when the battery is likely to require service or replacement.
- Parameters
estimated_date – [in] The pointer to store the current estimated date
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery estimated date
-
esp_err_t esp_ble_bas_set_estimated_date(uint32_t *estimated_date)
Set the current estimated date when the battery is likely to require service or replacement.
- Parameters
estimated_date – [in] The pointer to store the current estimated date
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery estimated date
-
esp_err_t esp_ble_bas_get_critical_status(esp_ble_bas_critical_status_t *status)
Get the status bits related to potential battery malfunction.
- Parameters
status – [in] The pointer to store the status bits related to potential battery malfunction
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery malfunction
-
esp_err_t esp_ble_bas_set_critical_status(esp_ble_bas_critical_status_t *status)
Set the status bits related to potential battery malfunction.
- Parameters
status – [in] The pointer to store the status bits related to potential battery malfunction
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery malfunction
-
esp_err_t esp_ble_bas_get_energy_status(esp_ble_bas_energy_status_t *status)
Get the current energy status details of the battery.
- Parameters
status – [in] The pointer to store the status bits related to potential battery energy
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery energy
-
esp_err_t esp_ble_bas_set_energy_status(esp_ble_bas_energy_status_t *status)
Set the current energy status details of the battery.
- Parameters
status – [in] The pointer to store the status bits related to potential battery energy
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery energy
-
esp_err_t esp_ble_bas_get_time_status(esp_ble_bas_time_status_t *status)
Get the current estimates on times for discharging and charging.
- Parameters
status – [in] The pointer to store the current estimates on times
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery estimates
-
esp_err_t esp_ble_bas_set_time_status(esp_ble_bas_time_status_t *status)
Set the current estimates on times for discharging and charging.
- Parameters
status – [in] The pointer to store the current estimates on times
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery estimates
-
esp_err_t esp_ble_bas_get_health_status(esp_ble_bas_health_status_t *status)
Get the aspects of battery health.
- Parameters
status – [in] The pointer to store the aspects of battery health
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery health
-
esp_err_t esp_ble_bas_set_health_status(esp_ble_bas_health_status_t *status)
Set the aspects of battery health.
- Parameters
status – [in] The pointer to store the aspects of battery health
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery health
-
esp_err_t esp_ble_bas_get_health_info(esp_ble_bas_health_info_t *info)
Get the static aspects of battery health.
- Parameters
info – [in] The pointer to store the static aspects of battery health
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery health information
-
esp_err_t esp_ble_bas_set_health_info(esp_ble_bas_health_info_t *info)
Set the static aspects of battery health.
- Parameters
info – [in] The pointer to store the static aspects of battery health
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery health information
-
esp_err_t esp_ble_bas_get_battery_info(esp_ble_bas_battery_info_t *info)
Get the physical characteristics of the battery.
- Parameters
info – [in] The pointer to store the physical characteristics of the battery
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery information
-
esp_err_t esp_ble_bas_set_battery_info(esp_ble_bas_battery_info_t *info)
Set the physical characteristics of the battery.
- Parameters
info – [in] The pointer to store the physical characteristics of the battery
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong battery information
-
esp_err_t esp_ble_bas_init(void)
Initialization Battery Service.
- Returns
ESP_OK on successful
ESP_ERR_INVALID_ARG on wrong initialization
ESP_FAIL on error
Structures
-
struct uint24_t
This structure represents a 24bits data type.
Public Members
-
uint32_t u24
A 24bits data
-
uint32_t u24
-
struct esp_ble_bas_level_status_t
Battery Level Status Characteristic.
Public Members
-
uint8_t en_identifier
Identifier Present
-
uint8_t en_battery_level
Battery Level Present
-
uint8_t en_additional_status
Additional Status Present
-
uint8_t flags_reserved
Reserve Feature Used
-
struct esp_ble_bas_level_status_t::[anonymous] flags
Flags of Battery Level Status
-
uint16_t battery
Battery Present
-
uint16_t wired_external_power_source
Wired External Power Source Connected:
-
uint16_t wireless_external_power_source
Wireless External Power Source Connected:
-
uint16_t battery_charge_state
Battery Charge State:
-
uint16_t battery_charge_level
Battery Charge Level:
-
uint16_t battery_charge_type
Battery Charging Type
-
uint16_t charging_fault_reason
Charging Fault Reason
-
uint16_t power_state_reserved
Reserve Feature Used
-
struct esp_ble_bas_level_status_t::[anonymous] power_state
Power State of Battery Level Status
-
uint16_t identifier
Used as an identifier for a service instance.
-
uint8_t battery_level
Refer to the Battery Level
-
uint8_t service_required
Service Required
-
uint8_t battery_fault
Battery Fault:
-
uint8_t reserved
Reserve Feature Used
-
struct esp_ble_bas_level_status_t::[anonymous] additional_status
Contains additional status information such as whether or not service is required
-
uint8_t en_identifier
-
struct esp_ble_bas_critical_status_t
Battery Critical Status Characteristic.
Public Members
-
uint8_t critical_power_state
Critical Power State
-
uint8_t immediate_service
Immediate Service Required
-
uint8_t reserved
Reserve Feature Used
-
struct esp_ble_bas_critical_status_t::[anonymous] status
Battery Critical Status
-
uint8_t critical_power_state
-
struct esp_ble_bas_energy_status_t
Battery Energy Status Characteristic.
Public Members
-
uint8_t en_external_source_power
External Source Power Present
-
uint8_t en_voltage
Present Voltage Present
-
uint8_t en_available_energy
Available Energy Present
-
uint8_t en_available_battery_capacity
Available Battery Capacity Present
-
uint8_t en_charge_rate
Charge Rate Present
-
uint8_t en_available_energy_last_charge
Available Energy at Last Charge Present
-
uint8_t reserved
Reserve Feature Used
-
struct esp_ble_bas_energy_status_t::[anonymous] flags
Flags of Battery Energy Status
-
uint16_t external_source_power
The total power being consumed from an external power source
-
uint16_t voltage
The present terminal voltage of the battery in volts.
-
uint16_t available_energy
The available energy of the battery in kilowatt-hours in its current charge state
-
uint16_t available_battery_capacity
The capacity of the battery in kilowatt-hours at full charge in its current condition
-
uint16_t charge_rate
The energy flowing into the battery in watts
-
uint16_t available_energy_last_charge
The available energy of the battery in kilowatt-hours in its last charge state
-
uint8_t en_external_source_power
-
struct esp_ble_bas_time_status_t
Battery Time Status Characteristic.
Public Members
-
uint8_t en_discharged_standby
Time until Discharged on Standby Present
-
uint8_t en_recharged
Time until Recharged Present
-
uint8_t reserved
Reserve Feature Used
-
struct esp_ble_bas_time_status_t::[anonymous] flags
Flags of Battery Time Status
-
uint8_t en_discharged_standby
-
struct esp_ble_bas_health_status_t
Battery Health Status Characteristic.
Public Members
-
uint8_t en_battery_health_summary
Battery Health Summary Present
-
uint8_t en_cycle_count
Cycle Count Present
-
uint8_t en_current_temperature
Current Temperature Present
-
uint8_t en_deep_discharge_count
Deep Discharge Count Present
-
uint8_t reserved
Reserve Feature Used
-
struct esp_ble_bas_health_status_t::[anonymous] flags
Flags of Battery Health Status
-
uint8_t battery_health_summary
Represents aggregation of the overall health of the battery
-
uint16_t cycle_count
Represents the count value of charge cycles
-
int8_t current_temperature
Represents the current temperature of the battery
-
uint16_t deep_discharge_count
Represents the number of times the battery was completely discharged
-
uint8_t en_battery_health_summary
-
struct esp_ble_bas_health_info_t
Battery Health Information Characteristic.
Public Members
-
uint8_t en_cycle_count_designed_lifetime
Cycle Count Designed Lifetime Present
-
uint8_t min_max_designed_operating_temperature
Min and Max Designed Operating Temperature Present
-
uint8_t reserved
Reserve Feature Used
-
struct esp_ble_bas_health_info_t::[anonymous] flags
Flags of Battery Health Information
-
uint16_t cycle_count_designed_lifetime
Represents the designed number of charge cycles supported by the device
-
int8_t min_designed_operating_temperature
Represents the minimum designed operating temperature of the battery
-
int8_t max_designed_operating_temperature
Represents the maximum designed operating temperature of the battery
-
uint8_t en_cycle_count_designed_lifetime
-
struct esp_ble_bas_battery_info_t
Battery Information Characteristic.
Public Members
-
uint16_t en_manufacture_date
Battery Manufacture Date Present
-
uint16_t en_expiration_date
Battery Expiration Date Present
-
uint16_t en_designed_capacity
Battery Designed Capacity Present
-
uint16_t en_low_energy
Battery Low Energy Present
-
uint16_t en_critical_energy
Battery Critical Energy Present
-
uint16_t en_chemistry
Battery Chemistry Present
-
uint16_t en_nominalvoltage
Nominal Voltage Present
-
uint16_t en_aggregation_group
Battery Aggregation Group Present
-
uint16_t flags_reserved
Reserve Feature Used
-
struct esp_ble_bas_battery_info_t::[anonymous] flags
Flags of Battery Information
-
uint8_t replace_able
Battery Replaceable
-
uint8_t recharge_able
Battery Rechargeable
-
uint8_t reserved
Reserve Feature Used
-
struct esp_ble_bas_battery_info_t::[anonymous] features
Features of Battery Information
-
uint16_t designed_capacity
The capacity of the battery in kilowatt-hours at full charge in original (new) condition.
-
uint16_t low_energy
The battery energy value in kilowatt-hours when the battery is low
-
uint16_t critical_energy
The battery energy value in kilowatt-hours when the battery is critical.
-
uint8_t chemistry
The value of battery chemistry
-
uint16_t nominalvoltage
Nominal voltage of the battery in units of volts
-
uint8_t aggregation_group
Indicates the Battery Aggregation Group to which this instance of the battery service is associated
-
uint16_t en_manufacture_date
-
struct esp_ble_bas_data_t
Battery Service.
Public Members
-
uint8_t battery_level
The charge level of a battery
-
esp_ble_bas_level_status_t level_status
The power state of a battery
-
esp_ble_bas_critical_status_t critical_status
The device will possibly not function as expected due to low energy or service required
-
esp_ble_bas_energy_status_t energy_status
Details about the energy status of the battery
-
esp_ble_bas_time_status_t time_status
Time estimates for discharging and charging
-
esp_ble_bas_health_status_t health_status
Several aspects of battery health
-
esp_ble_bas_health_info_t health_info
The health of a battery
-
esp_ble_bas_battery_info_t battery_info
The physical characteristics of a battery in the context of the battery’s connection in a device
-
uint8_t battery_level
Macros
-
BLE_BAS_UUID16
-
BLE_BAS_CHR_UUID16_LEVEL
-
BLE_BAS_CHR_UUID16_LEVEL_STATUS
-
BLE_BAS_CHR_UUID16_ESTIMATED_SERVICE_DATE
-
BLE_BAS_CHR_UUID16_CRITICAL_STATUS
-
BLE_BAS_CHR_UUID16_ENERGY_STATUS
-
BLE_BAS_CHR_UUID16_TIME_STATUS
-
BLE_BAS_CHR_UUID16_HEALTH_STATUS
-
BLE_BAS_CHR_UUID16_HEALTH_INFO
-
BLE_BAS_CHR_UUID16_BATTERY_INFO
-
BAS_CHR_LEVEL_STATUS_FLAGS_BM_NONE
-
BAS_CHR_LEVEL_STATUS_FLAGS_BM_IDENTIFY
-
BAS_CHR_LEVEL_STATUS_FLAGS_BM_BATTERY_LEVEL
-
BAS_CHR_LEVEL_STATUS_FLAGS_BM_ADDITIONAL_STATUS
-
BAS_CHR_LEVEL_STATUS_FLAGS_BM_RFU
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_NOT
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_SET
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRED_EXTERNAL_POWER_SOURCE_NOTCONNECT
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRED_EXTERNAL_POWER_SOURCE_CONNECTED
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRED_EXTERNAL_POWER_SOURCE_UNKNOWN
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRED_EXTERNAL_POWER_SOURCE_RFU
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRELESS_EXTERNAL_POWER_SOURCE_NOTCONNECT
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRELESS_EXTERNAL_POWER_SOURCE_CONNECTED
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRELESS_EXTERNAL_POWER_SOURCE_UNKNOWN
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_WIRELESS_EXTERNAL_POWER_SOURCE_RFU
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_STATE_UNKNOWN
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_STATE_CHARGING
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_STATE_DISCHARGING_ACTIVE
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_STATE_DISCHARGING_INACTIVE
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_LEVEL_UNKNOWN
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_LEVEL_GOOD
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_LEVEL_LOW
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_BATTERY_CHARGE_LEVEL_CRITICAL
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_TYPE_UNKNOWN
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_TYPE_CURRENT
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_TYPE_VOLTAGE
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_TYPE_TRICKLE
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_TYPE_FLOAT
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_TYPE_RFU
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_FAULT_NONE
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_FAULT_BATTERY
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_FAULT_EXTERNAL_POWER_SOURCE
-
BAS_CHR_LEVEL_STATUS_POWER_STATE_CHARGE_FAULT_OTHER
-
BAS_CHR_LEVEL_STATUS_ASSITIONAL_STATUS_SERVICE_FALSE
-
BAS_CHR_LEVEL_STATUS_ASSITIONAL_STATUS_SERVICE_TRUE
-
BAS_CHR_LEVEL_STATUS_ASSITIONAL_STATUS_SERVICE_UNKNOWN
-
BAS_CHR_LEVEL_STATUS_ASSITIONAL_STATUS_SERVICE_RFU
-
BAS_CHR_LEVEL_STATUS_ASSITIONAL_STATUS_BATTERY_FAULT_UNKNOWN
-
BAS_CHR_LEVEL_STATUS_ASSITIONAL_STATUS_BATTERY_FAULT_TRUE
-
BAS_CHR_CRITICAL_STATUS_FLAGS_BM_NONE
-
BAS_CHR_CRITICAL_STATUS_FLAGS_BM_CRITICAL_POWER_STATE
-
BAS_CHR_CRITICAL_STATUS_FLAGS_BM_IMMEDIATE_SERVICE
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_NONE
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_EXTERNAL_SOURCE_POWER
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_VOLTAGE
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_AVAILALBE_ENERGY
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_AVAILALBE_BATTERY_CAPACITY
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_CHARGE_RATE
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_AVAILALBE_ENERGY_LAST_CHARGE
-
BAS_CHR_ENERGY_STATUS_FLAGS_BM_RFU
-
BAS_CHR_TIME_STATUS_FLAGS_BM_NONE
-
BAS_CHR_TIME_STATUS_FLAGS_BM_DISCHARGED_STANDBY
-
BAS_CHR_TIME_STATUS_FLAGS_BM_RECHARGE
-
BAS_CHR_TIME_STATUS_FLAGS_BM_RFU
-
BAS_CHR_HEALTH_STATUS_FLAGS_BM_NONE
-
BAS_CHR_HEALTH_STATUS_FLAGS_BM_BATTERY_HEALTH_SUMMARY
-
BAS_CHR_HEALTH_STATUS_FLAGS_BM_RCYCLE_COUNT
-
BAS_CHR_HEALTH_STATUS_FLAGS_BM_CURRENT_TEMPERATURE
-
BAS_CHR_HEALTH_STATUS_FLAGS_BM_DEEP_DISCHARGE_COUNT
-
BAS_CHR_HEALTH_STATUS_FLAGS_BM_RFU
-
BAS_CHR_HEALTH_INFO_FLAGS_BM_NONE
-
BAS_CHR_HEALTH_INFO_FLAGS_BM_CYCLE_COUNT_DESIGNED_LIFETIME
-
BAS_CHR_HEALTH_INFO_FLAGS_BM_DESIGNED_OPERATING_TEMPERATURE
-
BAS_CHR_HEALTH_INFO_FLAGS_BM_RFU
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_NONE
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_MANUFACTURE_DATE
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_EXPIRATION_DATE
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_DESIGNED_CAPACITY
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_LOW_ENERGY
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_CRITICAL_ENERGY
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_CHEMISTRY
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_NOMINAL_VOLTAGE
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_AGGREGATION_GROUP
-
BAS_CHR_BATTERY_INFO_FLAGS_BM_RFU
-
BAS_CHR_BATTERY_INFO_FEATURE_BM_NONE
-
BAS_CHR_BATTERY_INFO_FEATURE_BM_REPLACE
-
BAS_CHR_BATTERY_INFO_FEATURE_BM_RECHARGE
-
BAS_CHR_BATTERY_INFO_FEATURE_BM_RFU