mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-05-23 15:17:35 +08:00
voxlpm update orb usage
This commit is contained in:
@@ -33,8 +33,6 @@
|
||||
px4_add_module(
|
||||
MODULE drivers__voxlpm
|
||||
MAIN voxlpm
|
||||
COMPILE_FLAGS
|
||||
-Wno-cast-align # TODO: fix and enable
|
||||
SRCS
|
||||
voxlpm.cpp
|
||||
voxlpm_main.cpp
|
||||
|
||||
@@ -46,11 +46,7 @@
|
||||
VOXLPM::VOXLPM(const char *path, int bus, int address, VOXLPM_CH_TYPE ch_type) :
|
||||
I2C("voxlpm", path, bus, address, 400000),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::device_bus_to_wq(I2C::get_device_id())),
|
||||
_sample_perf(perf_alloc(PC_ELAPSED, "voxlpm: sample")),
|
||||
_bat_pub_topic(nullptr),
|
||||
_pm_pub_topic(nullptr),
|
||||
_voltage(0.0f),
|
||||
_amperage(0.0f)
|
||||
_sample_perf(perf_alloc(PC_ELAPSED, MODULE_NAME": sample"))
|
||||
{
|
||||
_ch_type = ch_type;
|
||||
|
||||
@@ -159,12 +155,7 @@ VOXLPM::measure()
|
||||
case VOXLPM_CH_TYPE_VBATT: {
|
||||
_battery.updateBatteryStatus(tnow, _voltage, _amperage, true, true, 0, 0, false, &_bat_status);
|
||||
|
||||
if (_bat_pub_topic != nullptr) {
|
||||
orb_publish(ORB_ID(battery_status), _bat_pub_topic, &_bat_status);
|
||||
|
||||
} else {
|
||||
_bat_pub_topic = orb_advertise(ORB_ID(battery_status), &_bat_status);
|
||||
}
|
||||
_bat_pub_topic.publish(_bat_status);
|
||||
}
|
||||
|
||||
// fallthrough
|
||||
@@ -176,13 +167,7 @@ VOXLPM::measure()
|
||||
_pm_status.current_a = (float) _amperage;
|
||||
|
||||
//_pm_pub_topic.power_w = (float) _power * _power_lsb;
|
||||
|
||||
if (_pm_pub_topic != nullptr) {
|
||||
orb_publish(ORB_ID(power_monitor), _pm_pub_topic, &_pm_status);
|
||||
|
||||
} else {
|
||||
_pm_pub_topic = orb_advertise(ORB_ID(power_monitor), &_pm_status);
|
||||
}
|
||||
_pm_pub_topic.publish(_pm_status);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -193,12 +178,7 @@ VOXLPM::measure()
|
||||
case VOXLPM_CH_TYPE_VBATT: {
|
||||
_battery.updateBatteryStatus(tnow, 0.0, 0.0, true, true, 0, 0, false, &_bat_status);
|
||||
|
||||
if (_bat_pub_topic != nullptr) {
|
||||
orb_publish(ORB_ID(battery_status), _bat_pub_topic, &_bat_status);
|
||||
|
||||
} else {
|
||||
_bat_pub_topic = orb_advertise(ORB_ID(battery_status), &_bat_status);
|
||||
}
|
||||
_bat_pub_topic.publish(_bat_status);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
#include <battery/battery.h>
|
||||
|
||||
#include <uORB/uORB.h>
|
||||
#include <uORB/PublicationMulti.hpp>
|
||||
#include <uORB/topics/battery_status.h>
|
||||
#include <uORB/topics/power_monitor.h>
|
||||
|
||||
@@ -160,16 +160,16 @@ private:
|
||||
|
||||
perf_counter_t _sample_perf;
|
||||
|
||||
orb_advert_t _bat_pub_topic;
|
||||
orb_advert_t _pm_pub_topic;
|
||||
uORB::PublicationMulti<battery_status_s> _bat_pub_topic{ORB_ID(battery_status)};
|
||||
uORB::PublicationMulti<power_monitor_s> _pm_pub_topic{ORB_ID(power_monitor)};
|
||||
|
||||
struct battery_status_s _bat_status;
|
||||
struct power_monitor_s _pm_status;
|
||||
battery_status_s _bat_status{};
|
||||
power_monitor_s _pm_status{};
|
||||
|
||||
VOXLPM_CH_TYPE _ch_type;
|
||||
float _voltage;
|
||||
float _amperage;
|
||||
float _rsense;
|
||||
float _voltage{0.0f};
|
||||
float _amperage{0.0f};
|
||||
float _rsense{0.0f};
|
||||
|
||||
Battery _battery;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user