diff --git a/Tools/AP_Periph/Parameters.cpp b/Tools/AP_Periph/Parameters.cpp index 0e71148463..5087d5e806 100644 --- a/Tools/AP_Periph/Parameters.cpp +++ b/Tools/AP_Periph/Parameters.cpp @@ -43,6 +43,10 @@ extern const AP_HAL::HAL &hal; #define AP_PERIPH_BARO_ENABLE_DEFAULT 1 #endif +#ifndef HAL_PERIPH_BATT_HIDE_MASK_DEFAULT +#define HAL_PERIPH_BATT_HIDE_MASK_DEFAULT 0 +#endif + #ifndef AP_PERIPH_EFI_PORT_DEFAULT #define AP_PERIPH_EFI_PORT_DEFAULT 3 #endif @@ -224,6 +228,13 @@ const AP_Param::Info AP_Periph_FW::var_info[] = { // @Group: BATT // @Path: ../libraries/AP_BattMonitor/AP_BattMonitor.cpp GOBJECT(battery_lib, "BATT", AP_BattMonitor), + + // @Param: BATT_HIDE_MASK + // @DisplayName: Battery hide mask + // @Description: Instance mask of battery index(es) to not transmit their status over CAN. This is useful for hiding a "battery" instance that is used by other libraries but don't want to be treated as a battery source to the autopilot. For example, an AP_Periph based motor controller (ESC) that is reporting as an ESC. It should not be reporting "batteries", only ESC telemetry type data which includes voltage and current. + // @Bitmask: 0:BATT, 1:BATT2, 2:BATT3, 3:BATT4, 4:BATT5, 5:BATT6, 6:BATT7, 7:BATT8, 8:BATT9, 9:BATTA, 10:BATTB, 11:BATTC, 12:BATTD, 13:BATTE, 14:BATTF, 15:BATTG + // @User: Advanced + GSCALAR(battery_hide_mask, "BATT_HIDE_MASK", HAL_PERIPH_BATT_HIDE_MASK_DEFAULT), #endif #ifdef HAL_PERIPH_ENABLE_MAG diff --git a/Tools/AP_Periph/Parameters.h b/Tools/AP_Periph/Parameters.h index 5518d2b716..d341f76633 100644 --- a/Tools/AP_Periph/Parameters.h +++ b/Tools/AP_Periph/Parameters.h @@ -82,6 +82,7 @@ public: k_param_sitl, k_param_ahrs, k_param_battery_balance, + k_param_battery_hide_mask, }; AP_Int16 format_version; @@ -183,6 +184,10 @@ public: AP_Int16 sysid_this_mav; #endif +#ifdef HAL_PERIPH_ENABLE_BATTERY + AP_Int32 battery_hide_mask; +#endif + #ifdef HAL_PERIPH_ENABLE_EFI AP_Int32 efi_baudrate; AP_Int8 efi_port; diff --git a/Tools/AP_Periph/battery.cpp b/Tools/AP_Periph/battery.cpp index 05f5e20440..9a97c591a1 100644 --- a/Tools/AP_Periph/battery.cpp +++ b/Tools/AP_Periph/battery.cpp @@ -27,6 +27,10 @@ void AP_Periph_FW::can_battery_update(void) const uint8_t battery_instances = battery_lib.num_instances(); for (uint8_t i=0; i