From b6e9369cbcd44dec33662fd10da794a4cdffe93c Mon Sep 17 00:00:00 2001
From: Don Gagne <don@thegagnes.com>
Date: Sat, 9 Apr 2016 19:15:19 -0700
Subject: [PATCH] Better command failure output

---
 src/MissionManager/MavCmdInfoCommon.json |  4 +--
 src/uas/UAS.cc                           | 37 ++++++++++++------------
 2 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/MissionManager/MavCmdInfoCommon.json b/src/MissionManager/MavCmdInfoCommon.json
index 717a3f3ce5..ac0d766eb7 100644
--- a/src/MissionManager/MavCmdInfoCommon.json
+++ b/src/MissionManager/MavCmdInfoCommon.json
@@ -392,7 +392,7 @@
             }
         },
         { "id": 159, "rawName": "MAV_CMD_CONDITION_LAST", "friendlyName": "MAV_CMD_CONDITION_LAST" },
-        { "id": 176, "rawName": "MAV_CMD_DO_SET_MODE", "friendlyName": "MAV_CMD_DO_SET_MODE" },
+        { "id": 176, "rawName": "MAV_CMD_DO_SET_MODE", "friendlyName": "Set mode" },
         {
             "id":           177,
             "rawName":      "MAV_CMD_DO_JUMP",
@@ -804,7 +804,7 @@
         },
         { "id": 252, "rawName": "MAV_CMD_OVERRIDE_GOTO", "friendlyName": "MAV_CMD_OVERRIDE_GOTO" },
         { "id": 300, "rawName": "MAV_CMD_MISSION_START", "friendlyName": "MAV_CMD_MISSION_START" },
-        { "id": 400, "rawName": "MAV_CMD_COMPONENT_ARM_DISARM", "friendlyName": "MAV_CMD_COMPONENT_ARM_DISARM" },
+        { "id": 400, "rawName": "MAV_CMD_COMPONENT_ARM_DISARM", "friendlyName": "Arm/Disarm" },
         { "id": 2000, "rawName": "MAV_CMD_IMAGE_START_CAPTURE", "friendlyName": "MAV_CMD_IMAGE_START_CAPTURE" },
         { "id": 2001, "rawName": "MAV_CMD_IMAGE_STOP_CAPTURE", "friendlyName": "MAV_CMD_IMAGE_STOP_CAPTURE" },
         { "id": 2003, "rawName": "MAV_CMD_DO_TRIGGER_CONTROL", "friendlyName": "MAV_CMD_DO_TRIGGER_CONTROL" },
diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc
index 07d7b829f6..f1c0e52cda 100644
--- a/src/uas/UAS.cc
+++ b/src/uas/UAS.cc
@@ -38,6 +38,7 @@
 #include "Vehicle.h"
 #include "Joystick.h"
 #include "QGCApplication.h"
+#include "MissionCommands.h"
 
 QGC_LOGGING_CATEGORY(UASLog, "UASLog")
 
@@ -610,34 +611,32 @@ void UAS::receiveMessage(mavlink_message_t message)
         {
             mavlink_command_ack_t ack;
             mavlink_msg_command_ack_decode(&message, &ack);
+
             emit commandAck(this, message.compid, ack.command, ack.result);
-            switch (ack.result)
-            {
-            case MAV_RESULT_ACCEPTED:
-            {
-                // Do not confirm each command positively, as it spams the console.
-                // emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_INFO, tr("SUCCESS: Executed CMD: %1").arg(ack.command));
+
+            QString commandName;
+            MavCmdInfo* cmdInfo = qgcApp()->toolbox()->missionCommands()->getMavCmdInfo((MAV_CMD)ack.command, _vehicle);
+            if (cmdInfo) {
+                commandName = cmdInfo->friendlyName();
+            } else {
+                commandName = ack.command;
             }
-                break;
+
+            switch (ack.result) {
             case MAV_RESULT_TEMPORARILY_REJECTED:
-            {
-                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_WARNING, tr("FAILURE: Temporarily rejected CMD: %1").arg(ack.command));
-            }
+                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_WARNING, tr("%1 temporarily rejected").arg(commandName));
                 break;
             case MAV_RESULT_DENIED:
-            {
-                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_ERROR, tr("FAILURE: Denied CMD: %1").arg(ack.command));
-            }
+                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_ERROR, tr("%1 denied").arg(commandName));
                 break;
             case MAV_RESULT_UNSUPPORTED:
-            {
-                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_WARNING, tr("FAILURE: Unsupported CMD: %1").arg(ack.command));
-            }
+                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_WARNING, tr("%1 unsupported").arg(commandName));
                 break;
             case MAV_RESULT_FAILED:
-            {
-                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_ERROR, tr("FAILURE: Failed CMD: %1").arg(ack.command));
-            }
+                emit textMessageReceived(uasId, message.compid, MAV_SEVERITY_ERROR, tr("%1 failed").arg(commandName));
+                break;
+            default:
+                // Do nothing
                 break;
             }
         }
-- 
GitLab