Paparazzi UAS
v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
|
driver for the Lidar-Lite i2c lidar More...
Go to the source code of this file.
Data Structures | |
struct | LidarLite |
Enumerations | |
enum | LidarLiteStatus { LIDAR_LITE_INIT_RANGING, LIDAR_LITE_REQ_READ, LIDAR_LITE_READ_DISTANCE, LIDAR_LITE_PARSE } |
Functions | |
void | lidar_lite_init (void) |
Initialization function. More... | |
void | lidar_lite_event (void) |
Lidar event function Basically just check the progress of the transation to prevent overruns during high speed operation (ie. More... | |
void | lidar_lite_periodic (void) |
Poll lidar for data for altitude hold 50Hz-100Hz should be enough, in theory can go faster (see the datasheet for Lidar Lite v3. More... | |
void | lidar_lite_downlink (void) |
Downlink message for debug. More... | |
Variables | |
struct LidarLite | lidar_lite |
driver for the Lidar-Lite i2c lidar
Note that the version 1 (silver label) seems to generate unexpected events on the i2c bus, such as misplaced start or stop or word reset (see I2C_ERRORS message). It seems to have no effect on other i2c devices (especially the IMU), but use with caution.
The newer versions function correctly.
Definition in file lidar_lite.h.
struct LidarLite |
Definition at line 46 of file lidar_lite.h.
Data Fields | ||
---|---|---|
uint8_t | addr | |
bool | compensate_rotation | |
float | distance | |
uint32_t | distance_raw | |
enum LidarLiteStatus | status | |
struct i2c_transaction | trans | |
bool | update_agl |
enum LidarLiteStatus |
Enumerator | |
---|---|
LIDAR_LITE_INIT_RANGING | |
LIDAR_LITE_REQ_READ | |
LIDAR_LITE_READ_DISTANCE | |
LIDAR_LITE_PARSE |
Definition at line 39 of file lidar_lite.h.
void lidar_lite_downlink | ( | void | ) |
Downlink message for debug.
Definition at line 173 of file lidar_lite.c.
References DefaultChannel, DefaultDevice, LidarLite::distance, lidar_lite, LidarLite::status, status, i2c_transaction::status, and LidarLite::trans.
void lidar_lite_event | ( | void | ) |
Lidar event function Basically just check the progress of the transation to prevent overruns during high speed operation (ie.
polling the radar at >100Hz)
Definition at line 76 of file lidar_lite.c.
References I2CTransDone, I2CTransFailed, I2CTransPending, I2CTransRunning, I2CTransSuccess, lidar_lite, i2c_transaction::status, and LidarLite::trans.
void lidar_lite_init | ( | void | ) |
Initialization function.
Definition at line 56 of file lidar_lite.c.
References LidarLite::addr, LidarLite::compensate_rotation, LidarLite::distance, LidarLite::distance_raw, I2CTransDone, init_median_filter_i(), lidar_lite, lidar_lite_filter, LIDAR_LITE_INIT_RANGING, LidarLite::status, i2c_transaction::status, LidarLite::trans, and LidarLite::update_agl.
void lidar_lite_periodic | ( | void | ) |
Poll lidar for data for altitude hold 50Hz-100Hz should be enough, in theory can go faster (see the datasheet for Lidar Lite v3.
Definition at line 106 of file lidar_lite.c.
References LidarLite::addr, AGL_LIDAR_LITE_ID, i2c_transaction::buf, LidarLite::compensate_rotation, LidarLite::distance, LidarLite::distance_raw, get_sys_time_usec(), i2c_receive(), i2c_transmit(), I2CTransDone, lidar_lite, lidar_lite_filter, LIDAR_LITE_INIT_RANGING, LIDAR_LITE_PARSE, LIDAR_LITE_READ_ADDR, LIDAR_LITE_READ_DISTANCE, LIDAR_LITE_REG_ADDR, LIDAR_LITE_REG_VAL, LIDAR_LITE_REQ_READ, FloatEulers::phi, stateGetNedToBodyEulers_f(), LidarLite::status, i2c_transaction::status, FloatEulers::theta, LidarLite::trans, LidarLite::update_agl, and update_median_filter_i().
struct LidarLite lidar_lite |
Definition at line 45 of file lidar_lite.c.
Referenced by lidar_lite_downlink(), lidar_lite_event(), lidar_lite_init(), and lidar_lite_periodic().