MSDK 5.5.0 无法使用航线任务功能
使用航线任务功能,按流程执行航线任务时,第一步上传航线文件调用pushKMZFileToAircraft方法报错,错误信息为ErrorImp{errorType='WAYPOINT', errorCode='CANT_EXCUTE_IN_CURRENT_STATUS', innerCode='-1', description='航线无法执行,设备状态错误', hint=''}。
使用的DJI Assistant 2 模拟器模拟飞行,机型为M300,RTK关闭,后台没有其他程序,点击上传后文件进度50后就报错,上传文件路径为全路径,多次测试一样,kmz文件为3个航点的测试文件,动作都是执行一次拍照。
使用官方v5的demo也不行。
忽略错误后续调用startMission也无用。
以下是具体代码和错误信息及图片:
//加载任务按钮
loadBtn.setOnClickListener(view -> {
CommonUtils.toast(context, " 开始加载航线 ");
LogUtil.e(TAG, " 开始加载航线 --- " + wayLineName);
//上传航线任务文件
V5WaypointMissionManager.getInstance().pushKMZFileToAircraft(
Common.routePath + wayLineName,
new CommonCallbacks.CompletionCallbackWithProgress<Double>() {
@Override
public void onProgressUpdate(Double progress) {
//上传进度
LogUtil.e(TAG, " 无人机航线文件上传进度 --- " + progress);
}
@Override
public void onSuccess() {
LogUtil.e(TAG, " 无人机航线文件上传成功 --- " + wayLineName);
CommonUtils.toast(context, " 航线加载完成 ");
}
@Override
public void onFailure(@NonNull IDJIError error) {
LogUtil.e(TAG, " 无人机航线文件上传失败 --- " + wayLineName + " --- " + error);
}
});
});
//航线任务执行状态监听
WaypointMissionExecuteStateListener waypointMissionExecuteStateListener = missionState -> {
switch (missionState) {
case IDLE://初始化状态
LogUtil.e(TAG, " 航线任务初始化状态 ");
break;
case NOT_SUPPORTED://此机型不支持航线任务3.0。
LogUtil.e(TAG, " 此机型不支持航线任务3.0 ");
break;
case READY://航线任务准备状态,此状态下可上传航线任务文件,也可执行已上传的航线任务。
LogUtil.e(TAG, " 航线任务准备状态 ");
break;
case UPLOADING://航线任务文件上传中。
LogUtil.e(TAG, " 航线任务文件上传中 ");
break;
case PREPARING://航线任务执行准备中。调用startMission启动执行航线任务后,飞行器在准备执行航线任务中。
LogUtil.e(TAG, " 航线任务执行准备中 ");
break;
case ENTER_WAYLINE://进入航线飞行,飞往指定航线的第一个航点。
LogUtil.e(TAG, " 进入航线飞行,飞往指定航线的第一个航点 ");
break;
case EXECUTING://航线任务执行中。
LogUtil.e(TAG, " 航线任务执行中 ");
break;
case INTERRUPTED://航线任务执行中断,表示用户调用pauseMission暂停航线或者飞控异常。
LogUtil.e(TAG, " 航线任务执行中断 ");
break;
case RECOVERING://航线任务恢复中。
LogUtil.e(TAG, " 航线任务恢复中 ");
break;
case FINISHED://航线任务完成。表示航线任务执行完成或者调用stopMission停止执行航线任务。
LogUtil.e(TAG, " 航线任务完成 ");
break;
}
};
执行代码后,日志如下:
请先登录再写评论。
评论
2 条评论