MSDK V5.2.0 利用SDK开发的APP无法在DJI Assistant 2里仿真试飞?
CompletedSDK版本: MSDK V5.2.0
问题背景:已开发好一个APP,APP中调用API执行航行任务,现在想利用DJI Assistant 2仿真试飞。
问题描述:调用以下代码在仿真器中起飞
WaypointMissionManager.getInstance().startMission(kmzFileFullPath, new StartMissionCallback());
返回报错信息:
E/StartMissionCallback:: (onFailure:21) ErrorImp{errorType='WAYPOINT', errorCode='CANT_EXCUTE_IN_CURRENT_STATUS', innerCode='-1', description='航线无法执行,设备状态错误', hint=''}
请问是什么样的设备状态错误呢?在仿真环境中,已关闭RTK。
-
补充描述:已经push过KMZ文件,代码如下:
WaypointMissionManager.getInstance().pushKMZFileToAircraft(kmzFileFullPath, new PushKMZToAircraftCallback());
其中kmzFileFullPath是文件绝对路径。
但是在startMission中,我已修改为文件名,代码如下:
String testPath = "cbfa5092-821d-4993-a8c3-fe9c2bf4d4cb.kmz";
WaypointMissionManager.getInstance().startMission(testPath, new StartMissionCallback());但仍然报同样的错误,从错误描述来看,问题出在设备状态,而不是kmz文件,同时,我在pilot2中飞同样的kmz是能正常运作的。
此外,我在github中发现有人提出了同样的问题,链接如下:https://github.com/dji-sdk/Mobile-SDK-Android-V5/issues/63
故该问题,可复现,出现范围广,希望官方快速回应一下。
-
不是诡异,是流程就是这样的
enum WaypointMissionExecuteState
enum WaypointMissionExecuteState
包: dji.v5.manager.aircraft.waypoint3.model 描述:
航线任务执行状态。
MSDK 5.0.0开始支持
Enum Members:
IDLE 初始化状态。 NOT_SUPPORTED 此机型不支持航线任务3.0。 READY 航线任务准备状态,此状态下可上传航线任务文件,也可执行已上传的航线任务。 UPLOADING 航线任务文件上传中。 PREPARING 航线任务执行准备中。调用 startMission
启动执行航线任务后,飞行器在准备执行航线任务中。ENTER_WAYLINE 进入航线飞行,飞往指定航线的第一个航点。 EXECUTING 航线任务执行中。 INTERRUPTED 航线任务执行中断,表示用户调用 pauseMission
暂停航线或者飞控异常。RECOVERING 航线任务恢复中。 FINISHED 航线任务完成。表示航线任务执行完成或者调用 stopMission
停止执行航线任务。 -
1s延迟有时候也会报错,我们尝试了检测航线任务状态,然后执行任务。发现计算状态是READY,执行任务也有概率报错,现在我们又将延迟时间提示到1.5s,建议官方赶紧查一下这个问题。github里也提供了READY也会报错的复现代码 -->你可以先升级到5.3.0-a3版本,这里是地址:https://github.com/dji-sdk/Mobile-SDK-Android-V5/tree/dev-sdk-alpha 另外,在startMission之前需要关注航线状态以及pushKMZFileToAircraft是否已经回调onSuccess,这两个情况都会导致提示无法执行任务。另外,在确认降落阶段也是无法执行任务的:为什么航线刚启动就立即结束? -
我们自己开发了APP以及自己用脚本生成了航线kmz文件,在执行任务的时候kmz文件里设置了等距拍照,但是飞完航线发现并没有拍照,我用pilot2飞这个kmz却拍照了,我想问是sdk有缺陷吗,不能直接按照kmz动作组执行动作,还是说pilot2做了额外的设置(比如开启相机啥的?) -->你可以把KMZ文件发给我们测试一下。地址:https://pan-sec.djicorp.com/s/yHwJfGjeYKjQBQB -
我们自己开发了APP以及自己用脚本生成了航线kmz文件,在执行任务的时候kmz文件里设置了等距拍照,但是飞完航线发现并没有拍照,我用pilot2飞这个kmz却拍照了,我想问是sdk有缺陷吗,不能直接按照kmz动作组执行动作,还是说pilot2做了额外的设置(比如开启相机啥的?) -->你可以把KMZ文件发给我们测试一下。地址:https://pan-sec.djicorp.com/s/yHwJfGjeYKjQBQB————————————————————————————————>
已提交kmz文件,我们也在DJI Assistant 2里仿真试飞过该kmz,发现仿真测试中也不进行拍照(以前的kmz进行仿真是会执行拍照的)。户外实飞的时候,用SDK开发的APP不能按kmz正常拍照,Pilot2可以,麻烦工作人员检测一下是否SDK有问题还是kmz有问题,时灵时不灵?
--------------------------------------------------------------------------------------------------------
是M300吗,我发现御3T没这个问题,M300有这个问题----------->是M300。
Please sign in to leave a comment.
Comments
14 comments