/* * This file is part of Cleanflight and Betaflight. * * Cleanflight and Betaflight are free software. You can redistribute * this software and/or modify this software under the terms of the * GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) * any later version. * * Cleanflight and Betaflight are distributed in the hope that they * will be useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this software. * * If not, see . */ #pragma once typedef enum { SENSOR_INDEX_GYRO = 0, SENSOR_INDEX_ACC, SENSOR_INDEX_BARO, SENSOR_INDEX_MAG, SENSOR_INDEX_RANGEFINDER, SENSOR_INDEX_COUNT } sensorIndex_e; extern uint8_t requestedSensors[SENSOR_INDEX_COUNT]; extern uint8_t detectedSensors[SENSOR_INDEX_COUNT]; typedef struct int16_flightDynamicsTrims_s { int16_t roll; int16_t pitch; int16_t yaw; int16_t calibrationCompleted; } flightDynamicsTrims_def_t; typedef union flightDynamicsTrims_u { int16_t raw[4]; flightDynamicsTrims_def_t values; } flightDynamicsTrims_t; #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_RANGEFINDER = 1 << 4, SENSOR_GPS = 1 << 5, SENSOR_GPSMAG = 1 << 6 } sensors_e;