auto_pilot.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #ifndef __AUTO_PILOT_H
  2. #define __AUTO_PILOT_H
  3. #include <stdbool.h>
  4. #include <stdint.h>
  5. //正常模式
  6. #define PILOT_NORMAL 1
  7. //磁校准模式
  8. #define PILOT_MAG_CLB 2
  9. //遥控器校准模式
  10. #define PILOT_RC_CLB 3
  11. //电调校准模式
  12. #define PILOT_ESC_CLB 4
  13. // imu 升级模式
  14. #define PILOT_IMU_UPDATE 5
  15. extern char pilot_mode;
  16. /*
  17. ===============定义警告类型==========================
  18. 枚举类型默认是4字节的。
  19. */
  20. // typedef enum {
  21. // WARN_DEF = 0, WARN_NO, WARN_NOIMU, WARN_DMA, WARN_RC, WARN_VOLT, WARN_GS,
  22. // WARN_FLOW
  23. //} WARNING;
  24. //无警告
  25. #define WARN_NO 1
  26. //无IMU数据
  27. #define WARN_NOIMU 2
  28. // DMA错误
  29. #define WARN_DMA 3
  30. //遥控器位置不对警告
  31. #define WARN_RC 4
  32. //电压低警告
  33. #define WARN_VOLT 5
  34. //电台丢失警告
  35. #define WARN_GS 6
  36. //解算失败警告
  37. #define WARN_AHRS 8
  38. //加速度警告
  39. #define WARN_ACC 9
  40. //速度警告
  41. #define WARN_VEL 10
  42. // gps错误
  43. #define WARN_IMUGPS_ERROR 11
  44. // gps野值
  45. #define WARN_IMUGPS_OUTLIERS 12
  46. #define WARN_IMUGPS_BREAK 14
  47. #define WARN_IMUBARO_DIFFVEL 15
  48. #define WARN_IMUBARO_ERROR 16
  49. #define WARN_IMUBARO_OUTLIERS 17
  50. #define WARN_IMUAG_ACCERR 18
  51. #define WARN_IMUAG_GYROERR 19
  52. #define WARN_IMUMAG_DISTURBANCE 20
  53. // 高温警告
  54. #define WARN_OVER_TEMPRATURE 21
  55. // IMU版本错误
  56. #define WARN_IMU_VERSION_ERR 22
  57. //磁断开
  58. #define WARN_IMUMAG_BREAK 23
  59. // 在禁飞区中
  60. #define WARN_IN_NO_FLY_ZONE 24
  61. // 动力故障
  62. #define WARN_SERVO_FAIL 25
  63. // 解锁超时失败
  64. #define WARN_ULOCK_FAIL 32
  65. // SD卡故障
  66. #define WARN_SD_ERROR 33
  67. // 雷达有障碍物
  68. #define WARN_OBSTACLE 50
  69. extern char warn_reason;
  70. // 家点信息是否记录标志位
  71. #define HOME_POS_NOT_SET 0
  72. #define HOME_POS_AUTO_SET 1
  73. #define HOME_POS_MANUL_SET 2
  74. extern uint8_t home_pos_isrecord;
  75. extern const float fast_loop_dt;
  76. // 400 hz 速率环路控制
  77. void rate_control(void);
  78. // 主要循环回路
  79. void pilot_main_loop(void);
  80. // 获取飞行时间
  81. float Get_HaveFlyTime(void);
  82. // 获取本架次飞行时间
  83. float Get_HaveFlyTimeThisSort(void);
  84. #endif