diff --git a/msg/BatteryStatus.msg b/msg/BatteryStatus.msg index 6c5ce43b59..b5155308f2 100644 --- a/msg/BatteryStatus.msg +++ b/msg/BatteryStatus.msg @@ -55,13 +55,6 @@ uint8 BATTERY_FAULT_COUNT = 11 # Counter - keep it as last element! uint16 faults # Smart battery supply status/fault flags (bitmask) for health indication. uint8 warning # Current battery warning -uint8 mode # Battery mode. Note, the normal operation mode - -uint8 BATTERY_MODE_UNKNOWN = 0 # Battery does not support a mode, or if it does, is operational -uint8 BATTERY_MODE_AUTO_DISCHARGING = 1 # Battery is auto discharging (towards storage level) -uint8 BATTERY_MODE_HOT_SWAP = 2 # Battery in hot-swap mode -uint8 BATTERY_MODE_COUNT = 3 # Counter - keep it as last element (once we're fully migrated to events interface we can just comment this)! - uint8 MAX_INSTANCES = 4 diff --git a/src/lib/events/enums.json b/src/lib/events/enums.json index 7076bea8a3..1a0817c8ad 100644 --- a/src/lib/events/enums.json +++ b/src/lib/events/enums.json @@ -660,24 +660,6 @@ } } }, - "battery_mode_t": { - "type": "uint8_t", - "description": "Smart battery modes of operation", - "entries": { - "0": { - "name": "unknown", - "description": "unknown" - }, - "1": { - "name": "autodischarging", - "description": "auto discharging towards storage level" - }, - "2": { - "name": "hotswap", - "description": "hot-swap" - } - } - }, "esc_fault_reason_t": { "type": "uint8_t", "description": "Bitfield for ESC failure reason", diff --git a/src/modules/commander/HealthAndArmingChecks/checks/batteryCheck.cpp b/src/modules/commander/HealthAndArmingChecks/checks/batteryCheck.cpp index c51932f2ec..5e96c39633 100644 --- a/src/modules/commander/HealthAndArmingChecks/checks/batteryCheck.cpp +++ b/src/modules/commander/HealthAndArmingChecks/checks/batteryCheck.cpp @@ -72,22 +72,6 @@ static constexpr const char *battery_fault_reason_str(battery_fault_reason_t bat return ""; }; - -using battery_mode_t = events::px4::enums::battery_mode_t; -static_assert(battery_status_s::BATTERY_MODE_COUNT == (static_cast(battery_mode_t::_max) + 1) - , "Battery mode flags mismatch!"); -static constexpr const char *battery_mode_str(battery_mode_t battery_mode) -{ - switch (battery_mode) { - case battery_mode_t::autodischarging: return "auto discharging"; - - case battery_mode_t::hotswap: return "hot-swap"; - - default: return "unknown"; - } -} - - void BatteryChecks::checkAndReport(const Context &context, Report &reporter) { if (circuit_breaker_enabled_by_val(_param_cbrk_supply_chk.get(), CBRK_SUPPLY_CHK_KEY)) { @@ -133,34 +117,18 @@ void BatteryChecks::checkAndReport(const Context &context, Report &reporter) _battery_connected_at_arming[index] = battery.connected; } - if (context.isArmed()) { + if (context.isArmed() && !battery.connected && _battery_connected_at_arming[index]) { // If disconnected after arming + /* EVENT + */ + reporter.healthFailure(NavModes::All, health_component_t::battery, events::ID("check_battery_disconnected"), + events::Log::Emergency, "Battery {1} disconnected", index + 1); - if (!battery.connected && _battery_connected_at_arming[index]) { // If disconnected after arming - /* EVENT - */ - reporter.healthFailure(NavModes::All, health_component_t::battery, events::ID("check_battery_disconnected"), - events::Log::Emergency, "Battery {1} disconnected", index + 1); - - if (reporter.mavlink_log_pub()) { - mavlink_log_critical(reporter.mavlink_log_pub(), "Battery %i disconnected\t", index + 1); - } - - // trigger a battery failsafe action if a battery disconnects in flight - worst_warning = battery_status_s::BATTERY_WARNING_CRITICAL; + if (reporter.mavlink_log_pub()) { + mavlink_log_critical(reporter.mavlink_log_pub(), "Battery %i disconnected\t", index + 1); } - if (battery.mode != 0) { - /* EVENT - */ - reporter.healthFailure(NavModes::All, health_component_t::battery, - events::ID("check_battery_mode"), - events::Log::Critical, "Battery {1} mode: {2}", index + 1, static_cast(battery.mode)); - - if (reporter.mavlink_log_pub()) { - mavlink_log_critical(reporter.mavlink_log_pub(), "Battery %d is in %s mode!\t", index + 1, - battery_mode_str(static_cast(battery.mode))); - } - } + // trigger a battery failsafe action if a battery disconnects in flight + worst_warning = battery_status_s::BATTERY_WARNING_CRITICAL; } if (battery.connected) { diff --git a/src/modules/mavlink/streams/BATTERY_STATUS.hpp b/src/modules/mavlink/streams/BATTERY_STATUS.hpp index c3d15054ac..633807a86e 100644 --- a/src/modules/mavlink/streams/BATTERY_STATUS.hpp +++ b/src/modules/mavlink/streams/BATTERY_STATUS.hpp @@ -114,20 +114,7 @@ private: break; } - switch (battery_status.mode) { - case (battery_status_s::BATTERY_MODE_AUTO_DISCHARGING): - bat_msg.mode = MAV_BATTERY_MODE_AUTO_DISCHARGING; - break; - - case (battery_status_s::BATTERY_MODE_HOT_SWAP): - bat_msg.mode = MAV_BATTERY_MODE_HOT_SWAP; - break; - - default: - bat_msg.mode = MAV_BATTERY_MODE_UNKNOWN; - break; - } - + bat_msg.mode = MAV_BATTERY_MODE_UNKNOWN; bat_msg.fault_bitmask = battery_status.faults; // check if temperature valid