飞行控制
目录
E_DjiFlightControllerRCLostAction
E_DjiFlightControllerRtkPositionEnableStatus
E_DjiFlightControllerObstacleAvoidanceEnableStatus
E_DjiFlightControllerEmergencyStopMotor
E_DjiFlightControllerJoystickCtrlAuthorityAction
E_DjiFlightControllerJoystickCtrlAuthority
E_DjiFlightControllerJoystickCtrlAuthoritySwitchEvent
E_DjiFlightControllerHorizontalControlMode
E_DjiFlightControllerVerticalControlMode
E_DjiFlightControllerYawControlMode
E_DjiFlightControllerHorizontalCoordinate
E_DjiFlightControllerStableControlMode
E_DjiFlightControllerRCLostActionEnableStatus
T_DjiFlightControllerJoystickCtrlAuthorityEventInfo
T_DjiFlightControllerJoystickMode
T_DjiFlightControllerJoystickCommand
T_DjiFlightControllerHomeLocation
T_DjiFlightControllerGeneralInfo
T_DjiFlightControllerRidInfo
DjiFlightController_Init
DjiFlightController_DeInit
DjiFlightController_SetRtkPositionEnableStatus
DjiFlightController_GetRtkPositionEnableStatus
DjiFlightController_SetRCLostAction
DjiFlightController_GetRCLostAction
DjiFlightController_SetHorizontalVisualObstacleAvoidanceEnableStatus
DjiFlightController_GetHorizontalVisualObstacleAvoidanceEnableStatus
DjiFlightController_SetHorizontalRadarObstacleAvoidanceEnableStatus
DjiFlightController_GetHorizontalRadarObstacleAvoidanceEnableStatus
DjiFlightController_SetUpwardsVisualObstacleAvoidanceEnableStatus
DjiFlightController_GetUpwardsVisualObstacleAvoidanceEnableStatus
DjiFlightController_SetUpwardsRadarObstacleAvoidanceEnableStatus
DjiFlightController_GetUpwardsRadarObstacleAvoidanceEnableStatus
DjiFlightController_SetDownwardsVisualObstacleAvoidanceEnableStatus
DjiFlightController_GetDownwardsVisualObstacleAvoidanceEnableStatus
DjiFlightController_ArrestFlying
DjiFlightController_CancelArrestFlying
DjiFlightController_TurnOnMotors
DjiFlightController_TurnOffMotors
DjiFlightController_EmergencyStopMotor
DjiFlightController_StartTakeoff
DjiFlightController_StartLanding
DjiFlightController_CancelLanding
DjiFlightController_StartConfirmLanding
DjiFlightController_StartForceLanding
DjiFlightController_SetHomeLocationUsingGPSCoordinates
DjiFlightController_SetHomeLocationUsingCurrentAircraftLocation
DjiFlightController_SetGoHomeAltitude
DjiFlightController_GetGoHomeAltitude
DjiFlightController_GetCountryCode
DjiFlightController_StartGoHome
DjiFlightController_CancelGoHome
DjiFlightController_ObtainJoystickCtrlAuthority
DjiFlightController_ReleaseJoystickCtrlAuthority
DjiFlightController_RegJoystickCtrlAuthorityEventCallback
DjiFlightController_ExecuteJoystickAction
DjiFlightController_ExecuteEmergencyBrakeAction
DjiFlightController_CancelEmergencyBrakeAction
DjiFlightController_GetGeneralInfo
DjiFlightController_SetRCLostActionEnableStatus
DjiFlightController_GetEnableRCLostActionStatus
DjiFlightController_RegTriggerFtsEventCallback
无人机在失去遥控信号时的动作。
typedef enum {
DJI_FLIGHT_CONTROLLER_RC_LOST_ACTION_HOVER = 0, /*!< 无人机在失去遥控信号时悬停。 */
DJI_FLIGHT_CONTROLLER_RC_LOST_ACTION_LANDING = 1, /*!< 无人机在失去遥控信号时着陆。 */
DJI_FLIGHT_CONTROLLER_RC_LOST_ACTION_GOHOME = 2, /*!< 无人机在失去遥控信号时返航。 */
} E_DjiFlightControllerRCLostAction;
启用/禁用RTK定位枚举.
typedef enum {
DJI_FLIGHT_CONTROLLER_DISABLE_RTK_POSITION = 0, /*!< 0: 无人机将使用GPS数据而不是RTK数据执行需要位置信息的动作(如航点、返航...)*/
DJI_FLIGHT_CONTROLLER_ENABLE_RTK_POSITION = 1, /*!< 无人机将使用RTK数据而不是GPS数据执行需要位置信息的动作(如航点、返航...)*/
} E_DjiFlightControllerRtkPositionEnableStatus;
启用/禁用障碍物避让枚举。
typedef enum {
DJI_FLIGHT_CONTROLLER_DISABLE_OBSTACLE_AVOIDANCE = 0, /*!< 0: 无人机不会在指定的方向执行障碍物避让 */
DJI_FLIGHT_CONTROLLER_ENABLE_OBSTACLE_AVOIDANCE = 1, /*!< 1: 无人机将在指定的方向执行障碍物避让 */
} E_DjiFlightControllerObstacleAvoidanceEnableStatus;
启用/禁用紧急停机功能枚举。
Note: 在空中启用紧急停机功能非常危险,可能导致飞机坠毁!
typedef enum {
DJI_FLIGHT_CONTROLLER_ENABLE_EMERGENCY_STOP_MOTOR = 0x01, /*!< 执行紧急停机操作 */
} E_DjiFlightControllerEmergencyStopMotor;
获得/释放摇杆控制权限命令枚举。
Note: 在使用摇杆之前,您已成功获得摇杆控制权限。
typedef enum {
DJI_FLIGHT_CONTROLLER_RELEASE_JOYSTICK_CTRL_AUTHORITY = 0, /*!< 获取摇杆权限 */
DJI_FLIGHT_CONTROLLER_OBTAIN_JOYSTICK_CTRL_AUTHORITY = 1, /*!< 释放摇杆权限 */
} E_DjiFlightControllerJoystickCtrlAuthorityAction;
无人机的摇杆控制权限所有权枚举。
typedef enum {
DJI_FLIGHT_CONTROLLER_JOYSTICK_CTRL_AUTHORITY_RC = 0, /*!< 遥控器可以使用摇杆控制无人机。 */
DJI_FLIGHT_CONTROLLER_JOYSTICK_CTRL_AUTHORITY_MSDK = 1, /*!< MSDK可以使用摇杆控制无人机。 */
DJI_FLIGHT_CONTROLLER_JOYSTICK_CTRL_AUTHORITY_INTERNAL = 2, /*!< 特定的内部模块可以使用摇杆控制无人机。*/
DJI_FLIGHT_CONTROLLER_JOYSTICK_CTRL_AUTHORITY_OSDK = 4, /*!< OSDK可以使用摇杆控制无人机。*/
} E_DjiFlightControllerJoystickCtrlAuthority;
无人机的摇杆控制权限切换原因枚举。
typedef enum {
DJI_FLIGHT_CONTROLLER_MSDK_GET_JOYSTICK_CTRL_AUTH_EVENT = 1, /*!< MSDK获取摇杆控制权限 */
DJI_FLIGHT_CONTROLLER_INTERNAL_GET_JOYSTICK_CTRL_AUTH_EVENT = 2, /*!< 特定的内部模块获取摇杆控制权限 */
DJI_FLIGHT_CONTROLLER_OSDK_GET_JOYSTICK_CTRL_AUTH_EVENT = 3, /*!< OSDK获取摇杆控制权限 */
DJI_FLIGHT_CONTROLLER_RC_LOST_GET_JOYSTICK_CTRL_AUTH_EVENT = 4, /*!< 在执行遥控失联动作时,重置摇杆控制权限为遥控器 */
DJI_FLIGHT_CONTROLLER_RC_NOT_P_MODE_RESET_JOYSTICK_CTRL_AUTH_EVENT = 5, /*!< 当遥控器不处于 P 模式时,重置摇杆控制权限为遥控器 */
DJI_FLIGHT_CONTROLLER_RC_SWITCH_MODE_GET_JOYSTICK_CTRL_AUTH_EVENT = 6, /*!< 当遥控器切换控制模式(T/APS)时,将摇杆控制权限设置为遥控器 */
DJI_FLIGHT_CONTROLLER_RC_PAUSE_GET_JOYSTICK_CTRL_AUTH_EVENT = 7, /*!< 当遥控器暂停时,重置摇杆控制权限为遥控器 */
DJI_FLIGHT_CONTROLLER_RC_REQUEST_GO_HOME_GET_JOYSTICK_CTRL_AUTH_EVENT = 8, /*!< 当遥控器请求返航时,重置摇杆控制权限为遥控器 */
DJI_FLIGHT_CONTROLLER_LOW_BATTERY_GO_HOME_RESET_JOYSTICK_CTRL_AUTH_EVENT = 9, /*!< 当无人机执行低电量返航时,重置摇杆控制权限为遥控器 */
DJI_FLIGHT_CONTROLLER_LOW_BATTERY_LANDING_RESET_JOYSTICK_CTRL_AUTH_EVENT = 10, /*!< 当无人机执行低电量着陆时,重置摇杆控制权限为遥控器 */
DJI_FLIGHT_CONTROLLER_OSDK_LOST_GET_JOYSTICK_CTRL_AUTH_EVENT = 11, /*!< 当 OSDK 失联时,重置摇杆控制权限为遥控器 */
DJI_FLIGHT_CONTROLLER_NERA_FLIGHT_BOUNDARY_RESET_JOYSTICK_CTRL_AUTH_EVENT = 12, /*!< 当无人机接近边界时,重置摇杆控制权限为遥控器 */
} E_DjiFlightControllerJoystickCtrlAuthoritySwitchEvent;
摇杆模式下的水平控制方式枚举
Note: 只有当GPS信号良好(health_flag >=3)时,可使用与水平位置控制(DJI_FLIGHT_CONTROLLER_HORIZONTAL_POSITION_CONTROL_MODE)相关的控制模式。只有当GPS信号良好(health_flag >=3)或高级感应系统与Autopilot正常工作时,才可使用与水平速度控制(DJI_FLIGHT_CONTROLLER_HORIZONTAL_VELOCITY_CONTROL_MODE)相关的控制模式。
typedef enum {
/**
* @brief 控制飞行器的俯仰、横滚角度。
* @note 参考 E_DjiFlightControllerHorizontalCoordinate 设置的地面或机身坐标系。
* 限制: -35 度至 35 度
*/
DJI_FLIGHT_CONTROLLER_HORIZONTAL_ANGLE_CONTROL_MODE = 0,
/**
* @brief 设置控制模式以控制水平速度。
* @note 参考 E_DjiFlightControllerHorizontalCoordinate 设置的地面或机身坐标系。
* 限制: -30m/s 至 30m/s
*/
DJI_FLIGHT_CONTROLLER_HORIZONTAL_VELOCITY_CONTROL_MODE = 1,
/**
* @brief 设置控制模式以控制俯仰和横滚方向的位置偏移。
* @note 参考 E_DjiFlightControllerHorizontalCoordinate 设置的地面或机身坐标系。
* 限制: 无
*/
DJI_FLIGHT_CONTROLLER_HORIZONTAL_POSITION_CONTROL_MODE = 2,
/**
* @brief 设置控制模式以控制飞行器偏航角变化率。
* @note 参考 E_DjiFlightControllerHorizontalCoordinate 设置的地面或机身坐标系。
* 限制: -150deg/s 至 150deg/s
*/
DJI_FLIGHT_CONTROLLER_HORIZONTAL_ANGULAR_RATE_CONTROL_MODE = 3
} E_DjiFlightControllerHorizontalControlMode;
摇杆模式下的垂直控制方式枚举
Note: 我们建议开发者在无人机飞行高度超过3米的室内环境中不要使用VERTICAL_POSITION控制模式。因为在室内环境中,气压计可能不准确,垂直控制器可能无法维持无人机的高度。
typedef enum {
/**
* @brief 设置控制模式以控制无人机的垂直速度,上升为正。
* @note 限制: -5m/s 至 5m/s
*/
DJI_FLIGHT_CONTROLLER_VERTICAL_VELOCITY_CONTROL_MODE = 0,
/**
* @brief 设置控制模式以控制无人机的高度。
* @note 限制: 0m 至 120m
*/
DJI_FLIGHT_CONTROLLER_VERTICAL_POSITION_CONTROL_MODE = 1,
/**
* @brief 设置控制模式以直接控制推力。
* @note 范围: 0% 至 100%
*/
DJI_FLIGHT_CONTROLLER_VERTICAL_THRUST_CONTROL_MODE = 2,
} E_DjiFlightControllerVerticalControlMode;
摇杆模式下的偏航控制方式枚举
typedef enum {
/**
* @brief 设置控制模式以控制偏航角度。
* @note 偏航角度参考地面坐标系。在此控制模式下,自动飞行强制使用地面坐标系。
*/
DJI_FLIGHT_CONTROLLER_YAW_ANGLE_CONTROL_MODE = 0x00,
/**
* @brief 设置控制模式以控制角速度。
* @note 与 YAW_ANGLE 使用相同的参考框架。
* 限制: -150deg/s 至 150deg/s
*/
DJI_FLIGHT_CONTROLLER_YAW_ANGLE_RATE_CONTROL_MODE = 1
} E_DjiFlightControllerYawControlMode;
摇杆模式下的水平坐标方式枚举
typedef enum {
DJI_FLIGHT_CONTROLLER_HORIZONTAL_GROUND_COORDINATE = 0, /*!< 设置地面框架的x-y为水平框架(NEU) */
DJI_FLIGHT_CONTROLLER_HORIZONTAL_BODY_COORDINATE = 1 /*!< 设置机身框架的x-y为水平框架(FRU) */
} E_DjiFlightControllerHorizontalCoordinate;
摇杆模式下的稳定模式枚举
Note: 仅在水平速度控制模式中工作。在速度稳定模式中,一旦输入命令为零,无人机将刹车并悬停在一个位置。在速度非稳定模式中,无人机将根据速度命令移动,并在命令为零时不会悬停,这意味着无人机将随风飘移。
typedef enum {
DJI_FLIGHT_CONTROLLER_STABLE_CONTROL_MODE_DISABLE = 0, /*!< 禁用稳定模式 */
DJI_FLIGHT_CONTROLLER_STABLE_CONTROL_MODE_ENABLE = 1 /*!< 启用稳定模式 */
} E_DjiFlightControllerStableControlMode;
typedef enum {
DJI_FLIGHT_CONTROLLER_ENABLE_RC_LOST_ACTION = 0,
DJI_FLIGHT_CONTROLLER_DISABLE_RC_LOST_ACTION = 1,
} E_DjiFlightControllerRCLostActionEnableStatus;
无人机摇杆控制权限切换事件信息结构体
typedef struct {
E_DjiFlightControllerJoystickCtrlAuthority curJoystickCtrlAuthority; /*!< 无人机摇杆控制权限所有者 */
E_DjiFlightControllerJoystickCtrlAuthoritySwitchEvent joystickCtrlAuthoritySwitchEvent; /*!< 无人机摇杆控制权限切换原因 */
} T_DjiFlightControllerJoystickCtrlAuthorityEventInfo;
Joystick mode.
Note: 在开始向飞机发送摇杆命令之前,您需要先设置摇杆模式。
typedef struct {
E_DjiFlightControllerHorizontalControlMode horizontalControlMode; /*!< 参见 E_DjiFlightControllerHorizontalControlMode 的定义*/
E_DjiFlightControllerVerticalControlMode verticalControlMode; /*!< 参见E _DjiFlightControllerVerticalControlMode 的定义*/
E_DjiFlightControllerYawControlMode yawControlMode; /*!< 参见 E_DjiFlightControllerYawControlMode 的定义*/
E_DjiFlightControllerHorizontalCoordinate horizontalCoordinate; /*!< 参见 E_DjiFlightControllerHorizontalCoordinate 的定义*/
E_DjiFlightControllerStableControlMode stableControlMode; /*!< 参见 E_DjiFlightControllerStableControlMode 的定义*/
} T_DjiFlightControllerJoystickMode;
typedef struct {
dji_f32_t x; /*!< 对x轴的控制 */
dji_f32_t y; /*!< 对y轴的控制 */
dji_f32_t z; /*!< 对z轴的控制,上为正 */
dji_f32_t yaw; /*!< 偏航位置/速度控制,相对于地面坐标系 */
} T_DjiFlightControllerJoystickCommand;// pack(1)
typedef struct {
dji_f64_t latitude; /*!< 单位:弧度 */
dji_f64_t longitude; /*!< 单位:弧度 */
} T_DjiFlightControllerHomeLocation; // pack(1)
typedef struct {
char serialNum[32];
} T_DjiFlightControllerGeneralInfo;
typedef struct {
dji_f64_t latitude; /*!< 单位:弧度 */
dji_f64_t longitude; /*!< 单位:弧度 */
uint16_t altitude;
} T_DjiFlightControllerRidInfo;
函数原型
功能:初始化飞行控制模块,用户应调用此函数 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_Init(T_DjiFlightControllerRidInfo ridInfo);
ridInfo:使用 PSDK 控制飞机时,必须报告正确的RID信息
返回值
执行结果
功能:反初始化飞行控制模块。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_DeInit(void);
执行结果
功能:启用/禁用 RTK 位置功能。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_SetRtkPositionEnableStatus(E_DjiFlightControllerRtkPositionEnableStatus rtkEnableStatus);
rtkEnableStatus:参见 E_DjiFlightControllerRtkPositionEnableStatus 的定义
返回值
执行结果
功能:获取 RTK 启用状态。 | 适用产品:所有 |
Note: 启用 RTK 意味着在智能飞行过程中将使用RTK数据。
T_DjiReturnCode DjiFlightController_GetRtkPositionEnableStatus(E_DjiFlightControllerRtkPositionEnableStatus *rtkEnableStatus);
rtkEnableStatus:参见 E_DjiFlightControllerRtkPositionEnableStatus 的定义。
返回值
执行结果
功能:设置失联动作。 | 适用产品:所有 |
Note: 当遥控器和 OSDK 均失联时,此设置才生效。仅支持 M30。
T_DjiReturnCode DjiFlightController_SetRCLostAction(E_DjiFlightControllerRCLostAction rcLostAction);
rcLostAction:遥控器失联时的动作(悬停/降落/返回)。与 Pilot 参数同步。
返回值
执行结果
功能:获取遥控器失联动作(悬停/降落/返回)。 | 适用产品:所有 |
Note: 当遥控器和 OSDK 均丢失时,此设置才生效。仅支持M30。
T_DjiReturnCode DjiFlightController_GetRCLostAction(E_DjiFlightControllerRCLostAction *rcLostAction);
rcLostAction:参见 E_DjiFlightControllerRCLostAction 的定义。与 Pilot 参数同步。
返回值
执行结果
Function: 功能:启用/禁用水平视觉障碍物避让(前、后、左、右)。 | 适用产品:所有 |
Note: 关于避障的详细参数,建议阅读官方用户手册。
T_DjiReturnCode DjiFlightController_SetHorizontalVisualObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus horizontalObstacleAvoidanceEnableStatus);
horizontalObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
获取水平视觉障碍物避让(前、后、左、右)的开关状态。 | 适用产品:所有 |
Note: 关于避障的详细参数,建议阅读官方用户手册。
T_DjiReturnCode DjiFlightController_GetHorizontalVisualObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus *horizontalObstacleAvoidanceEnableStatus);
horizontalObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
功能:开启/关闭水平雷达避障功能。 | 适用产品:所有 |
Note: 仅当成功安装 CSM 雷达后生效。关于避障的详细参数,请参考用户手册。
T_DjiReturnCode DjiFlightController_SetHorizontalRadarObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus horizontalObstacleAvoidanceEnableStatus);
horizontalObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
功能:获取水平雷达避障功能的状态。 | 适用产品:所有 |
Note: 仅当成功安装 CSM 雷达后生效。关于避障的详细参数,请参考用户手册。
T_DjiReturnCode DjiFlightController_GetHorizontalRadarObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus *horizontalObstacleAvoidanceEnableStatus);
horizontalObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
开启/关闭上视避障功能。 | 适用产品:所有 |
Note: 关于避障的详细参数,建议参阅官方用户手册。
T_DjiReturnCode DjiFlightController_SetUpwardsVisualObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus upwardsObstacleAvoidanceEnableStatus);
upwardsObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
功能:获取上视避障功能的状态。 | 适用产品:所有 |
Note: 关于避障的详细参数,建议参阅官方用户手册。
T_DjiReturnCode DjiFlightController_GetUpwardsVisualObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus *upwardsObstacleAvoidanceEnableStatus);
upwardsObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
功能:开启/关闭向上雷达避障功能。 | 适用产品:所有 |
Note: 仅当成功安装 CSM 雷达后生效。关于避障的详细参数,请参考用户手册。
T_DjiReturnCode DjiFlightController_SetUpwardsRadarObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus upwardsObstacleAvoidanceEnableStatus);
upwardsObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
功能:获取向上雷达避障功能的状态。 | 适用产品:所有 |
Note: 关于避障的详细参数,建议参阅官方用户手册。
T_DjiReturnCode DjiFlightController_GetUpwardsRadarObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus *upwardsObstacleAvoidanceEnableStatus);
upwardsObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
功能:开启/关闭向下视觉避障功能。 | 适用产品:所有 |
Note: 关于避障的详细参数,建议参阅官方用户手册。
T_DjiReturnCode DjiFlightController_SetDownwardsVisualObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus downwardsObstacleAvoidanceEnableStatus);
downwardsObstacleAvoidanceEnableStatus:参见E_DjiFlightControllerObstacleAvoidanceEnableStatus的定义。
返回值
执行结果
功能:获取向下视觉避障功能的状态。 | 适用产品:所有 |
Note: 关于避障的详细参数,建议参阅官方用户手册。
T_DjiReturnCode DjiFlightController_GetDownwardsVisualObstacleAvoidanceEnableStatus( E_DjiFlightControllerObstacleAvoidanceEnableStatus *downwardsObstacleAvoidanceEnableStatus);
downwardsObstacleAvoidanceEnableStatus:参见 E_DjiFlightControllerObstacleAvoidanceEnableStatus 的定义。
返回值
执行结果
功能:紧急制动飞行。 | 适用产品:所有 |
Note: 当无人机在地面时,它会停止电机并在APP上显示“hms description”。当无人机在空中时,仅在APP上显示“hms description”。使用此接口后,需调用"DjiFlightController_CancelArrestFlying"退出该状态,无人机才可再次飞行。
T_DjiReturnCode DjiFlightController_ArrestFlying(void);
执行结果
Function: 退出紧急制动状态。 | 适用产品:所有 |
Note: 在紧急制动后,无人机如需继续飞行则需先退出该状态。
T_DjiReturnCode DjiFlightController_CancelArrestFlying(void);
执行结果
功能:无人机在地面时启动电机。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_TurnOnMotors(void);
执行结果
功能:无人机在地面时关闭电机。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_TurnOffMotors(void);
返回值
执行结果
功能:在任何情况下紧急停止电机。 | 适用产品:所有 |
Note: 需使用此接口发送禁用指令退出锁定电机状态。
T_DjiReturnCode DjiFlightController_EmergencyStopMotor(E_DjiFlightControllerEmergencyStopMotor cmd, char debugMsg[EMERGENCY_STOP_MOTOR_MSG_MAX_LENGTH]);
debugMsg:将调试信息注入飞行控制固件以进行记录,有大小限制
cmd:参见 E_DjiFlightControllerEmergencyStopMotor 的引用
返回值
执行结果
功能:当无人机在地面时请求起飞。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_StartTakeoff(void);
执行结果
功能:当无人机在空中时请求降落。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_StartLanding(void);
执行结果
功能:当无人机正在降落时请求取消降落。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_CancelLanding(void);
执行结果
功能:当无人机距离地面0.7米时确认着陆。 | 适用产品:所有 |
Note: 当飞机与地面的距离小于0.7米时,飞机会暂停降落并等待用户确认。此 API 用于确认降落。如果地面不适合降落,用户必须使用遥控器手动控制其降落或强制降落。
T_DjiReturnCode DjiFlightController_StartConfirmLanding(void);
执行结果
功能:在任何情况下都强制着陆。 | 适用产品:所有 |
Note: 此API将忽略智能降落功能。使用此API,飞机将直接降落(不会在0.7米处停止等待用户指令)。注意:这可能导致飞机坠毁!!
T_DjiReturnCode DjiFlightController_StartForceLanding(void);
执行结果
功能:设置自定义 GPS(非 RTK)的 home 点位置。 | 适用产品:所有 |
Note: 设置自定义起飞点失败的原因可能包括: 新的起飞点与上一个起飞点之间的距离超过 MAX_FLY_RADIUS(20km)。 开机后记录初始起飞点失败。
T_DjiReturnCode DjiFlightController_SetHomeLocationUsingGPSCoordinates(T_DjiFlightControllerHomeLocation homeLocation);
homeLocation:包括纬度和经度的 home 点位置
返回值
执行结果
功能:使用当前飞机的 GPS(非 RTK)位置设置 home 点位置。 | 适用产品:所有 |
Note: 设置起飞点失败的原因可能包括: 无人机的GPS等级未达到记录起飞点的条件。 开机后记录初始起飞点失败。
T_DjiReturnCode DjiFlightController_SetHomeLocationUsingCurrentAircraftLocation(void);
执行结果
功能:设置返航高度。 | 适用产品:所有 |
Note: 如果无人机的当前高度高于返航高度的设置值,无人机将使用当前高度返航。否则,它将爬升到返航高度的设置,然后执行返航操作。返航高度设置为20m ~ 1500m。
T_DjiReturnCode DjiFlightController_SetGoHomeAltitude(E_DjiFlightControllerGoHomeAltitude altitude);
altitude:返航高度
返回值
执行结果
功能:获取返航高度。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_GetGoHomeAltitude(E_DjiFlightControllerGoHomeAltitude *altitude);
altitude:返航高度
返回值
执行结果
功能:获取国家码。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_GetCountryCode(uint16_t *countryCode);
countryCode:指向缓冲区的指针,用于返回国家代码。国家代码表示飞行器当前所在的国家或地区。具体的国家代码含义,请参考 ISO 3166-1 代码表。
返回值
执行结果
功能:当无人机在空中时,请求返航动作。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_StartGoHome(void);
执行结果
功能:在无人机返航时,请求取消返航动作。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_CancelGoHome(void);
执行结果
功能:获取无人机的摇杆控制权限。 | 适用产品:所有 |
Note: 使用摇杆控制无人机之前,必须成功获取摇杆控制权限,遥控器必须处于 P 档。
T_DjiReturnCode DjiFlightController_ObtainJoystickCtrlAuthority(void);
执行结果
功能:释放无人机摇杆控制权限。 | 适用产品:所有 |
Note: 遥控器必须处于 P 档。
T_DjiReturnCode DjiFlightController_ReleaseJoystickCtrlAuthority(void);
执行结果
功能:使用回调函数订阅摇杆控制权限切换事件。 | 适用产品:所有 |
Note: 当摇杆控制权限切换事件发生时,将触发此函数。
T_DjiReturnCode DjiFlightController_RegJoystickCtrlAuthorityEventCallback(JoystickCtrlAuthorityEventCbFunc callback);
执行结果
功能:请求执行摇杆动作。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_ExecuteJoystickAction(T_DjiFlightControllerJoystickCommand joystickCommand);
joystickCommand:包括x/y/z/yaw
返回值
执行结果
功能:请求紧急制动动作。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_ExecuteEmergencyBrakeAction(void);
执行结果
功能:请求取消紧急制动动作。 | 适用产品:所有 |
Note: 仅在M30上支持。如果使用了 DjiFlightController_ExecuteEmergencyBrakeAction(),则需要使 DjiFlightController_CancelEmergencyBrakeAction() 以允许无人机再次执行动作。
T_DjiReturnCode DjiFlightController_CancelEmergencyBrakeAction(void);
执行结果
功能:获取飞机的通用信息。 | 适用产品:所有 |
T_DjiReturnCode DjiFlightController_GetGeneralInfo(T_DjiFlightControllerGeneralInfo *generalInfo);
generalInfo:存储含有用户给出的字符数组的序列号的结构体。
返回值
执行结果
功能:获取飞机的通用信息。 | 适用产品:所有 |
Note: 此设置仅在遥控器丢失且 OSDK 连接时影响无人机的行为。 如果命令为启用,当遥控器丢失但OSDK正在运行时,无人机不会执行遥控器丢失的操作; 如果命令为禁用,当遥控器丢失但OSDK正在运行时,无人机会执行遥控器丢失的操作; 当遥控器和OSDK都丢失时,无人机将执行遥控器丢失的操作,无论命令为何。 默认命令为禁用。
T_DjiReturnCode DjiFlightController_SetRCLostActionEnableStatus(E_DjiFlightControllerRCLostActionEnableStatus command);
executeRCLostActionOrNotWhenOnboardOn:是否执行遥控器丢失动作。启用:1;禁用:0。
返回值
T_DjiReturnCode error code
功能:获取飞机的通用信息。 | 适用产品:所有 |
Note: This setting only affects the behavior of the drone when the RC lost and the OSDK is connected.
T_DjiReturnCode DjiFlightController_GetEnableRCLostActionStatus(E_DjiFlightControllerRCLostActionEnableStatus *command);
command:是否执行遥控器丢失动作。启用:1;禁用:0。
返回值
T_DjiReturnCode error code
功能:注册回调函数触发 FTS 事件。 | 适用产品:所有 |
Note: FTS 的触发时机由飞行器决定,FTS 的触发执行动作需要在回调函数中实现,并且必须返回正确的返回值,否则飞行器将会持续被触发。
T_DjiReturnCode DjiFlightController_RegTriggerFtsEventCallback(TriggerFtsEventCallback callback);
callback:触发 FTS 事件的回调函数。
返回值
T_DjiReturnCode error code