繁体   English   中英

DJI Waypoint 任务监听器

[英]DJI Waypoint mission listeners

我需要一键创建/上传/启动航点任务。 当用户按下按钮时,无人机应根据当前位置向上移动一定数量的点。 用户可以停止任务并重新开始新的任务。 我的逻辑是:

  1. 我用积分初始化任务
  2. 加载任务
  3. 将侦听器添加到任务操作员
  4. 上传任务
  5. 任务从听众开始
missionOperator.addListener(toUploadEvent: self, with: DispatchQueue.main) { (event) in
    if event.currentState == .readyToExecute {
        self.startMission()
    }
}

我正在阅读文档好几天并试图了解这件事是如何工作的,但我显然错过了一些东西。 侦听器是在航点任务操作员上创建的,但是如果我在加载任务之前创建侦听器,则不会调用它们。 如果我每次加载任务时都创建侦听器,则 startMission() 被多次调用(第一次被调用,但在一个任务停止或完成后,下一次 startMission() 被调用两次)

所以,我想我的问题是:什么时候添加侦听器并删除它们,因为我从侦听器调用 startMission()? 实际上,什么是一键初始化/上传/启动任务的合适方法,并且能够多次执行此操作?

当上传成功且事件状态为readyToExecute时,您需要移除上传监听器。 此外,当事件包含错误或状态为准备上传/不支持/断开连接时。 几乎在所有情况下,除非它仍处于“上传”状态。

当您开始任务时,为执行事件添加一个侦听器,并为完成事件添加一个侦听器。 当任务停止/取消、出现错误或成功完成时,再次删除它们。

即使您使用 Swift,我还是建议您查看更完整的 Objective C 示例代码,其中包括几种不同类型任务的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM