#ifndef __FLIGHT_MODE_H #define __FLIGHT_MODE_H #include "common.h" #include "stdbool.h" enum { // 遥控器控制 CONTROL_REMOTE = 1, // 地面站控制 CONTROL_GCS = 2 }; enum { //===================================遥控器控制下的模式=============================================== // 初始化模式,此模式下无任何控制 MODE_DEFAULT = 0, // 手动速率模式,油门手动,陀螺控制 MANUAL_RATE = 1, // 手动姿态模式,油门手动,角度控制 MANUAL_ATTITUDE = 2, // 姿态模式,油门自动,角度控制 ATTITUDE = 3, // GPS悬停模式,油门自动,定点控制 GPS_POSHOLD = 4, // GPS无机头模式,油门自动,定点控制 GPS_FREEHEAD = 5, // GPS环绕模式,油门自动,定点控制 GPS_CIRCLE = 6, // GPS返航模式,油门自动,定点控制 GPS_RTH = 7, //===================================地面站控制下的模式=============================================== // 摇杆姿态模式 ROCK_ATTITUDE = 8, // 摇杆定点模式 ROCK_POSHOLD = 9, // 一键起飞 GCS_LAUNCH = 10, // GCS悬停模式 GCS_LOITER = 11, // GCS返航模式 GCS_RTH = 12, // GCS去第一点 GCS_FIRSTPOINT = 13, // GCS断点续飞 GCS_BREAKPOINT = 14, // GCS自动航线 GCS_AUTO = 15, // GCS继续航线模式 GCS_AUTOCONTINUE = 16, // GCS指点引导 GCS_GUIDETMP = 17, // GCS指点模式 GCS_GUIDE = 18, // GPS降落模式 GPS_LAND = 19, // 紧急降落 FORCE_LAND = 20, // GCS 跟随模式 GCS_FOLLOW = 21, // GCS 低空抛物悬停 GCS_LOWLOITER = 22, // gcs 航点环绕 GCS_WPCIRCLE = 23, // 车载跟车起飞 GCS_VEHICLE_LAUNCH = 24, // 车载跟车降落 GCS_VEHICLE_LAND = 25, // 自主避障模式 GCS_OBAVOID = 26, // afc 控制模式 GCS_AFC_CONTROL = 50, }; extern unsigned char control_mode; extern unsigned char flight_mode; extern unsigned char flight_mode_flag; extern comp_status rock_isenable; extern bool battary_volt_islow; void flight_mode_switch(void); bool set_flight_mode(unsigned char new_mode); void update_flight_mode(void); #endif