From 2542a28835e95e332bc2e585a6a21347bbd8066e Mon Sep 17 00:00:00 2001
From: Davide Rosato <73779437+DavideRosato99@users.noreply.github.com>
Date: Wed, 22 Mar 2023 01:09:33 +0100
Subject: [PATCH] [RefuelingButton] Simplified messages routines added

---
 .vscode/settings.json                         |  6 +-
 .../RefuelingButton/MessagesListRefButton.h   | 55 +------------
 .../RefuelingButton/RefuelingButton.cpp       | 77 ++++++++++---------
 3 files changed, 45 insertions(+), 93 deletions(-)

diff --git a/.vscode/settings.json b/.vscode/settings.json
index ab0ffa7b..966b8195 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -166,7 +166,8 @@
         "qtsvg": "cpp",
         "qtvirtualkeyboard": "cpp",
         "qabstractbutton": "cpp",
-        "qmetatype": "cpp"
+        "qmetatype": "cpp",
+        "xlocmon": "cpp"
     },
     "editor.defaultFormatter": "ms-vscode.cpptools",
     "[xml]": {
@@ -181,5 +182,6 @@
         "qobject",
         "qresource",
         "replot"
-    ]
+    ],
+    "C_Cpp.errorSquiggles": "enabled"
 }
\ No newline at end of file
diff --git a/src/shared/Modules/RefuelingButton/MessagesListRefButton.h b/src/shared/Modules/RefuelingButton/MessagesListRefButton.h
index 7d4745ad..d67b73f0 100644
--- a/src/shared/Modules/RefuelingButton/MessagesListRefButton.h
+++ b/src/shared/Modules/RefuelingButton/MessagesListRefButton.h
@@ -29,65 +29,14 @@ namespace MessagesListRefButton
 
 // Groundstation labels
 static const QStringList messagesList{
-    "MOTOR_TM_FLOAT",
-    "MOTOR_TM_INTEGER",
-    "GSE_TM_FLOAT",
-    "GSE_TM_INTEGER",
-};
-
-static const QMap<QString, int> MOTORcommandFloat{
-    {"top_tank_pressure", MAV_CMD_ARM},
-    {"bottom_tank_pressure", MAV_CMD_DISARM},
-    {"estimated_mass", MAV_CMD_FORCE_LAUNCH},
-};
-
-static const QMap<QString, int> MOTORcommandInteger{
-    {"timestamp", MAV_CMD_ARM},
-    {"floating_level", MAV_CMD_CALIBRATE},
-    {"tank_temperature", MAV_CMD_FORCE_INIT},
-};
-
-static const QMap<QString, int> GSEcommandFloat{
-    {"loadcell_tank", MAV_CMD_DISARM},
-    {"loadcell_vessel", MAV_CMD_CALIBRATE},
-    {"filling_pressure", MAV_CMD_FORCE_INIT},
-    {"vessel_pressure ", MAV_CMD_STOP_LOGGING},
-};
-
-static const QMap<QString, int> GSEcommandInteger{
-    {"timestamp", MAV_CMD_ARM},
-    {"arming_state", MAV_CMD_FORCE_LAUNCH},
-    {"filling_valve_state", MAV_CMD_FORCE_LANDING},
-    {"venting_valve_state", MAV_CMD_FORCE_APOGEE},
-    {"release_vlave_state", MAV_CMD_FORCE_EXPULSION},
-    {"ignition_state", MAV_CMD_FORCE_MAIN},
-    {"tars_state", MAV_CMD_START_LOGGING},
+    "MOTOR_TM",
+    "GSE_TM",
 };
 
 inline void fillMessagesMap(
     QMap<QString, MessageFormElementRefButton *> &formElements)
 {
     MessageFormElementRefButton *element;
-
-    element = new MessageFormElementRefButton();
-    element->addComboBox("motor_id", "Command:", MOTORcommandFloat);
-    element->addFloat("value", "Value:", 0, 180, 2);
-    formElements["MOTOR_TM_FLOAT"] = element;
-
-    element = new MessageFormElementRefButton();
-    element->addComboBox("timestamp", "Command:", MOTORcommandInteger);
-    element->addInteger("value", "Value:", 0, 180);
-    formElements["MOTOR_TM_INTEGER"] = element;
-
-    element = new MessageFormElementRefButton();
-    element->addComboBox("gse_id", "Command:", GSEcommandFloat);
-    element->addFloat("value", "Value:", 0, 180, 2);
-    formElements["GSE_TM_FLOAT"] = element;
-
-    element = new MessageFormElementRefButton();
-    element->addComboBox("gse_id", "Command:", GSEcommandInteger);
-    element->addInteger("value", "Value:", 0, 180);
-    formElements["GSE_TM_INTEGER"] = element;
 }
 
 }  // namespace MessagesListRefButton
diff --git a/src/shared/Modules/RefuelingButton/RefuelingButton.cpp b/src/shared/Modules/RefuelingButton/RefuelingButton.cpp
index 46a4c1b3..3ba7f23f 100644
--- a/src/shared/Modules/RefuelingButton/RefuelingButton.cpp
+++ b/src/shared/Modules/RefuelingButton/RefuelingButton.cpp
@@ -187,10 +187,8 @@ void RefuelingButton::setupUi()
 
     setLayout(outerLayout);
 
-    MessagesListRefButton::fillMessagesMap(formElements);
-
     // NUOVO ----------------------------------------------------------
-    currentMessage = "MOTOR_TM_FLOAT";
+    currentMessage = "MOTOR_TM";
     messagesListComboBox->setCurrentText(currentMessage);
 
     // PRECEDENTE -----------------------------------------------------
@@ -210,21 +208,10 @@ void RefuelingButton::setupUi()
     connect(sendButton, &QPushButton::clicked,
             [=]()
             {
-                auto key = messagesListComboBox->currentText();
+                mavlink_message_t msg;
 
-                if (formElements.contains(key))
+                if (messagesListComboBox->currentIndex() == 0)
                 {
-                    // uint64_t keyN = messagesListComboBox->currentIndex();
-                    // auto message  = formElements[key]->prepareMessage(key);
-
-                    // if (messagesListComboBox->currentIndex() == 0 ||
-                    //     messagesListComboBox->currentIndex() == 1)
-                    //     message.setTopic(Topic{"Mav/MOTOR_TM"});
-
-                    // if (messagesListComboBox->currentIndex() == 2 ||
-                    //     messagesListComboBox->currentIndex() == 3)
-                    //     message.setTopic(Topic{"Mav/GSE_TM"});
-
                     mavlink_motor_tm_t motor;
                     motor.bottom_tank_pressure        = 0;
                     motor.combustion_chamber_pressure = 0;
@@ -234,30 +221,44 @@ void RefuelingButton::setupUi()
                     motor.timestamp                   = 0;
                     motor.top_tank_pressure           = 0;
 
-                    mavlink_message_t msg;
-                    // TODO magic numbers to substitute with
-                    // MavlinkCommandAdapter ones
                     mavlink_msg_motor_tm_encode(171, 96, &msg, &motor);
+                }
+                if (messagesListComboBox->currentIndex() == 1)
+                {
+                    mavlink_gse_tm_t gse;
+                    gse.timestamp           = 0;
+                    gse.loadcell_tank       = 0;
+                    gse.loadcell_vessel     = 0;
+                    gse.filling_pressure    = 0;
+                    gse.vessel_pressure     = 0;
+                    gse.arming_state        = 0;
+                    gse.filling_valve_state = 0;
+                    gse.venting_valve_state = 0;
+                    gse.release_vlave_state = 0;
+                    gse.ignition_state      = 0;
+                    gse.tars_state          = 0;
+
+                    mavlink_msg_gse_tm_encode(171, 96, &msg, &gse);
+                }
+
+                // Once the message is created we can fill the fields
+                // according to the struct defined before
+                mavlink_message_info_t infos[256] = MAVLINK_MESSAGE_INFO;
+                mavlink_message_info_t info       = infos[msg.msgid];
 
-                    // Once the message is created we can fill the fields
-                    // according to the struct defined before
-                    mavlink_message_info_t infos[256] = MAVLINK_MESSAGE_INFO;
-                    mavlink_message_info_t info       = infos[msg.msgid];
-
-                    QMap<QString, Field> fields;
-                    for (unsigned int i = 0; i < info.num_fields; i++)
-                    {
-                        fields[QString(info.fields[i].name)] =
-                            decodeField(msg, info.fields[i]);
-                    }
-
-                    Message output;
-                    output.setTopic(
-                        Topic(SkywardHubStrings::mavlink_received_msg_topic +
-                              "/" + info.name));
-                    output.setFields(std::move(fields));
-
-                    getCore()->getMessageBroker()->publish(output);
+                QMap<QString, Field> fields;
+                for (unsigned int i = 0; i < info.num_fields; i++)
+                {
+                    fields[QString(info.fields[i].name)] =
+                        decodeField(msg, info.fields[i]);
                 }
+
+                Message output;
+                output.setTopic(
+                    Topic(SkywardHubStrings::mavlink_received_msg_topic + "/" +
+                          info.name));
+                output.setFields(std::move(fields));
+
+                getCore()->getMessageBroker()->publish(output);
             });
 }
-- 
GitLab