#ifndef __AUTO_PILOT_H #define __AUTO_PILOT_H #include #include //正常模式 #define PILOT_NORMAL 1 //磁校准模式 #define PILOT_MAG_CLB 2 //遥控器校准模式 #define PILOT_RC_CLB 3 //电调校准模式 #define PILOT_ESC_CLB 4 // imu 升级模式 #define PILOT_IMU_UPDATE 5 extern char pilot_mode; /* ===============定义警告类型========================== 枚举类型默认是4字节的。 */ // typedef enum { // WARN_DEF = 0, WARN_NO, WARN_NOIMU, WARN_DMA, WARN_RC, WARN_VOLT, WARN_GS, // WARN_FLOW //} WARNING; //无警告 #define WARN_NO 1 //无IMU数据 #define WARN_NOIMU 2 // DMA错误 #define WARN_DMA 3 //遥控器位置不对警告 #define WARN_RC 4 //电压低警告 #define WARN_VOLT 5 //电台丢失警告 #define WARN_GS 6 //解算失败警告 #define WARN_AHRS 8 //加速度警告 #define WARN_ACC 9 //速度警告 #define WARN_VEL 10 // gps错误 #define WARN_IMUGPS_ERROR 11 // gps野值 #define WARN_IMUGPS_OUTLIERS 12 #define WARN_IMUGPS_BREAK 14 #define WARN_IMUBARO_DIFFVEL 15 #define WARN_IMUBARO_ERROR 16 #define WARN_IMUBARO_OUTLIERS 17 #define WARN_IMUAG_ACCERR 18 #define WARN_IMUAG_GYROERR 19 #define WARN_IMUMAG_DISTURBANCE 20 // 高温警告 #define WARN_OVER_TEMPRATURE 21 // IMU版本错误 #define WARN_IMU_VERSION_ERR 22 //磁断开 #define WARN_IMUMAG_BREAK 23 // 在禁飞区中 #define WARN_IN_NO_FLY_ZONE 24 // 动力故障 #define WARN_SERVO_FAIL 25 // 解锁超时失败 #define WARN_ULOCK_FAIL 32 // SD卡故障 #define WARN_SD_ERROR 33 // 雷达有障碍物 #define WARN_OBSTACLE 50 extern char warn_reason; // 家点信息是否记录标志位 #define HOME_POS_NOT_SET 0 #define HOME_POS_AUTO_SET 1 #define HOME_POS_MANUL_SET 2 extern uint8_t home_pos_isrecord; extern const float fast_loop_dt; // 400 hz 速率环路控制 void rate_control(void); // 主要循环回路 void pilot_main_loop(void); // 获取飞行时间 float Get_HaveFlyTime(void); // 获取本架次飞行时间 float Get_HaveFlyTimeThisSort(void); #endif