Commit Graph

399 Commits

Author SHA1 Message Date
TunaLobster 6733f75542 AP_BattMonitor: Add Fuel Level Analog driver 2022-08-16 09:36:31 +10:00
Iampete1 6e6fcf4880 AP_BattMonitor: params always use set method 2022-08-03 13:43:48 +01:00
Andrew Tridgell ba10c0ae42 AP_BattMonitor: make healthy() check all configured monitors
GCS reporting for SYS_STATUS should check all healthy, not just first
backend
2022-06-24 11:13:16 +10:00
Andrew Tridgell 93ee9a4ac1 AP_BattMonitor: allow INA2xx battery monitors to be powered after boot
the device doesn't show up till main battery is connected, so we need
this change to allow for separate avionics battery and main battery
with avionics battery powered on first
2022-06-24 11:13:16 +10:00
Andrew Tridgell 9a6fb19208 AP_BattMonitor: report arming unhealthy if backend unhealthy
important for i2c based battery backends
2022-06-24 11:13:16 +10:00
Peter Barker 6c377b2dcd AP_BattMonitor: tidy includes 2022-05-03 09:14:58 +10:00
Peter Barker 2c0f52a8b7 AP_BattMonitor: zero-terminate strings in caller rather than read_block
It was noted that we did not increment the return value bufflen when
adding zero.  This is an ambiguity in the function declaration; if we
are told to add a zero should the return value be like strnlen (does not
include terminating null character) or read (includes all bytes used in
return buffer).

This PR makes it a non-issue by ensuring string null termination in the
caller and removing the append_zero parameter.
2022-05-03 07:11:45 +10:00
Peter Barker c2bf79d3f3 AP_BattMonitor: add PARAMETER CONVERSION comments 2022-04-28 10:17:11 +10:00
Andrew Tridgell ce27ec2276 AP_BattMonitor: fixed battery remaining of sum battery
and move to common function for update_consumed()
2022-03-23 20:21:38 +11:00
Andrew Tridgell 9c067f360f AP_BattMonitor: added option to send resting voltage to GCS 2022-03-22 11:12:54 +11:00
murata 9d321c5c31 AP_BattMonitor: Change from division to multiplication 2022-03-16 18:41:52 +11:00
Henry Wurzburg f5766bb098 AP_BattMonitor: update name of type 10 to Sum of Selected Monitors 2022-02-26 08:31:24 +09:00
Joshua Henderson 1cf31dc25b AP_BattMonitor: fix UAVCAN param index for varptr 2022-02-11 22:17:18 +09:00
Joshua Henderson ec1f5e39b4 AP_BattMonitor: add documentation for UAVCAN params 2022-02-11 22:17:18 +09:00
murata b3dd61656d AP_BattMonitor: Remove meaningless semicolons 2022-02-07 08:27:34 +09:00
Hwurzburg 95e074a7bc AP_BattMonitor: update option names in BATTMonitor in prep for expansion 2022-02-01 12:35:03 +11:00
Joshua Henderson 90744e08e1 AP_BattMonitor: UAVCAN switch to CURR_MULT 2022-01-25 13:55:31 +09:00
Hwurzburg 45e8cdea70 AP_BatteryMonitor: add current scaler for UAVCAN 2022-01-25 10:37:00 +11:00
Peter Barker a894b93762 AP_BattMonitor: make C_TO_KELVIN a function macro; create KELVIN_TO_C
These are in celsius
2022-01-13 18:31:46 +11:00
Andrew Tridgell fa2ae44926 AP_BattMonitor: fixed a segv with BATT_MONITOR=14
this causes a hang on boot on some boards
2021-12-29 10:51:35 +11:00
arBalasquide 10b4eebce4 AP_BattMonitor: Add calculate_mah, add unit tests 2021-12-22 07:52:03 +11:00
Shiv Tyagi c34301d925 AP_BattMonitor: remove MPPT_PacketDigital from Type enum
we have removed AP_BattMonitor_MPPT_PacketDigital, hence this should be removed too
2021-12-17 20:24:25 +09:00
Shiv Tyagi b34a7e46a8 AP_BatteryMonitor: remove AP_BattMonitor_MPPT_PacketDigital class
since latest versions of PacketDigital MPPT support UAVCAN, we can remove this older class
2021-12-16 09:39:43 +09:00
Hwurzburg 38e8e15200 AP_BattMonitor: change UAVCAN in metadata to DroneCAN 2021-12-15 09:53:21 +11:00
Josh Henderson d79a9b7497 AP_BattMonitor: use SOC 127 as an invalid SOC flag 2021-12-14 09:11:48 +09:00
Peter Barker 70d98336bc AP_BattMonitor: make logging dependent on HAL_LOGGING_ENABLED not HAL_BUILD_AP_PERIPH
We have logging on some periphs now
2021-12-14 10:34:06 +11:00
Randy Mackay dea7e969bd AP_BattMonitor_UAVCAN: re-format text based fault reporting and add get_mavlink_fault_bitmask 2021-12-07 02:12:06 -08:00
Tom Pittenger 1724d4911d AP_BattMonitor: add UAVCAN MPPT PacketDigital driver 2021-12-07 02:12:06 -08:00
Andrew Tridgell 42412b2a60 AP_BattMonitor: added VLT_OFFSET for analog
useful for diode bias in voltage monitors

thanks to Charles from ASW and Jeff Wurzbach
2021-11-17 19:09:40 +11:00
Josh Henderson fb28b39206 AP_BattMonitor: remove old parameter conversion to allow setting BATT_MONITOR to 0 2021-11-16 11:58:01 +11:00
Andrew Tridgell 75dfa6bae4 AP_BattMonitor: support other INA2xx battery monitors
added parameters for I2C bus and address. Tested on INA231 and INA226

This allows any 2M flash board to use an INA2xx battery monitor
2021-11-05 14:30:43 +11:00
Iampete1 73fb871695 AP_BatteryMoniter: combine pointer loaded param tables 2021-11-02 11:12:57 +11:00
Iampete1 7d4f305f20 AP_BatteryMoniter: add mask param to sum battery backend. 2021-11-02 11:12:57 +11:00
Andy Piper 70b02aeadf AP_BattMonitor: convert APM_BUILD_COPTER_OR_HELI() to APM_BUILD_COPTER_OR_HELI 2021-10-26 11:42:12 +11:00
Randy Mackay 1bdfe8ad55 AP_BattMonitor: fixups from peer review 2021-10-19 01:30:51 -04:00
Randy Mackay d3c8a5e85f AP_BattMonitor: add torqeedo battery monitor 2021-10-19 01:30:51 -04:00
李孟晓 e5efc52324 AP_BattMonitor: Add support for BatteryInfoAux message 2021-10-13 18:44:05 +11:00
李孟晓 bf1a17825c AP_BattMonitor: Provide the time remaining 2021-10-13 18:44:05 +11:00
Andrew Tridgell 281b8eb234 AP_BattMonitor: support LTC2946 I2C battery monitoring 2021-10-12 15:47:51 +11:00
Andrew Tridgell 2903e10fc0 AP_BattMonitor: added INA231 backend
only enabled via hwdef.dat for now
2021-10-12 15:47:51 +11:00
Josh Henderson ca568953d9 AP_BattMonitor: capacity_remaining_pct add checks for healthy status and has_current 2021-10-07 22:16:02 +11:00
Iampete1 19f66803ff AP_BatteryMonitor: Analog: check valid pin 2021-10-06 18:42:51 +11:00
Gone4Dirt 1d02ac768d AP_BattMonitor: Add APM_BUILD_Heli 2021-09-29 19:55:48 +10:00
Iampete1 69624b1c1b AP_BatteryMoniter: add plane Loiter to QLand failsafe action 2021-09-28 09:31:13 +10:00
Peter Barker f71b4ec568 AP_BattMonitor: rename GENERATOR_ENABLED to HAL_GENERATOR_ENABLED 2021-09-26 19:24:09 +10:00
Peter Barker b18bdb80d6 AP_BattMonitor: move from HAL_NO_GCS to HAL_GCS_ENABLED 2021-09-22 21:37:00 +10:00
Tatsuya Yamaguchi 1dcc5c3030 AP_BattMonitor: cope with AP_BATT_MONITOR_MAX_INSTANCES < 9 2021-09-22 18:58:12 +10:00
Willian Galvani 08b33954db AP_BattMonitor_Analog: add default PM definitions for the Navigator Board 2021-09-14 09:21:42 +10:00
Willian Galvani 2e5b689196 AP_BattMonitor_Analog: allow per-board setting of CURR_AMP_OFFSET 2021-09-14 09:21:42 +10:00
Mohammad Hefny bd099b3910 AP_Batt: link to battery monitor 2021-09-10 08:17:37 +10:00
Willian Galvani 1057161f88 AP_BattMonitor_logging: update to use capacity_remaining_pct() as a bool 2021-09-08 17:17:41 +10:00
Willian Galvani 9206599e6c AP_BattMonitor_UAVCAN: update to use capacity_remaining_pct() as a bool 2021-09-08 17:17:41 +10:00
Willian Galvani 207723319b AP_BattMonitor_Backend: change capacity_remaining_pct() to a bool 2021-09-08 17:17:41 +10:00
Willian Galvani 735e2ab651 AP_BattMonitor: change capacity_remaining_pct() to a bool 2021-09-08 17:17:41 +10:00
Andrew Tridgell a2790f57c0 AP_BattMonitor: mark logger Write() calls as streaming where appropriate 2021-08-18 10:20:03 +10:00
Tom Pittenger 00cc8a4042 AP_BattMonitor: fix mppt sequence bug
closes https://github.com/ArduPilot/ardupilot/issues/18283
2021-08-12 14:37:04 +10:00
Andrew Tridgell bbfd2e962e AP_BattMonitor: mark log messages as streaming 2021-08-03 10:23:36 +10:00
Josh Henderson 289264f1dd AP_BattMonitor: move analog parameters to subgroupvarptr 2021-08-03 09:36:26 +10:00
Josh Henderson e37efa45de AP_BattMonitor: add SMBus address param and create SMBus subtree 2021-08-03 09:36:26 +10:00
Iampete1 cea54c48cd AP_BattMoniter: add Auto RTL option 2021-07-27 09:00:11 +09:00
bugobliterator e553acd3e3 AP_BattMonitor: use separate register_driver method while contructing CAN Driver 2021-07-23 16:01:29 +10:00
Willian Galvani 9083c97acf AP_BattMonitor: add Navigator to pins metadata 2021-07-19 12:21:40 -07:00
Josh Henderson 84fb03cb79 AP_BattMonitor: SMBus remove unused bool returns 2021-07-18 16:13:06 -07:00
Josh Henderson 0d64782220 AP_BattMonitor: remove temp var for SMBus read_full_charge_capacity 2021-07-18 16:13:06 -07:00
Josh Henderson 8af12608df AP_BattMonitor: make NeoDesign obey SMBUS_ENABLE 2021-07-18 15:16:57 -07:00
Michelle Rossouw ad2aca4900 AP_BattMonitor: Add blimp param frame values 2021-07-06 14:56:02 +10:00
Peter Barker 819c331acd AP_BattMonitor: correct static_assert call 2021-06-28 11:05:00 +09:00
Michael du Breuil 0de9d3e759 AP_BattMonitor: Rearrange battery parameters to reduce memory usage
Saves 8 bytes per Params instance, which we have 9 of on every vehicle,
for a total saving of 72 bytes
2021-06-22 10:08:02 +10:00
Iampete1 cab8274690 AP_BattMoniter: log in Ah and Wh, add percentage to log 2021-06-22 09:19:40 +10:00
Iampete1 8ea9803193 AP_BatteryMoniter: fix mah to wah conversion 2021-06-22 09:19:40 +10:00
Andy Piper 3e6d8357e9 AP_BattMonitor: zero consumption total before recalculating
add reset function to ESC backend.
2021-06-16 17:48:47 +10:00
Peter Barker 278dc4a09b AP_BattMonitor: add cells 13 and 14 for SITL only
Allows for testing higher-cell-count scenarios
2021-06-15 09:46:26 +10:00
Peter Barker bf10b454d1 AP_BattMonitor: add assertion to avoid memory over-read 2021-06-15 09:46:26 +10:00
Peter Barker bf9937489b AP_BattMonitor: switch to Log_Write for BCL2
Just for the flash savings on smaller boards
2021-06-15 09:46:26 +10:00
Dr.-Ing. Amilcar do Carmo Lucas 85666959ea AP_BattMonitor: Increase the max. nr. of supported battery cells from 12 to 14
Uses a second message, because the original message does not support any more fields
2021-06-15 09:46:26 +10:00
Tom Pittenger adccc3deb7 AP_BattMonitor: add support for AP_Periph MPPT driver 2021-06-09 18:36:18 +10:00
李孟晓 27089b4d2b AP_BattMonitor: Fix the comment of BATTx_OPTIONS 2021-06-08 11:16:19 +10:00
Josh Henderson 80a17cb97f AP_BattMonitor: get Mavlink charge state 2021-06-08 09:27:13 +10:00
James O'Shannessy 89e4df485a AP_BattMonitor: Record and report UAVCAN Battery Info temperature correctly 2021-06-01 12:35:24 +10:00
Andy Piper 71e7f7e476 AP_BattMonitor: refector to use AP_ESC_Telem
rename AP_BattMonitor_BLHeliESC -> AP_BattMonitor_ESC
record volts, amps and consumption as floats
Correct ESC-telemetry-based voltage and temperature (<amilcar.lucas@iav.de>)
Correct ESC-telemetry-based voltage and temperature when less than 12 ESCs are used (<amilcar.lucas@iav.de>)
fix jumps in consumed current (<amilcar.lucas@iav.de>)
Implement temperature readings (<amilcar.lucas@iav.de>)
Fix temperature scaling (<amilcar.lucas@iav.de>)
2021-05-12 17:01:11 +10:00
Tom Pittenger b62ab14791 AP_BattMonitor: prepare MPPT driver for AP_Periph 2021-04-28 19:22:53 -07:00
Tom Pittenger a7f81c838f AP_BattMonitor: make virtual Backend.init() optional to fix CANDriver.init(uint8, uint8) ambiguitiy 2021-04-28 19:22:53 -07:00
Tom Pittenger a365e18420 AP_BattMonitor: add MPPT PacketDigital driver 2021-04-28 19:22:53 -07:00
Iampete1 9fdceeded3 AP_BattMoniter: add reset remaining per-instance rename existing to _mask 2021-03-31 19:21:59 +11:00
Michael du Breuil e5de148ad1 AP_BattMonitor: Fix nullptr deref when resetting a battery 2021-03-30 09:47:44 +11:00
Peter Barker 84953c2e39 AP_BattMonitor: fix constexpr-and-MIN don't get along bug
lib/libArduCopter_libs.a(AP_BattMonitor_SMBus_NeoDesign.cpp.0.o): In function `AP_BattMonitor_SMBus_NeoDesign::timer()':
/home/pbarker/rc/ardupilot/build/sitl/../../libraries/AP_BattMonitor/AP_BattMonitor_SMBus_NeoDesign.cpp:27: undefined reference to `AP_BattMonitor_SMBus_NeoDesign::max_cell_count'
collect2: error: ld returned 1 exit status
2021-02-04 09:17:57 +11:00
Michael du Breuil f854477efe AP_BattMonitor: Limit the scope of possible corruption if the NeoDesigns gets a bad cell count 2021-02-03 19:21:39 +11:00
Patrick José Pereira d190fff887 AP_BattMonitor: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
李孟晓 40dbb316c1 AP_BattMonitor: ignore SoC option for UAVCAN devices 2021-01-13 18:30:53 +11:00
Josh Henderson e91953fa3b AP_BattMonitor: move log BAT & BCL into AP_BattMonitor 2021-01-12 17:43:55 +11:00
Josh Henderson dfa8e55622 AP_BattMonitor: add has_temperature method to Backend 2021-01-12 17:43:55 +11:00
李孟晓 aae2d0082d AP_BattMonitor_UAVCAN: Fix issue with multiple batteries not working 2020-12-16 12:44:21 +11:00
Peter Barker 00a8a8fe8e AP_BattMonitor: use enum class For Battery Failsafe 2020-12-07 15:20:14 +11:00
Tom Pittenger 171a10e117 AP_BattMonitor: Add support for multiple UAVCAN batteries from a single node 2020-11-25 14:20:53 +11:00
Tom Pittenger 48e2b78cab AP_BattMonitor: fix compile for AP_Periph 2020-11-25 14:20:53 +11:00
Gone4Dirt 836717c0af AP_BattMonitor: Add support for AP_Generator frontend-backend 2020-11-24 12:54:52 +11:00
Nick Belanger dbe5b90398 AP_BattMonitor: Adding driver for Rotoye Batmon equipped smart batteries 2020-11-11 14:24:13 +11:00
Rishabh cd8404f80c AP_BattMonitor: Update @value field in param to be increasing order 2020-10-27 17:15:04 +11:00
Peter Barker 4d59939db6 AP_BattMonitor: create and use new AP_HAL::PWMSource object 2020-09-08 16:10:50 +10:00
Siddharth Purohit 9820ea9023 AP_BattMonitor: move to using CANManager library 2020-08-19 17:31:09 +10:00