57 void start()
override;
99 bool _block_read(uint8_t reg, uint8_t *buf, uint32_t size);
103 bool _accumulate(uint8_t *samples, uint8_t n_samples);
166 int passthrough_read(uint8_t reg, uint8_t *buf, uint8_t size)
override;
167 int passthrough_write(uint8_t reg, uint8_t val)
override;
169 int read(uint8_t *buf)
override;
173 int _set_passthrough(uint8_t reg, uint8_t size, uint8_t *out =
nullptr);
197 uint8_t size)
override;
200 void _configure_slaves();
202 static const uint8_t MAX_EXT_SENS_DATA = 24;
203 uint8_t _ext_sens_data = 0;
206 #ifndef INS_INVENSENSE_20789_I2C_ADDR 207 #define INS_INVENSENSE_20789_I2C_ADDR 0x68
static AP_InertialSensor_Backend * probe(AP_InertialSensor &imu, AP_HAL::OwnPtr< AP_HAL::I2CDevice > dev, enum Rotation rotation=ROTATION_NONE)
uint16_t _backend_rate_hz
const uint16_t multiplier_accel
AuxiliaryBus * get_auxiliary_bus() override
bool _has_auxiliary_bus()
bool _block_read(uint8_t reg, uint8_t *buf, uint32_t size)
bool _accumulate(uint8_t *samples, uint8_t n_samples)
AP_Invensense_AuxiliaryBus * _auxiliary_bus
bool _check_raw_temp(int16_t t2)
virtual ~AP_InertialSensor_Invensense()
AP_HAL::OwnPtr< AP_HAL::Device > _dev
bool _accumulate_sensor_rate_sampling(uint8_t *samples, uint8_t n_samples)
uint8_t _register_read(uint8_t reg)
uint8_t _fifo_downsample_rate
LowPassFilterVector3f gyro_filter
AP_InertialSensor_Invensense(AP_InertialSensor &imu, AP_HAL::OwnPtr< AP_HAL::Device > dev, enum Rotation rotation)
ssize_t read(int fd, void *buf, size_t count)
POSIX read count bytes from *buf to fileno fd.
uint8_t _last_stat_user_ctrl
static AP_HAL::OwnPtr< AP_HAL::Device > dev
friend AP_Invensense_AuxiliaryBusSlave
static AP_InertialSensor_Invensense & from(AP_InertialSensor_Backend &backend)
A class to implement a second order low pass filter.
A class to implement a low pass filter without losing precision even for int types the downside being...
void accumulate() override
friend AP_Invensense_AuxiliaryBus
struct AP_InertialSensor_Invensense::@122 _accum
void _set_filter_register(void)
enum Invensense_Type _mpu_type
void _register_write(uint8_t reg, uint8_t val, bool checked=false)
LowPassFilterVector3f accel_filter
LowPassFilter2pFloat _temp_filter
AP_HAL::DigitalSource * _drdy_pin