DJI SDK: приостановить / возобновить миссию путевой точки при прибытии в точку?

#android #dji-sdk

#Android #dji-sdk

Вопрос:

Я не нашел никакой информации об этом. Я бы хотел создать миссию путевой точки следующим образом:

  1. беспилотник прибывает в путевую точку
  2. вся миссия приостанавливается, уведомляет пользователя (есть ли прослушиватель для путевых точек?)
  3. приложение переходит к другому действию, чтобы сделать снимок
  4. пользователь возвращается с фотосъемки
  5. пользователь нажимает кнопку, миссия продолжается до следующей путевой точки.

Я вижу действия путевой точки, но это не совсем то, чего я хотел бы достичь. Я хотел бы позволить пользователю управлять миссией вручную, но иметь возможность делать такие вещи, как пропускать путевые точки, а также переходить к другому действию, пока беспилотник ждет в путевой точке.

Какие-либо советы по этому поводу?

Спасибо

Ответ №1:

Этот ответ относится конкретно к Android SDK, но аналогичные концепции существуют и для iOS SDK.

В Android миссии путевых точек создаются и управляются с помощью класса WaypointMissionOperator . Экземпляры этого класса позволяют настраивать прослушиватель с помощью addListener метода, который будет вызываться при наличии обновленного состояния самолета. onExecutionUpdate Метод WaypointMissionOperatorListener , который вы передаете этому методу, получит событие WaypointMissionExecutionEvent. У этого объекта есть getProgress метод, который предоставит вам информацию о состоянии миссии, которая вам нужна ( targetWaypointIndex и isWaypointReached ).

Чтобы приостановить миссию в определенной путевой точке, вы можете добавить удержание в путевой точке. Это позволяет вашему программному обеспечению, работающему на мобильном устройстве, вовремя обнаружить, что самолет достиг путевой точки, и отправить команду приостановки миссии.

Остальная часть вашего вопроса касается философии дизайна, которая немного выходит за рамки stackoverflow, но не стесняйтесь обращаться ко мне напрямую.