DJI航路点任务执行-swift

DJI航路点任务执行-swift,swift,dji-sdk,Swift,Dji Sdk,因此,我为航路点任务编写了代码,代码似乎符合DJI-SDK航路点任务。任务甚至可以装载到无人机上。然而,没有比这更进一步的事情发生 我很确定我试图错误地执行任务,我知道我需要等待任务加载,但我不确定如何执行。我们将非常感谢您对解决方案的任何帮助 我将包括一些代码来显示我试图做什么 let location2 = CLLocationCoordinate2DMake(PointList[1].position.latitude, PointList[1].position.longitude)

因此,我为航路点任务编写了代码,代码似乎符合DJI-SDK航路点任务。任务甚至可以装载到无人机上。然而,没有比这更进一步的事情发生

我很确定我试图错误地执行任务,我知道我需要等待任务加载,但我不确定如何执行。我们将非常感谢您对解决方案的任何帮助

我将包括一些代码来显示我试图做什么

let location2 = CLLocationCoordinate2DMake(PointList[1].position.latitude, PointList[1].position.longitude)
           let waypoint2 = DJIWaypoint(coordinate: location2)
           waypoint2.altitude = 20.0 
           waypoint2.heading = 0
           waypoint2.actionRepeatTimes = 1
           waypoint2.actionTimeoutInSeconds = 60
           waypoint2.cornerRadiusInMeters = 5
           waypoint2.turnMode = .clockwise
           waypoint2.gimbalPitch = 0
           

           waypoint2.speed = 0.5
           
          mission.add(waypoint1)
          mission.add(waypoint2)
        
        
        if let error =  DJISDKManager.missionControl()?.waypointMissionOperator().load(mission) {
            print(error.localizedDescription)
        }
        DJISDKManager.missionControl()?.waypointMissionOperator().addListener(toUploadEvent: self, with: DispatchQueue.main){
            error in
             print("upload")
            self.startMission((Any).self)
        }
        
           print("running mission", mission)
           return DJIWaypointMission(mission: mission)
        
       }
因此,这个问题似乎并不完全基于这里,但可能在我试图执行它的方法中。我会把它包括在下面

func missionStart (){ //begins the execution of a mission
        if missionReady == true{
            print("trying to run mission")
            DJISDKManager.missionControl()?.waypointMissionOperator().load(mission)
            
            if DJISDKManager.missionControl()?.waypointMissionOperator().loadedMission == mission {
                DJISDKManager.missionControl()?.waypointMissionOperator().startMission()
            }
    }
        
    }
最后,启动任务的按钮(尝试):


我很久没有使用航路点了。我查看了我的代码,似乎在开始任务之前必须检查state==READY\u to\u EXECUTE。 不过我可能错了

                    while (waypointMissionOperator.getCurrentState() != WaypointMissionState.READY_TO_EXECUTE && maxWaitLoop--!=0)
                        Common.sleep(50, "Waiting for WaypointMissionState.READY_TO_EXECUTE");

                waypointMissionOperator.startMission(new CommonCallbacks.CompletionCallback() {
                    while (waypointMissionOperator.getCurrentState() != WaypointMissionState.READY_TO_EXECUTE && maxWaitLoop--!=0)
                        Common.sleep(50, "Waiting for WaypointMissionState.READY_TO_EXECUTE");

                waypointMissionOperator.startMission(new CommonCallbacks.CompletionCallback() {