22 _requestActive =
false;
29 if (result == MAV_RESULT_ACCEPTED) {
30 mavlink_available_modes_t availableModes;
31 mavlink_msg_available_modes_decode(&message, &availableModes);
32 bool cannotBeSet = availableModes.properties & MAV_MODE_PROPERTY_NOT_USER_SELECTABLE;
33 bool advanced = availableModes.properties & MAV_MODE_PROPERTY_ADVANCED;
34 availableModes.mode_name[
sizeof(availableModes.mode_name)-1] =
'\0';
35 QString name = availableModes.mode_name;
36 switch (availableModes.standard_mode) {
37 case MAV_STANDARD_MODE_POSITION_HOLD:
40 case MAV_STANDARD_MODE_ORBIT:
44 case MAV_STANDARD_MODE_CRUISE:
47 case MAV_STANDARD_MODE_ALTITUDE_HOLD:
50 case MAV_STANDARD_MODE_SAFE_RECOVERY:
51 name =
"Safe Recovery";
53 case MAV_STANDARD_MODE_MISSION:
56 case MAV_STANDARD_MODE_LAND:
59 case MAV_STANDARD_MODE_TAKEOFF:
64 qCDebug(StandardModesLog) <<
"Available mode received - name:" << name <<
65 "index:" << availableModes.mode_index <<
66 "standard_mode:" << availableModes.standard_mode <<
67 "advanced:" << advanced <<
68 "cannotBeSet:" << cannotBeSet <<
69 "custom_mode:" << availableModes.custom_mode;
74 availableModes.custom_mode,
81 if (availableModes.mode_index >= availableModes.number_modes) {
82 qCDebug(StandardModesLog) <<
"Completed, num modes:" << availableModes.number_modes;
83 ensureUniqueModeNames();
88 requestMode(availableModes.mode_index + 1);
91 qCDebug(StandardModesLog) <<
"Failed to retrieve available modes - REQUEST_MESSAGE:MAV_RESULT" << result;
void requestMessage(RequestMessageResultHandler resultHandler, void *resultHandlerData, int compId, int messageId, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, float param5=0.0f)