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