#pragma once #define CALIBRATING_GYRO_CYCLES 1000 #define CALIBRATING_ACC_CYCLES 400 #define CALIBRATING_BARO_CYCLES 200 // 10 seconds init_delay + 200 * 25 ms = 15 seconds before ground pressure settles typedef enum { SENSOR_GYRO = 1 << 0, // always present SENSOR_ACC = 1 << 1, SENSOR_BARO = 1 << 2, SENSOR_MAG = 1 << 3, SENSOR_SONAR = 1 << 4, SENSOR_GPS = 1 << 5, SENSOR_GPSMAG = 1 << 6, } AvailableSensors; typedef enum { ALIGN_DEFAULT = 0, // driver-provided alignment CW0_DEG = 1, CW90_DEG = 2, CW180_DEG = 3, CW270_DEG = 4, CW0_DEG_FLIP = 5, CW90_DEG_FLIP = 6, CW180_DEG_FLIP = 7, CW270_DEG_FLIP = 8 } sensor_align_e; typedef struct sensorAlignmentConfig_s { sensor_align_e gyro_align; // gyro alignment sensor_align_e acc_align; // acc alignment sensor_align_e mag_align; // mag alignment } sensorAlignmentConfig_t; extern int16_t heading;