簡體   English   中英

大疆移動SDK 3.0

[英]DJI Mobile SDK 3.0

在通過DJIMissionManager.getInstance()或djiAircraftInstance.getMissionManager()獲取任務管理器時,任務管理器實例永遠不會連接,即missionManagerInstance.isConnected()始終返回false,並且在沒有進行isConnected檢查的情況下進行操作會導致崩潰。 我是否缺少設置或撤離任務管理器的步驟?

一分鍾前,我在這里的論壇上問了同樣的問題。

任何幫助,將不勝感激。 我已經看過他們的示例一千遍了,但是似乎所有示例都使用了較舊版本的sdk。

編輯:您可以弄清楚的更多信息,但我會對其進行補充。

任務管理器實例不為null,因為調用isConnected()返回false,並且無人機也已連接。

我只是測試了isMissionReadyToExecute和MissionManager.isConnected,我發現無論何時調用它們,它們始終返回true。 因此,我認為這應該是SDK中的錯誤。

我找到了解決該問題的方法。

初始化任務。

    // Step 1: create mission
    DJIWaypointMission waypointMission = new DJIWaypointMission();
    waypointMission.maxFlightSpeed = 14;
    waypointMission.autoFlightSpeed = 4;
    List<DJIWaypoint> waypointsList = new LinkedList<>();

    // Step 2: create waypoints and prepare coordinates
    DJIWaypoint northPoint = new DJIWaypoint(mHomeLatitude + 10 * Utils.ONE_METER_OFFSET, mHomeLongitude, 10f);
    DJIWaypoint eastPoint = new DJIWaypoint(mHomeLatitude, mHomeLongitude + 10 * Utils.calcLongitudeOffset(mHomeLatitude), 20f);
    DJIWaypoint southPoint = new DJIWaypoint(mHomeLatitude - 10 * Utils.ONE_METER_OFFSET, mHomeLongitude, 30f);
    DJIWaypoint westPoint = new DJIWaypoint(mHomeLatitude, mHomeLongitude - 10 * Utils.calcLongitudeOffset(mHomeLatitude), 40f);

    //Step 3: add actions
    northPoint.addAction(new DJIWaypoint.DJIWaypointAction(DJIWaypoint.DJIWaypointActionType.GimbalPitch, -60));
    northPoint.addAction(new DJIWaypoint.DJIWaypointAction(DJIWaypoint.DJIWaypointActionType.StartTakePhoto, 0));
    eastPoint.addAction(new DJIWaypoint.DJIWaypointAction(DJIWaypoint.DJIWaypointActionType.StartTakePhoto, 0));
    southPoint.addAction(new DJIWaypoint.DJIWaypointAction(DJIWaypoint.DJIWaypointActionType.RotateAircraft, 60));
    southPoint.addAction(new DJIWaypoint.DJIWaypointAction(DJIWaypoint.DJIWaypointActionType.StartRecord, 0));
    westPoint.addAction(new DJIWaypoint.DJIWaypointAction(DJIWaypoint.DJIWaypointActionType.StopRecord, 0));

    //Step 4: add waypoints into the mission
    waypointsList.add(northPoint);
    waypointsList.add(eastPoint);
    waypointsList.add(southPoint);
    waypointsList.add(westPoint);
    waypointMission.addWaypoints(waypointsList);

    mDJIMission = waypointMission;

准備任務。

 mMissionManager.prepareMission(mDJIMission, new DJIMission.DJIMissionProgressHandler() {

        @Override
        public void onProgress(DJIMission.DJIProgressType type, float progress) {
            setProgressBar((int)(progress * 100f));
        }

    }, new DJICompletionCallback() {

        @Override
        public void onResult(DJIError error) {
            if (error == null) {
                Utils.setResultToToast(mContext, "Success!");
            } else {
                Utils.setResultToToast(mContext, "Prepare: " + error.getDescription());
            }
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM