mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-05-02 05:04:08 +08:00
battery: switch to PublicationMulti for battery_status
This commit is contained in:
parent
7da7ebad3d
commit
4cd7d44b4a
@ -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, ORB_PRIO_DEFAULT);
|
||||
_battery_status_pub.publish(_battery_status);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@ -43,6 +43,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <uORB/uORB.h>
|
||||
#include <uORB/PublicationMulti.hpp>
|
||||
#include <uORB/topics/battery_status.h>
|
||||
#include <drivers/drv_hrt.h>
|
||||
#include <px4_platform_common/module_params.h>
|
||||
@ -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 @@ private:
|
||||
void determineWarning(bool connected);
|
||||
void computeScale();
|
||||
|
||||
uORB::PublicationMulti<battery_status_s> _battery_status_pub{ORB_ID(battery_status)};
|
||||
|
||||
bool _battery_initialized = false;
|
||||
AlphaFilter<float> _voltage_filter_v;
|
||||
AlphaFilter<float> _current_filter_a;
|
||||
@ -211,6 +213,4 @@ private:
|
||||
float _scale = 1.f;
|
||||
uint8_t _warning;
|
||||
hrt_abstime _last_timestamp;
|
||||
|
||||
orb_advert_t _battery_status_pub{nullptr};
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user