Слушатели миссии DJI Waypoint - PullRequest
       11

Слушатели миссии DJI Waypoint

0 голосов
/ 24 марта 2020

Мне нужно создать / загрузить / запустить маршрутную точку на одной кнопке. Когда пользователь нажимает кнопку, дрон должен двигаться вверх на определенное количество точек в зависимости от текущей позиции. Пользователь может остановить миссию и снова начать новую. Мой лог c здесь следующий:

  1. Я инициализирую миссию с точками
  2. Загрузка миссии
  3. Добавление слушателей к оператору миссии
  4. Загрузка миссии
  5. Миссия начинается на слушателе
missionOperator.addListener(toUploadEvent: self, with: DispatchQueue.main) { (event) in
    if event.currentState == .readyToExecute {
        self.startMission()
    }
}

Я читаю документацию в течение нескольких дней и пытаюсь понять, как это работает, но я что-то упускаю, очевидно. Слушатели создаются на операторе миссии путевой точки, но если я создаю слушателей перед загрузкой миссии, их не вызывают. Если я создаю слушателей каждый раз, когда загружаю миссию, startMission () вызывается несколько раз (первый раз вызывается, но после того, как одна миссия остановлена ​​или завершена, в следующий раз startMission () вызывается два раза)

Так Я думаю, что мои вопросы будут такими: Какой подходящий момент, чтобы добавить слушателей и удалить их, так как я вызываю startMission () из слушателей? На самом деле, что является подходящим способом для запуска / загрузки / запуска миссии на одну кнопку, и быть в состоянии сделать это несколько раз?

...