voxlpm update orb usage

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