簡體   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