Commit Graph

17 Commits

Author SHA1 Message Date
Thomas Watson fb9119fac8 AP_BattMonitor: create table of used backend paramater indices
Hopefully makes it less likely for conflicts to happen and makes it
easier to find free indices.
2024-12-14 15:42:31 +11:00
Thomas Watson 9f7ed65bc0 AP_BattMonitor: optimize DroneCAN subscription process
* remove unnecessary nullptr check, these are always called from an
  initialized AP_DroneCAN so if it's nullptr something has gone
  horrifically wrong

* pass in driver index instead of repeatedly calling function to get it

* simplify error handling; knowing exactly which allocation failed is not
  super helpful and one failing likely means subsequent ones will too,
  as it can only fail due to being out of memory
2024-11-18 10:30:29 +11:00
Peter Barker 029e0b15b3 AP_BattMonitor: avoid casting DroneCAN backend to incorrect type
- split get_type into allocated_type and configured_type
 - check allocated type rather than configured type when looking at backends

Prevents overwrite of random memory when backends are changed at runtime.
2024-06-11 09:31:46 +10:00
Andrew Tridgell 4879cc24e6 AP_BattMonitor: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Iampete1 9026ce065a AP_BattMonitor: ESC: add mask 2024-05-14 09:58:04 +10:00
Randy Mackay dfd22aba32 AP_BattMonitor: support logging state-of-health percentage
Only DroneCAN backend implements this feature for now
2024-01-10 18:38:25 +11:00
Andrew Tridgell c48feefe23 AP_BattMonitor: fixed battery percentage with aux info
when we have aux battery information we had assumed the CAN device
would provide the battery remaining percentage. We should obey the "do
not use CAN SoC" with or without an AUX message

This fixes CAN battery monitors with a cell monitor
2023-11-27 13:02:46 +11:00
Andrew Tridgell aaa4e0268a AP_BattMonitor: cope with InfoAux without nominal voltage
allows for reset of remaining charge from GCS or lua
2023-10-31 11:09:51 +11:00
Andrew Tridgell 532ab09c72 AP_BattMonitor: added option allowing InfoAux to be from different node
this allows the CAN node providing cell voltages to be a different CAN
node from the node providing the base current/voltage
2023-10-31 11:09:51 +11:00
Andrew Tridgell 7ce9febf9f AP_BattMonitor: use a reference for AP::battery()
saves a small amount of flash
2023-10-31 11:09:51 +11:00
Iampete1 816b92346e AP_BattMonitor: DroneCAN: always have consumed energy 2023-10-17 11:13:26 +11:00
Andrew Tridgell 595748d7ff AP_BattMonitor: fixes for macos CAN SITL build 2023-08-29 15:09:48 +10:00
Iampete1 9b54dee7a6 AP_BattMonitor: DroneCAN: allow battery reset if not using CAN SoC 2023-06-27 11:38:15 +10:00
Andrew Tridgell ab8049f8e9 AP_BattMonitor: text messages and more defines 2023-04-11 10:31:31 +10:00
Andrew Tridgell 11a2f5ed9c AP_BattMonitor: rename more variables, types and defines 2023-04-11 10:31:31 +10:00
Andrew Tridgell 017543f6e6 AP_BattMonitor: update header references 2023-04-11 10:31:31 +10:00
Andrew Tridgell 63e67db516 AP_BattMonitor: rename UAVCAN drivers to DroneCAN 2023-04-11 10:31:31 +10:00