voxlpm update orb usage

This commit is contained in:
Daniel Agar
2019-11-30 12:37:53 -05:00
parent fca029c84a
commit 7759a5dc82
3 changed files with 12 additions and 34 deletions
@@ -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
+4 -24
View File
@@ -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;
+8 -8
View File
@@ -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;