From 1d562aaf4a0f7351d64fa6c5ec3372d9cb7755c8 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Wed, 26 Aug 2020 11:39:54 +0200 Subject: [PATCH] battery: switch to PublicationMulti for battery_status --- src/lib/battery/battery.cpp | 9 ++------- src/lib/battery/battery.h | 8 ++++---- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/lib/battery/battery.cpp b/src/lib/battery/battery.cpp index 75b1c6f5b6e3..1c9509a54f4c 100644 --- a/src/lib/battery/battery.cpp +++ b/src/lib/battery/battery.cpp @@ -105,11 +105,6 @@ Battery::Battery(int index, ModuleParams *parent, const int sample_interval_us) updateParams(); } -Battery::~Battery() -{ - orb_unadvertise(_battery_status_pub); -} - void Battery::reset() { @@ -179,6 +174,7 @@ Battery::updateBatteryStatus(hrt_abstime timestamp, float voltage_v, float curre const bool should_publish = (source == _params.source); if (should_publish) { + _battery_status_pub.publish(_battery_status); publish(); } } @@ -186,8 +182,7 @@ Battery::updateBatteryStatus(hrt_abstime timestamp, float voltage_v, float curre void Battery::publish() { - int dummy; // We're not interested in the instance ID we get - orb_publish_auto(ORB_ID(battery_status), &_battery_status_pub, &_battery_status, &dummy); + _battery_status_pub.publish(_battery_status); } void diff --git a/src/lib/battery/battery.h b/src/lib/battery/battery.h index 22b494355b59..a0cc1fb70360 100644 --- a/src/lib/battery/battery.h +++ b/src/lib/battery/battery.h @@ -43,6 +43,7 @@ #pragma once #include +#include #include #include #include @@ -63,8 +64,7 @@ class Battery : public ModuleParams { public: Battery(int index, ModuleParams *parent, const int sample_interval_us); - - ~Battery(); + ~Battery() = default; /** * Reset all battery stats and report invalid/nothing. @@ -200,6 +200,8 @@ class Battery : public ModuleParams void determineWarning(bool connected); void computeScale(); + uORB::PublicationMulti _battery_status_pub{ORB_ID(battery_status)}; + bool _battery_initialized = false; AlphaFilter _voltage_filter_v; AlphaFilter _current_filter_a; @@ -211,6 +213,4 @@ class Battery : public ModuleParams float _scale = 1.f; uint8_t _warning; hrt_abstime _last_timestamp; - - orb_advert_t _battery_status_pub{nullptr}; };