distance_sensor: changed all distance sensors to orb_advertise_multi

This commit is contained in:
Ban Siesta
2015-05-24 19:20:25 +01:00
parent 517acd4586
commit 69cbbd9b5e
8 changed files with 74 additions and 28 deletions
+3 -1
View File
@@ -61,6 +61,7 @@ LidarLiteI2C::LidarLiteI2C(int bus, const char *path, int address) :
_sensor_ok(false),
_collect_phase(false),
_class_instance(-1),
_orb_class_instance(-1),
_distance_sensor_topic(-1),
_sample_perf(perf_alloc(PC_ELAPSED, "ll40ls_i2c_read")),
_comms_errors(perf_alloc(PC_COUNT, "ll40ls_i2c_comms_errors")),
@@ -128,7 +129,8 @@ int LidarLiteI2C::init()
struct distance_sensor_s ds_report;
measure();
_reports->get(&ds_report);
_distance_sensor_topic = orb_advertise(ORB_ID(distance_sensor), &ds_report);
_distance_sensor_topic = orb_advertise_multi(ORB_ID(distance_sensor), &ds_report,
&_orb_class_instance, ORB_PRIO_LOW);
if (_distance_sensor_topic < 0) {
debug("failed to create distance_sensor object. Did you start uOrb?");
+1
View File
@@ -103,6 +103,7 @@ private:
bool _sensor_ok;
bool _collect_phase;
int _class_instance;
int _orb_class_instance;
orb_advert_t _distance_sensor_topic;
+3 -1
View File
@@ -58,6 +58,7 @@ LidarLitePWM::LidarLitePWM(const char *path) :
_work{},
_reports(nullptr),
_class_instance(-1),
_orb_class_instance(-1),
_pwmSub(-1),
_pwm{},
_distance_sensor_topic(-1),
@@ -112,7 +113,8 @@ int LidarLitePWM::init()
struct distance_sensor_s ds_report;
measure();
_reports->get(&ds_report);
_distance_sensor_topic = orb_advertise(ORB_ID(distance_sensor), &ds_report);
_distance_sensor_topic = orb_advertise_multi(ORB_ID(distance_sensor), &ds_report,
&_orb_class_instance, ORB_PRIO_LOW);
if (_distance_sensor_topic < 0) {
debug("failed to create distance_sensor object. Did you start uOrb?");
+1
View File
@@ -108,6 +108,7 @@ private:
work_s _work;
ringbuffer::RingBuffer *_reports;
int _class_instance;
int _orb_class_instance;
int _pwmSub;
struct pwm_input_s _pwm;
orb_advert_t _distance_sensor_topic;