flight_mode.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #ifndef __FLIGHT_MODE_H
  2. #define __FLIGHT_MODE_H
  3. #include "common.h"
  4. #include "stdbool.h"
  5. enum
  6. {
  7. // 遥控器控制
  8. CONTROL_REMOTE = 1,
  9. // 地面站控制
  10. CONTROL_GCS = 2
  11. };
  12. enum
  13. {
  14. //===================================遥控器控制下的模式===============================================
  15. // 初始化模式,此模式下无任何控制
  16. MODE_DEFAULT = 0,
  17. // 手动速率模式,油门手动,陀螺控制
  18. MANUAL_RATE = 1,
  19. // 手动姿态模式,油门手动,角度控制
  20. MANUAL_ATTITUDE = 2,
  21. // 姿态模式,油门自动,角度控制
  22. ATTITUDE = 3,
  23. // GPS悬停模式,油门自动,定点控制
  24. GPS_POSHOLD = 4,
  25. // GPS无机头模式,油门自动,定点控制
  26. GPS_FREEHEAD = 5,
  27. // GPS环绕模式,油门自动,定点控制
  28. GPS_CIRCLE = 6,
  29. // GPS返航模式,油门自动,定点控制
  30. GPS_RTH = 7,
  31. //===================================地面站控制下的模式===============================================
  32. // 摇杆姿态模式
  33. ROCK_ATTITUDE = 8,
  34. // 摇杆定点模式
  35. ROCK_POSHOLD = 9,
  36. // 一键起飞
  37. GCS_LAUNCH = 10,
  38. // GCS悬停模式
  39. GCS_LOITER = 11,
  40. // GCS返航模式
  41. GCS_RTH = 12,
  42. // GCS去第一点
  43. GCS_FIRSTPOINT = 13,
  44. // GCS断点续飞
  45. GCS_BREAKPOINT = 14,
  46. // GCS自动航线
  47. GCS_AUTO = 15,
  48. // GCS继续航线模式
  49. GCS_AUTOCONTINUE = 16,
  50. // GCS指点引导
  51. GCS_GUIDETMP = 17,
  52. // GCS指点模式
  53. GCS_GUIDE = 18,
  54. // GPS降落模式
  55. GPS_LAND = 19,
  56. // 紧急降落
  57. FORCE_LAND = 20,
  58. // GCS 跟随模式
  59. GCS_FOLLOW = 21,
  60. // GCS 低空抛物悬停
  61. GCS_LOWLOITER = 22,
  62. // gcs 航点环绕
  63. GCS_WPCIRCLE = 23,
  64. // 车载跟车起飞
  65. GCS_VEHICLE_LAUNCH = 24,
  66. // 车载跟车降落
  67. GCS_VEHICLE_LAND = 25,
  68. // 自主避障模式
  69. GCS_OBAVOID = 26,
  70. // afc 控制模式
  71. GCS_AFC_CONTROL = 50,
  72. };
  73. extern unsigned char control_mode;
  74. extern unsigned char flight_mode;
  75. extern unsigned char flight_mode_flag;
  76. extern comp_status rock_isenable;
  77. extern bool battary_volt_islow;
  78. void flight_mode_switch(void);
  79. bool set_flight_mode(unsigned char new_mode);
  80. void update_flight_mode(void);
  81. #endif