Inquiry Regarding MSDK v5.8.0 Issue: Inconsistency in pauseMission()/resumeMission() Behavior Across Drone Models
CompletedDear DJI Support Team,
I am writing to bring to your attention an issue encountered while utilizing the Mobile SDK (MSDK) version 5.8.0, specifically regarding the pauseMission() method within the WaypointMissionManager.
During the execution of a mission with our drones, we have observed inconsistent behavior when attempting to pause the mission and subsequently resume it. This issue manifests differently between the M30/Mavic 3 and M350 drone models.
Upon invoking the pauseMission() method on the M350 drone, we encounter the following behavior: the ExecutionState transitions to READY, but subsequent attempts to resume the mission result in the error message "Unable to perform task. Device status error." Furthermore, the drone exhibits erratic behavior, rendering it unable to load/start/continue the mission.
In contrast, when performing the same action on the M30/Mavic 3 drones, the pauseMission() method results in the ExecutionState transitioning to INTERRUPTED. However, the error message changes to "Unable to stop task. Check aircraft."
This discrepancy in behavior poses challenges in maintaining consistency across our drone operations and impacts the reliability of our missions. We are seeking guidance and assistance from your team to address and resolve this issue.
Could you kindly provide insights or recommendations on how we can mitigate this problem? Any information regarding potential updates, patches, or workarounds within the MSDK that could alleviate this issue would be greatly appreciated.
Thank you for your attention to this matter. We look forward to your prompt response and collaboration in resolving this issue.
-
Scenario 1 of the MSDK calls:
- Initialize the MSDK;
- The drone is on the ground, try to call WaypointMissionManager.pauseMission();
Scenario 2 of the MSDK calls:
- Initialize the MSDK;
- The drone is on the ground, WaypointMissionManager.pushKMZFileToAircraft();
- WaypointMissionManager.startMission();
- Wait until the drone executes the mission;
- WaypointMissionManager.pauseMission();
- WaypointMissionManager.pauseMission();
-
Regarding the first scenario, based on the steps you provided, it seems that the drone did not start executing the waypoint mission, so the error at this point is that the mission cannot be executed. For the second scenario, the drone is executing the waypoint mission, and in step five, the pause interface is called, putting the drone in a paused state. If the pause interface is called again at this point, it will indicate that the mission cannot be paused. Do you want these two error messages to be modified? How would you like them to be modified? -
I agree with you, but the main problem is the state that I got after the second calling of the pauseMission() method. I expected executioningState = 'INTERUPPTED', not 'READY'. Like on Matrice 30 and Mavic 3 Enterprise drones.
Maybe I can share with you the example of the Android test and logs for the second scenario. How can I do it? -
You are able to upload the logs and sample code to this address.:https://pan-sec.djicorp.com/s/32Cd74CqsRk4Wm9 The password for this link is dji123. However, I think I have reproduced your issue in the sample code. It is rare to call pauseMission multiple times during normal use. Could you please let us know if this operation has a practical use case? -
Yes, you are right. After multiple calls of the pauseMission()/resumeMission() the problem is reproducing. The particle use case: I think that developers who use MSDK, shouldn't think about additional conditions of availability for each mission command (e.g. upload, resume, pause, and others). On Matrice 30 and Mavic 3, it works correctly.
When it can be fixed?
Please sign in to leave a comment.
Comments
8 comments