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