battery: separate out publishing from updating

to allow smart battery drivers to use the battery class and
filling in additional information in case it makes sense.
This commit is contained in:
Matthias Grob
2021-12-07 21:06:51 +01:00
parent e70d70468a
commit fdc40880d0
10 changed files with 40 additions and 17 deletions
+3 -3
View File
@@ -71,7 +71,7 @@ INA238::INA238(const I2CSPIDriverConfig &config, int battery_index) :
_battery.setConnected(false);
_battery.updateVoltage(0.f);
_battery.updateCurrent(0.f);
_battery.updateBatteryStatus(hrt_absolute_time());
_battery.updateAndPublishBatteryStatus(hrt_absolute_time());
}
INA238::~INA238()
@@ -197,7 +197,7 @@ int INA238::collect()
_battery.setConnected(success);
_battery.updateVoltage(static_cast<float>(bus_voltage * INA238_VSCALE));
_battery.updateCurrent(static_cast<float>(current * _current_lsb));
_battery.updateBatteryStatus(hrt_absolute_time());
_battery.updateAndPublishBatteryStatus(hrt_absolute_time());
perf_end(_sample_perf);
@@ -254,7 +254,7 @@ void INA238::RunImpl()
_battery.setConnected(false);
_battery.updateVoltage(0.f);
_battery.updateCurrent(0.f);
_battery.updateBatteryStatus(hrt_absolute_time());
_battery.updateAndPublishBatteryStatus(hrt_absolute_time());
if (init() != PX4_OK) {
ScheduleDelayed(INA238_INIT_RETRY_INTERVAL_US);