ardupilot/libraries/AP_BattMonitor/AP_BattMonitor_Params.h

42 lines
2.2 KiB
C++

#pragma once
#include <AP_Param/AP_Param.h>
class AP_BattMonitor_Params {
public:
static const struct AP_Param::GroupInfo var_info[];
AP_BattMonitor_Params(void);
/* Do not allow copies */
AP_BattMonitor_Params(const AP_BattMonitor_Params &other) = delete;
AP_BattMonitor_Params &operator=(const AP_BattMonitor_Params&) = delete;
// low voltage sources (used for BATT_LOW_TYPE parameter)
enum BattMonitor_LowVoltage_Source {
BattMonitor_LowVoltageSource_Raw = 0,
BattMonitor_LowVoltageSource_SagCompensated = 1
};
enum class Options : uint8_t {
Ignore_UAVCAN_SoC = (1U<<0),
};
BattMonitor_LowVoltage_Source failsafe_voltage_source(void) const { return (enum BattMonitor_LowVoltage_Source)_failsafe_voltage_source.get(); }
AP_Int32 _pack_capacity; /// battery pack capacity less reserve in mAh
AP_Int32 _serial_number; /// battery serial number, automatically filled in on SMBus batteries
AP_Float _low_voltage; /// voltage level used to trigger a low battery failsafe
AP_Float _low_capacity; /// capacity level used to trigger a low battery failsafe
AP_Float _critical_voltage; /// voltage level used to trigger a critical battery failsafe
AP_Float _critical_capacity; /// capacity level used to trigger a critical battery failsafe
AP_Int32 _arming_minimum_capacity; /// capacity level required to arm
AP_Float _arming_minimum_voltage; /// voltage level required to arm
AP_Int32 _options; /// Options
AP_Int16 _watt_max; /// max battery power allowed. Reduce max throttle to reduce current to satisfy t his limit
AP_Int8 _type; /// 0=disabled, 3=voltage only, 4=voltage and current
AP_Int8 _low_voltage_timeout; /// timeout in seconds before a low voltage event will be triggered
AP_Int8 _failsafe_voltage_source; /// voltage type used for detection of low voltage event
AP_Int8 _failsafe_low_action; /// action to preform on a low battery failsafe
AP_Int8 _failsafe_critical_action; /// action to preform on a critical battery failsafe
};