Browse Source

AP_Logger: Refactor battery current interface

master
Michael du Breuil 6 years ago committed by WickedShell
parent
commit
ee3511c1fa
  1. 17
      libraries/AP_Logger/LogFile.cpp

17
libraries/AP_Logger/LogFile.cpp

@ -640,14 +640,25 @@ void AP_Logger::Write_Current_instance(const uint64_t time_us, @@ -640,14 +640,25 @@ void AP_Logger::Write_Current_instance(const uint64_t time_us,
AP_BattMonitor &battery = AP::battery();
float temp;
bool has_temp = battery.get_temperature(temp, battery_instance);
float current, consumed_mah, consumed_wh;
if (!battery.current_amps(current)) {
current = 0;
}
if (!battery.consumed_mah(consumed_mah, battery_instance)) {
consumed_mah = 0;
}
if (!battery.consumed_wh(consumed_wh, battery_instance)) {
consumed_wh = 0;
}
struct log_Current pkt = {
LOG_PACKET_HEADER_INIT(type),
time_us : time_us,
voltage : battery.voltage(battery_instance),
voltage_resting : battery.voltage_resting_estimate(battery_instance),
current_amps : battery.current_amps(battery_instance),
current_total : battery.consumed_mah(battery_instance),
consumed_wh : battery.consumed_wh(battery_instance),
current_amps : current,
current_total : consumed_mah,
consumed_wh : consumed_wh,
temperature : (int16_t)(has_temp ? (temp * 100) : 0),
resistance : battery.get_resistance(battery_instance)
};

Loading…
Cancel
Save