[英]DJI Waypoint mission listeners
我需要一鍵創建/上傳/啟動航點任務。 當用戶按下按鈕時,無人機應根據當前位置向上移動一定數量的點。 用戶可以停止任務並重新開始新的任務。 我的邏輯是:
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.