Open brien-crean opened 4 years ago
Agent comment from Luce Luo in Zendesk ticket #35159:
Dear Customer,
Thank you for contacting DJI. The method pauseTimeline is the only way to pause the timeline. Can you please try to use the latest 4.12 official sample to test it again? https://github.com/dji-sdk/Mobile-SDK-iOS/tree/master/Sample%20Code/ObjcSampleCode/DJISdkDemo/Demo/MissionManager
If the problem still, please fill in the form with more detail. https://formcrafts.com/a/dji-developer-feedback-en
Thanks,
Luce Luo DJI Dev Team
Thanks for the reply. The issue happens with 4.12 also.
I understand that pauseTimeline
is the only way to pause a timeline mission. I am wondering what is the best way to trigger it without receiving an error?
Agent comment from Luce Luo in Zendesk ticket #35159:
Dear Brien,
Thank you for contacting DJI. Sorry about it. It seems a potential issue and will reprote it to engineer to confirm further. Can you please give me more info? -Mavic Pro firmware version -Phantom 3 Professional firmware version
Thanks,
Luce Luo DJI Dev Team
The Phantom 3 Professional is running the last release - v1.11.20 which shows as 2.04.20.50
in DJI Go
The Mavic Pro according to DJI Go 4 is running 1.04.0500
As a workaround after a lot of testing I found that if I trigger pauseTimeline when the currently running timeline element is at the DJIMissionControlTimelineEventStarted event in the timeline listener it will pause just fine as long as the action/element running is NOT a DJIShootPhotoAction - any pause on a DJIShootPhotoAction results in a camera busy error.
If the same actions (e.g. DJIGoToAction, DJIAircraftYawAction, DJIGimbalAttitudeAction) are at the DJIMissionControlTimelineEventProgressed stage they fail with DJISDKMissionErrorDomain error 10007
sample workaround
[DJISDKManager.missionControl addListener:self toTimelineProgressWithBlock:^(DJIMissionControlTimelineEvent event, id<DJIMissionControlTimelineElement> _Nullable element, NSError * _Nullable error, id _Nullable info) {
if (event == DJIMissionControlTimelineEventStarted) {
[DJISDKManager.missionControl pauseTimeline];
}
}];
Agent comment from Luce Luo in Zendesk ticket #35159:
Dear Brien,
Thank you for contacting DJI. Many thanks for your clarification and will update to the engineer. And we will contact you again once any progress.
Thanks,
Luce Luo DJI Dev Team
Agent comment from Luce Luo in Zendesk ticket #35159:
Dear Brien,
Thank you for contacting DJI. Sorry for the late reply. The engineer informs that the error "-1007" is 'DJIMissionControlTimelinePauseErrorAlreadyPaused', meaning that the mission has been paused and no need to pause again.
Also, you can try to add this logic to avoid it. if(![DJISDKManager missionControl].isTimelinePaused){ [[DJISDKManager missionControl] pauseTimeline]; }
Thanks,
Luce Luo DJI Dev Team
When calling
[[DJISDKManager missionControl] pauseTimeline]
while a DJIGimbalAttitudeAction is running in a timeline mission, DJISDKMissionErrorDomain error 10007 is thrown. I also receive similar issues when trying to pause a mission while DJIAircraftYawAction is running.I checked if the timeline element is pausable and true is returned.
Is there a cleaner way to pause a timeline after a DJIMissionAction has completed?
Drone: Mavic Pro, Phantom 3 Professional SDK: 4.11.2