airspeedsim move to cdev lib

This commit is contained in:
Daniel Agar 2018-08-27 13:27:08 -04:00 committed by Beat Küng
parent 4da5e61f4a
commit 82ad7d77fa
3 changed files with 12 additions and 17 deletions

View File

@ -70,7 +70,7 @@
#include "airspeedsim.h"
AirspeedSim::AirspeedSim(int bus, int address, unsigned conversion_interval, const char *path) :
CDev("AIRSPEEDSIM", path),
CDev(path),
_reports(nullptr),
_retries(0),
_sensor_ok(false),
@ -83,11 +83,6 @@ AirspeedSim::AirspeedSim(int bus, int address, unsigned conversion_interval, con
_sample_perf(perf_alloc(PC_ELAPSED, "airspeed_read")),
_comms_errors(perf_alloc(PC_COUNT, "airspeed_comms_errors"))
{
// enable debug() calls
_debug_enabled = false;
// work_cancel in the dtor will explode if we don't do this...
memset(&_work, 0, sizeof(_work));
}
AirspeedSim::~AirspeedSim()
@ -116,7 +111,7 @@ AirspeedSim::init()
/* init base class */
if (CDev::init() != OK) {
DEVICE_DEBUG("CDev init failed");
PX4_ERR("CDev init failed");
goto out;
}
@ -131,7 +126,7 @@ AirspeedSim::init()
_class_instance = register_class_devname(AIRSPEED_BASE_DEVICE_PATH);
/* publication init */
if (_class_instance == CLASS_DEVICE_PRIMARY) {
if (_class_instance == 0) {
/* advertise sensor topic, measure manually to initialize valid report */
struct differential_pressure_s arp;
@ -168,7 +163,7 @@ AirspeedSim::probe()
}
int
AirspeedSim::ioctl(device::file_t *filp, int cmd, unsigned long arg)
AirspeedSim::ioctl(cdev::file_t *filp, int cmd, unsigned long arg)
{
switch (cmd) {
@ -280,7 +275,7 @@ AirspeedSim::ioctl(device::file_t *filp, int cmd, unsigned long arg)
}
ssize_t
AirspeedSim::read(device::file_t *filp, char *buffer, size_t buflen)
AirspeedSim::read(cdev::file_t *filp, char *buffer, size_t buflen)
{
unsigned count = buflen / sizeof(differential_pressure_s);
differential_pressure_s *abuf = reinterpret_cast<differential_pressure_s *>(buffer);

View File

@ -64,7 +64,7 @@
#include <drivers/drv_airspeed.h>
#include <drivers/drv_hrt.h>
#include <drivers/device/ringbuffer.h>
#include <drivers/device/device.h>
#include <lib/cdev/CDev.hpp>
#include <uORB/uORB.h>
#include <uORB/topics/differential_pressure.h>
@ -76,7 +76,7 @@
# error This requires CONFIG_SCHED_WORKQUEUE.
#endif
class __EXPORT AirspeedSim : public device::CDev
class __EXPORT AirspeedSim : public cdev::CDev
{
public:
AirspeedSim(int bus, int address, unsigned conversion_interval, const char *path);
@ -84,8 +84,8 @@ public:
virtual int init();
virtual ssize_t read(device::file_t *filp, char *buffer, size_t buflen);
virtual int ioctl(device::file_t *filp, int cmd, unsigned long arg);
virtual ssize_t read(cdev::file_t *filp, char *buffer, size_t buflen);
virtual int ioctl(cdev::file_t *filp, int cmd, unsigned long arg);
/**
* Diagnostics - print some basic information about the driver.
@ -115,7 +115,7 @@ protected:
virtual int transfer(const uint8_t *send, unsigned send_len,
uint8_t *recv, unsigned recv_len);
struct work_s _work;
struct work_s _work {};
bool _sensor_ok;
int _measure_ticks;
bool _collect_phase;

View File

@ -198,7 +198,7 @@ MEASAirspeedSim::collect()
report.differential_pressure_filtered_pa = _filter.apply(diff_press_pa_raw);
report.differential_pressure_raw_pa = diff_press_pa_raw;
if (_airspeed_pub != nullptr && !(_pub_blocked)) {
if (_airspeed_pub != nullptr) {
/* publish it */
orb_publish(ORB_ID(differential_pressure), _airspeed_pub, &report);
}
@ -256,7 +256,7 @@ MEASAirspeedSim::cycle()
ret = measure();
if (OK != ret) {
DEVICE_DEBUG("measure error");
PX4_ERR("measure error");
}
_sensor_ok = (ret == OK);