PX4 Firmware
PX4 Autopilot Software http://px4.io
|
Public Member Functions | |
MPL3115A2 (device::Device *interface, const char *path) | |
~MPL3115A2 () | |
virtual int | init () |
virtual ssize_t | read (struct file *filp, char *buffer, size_t buflen) |
virtual int | ioctl (struct file *filp, int cmd, unsigned long arg) |
void | print_info () |
Diagnostics - print some basic information about the driver. More... | |
Public Member Functions inherited from cdev::CDev | |
CDev (const char *devname) | |
Constructor. More... | |
CDev (const CDev &)=delete | |
CDev & | operator= (const CDev &)=delete |
CDev (CDev &&)=delete | |
CDev & | operator= (CDev &&)=delete |
virtual | ~CDev () |
virtual int | open (file_t *filep) |
Handle an open of the device. More... | |
virtual int | close (file_t *filep) |
Handle a close of the device. More... | |
virtual ssize_t | read (file_t *filep, char *buffer, size_t buflen) |
Perform a read from the device. More... | |
virtual ssize_t | write (file_t *filep, const char *buffer, size_t buflen) |
Perform a write to the device. More... | |
virtual off_t | seek (file_t *filep, off_t offset, int whence) |
Perform a logical seek operation on the device. More... | |
virtual int | ioctl (file_t *filep, int cmd, unsigned long arg) |
Perform an ioctl operation on the device. More... | |
virtual int | poll (file_t *filep, px4_pollfd_struct_t *fds, bool setup) |
Perform a poll setup/teardown operation. More... | |
const char * | get_devname () const |
Get the device name. More... | |
Protected Member Functions | |
void | start (unsigned delay_us=1) |
Initialize the automatic measurement state machine and start it. More... | |
void | stop () |
Stop the automatic measurement state machine. More... | |
void | Run () override |
Perform a poll cycle; collect from the previous measurement and start a new one. More... | |
virtual int | measure () |
Issue a measurement command for the current state. More... | |
virtual int | collect () |
Collect the result of the most recent measurement. More... | |
Protected Member Functions inherited from cdev::CDev | |
virtual pollevent_t | poll_state (file_t *filep) |
Check the current state of the device for poll events from the perspective of the file. More... | |
virtual void | poll_notify (pollevent_t events) |
Report new poll events. More... | |
virtual void | poll_notify_one (px4_pollfd_struct_t *fds, pollevent_t events) |
Internal implementation of poll_notify. More... | |
virtual int | open_first (file_t *filep) |
Notification of the first open. More... | |
virtual int | close_last (file_t *filep) |
Notification of the last close. More... | |
virtual int | register_class_devname (const char *class_devname) |
Register a class device name, automatically adding device class instance suffix if need be. More... | |
virtual int | unregister_class_devname (const char *class_devname, unsigned class_instance) |
Register a class device name, automatically adding device class instance suffix if need be. More... | |
void | lock () |
Take the driver lock. More... | |
void | unlock () |
Release the driver lock. More... | |
int | unregister_driver_and_memory () |
First, unregisters the driver. More... | |
Protected Attributes | |
device::Device * | _interface |
unsigned | _measure_interval |
ringbuffer::RingBuffer * | _reports |
bool | _collect_phase |
float | _P |
float | _T |
orb_advert_t | _baro_topic |
int | _orb_class_instance |
int | _class_instance |
perf_counter_t | _sample_perf |
perf_counter_t | _measure_perf |
perf_counter_t | _comms_errors |
Protected Attributes inherited from cdev::CDev | |
px4_sem_t | _lock |
lock to protect access to all class members (also for derived classes) More... | |
Additional Inherited Members | |
Static Protected Attributes inherited from cdev::CDev | |
static const px4_file_operations_t | fops = {} |
Pointer to the default cdev file operations table; useful for registering clone devices etc. More... | |
Definition at line 64 of file mpl3115a2.cpp.
MPL3115A2::MPL3115A2 | ( | device::Device * | interface, |
const char * | path | ||
) |
Definition at line 149 of file mpl3115a2.cpp.
References _interface, DRV_BARO_DEVTYPE_MPL3115A2, and device::Device::set_device_type().
Referenced by mpl3115a2::start_bus().
MPL3115A2::~MPL3115A2 | ( | ) |
Definition at line 168 of file mpl3115a2.cpp.
References _class_instance, _comms_errors, _interface, _measure_perf, _reports, _sample_perf, cdev::CDev::get_devname(), perf_free(), stop(), and cdev::CDev::unregister_class_devname().
|
protectedvirtual |
Collect the result of the most recent measurement.
Definition at line 502 of file mpl3115a2.cpp.
References _baro_topic, _comms_errors, _interface, _P, _reports, _sample_perf, _T, CTRL_REG1_OST, sensor_baro_s::device_id, sensor_baro_s::error_count, f(), device::Device::get_device_id(), hrt_absolute_time(), MPL3115A2_CTRL_REG1, OK, ORB_ID, orb_publish(), OUT_P_MSB, perf_begin(), perf_count(), perf_end(), perf_event_count(), cdev::CDev::poll_notify(), sensor_baro_s::pressure, device::Device::read(), sensor_baro_s::temperature, and sensor_baro_s::timestamp.
Referenced by init(), read(), and Run().
|
virtual |
Reimplemented from cdev::CDev.
Definition at line 191 of file mpl3115a2.cpp.
References _baro_topic, _class_instance, _interface, _orb_class_instance, _reports, BARO_BASE_DEVICE_PATH, collect(), sensor_baro_s::device_id, device::Device::external(), device::Device::get_device_id(), ToneAlarmInterface::init(), measure(), OK, orb_advertise_multi(), ORB_ID, ORB_PRIO_DEFAULT, ORB_PRIO_HIGH, cdev::CDev::register_class_devname(), and warnx.
|
virtual |
Definition at line 336 of file mpl3115a2.cpp.
References _interface, _measure_interval, device::Device::ioctl(), IOCTL_RESET, MPL3115A2_CONVERSION_INTERVAL, OK, SENSOR_POLLRATE_DEFAULT, SENSORIOCRESET, SENSORIOCSPOLLRATE, and start().
Referenced by mpl3115a2::reset(), and mpl3115a2::start_bus().
|
protectedvirtual |
Issue a measurement command for the current state.
Definition at line 480 of file mpl3115a2.cpp.
References _comms_errors, _interface, _measure_perf, device::Device::ioctl(), IOCTL_MEASURE, MPL3115A2_CTRL_REG1, MPL3115A2_CTRL_TRIGGER, perf_begin(), perf_count(), and perf_end().
Referenced by init(), read(), and Run().
void MPL3115A2::print_info | ( | ) |
Diagnostics - print some basic information about the driver.
Definition at line 564 of file mpl3115a2.cpp.
References _comms_errors, _measure_interval, _reports, _sample_perf, and perf_print_counter().
Referenced by mpl3115a2::info().
|
virtual |
Definition at line 272 of file mpl3115a2.cpp.
References _measure_interval, _reports, collect(), measure(), and OK.
Referenced by mpl3115a2::test().
|
overrideprotected |
Perform a poll cycle; collect from the previous measurement and start a new one.
This is the heart of the measurement state machine. This function alternately starts a measurement, or collects the data from the previous measurement.
When the interval between measurements is greater than the minimum measurement interval, a gap is inserted between collection and measurement to provide the most recent measurement possible at the next interval.
Definition at line 426 of file mpl3115a2.cpp.
References _collect_phase, _interface, collect(), device::Device::ioctl(), IOCTL_RESET, measure(), MPL3115A2_CONVERSION_INTERVAL, and start().
|
protected |
Initialize the automatic measurement state machine and start it.
delay_us | the number of microseconds before executing the next cycle |
Definition at line 409 of file mpl3115a2.cpp.
References _collect_phase, and _reports.
Referenced by ioctl(), and Run().
|
protected |
Stop the automatic measurement state machine.
Definition at line 420 of file mpl3115a2.cpp.
Referenced by ~MPL3115A2().
|
protected |
Definition at line 92 of file mpl3115a2.cpp.
|
protected |
Definition at line 94 of file mpl3115a2.cpp.
Referenced by init(), and ~MPL3115A2().
|
protected |
Definition at line 86 of file mpl3115a2.cpp.
|
protected |
Definition at line 98 of file mpl3115a2.cpp.
Referenced by collect(), measure(), print_info(), and ~MPL3115A2().
|
protected |
Definition at line 81 of file mpl3115a2.cpp.
Referenced by collect(), init(), ioctl(), measure(), MPL3115A2(), Run(), and ~MPL3115A2().
|
protected |
Definition at line 83 of file mpl3115a2.cpp.
Referenced by ioctl(), print_info(), and read().
|
protected |
Definition at line 97 of file mpl3115a2.cpp.
Referenced by measure(), and ~MPL3115A2().
|
protected |
Definition at line 93 of file mpl3115a2.cpp.
Referenced by init().
|
protected |
Definition at line 89 of file mpl3115a2.cpp.
Referenced by collect().
|
protected |
Definition at line 85 of file mpl3115a2.cpp.
Referenced by collect(), init(), print_info(), read(), start(), and ~MPL3115A2().
|
protected |
Definition at line 96 of file mpl3115a2.cpp.
Referenced by collect(), print_info(), and ~MPL3115A2().
|
protected |
Definition at line 90 of file mpl3115a2.cpp.
Referenced by collect().