APM:Libraries
|
#include <AP_BattMonitor.h>
Classes | |
struct | BattMonitor_State |
struct | cells |
Public Types | |
enum | BatteryFailsafe { BatteryFailsafe_None = 0, BatteryFailsafe_Low, BatteryFailsafe_Critical } |
Public Member Functions | |
FUNCTOR_TYPEDEF (battery_failsafe_handler_fn_t, void, const char *, const int8_t) | |
AP_BattMonitor (uint32_t log_battery_bit, battery_failsafe_handler_fn_t battery_failsafe_handler_fn, const int8_t *failsafe_priorities) | |
AP_BattMonitor (const AP_BattMonitor &other)=delete | |
AP_BattMonitor & | operator= (const AP_BattMonitor &)=delete |
uint8_t | num_instances (void) const |
void | init () |
void | read () |
Read the battery voltage and current for all batteries. Should be called at 10hz. More... | |
bool | healthy (uint8_t instance) const |
bool | healthy () const |
bool | has_consumed_energy (uint8_t instance) const |
has_consumed_energy - returns true if battery monitor instance provides consumed energy info More... | |
bool | has_consumed_energy () const |
bool | has_current (uint8_t instance) const |
has_current - returns true if battery monitor instance provides current info More... | |
bool | has_current () const |
float | voltage (uint8_t instance) const |
voltage - returns battery voltage in millivolts More... | |
float | voltage () const |
float | voltage_resting_estimate (uint8_t instance) const |
float | voltage_resting_estimate () const |
float | current_amps (uint8_t instance) const |
current_amps - returns the instantaneous current draw in amperes More... | |
float | current_amps () const |
float | consumed_mah (uint8_t instance) const |
consumed_mah - returns total current drawn since start-up in milliampere.hours More... | |
float | consumed_mah () const |
float | consumed_wh (uint8_t instance) const |
consumed_wh - returns total energy drawn since start-up in watt.hours More... | |
float | consumed_wh () const |
virtual uint8_t | capacity_remaining_pct (uint8_t instance) const |
capacity_remaining_pct - returns the % battery capacity remaining (0 ~ 100) More... | |
uint8_t | capacity_remaining_pct () const |
int32_t | pack_capacity_mah (uint8_t instance) const |
pack_capacity_mah - returns the capacity of the battery pack in mAh when the pack is full More... | |
int32_t | pack_capacity_mah () const |
BatteryFailsafe | check_failsafe (const uint8_t instance) |
returns the failsafe state of the battery More... | |
void | check_failsafes (void) |
bool | has_failsafed (void) const |
returns true if a battery failsafe has ever been triggered More... | |
int8_t | get_highest_failsafe_priority (void) const |
returns the highest failsafe action that has been triggered More... | |
enum AP_BattMonitor_Params::BattMonitor_Type | get_type () |
get_type - returns battery monitor type More... | |
enum AP_BattMonitor_Params::BattMonitor_Type | get_type (uint8_t instance) |
void | set_monitoring (uint8_t instance, uint8_t mon) |
set_monitoring - sets the monitor type (used for example sketch only) More... | |
bool | overpower_detected () const |
true when (voltage * current) > watt_max More... | |
bool | overpower_detected (uint8_t instance) const |
bool | has_cell_voltages () |
bool | has_cell_voltages (const uint8_t instance) const |
const cells & | get_cell_voltages () const |
const cells & | get_cell_voltages (const uint8_t instance) const |
bool | get_temperature (float &temperature) const |
bool | get_temperature (float &temperature, const uint8_t instance) const |
float | get_resistance () const |
float | get_resistance (uint8_t instance) const |
Static Public Member Functions | |
static AP_BattMonitor & | battery () |
Static Public Attributes | |
static const struct AP_Param::GroupInfo | var_info [] |
Protected Attributes | |
AP_BattMonitor_Params | _params [AP_BATT_MONITOR_MAX_INSTANCES] |
parameters More... | |
Private Member Functions | |
void | convert_params (void) |
number of monitors More... | |
Private Attributes | |
BattMonitor_State | state [AP_BATT_MONITOR_MAX_INSTANCES] |
AP_BattMonitor_Backend * | drivers [AP_BATT_MONITOR_MAX_INSTANCES] |
uint32_t | _log_battery_bit |
uint8_t | _num_instances |
battery_failsafe_handler_fn_t | _battery_failsafe_handler_fn |
const int8_t * | _failsafe_priorities |
int8_t | _highest_failsafe_priority |
bool | _has_triggered_failsafe |
Static Private Attributes | |
static AP_BattMonitor * | _singleton |
Friends | |
class | AP_BattMonitor_Backend |
class | AP_BattMonitor_Analog |
class | AP_BattMonitor_SMBus |
class | AP_BattMonitor_SMBus_Solo |
class | AP_BattMonitor_SMBus_Maxell |
class | AP_BattMonitor_UAVCAN |
Definition at line 30 of file AP_BattMonitor.h.
Enumerator | |
---|---|
BatteryFailsafe_None | |
BatteryFailsafe_Low | |
BatteryFailsafe_Critical |
Definition at line 42 of file AP_BattMonitor.h.
AP_BattMonitor::AP_BattMonitor | ( | uint32_t | log_battery_bit, |
battery_failsafe_handler_fn_t | battery_failsafe_handler_fn, | ||
const int8_t * | failsafe_priorities | ||
) |
|
delete |
|
inlinestatic |
Definition at line 56 of file AP_BattMonitor.h.
Referenced by AP::battery().
|
virtual |
capacity_remaining_pct - returns the % battery capacity remaining (0 ~ 100)
Definition at line 286 of file AP_BattMonitor.cpp.
Referenced by GCS_MAVLINK::send_battery_status(), AP_Frsky_Telem::send_D(), and AP_Frsky_Telem::send_SPort().
|
inline |
Definition at line 126 of file AP_BattMonitor.h.
Referenced by capacity_remaining_pct(), and consumed_wh().
AP_BattMonitor::BatteryFailsafe AP_BattMonitor::check_failsafe | ( | const uint8_t | instance | ) |
returns the failsafe state of the battery
Definition at line 358 of file AP_BattMonitor.cpp.
Referenced by check_failsafes(), and pack_capacity_mah().
void AP_BattMonitor::check_failsafes | ( | void | ) |
Definition at line 305 of file AP_BattMonitor.cpp.
Referenced by pack_capacity_mah(), and read().
float AP_BattMonitor::consumed_mah | ( | uint8_t | instance | ) | const |
consumed_mah - returns total current drawn since start-up in milliampere.hours
Definition at line 268 of file AP_BattMonitor.cpp.
Referenced by AP_Frsky_Telem::calc_batt(), DataFlash_Class::Log_Write_Current_instance(), and GCS_MAVLINK::send_battery_status().
|
inline |
Definition at line 118 of file AP_BattMonitor.h.
Referenced by check_failsafe(), check_failsafes(), consumed_mah(), and current_amps().
float AP_BattMonitor::consumed_wh | ( | uint8_t | instance | ) | const |
consumed_wh - returns total energy drawn since start-up in watt.hours
consumed_wh - returns energy consumed since start-up in Watt.hours
Definition at line 277 of file AP_BattMonitor.cpp.
Referenced by DataFlash_Class::Log_Write_Current_instance(), and GCS_MAVLINK::send_battery_status().
|
inline |
Definition at line 122 of file AP_BattMonitor.h.
Referenced by consumed_mah(), and consumed_wh().
|
private |
number of monitors
Definition at line 113 of file AP_BattMonitor.cpp.
Referenced by init().
float AP_BattMonitor::current_amps | ( | uint8_t | instance | ) | const |
current_amps - returns the instantaneous current draw in amperes
Definition at line 259 of file AP_BattMonitor.cpp.
Referenced by AP_Frsky_Telem::calc_batt(), AP_Compass_Backend::correct_field(), AP_MotorsMulticopter::get_current_limit_max_throttle(), DataFlash_Class::Log_Write_Current_instance(), AP_Motors6DOF::output_armed_stabilizing(), GCS_MAVLINK::send_battery2(), GCS_MAVLINK::send_battery_status(), AP_Frsky_Telem::send_D(), and AP_Frsky_Telem::send_SPort().
|
inline |
Definition at line 114 of file AP_BattMonitor.h.
Referenced by current_amps(), and voltage_resting_estimate().
AP_BattMonitor::FUNCTOR_TYPEDEF | ( | battery_failsafe_handler_fn_t | , |
void | , | ||
const char * | , | ||
const int8_t | |||
) |
|
inline |
Definition at line 156 of file AP_BattMonitor.h.
Referenced by get_cell_voltages(), DataFlash_Class::Log_Write_Current_instance(), and GCS_MAVLINK::send_battery_status().
const AP_BattMonitor::cells & AP_BattMonitor::get_cell_voltages | ( | const uint8_t | instance | ) | const |
Definition at line 455 of file AP_BattMonitor.cpp.
|
inline |
returns the highest failsafe action that has been triggered
Definition at line 140 of file AP_BattMonitor.h.
|
inline |
Definition at line 164 of file AP_BattMonitor.h.
Referenced by AP_MotorsMulticopter::get_current_limit_max_throttle(), get_resistance(), and DataFlash_Class::Log_Write_Current_instance().
|
inline |
Definition at line 165 of file AP_BattMonitor.h.
|
inline |
Definition at line 160 of file AP_BattMonitor.h.
Referenced by get_temperature(), DataFlash_Class::Log_Write_Current_instance(), and GCS_MAVLINK::send_battery_status().
bool AP_BattMonitor::get_temperature | ( | float & | temperature, |
const uint8_t | instance | ||
) | const |
|
inline |
|
inline |
get_type - returns battery monitor type
Definition at line 143 of file AP_BattMonitor.h.
Referenced by init(), and read().
|
inline |
Definition at line 154 of file AP_BattMonitor.h.
Referenced by has_cell_voltages(), and DataFlash_Class::Log_Write_Current_instance().
bool AP_BattMonitor::has_cell_voltages | ( | const uint8_t | instance | ) | const |
bool AP_BattMonitor::has_consumed_energy | ( | uint8_t | instance | ) | const |
has_consumed_energy - returns true if battery monitor instance provides consumed energy info
Definition at line 215 of file AP_BattMonitor.cpp.
Referenced by GCS_MAVLINK::send_battery_status().
|
inline |
Definition at line 97 of file AP_BattMonitor.h.
Referenced by has_consumed_energy(), and healthy().
bool AP_BattMonitor::has_current | ( | uint8_t | instance | ) | const |
has_current - returns true if battery monitor instance provides current info
Definition at line 226 of file AP_BattMonitor.cpp.
Referenced by AP_Compass_Backend::correct_field(), AP_MotorsMulticopter::get_current_limit_max_throttle(), AP_Motors6DOF::output_armed_stabilizing(), GCS_MAVLINK::send_battery2(), and GCS_MAVLINK::send_battery_status().
|
inline |
Definition at line 101 of file AP_BattMonitor.h.
Referenced by check_failsafe(), has_consumed_energy(), and has_current().
|
inline |
returns true if a battery failsafe has ever been triggered
Definition at line 137 of file AP_BattMonitor.h.
bool AP_BattMonitor::healthy | ( | uint8_t | instance | ) | const |
Definition at line 210 of file AP_BattMonitor.cpp.
|
inline |
Definition at line 93 of file AP_BattMonitor.h.
Referenced by healthy(), and num_instances().
void AP_BattMonitor::init | ( | void | ) |
Definition at line 50 of file AP_BattMonitor.cpp.
Referenced by num_instances().
|
inline |
Definition at line 83 of file AP_BattMonitor.h.
Referenced by AP_Arming::battery_checks(), DataFlash_Class::Log_Write_Current(), GCS_MAVLINK::send_battery2(), GCS_MAVLINK::send_battery_status(), and AP_Frsky_Telem::send_SPort_Passthrough().
|
delete |
bool AP_BattMonitor::overpower_detected | ( | ) | const |
true when (voltage * current) > watt_max
Definition at line 423 of file AP_BattMonitor.cpp.
Referenced by set_monitoring().
bool AP_BattMonitor::overpower_detected | ( | uint8_t | instance | ) | const |
Definition at line 432 of file AP_BattMonitor.cpp.
int32_t AP_BattMonitor::pack_capacity_mah | ( | uint8_t | instance | ) | const |
pack_capacity_mah - returns the capacity of the battery pack in mAh when the pack is full
Definition at line 296 of file AP_BattMonitor.cpp.
Referenced by AP_Frsky_Telem::calc_param().
|
inline |
Definition at line 130 of file AP_BattMonitor.h.
Referenced by capacity_remaining_pct(), and pack_capacity_mah().
void AP_BattMonitor::read | ( | void | ) |
Read the battery voltage and current for all batteries. Should be called at 10hz.
Definition at line 187 of file AP_BattMonitor.cpp.
Referenced by num_instances().
|
inline |
set_monitoring - sets the monitor type (used for example sketch only)
Definition at line 147 of file AP_BattMonitor.h.
float AP_BattMonitor::voltage | ( | uint8_t | instance | ) | const |
voltage - returns battery voltage in millivolts
voltage - returns battery voltage in volts
Definition at line 237 of file AP_BattMonitor.cpp.
Referenced by AP_Arming::battery_checks(), AP_Frsky_Telem::calc_batt(), AP_MotorsMulticopter::get_current_limit_max_throttle(), DataFlash_Class::Log_Write_Current_instance(), GCS_MAVLINK::send_battery2(), AP_Frsky_Telem::send_D(), and AP_Frsky_Telem::send_SPort().
|
inline |
Definition at line 105 of file AP_BattMonitor.h.
Referenced by check_failsafes(), has_current(), read(), voltage(), and voltage_resting_estimate().
float AP_BattMonitor::voltage_resting_estimate | ( | uint8_t | instance | ) | const |
get voltage with sag removed (based on battery current draw and resistance) this will always be greater than or equal to the raw voltage
Definition at line 248 of file AP_BattMonitor.cpp.
Referenced by DataFlash_Class::Log_Write_Current_instance(), and AP_MotorsMulticopter::update_lift_max_from_batt_voltage().
|
inline |
Definition at line 110 of file AP_BattMonitor.h.
Referenced by check_failsafe(), voltage(), and voltage_resting_estimate().
|
friend |
Definition at line 33 of file AP_BattMonitor.h.
Referenced by init().
|
friend |
Definition at line 32 of file AP_BattMonitor.h.
|
friend |
Definition at line 34 of file AP_BattMonitor.h.
|
friend |
Definition at line 36 of file AP_BattMonitor.h.
Referenced by init().
|
friend |
Definition at line 35 of file AP_BattMonitor.h.
Referenced by init().
|
friend |
Definition at line 37 of file AP_BattMonitor.h.
Referenced by init().
|
private |
Definition at line 184 of file AP_BattMonitor.h.
Referenced by check_failsafes().
|
private |
Definition at line 185 of file AP_BattMonitor.h.
Referenced by check_failsafes().
|
private |
Definition at line 188 of file AP_BattMonitor.h.
Referenced by check_failsafes(), and has_failsafed().
|
private |
Definition at line 187 of file AP_BattMonitor.h.
Referenced by check_failsafes(), get_highest_failsafe_priority(), and init().
|
private |
Definition at line 179 of file AP_BattMonitor.h.
Referenced by read().
|
private |
Definition at line 180 of file AP_BattMonitor.h.
Referenced by capacity_remaining_pct(), check_failsafe(), check_failsafes(), consumed_mah(), consumed_wh(), current_amps(), has_cell_voltages(), has_consumed_energy(), has_current(), healthy(), init(), num_instances(), overpower_detected(), read(), voltage(), and voltage_resting_estimate().
|
protected |
parameters
Definition at line 172 of file AP_BattMonitor.h.
Referenced by check_failsafe(), check_failsafes(), convert_params(), get_type(), has_consumed_energy(), has_current(), init(), overpower_detected(), pack_capacity_mah(), read(), and set_monitoring().
|
staticprivate |
Definition at line 175 of file AP_BattMonitor.h.
Referenced by AP_BattMonitor(), and battery().
|
private |
Definition at line 178 of file AP_BattMonitor.h.
Referenced by capacity_remaining_pct(), has_cell_voltages(), has_consumed_energy(), has_current(), init(), and read().
|
private |
Definition at line 177 of file AP_BattMonitor.h.
Referenced by check_failsafe(), check_failsafes(), consumed_mah(), consumed_wh(), current_amps(), get_cell_voltages(), get_resistance(), get_temperature(), healthy(), init(), overpower_detected(), voltage(), and voltage_resting_estimate().
|
static |
Definition at line 167 of file AP_BattMonitor.h.
Referenced by AP_BattMonitor().