diff --git a/msg/versioned/BatteryStatus.msg b/msg/versioned/BatteryStatus.msg index 47bcf0f3ed..5eefb41c52 100644 --- a/msg/versioned/BatteryStatus.msg +++ b/msg/versioned/BatteryStatus.msg @@ -65,9 +65,9 @@ uint8 FAULT_FAILED_TO_ARM = 10 # Battery had a problem while arming uint8 FAULT_COUNT = 11 # Counter. Keep this as last element float32 full_charge_capacity_wh # [Wh] Compensated battery capacity -float32 remaining_capacity_wh # [Wh] Compensated battery capacity remaining +float32 remaining_capacity_wh # [Wh] [@invalid NaN] Compensated battery capacity remaining uint16 over_discharge_count # [-] Number of battery overdischarge -float32 nominal_voltage # [V] Nominal voltage of the battery pack +float32 nominal_voltage # [V] [@invalid NaN] Nominal voltage of the battery pack float32 internal_resistance_estimate # [Ohm] Internal resistance per cell estimate float32 ocv_estimate # [V] Open circuit voltage estimate diff --git a/src/drivers/uavcan/sensors/battery.cpp b/src/drivers/uavcan/sensors/battery.cpp index d62d43dfb2..8dfff769c5 100644 --- a/src/drivers/uavcan/sensors/battery.cpp +++ b/src/drivers/uavcan/sensors/battery.cpp @@ -184,7 +184,8 @@ UavcanBatteryBridge::battery_aux_sub_cb(const uavcan::ReceivedDataStructure FLT_EPSILON) ? msg.nominal_voltage : NAN; _battery_status[instance].is_powering_off = msg.is_powering_off; if (msg.nominal_voltage > FLT_EPSILON) { diff --git a/src/lib/battery/battery.cpp b/src/lib/battery/battery.cpp index 95b1c3109f..766c147e61 100644 --- a/src/lib/battery/battery.cpp +++ b/src/lib/battery/battery.cpp @@ -184,6 +184,8 @@ battery_status_s Battery::getBatteryStatus() battery_status.warning = _warning; battery_status.timestamp = hrt_absolute_time(); battery_status.faults = determineFaults(); + battery_status.remaining_capacity_wh = NAN; // not measured by dumb power module; smart-battery drivers overwrite + battery_status.nominal_voltage = NAN; // not measured by dumb power module; smart-battery drivers overwrite battery_status.internal_resistance_estimate = _internal_resistance_estimate; battery_status.ocv_estimate = _voltage_v + _internal_resistance_estimate * _params.n_cells * _current_a; battery_status.ocv_estimate_filtered = _ocv_filter_v.getState();