|
| RM3100 (device::Device *interface, const char *path, enum Rotation rotation) |
|
virtual | ~RM3100 () |
|
virtual int | init () |
|
virtual int | ioctl (struct file *file_pointer, int cmd, unsigned long arg) |
|
virtual int | read (struct file *file_pointer, char *buffer, size_t buffer_len) |
|
void | print_info () |
| Diagnostics - print some basic information about the driver. More...
|
|
int | set_default_register_values () |
| Configures the device with default register values. More...
|
|
void | stop () |
| Stop the automatic measurement state machine. More...
|
|
| CDev (const char *name, const char *devname) |
| Constructor. More...
|
|
virtual | ~CDev ()=default |
|
virtual int | ioctl (file_t *filep, int cmd, unsigned long arg) |
| Perform an ioctl operation on the device. More...
|
|
| Device (const Device &)=delete |
|
Device & | operator= (const Device &)=delete |
|
| Device (Device &&)=delete |
|
Device & | operator= (Device &&)=delete |
|
virtual | ~Device ()=default |
| Destructor. More...
|
|
virtual int | read (unsigned address, void *data, unsigned count) |
| Read directly from the device. More...
|
|
virtual int | write (unsigned address, void *data, unsigned count) |
| Write directly to the device. More...
|
|
virtual int | ioctl (unsigned operation, unsigned &arg) |
| Perform a device-specific operation. More...
|
|
uint32_t | get_device_id () const |
|
DeviceBusType | get_device_bus_type () const |
| Return the bus type the device is connected to. More...
|
|
void | set_device_bus_type (DeviceBusType bus_type) |
|
uint8_t | get_device_bus () const |
| Return the bus ID the device is connected to. More...
|
|
void | set_device_bus (uint8_t bus) |
|
uint8_t | get_device_address () const |
| Return the bus address of the device. More...
|
|
void | set_device_address (int address) |
|
uint8_t | get_device_type () const |
| Return the device type. More...
|
|
void | set_device_type (uint8_t devtype) |
|
virtual bool | external () const |
|
| CDev (const char *devname) |
| Constructor. More...
|
|
| CDev (const CDev &)=delete |
|
CDev & | operator= (const CDev &)=delete |
|
| CDev (CDev &&)=delete |
|
CDev & | operator= (CDev &&)=delete |
|
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 | 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...
|
|
|
enum | DeviceBusType {
DeviceBusType_UNKNOWN = 0,
DeviceBusType_I2C = 1,
DeviceBusType_SPI = 2,
DeviceBusType_UAVCAN = 3,
DeviceBusType_SIMULATION = 4
} |
| Device bus types for DEVID. More...
|
|
static const char * | get_device_bus_string (DeviceBusType bus) |
|
static int | device_id_print_buffer (char *buffer, int length, uint32_t id) |
| Print decoded device id string to a buffer. More...
|
|
| Device (const char *name) |
|
| Device (const char *name, DeviceBusType bus_type, uint8_t bus, uint8_t address, uint8_t devtype=0) |
|
| Device (DeviceBusType bus_type, uint8_t bus, uint8_t address, uint8_t devtype=0) |
|
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...
|
|
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 118 of file rm3100.h.
Collect the result of the most recent measurement.
RAW outputs As we only have 16 bits to store raw data, the following values are not correct
Definition at line 169 of file rm3100.cpp.
References _comms_errors, _interface, _mag_topic, _orb_class_instance, device::CDev::_pub_blocked, _range_scale, _reports, _rotation, _sample_perf, _scale, ADDR_MX, check_measurement(), convert_signed(), DEVICE_DEBUG, hrt_absolute_time(), mag_report, MAGIOCGEXTERNAL, OK, orb_advertise_multi(), ORB_ID, ORB_PRIO_HIGH, ORB_PRIO_MAX, orb_publish(), perf_begin(), perf_count(), perf_end(), perf_event_count(), cdev::CDev::poll_notify(), rotate_3f(), mag_calibration_s::x_offset, mag_calibration_s::x_scale, mag_calibration_s::y_offset, mag_calibration_s::y_scale, mag_calibration_s::z_offset, and mag_calibration_s::z_scale.
Referenced by read(), Run(), and self_test().
Issue a measurement command.
- Returns
- OK if the measurement command was successful.
Definition at line 439 of file rm3100.cpp.
References _comms_errors, _continuous_mode_set, _interface, _mode, ADDR_CMM, ADDR_POLL, CMM_DEFAULT, CONTINUOUS, CONTINUOUS_MODE, OK, perf_count(), POLL_XYZ, POLLING_MODE, and SINGLE.
Referenced by read(), and Run().
Performs 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 290 of file rm3100.cpp.
References _measure_interval, collect(), DEVICE_DEBUG, measure(), OK, and start().
int RM3100::set_default_register_values |
( |
| ) |
|
Configures the device with default register values.
Definition at line 559 of file rm3100.cpp.
References _interface, ADDR_BIST, ADDR_CCX, ADDR_CCY, ADDR_CCZ, ADDR_CMM, ADDR_TMRC, BIST_DEFAULT, CCX_DEFAULT_LSB, CCX_DEFAULT_MSB, CCY_DEFAULT_LSB, CCY_DEFAULT_MSB, CCZ_DEFAULT_LSB, CCZ_DEFAULT_MSB, CMM_DEFAULT, and TMRC_DEFAULT.
Referenced by reset(), and start().