首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法通过api调用启用精确着陆

无法通过api调用启用精确着陆
EN

Stack Overflow用户
提问于 2018-03-07 22:51:37
回答 1查看 197关注 0票数 2

我正在使用一架幻影4 Pro无人机,它有精确的着陆能力。我用Swift和iPad控制无人机。在DJI软件中,我可以启用它,并且工作正常。然而,在我正在开发的应用程序中,任何启用它的调用都会失败。

这是试图启用它的代码:

代码语言:javascript
复制
static func setPrecisionLandingEnabled(precisionLandingEnabled: Bool, _ completeFunction: @escaping (Error?) -> Void) throws {
    guard let djiKeyManager = DJISDKManager.keyManager() else {
        GLog.Log("Error in Flight Controller Observer. Problem getting djiKeyManager in \(#file) \(#function)")
        throw FlightControllerManager.FlightControllerError.cantGetKeyManager
    }

    guard let precisionLandingEnabledKey = DJIFlightControllerKey(param: DJIFlightAssistantParamPrecisionLandingEnabled) else {
        GLog.Log("Error in Flight Controller Observer. Problem getting precisionLandingEnabledKey in \(#file) \(#function)")
        throw FlightControllerManager.FlightControllerError.cantGetKey
    }

    djiKeyManager.setValue(precisionLandingEnabled, for: precisionLandingEnabledKey, withCompletion: completeFunction)
}

当我调用该函数时,DJI的完成函数返回以下错误:

错误的Domain=DJISDKErrorDomain代码=-1013\“当前产品不支持此特性。

有问题的API可以在这里找到:inline

我检查过了,在发出与精确着陆相关的“起飞”呼叫时,没有传入任何参数。那么,既然我知道无人机有这个功能(正如DJI自己的应用程序所验证的那样),为什么我会收到这个错误呢?无人机必须先飞行才能实现这一点吗?或者,在我启用之前,还需要满足其他条件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-08 00:06:58

在我看来,您应该创建一个DJIFlightAssistant对象,然后使用现有的方法setPrecisionLandingEnabled(_: Bool, completion: DJICompletionBlock)

为什么要编写自己的setPrecisionLandingEnabled()方法?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49162549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档