DJI Waypoint任务侦听器

问题描述 投票:0回答:1

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

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

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

所以,我想我的问题是:从我从侦听器调用startMission()以来,什么时候是添加侦听器并将其删除的合适时机?实际上,一种方法可以通过一个按钮初始化/上传/开始任务,并且能够多次执行此操作?

ios swift dji-sdk
1个回答
0
投票

当上传成功且事件状态为readyToExecute时,您需要删除上传侦听器。同样,当事件包含错误或状态为就绪可以上传/不支持/断开连接时。在每种情况下,几乎都处于“正在上传”状态。

开始任务时,为执行事件添加一个侦听器,为完成事件添加一个侦听器。当任务停止/取消,出现错误或成功完成时,请再次删除这些内容。

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

© www.soinside.com 2019 - 2024. All rights reserved.