ios - 将航点任务上传到 Phantom 4 时出错
问题描述
我正在使用下面的功能开始一个航点任务。我正在使用 Phantom 4 测试此代码,但在执行missionOperator.uploadMission时出现错误:
无法在当前模式下执行。对于支持“F”模式的产品和飞控固件版本(如Phantom 3 Professional、Inspire 1、飞控固件版本低于3.2.10.0的A3等),请确保遥控器的模式开关处于“F”模式。其他请确保遥控器的模式开关处于“P”模式。(代码:-5000)
我已将模式更改为 P 模式,但仍然出现相同的错误。我该如何解决这个错误?我的无人机或我的代码有问题吗?
private func startMission(coordinate: CLLocationCoordinate2D) {
let waypoint1 = DJIWaypoint(coordinate: coordinate)
let action = DJIWaypointAction(actionType: .stay, param: 1000)
waypoint1.add(action)
let waypoint2 = DJIWaypoint(coordinate: CLLocationCoordinate2DMake(35, 34))
waypoint2.add(action)
waypoint1.altitude = 30
waypoint2.altitude = 30
let djiMission = DJIMutableWaypointMission()
djiMission.addWaypoints([waypoint1, waypoint2])
djiMission.autoFlightSpeed = 8
djiMission.maxFlightSpeed = 10
djiMission.gotoFirstWaypointMode = .pointToPoint
djiMission.finishedAction = .goHome
djiMission.headingMode = .auto
let missionOperator = DJISDKManager.missionControl()!.waypointMissionOperator()
if let error = djiMission.checkParameters() {
print("Waypoint Mission parameters are invalid: \(error.localizedDescription)")
return
}
print(missionOperator.currentState.rawValue)
if let error = missionOperator.load(djiMission) {
print(missionOperator.currentState.rawValue)
print(error)
}
missionOperator.uploadMission { error in
if let err = error {
print("Mission upload error: \(err)")
} else {
missionOperator.startMission { error in
if let err = error {
print("Mission start error: \(err)")
} else {
print("Mission started")
}
}
}
}
解决方案
推荐阅读
- html - 如何使 1024 x 600 和 1024 x 768 的媒体查询分别工作?
- python - 芹菜中的unicode(python 2.7)
- python - 任何用于查找推文情绪的预训练 ML 模型或分类器?
- javascript - 类型错误:onVideoSelect 不是函数
- python - 我对 python/html 的嵌套循环有疑问
- arduino - 将程序从 Atmel Studio 或 Avr dude 部署到 Atmel "XMEGA-A3BU Xplained"
- c# - unity:从概率分布中获取随机值
- react-native - React-native array stack of imageviews - 如何只为最顶层的项目设置动画?
- laravel - 将 Laravel 5.7 部署到 Google App Engine
- escaping - findstr 前导尾随空格