31 #if CONFIG_HAL_BOARD == HAL_BOARD_F4LIGHT 56 virtual bool update() = 0;
78 int16_t
get_id()
const {
return _id; }
81 void notify_fifo_reset(
void);
92 DEVTYPE_BMI160 = 0x09,
93 DEVTYPE_L3G4200D = 0x10,
94 DEVTYPE_ACC_LSM303D = 0x11,
95 DEVTYPE_ACC_BMA180 = 0x12,
96 DEVTYPE_ACC_MPU6000 = 0x13,
97 DEVTYPE_ACC_MPU9250 = 0x16,
98 DEVTYPE_ACC_IIS328DQ = 0x17,
99 DEVTYPE_ACC_LSM9DS1 = 0x18,
100 DEVTYPE_GYR_MPU6000 = 0x21,
101 DEVTYPE_GYR_L3GD20 = 0x22,
102 DEVTYPE_GYR_MPU9250 = 0x24,
103 DEVTYPE_GYR_I3G4250D = 0x25,
104 DEVTYPE_GYR_LSM9DS1 = 0x26,
105 DEVTYPE_INS_ICM20789 = 0x27,
106 DEVTYPE_INS_ICM20689 = 0x28,
116 void _rotate_and_correct_accel(uint8_t instance,
Vector3f &accel);
117 void _rotate_and_correct_gyro(uint8_t instance,
Vector3f &gyro);
120 void _publish_gyro(uint8_t instance,
const Vector3f &gyro);
128 void _notify_new_gyro_raw_sample(uint8_t instance,
const Vector3f &accel, uint64_t sample_us=0);
131 void _publish_accel(uint8_t instance,
const Vector3f &accel);
139 void _notify_new_accel_raw_sample(uint8_t instance,
const Vector3f &accel, uint64_t sample_us=0,
bool fsync_set=
false);
142 void _set_accel_oversampling(uint8_t instance, uint8_t n);
145 void _set_gyro_oversampling(uint8_t instance, uint8_t n);
149 const uint8_t bit = (1<<instance);
158 const uint8_t bit = (1<<instance);
174 void _update_sensor_rate(uint16_t &
count, uint32_t &start_us,
float &rate_hz)
const;
177 void _set_accel_max_abs_offset(uint8_t instance,
float offset);
200 void _publish_temperature(uint8_t instance,
float temperature);
203 void _set_accel_error_count(uint8_t instance, uint32_t error_count);
206 void _set_gyro_error_count(uint8_t instance, uint32_t error_count);
209 void _inc_accel_error_count(uint8_t instance);
212 void _inc_gyro_error_count(uint8_t instance);
224 uint16_t get_sample_rate_hz(
void)
const;
227 void update_gyro(uint8_t instance);
230 void update_accel(uint8_t instance);
257 void _notify_new_accel_sensor_rate_sample(uint8_t instance,
const Vector3f &accel);
258 void _notify_new_gyro_sensor_rate_sample(uint8_t instance,
const Vector3f &gyro);
263 void notify_accel_fifo_reset(uint8_t instance);
264 void notify_gyro_fifo_reset(uint8_t instance);
272 bool should_log_imu_raw()
const;
273 void log_accel_raw(uint8_t instance,
const uint64_t sample_us,
const Vector3f &accel);
274 void log_gyro_raw(uint8_t instance,
const uint64_t sample_us,
const Vector3f &gryo);
uint32_t _gyro_raw_sample_rate(uint8_t instance) const
void set_gyro_orientation(uint8_t instance, enum Rotation rotation)
void _set_raw_sampl_gyro_multiplier(uint8_t instance, uint16_t mul)
void _set_gyro_raw_sample_rate(uint8_t instance, uint16_t rate_hz)
float _accel_raw_sample_rates[INS_MAX_INSTANCES]
AP_Int8 _accel_filter_cutoff
uint32_t _accel_raw_sample_rate(uint8_t instance) const
bool enable_fast_sampling(uint8_t instance)
virtual ~AP_InertialSensor_Backend(void)
AP_Int8 _fast_sampling_mask
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
uint16_t _accel_raw_sampling_multiplier[INS_MAX_INSTANCES]
float _gyro_raw_sample_rates[INS_MAX_INSTANCES]
uint8_t _accel_filter_cutoff(void) const
void increment_clip_count(uint8_t instance)
virtual AuxiliaryBus * get_auxiliary_bus()
void _set_gyro_sensor_rate_sampling_enabled(uint8_t instance, bool value)
uint8_t _gyro_filter_cutoff(void) const
uint16_t _gyro_raw_sampling_multiplier[INS_MAX_INSTANCES]
void _set_accel_sensor_rate_sampling_enabled(uint8_t instance, bool value)
uint8_t _accel_sensor_rate_sampling_enabled
virtual void accumulate()
void set_accel_orientation(uint8_t instance, enum Rotation rotation)
void _set_accel_raw_sample_rate(uint8_t instance, uint16_t rate_hz)
AP_Int8 _gyro_filter_cutoff
enum Rotation _accel_orientation[INS_MAX_INSTANCES]
uint32_t _accel_clip_count[INS_MAX_INSTANCES]
#define INS_MAX_INSTANCES
void _set_raw_sample_accel_multiplier(uint8_t instance, uint16_t mul)
enum Rotation _gyro_orientation[INS_MAX_INSTANCES]
uint8_t _gyro_sensor_rate_sampling_enabled