Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
driver for the Lidar-Lite i2c lidar version 1 (silver label) More...
#include "modules/lidar/lidar_lite.h"
#include "modules/core/abi.h"
#include "filters/median_filter.h"
#include "state.h"
#include "pprzlink/messages.h"
#include "modules/datalink/downlink.h"
Go to the source code of this file.
Macros | |
#define | LIDAR_LITE_REG_ADDR 0x00 |
#define | LIDAR_LITE_REG_VAL 0x04 |
#define | LIDAR_LITE_READ_ADDR 0x8F |
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 |
struct MedianFilterInt | lidar_lite_filter |
driver for the Lidar-Lite i2c lidar version 1 (silver label)
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.c.
#define LIDAR_LITE_READ_ADDR 0x8F |
Definition at line 50 of file lidar_lite.c.
#define LIDAR_LITE_REG_ADDR 0x00 |
Definition at line 48 of file lidar_lite.c.
#define LIDAR_LITE_REG_VAL 0x04 |
Definition at line 49 of file lidar_lite.c.
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, i2c_transaction::status, LidarLite::status, 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, i2c_transaction::status, LidarLite::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(), i2c_transaction::status, LidarLite::status, FloatEulers::theta, LidarLite::trans, LidarLite::update_agl, and update_median_filter_i().
struct LidarLite lidar_lite |
Definition at line 1 of file lidar_lite.c.
Referenced by lidar_lite_downlink(), lidar_lite_event(), lidar_lite_init(), and lidar_lite_periodic().
struct MedianFilterInt lidar_lite_filter |
Definition at line 1 of file lidar_lite.c.
Referenced by lidar_lite_init(), and lidar_lite_periodic().