From c6f00571798dc530afe454577ab3736e13bdd2a1 Mon Sep 17 00:00:00 2001 From: Raul Radu <raul.radu@mail.polimi.it> Date: Tue, 26 Nov 2024 18:40:12 +0100 Subject: [PATCH] [Mavlink] Updated mavlink for Orion Packets - Minor change: Valves Basic stylesheet is applied when valves are first created to show text area boundaries (borders) --- .vscode/settings.json | 3 +- libs/mavlink-skyward-lib | 2 +- src/shared/Modules/CommandPad/MessagesList.h | 30 +++++++++++------ src/shared/Modules/Mavlink/MavlinkCodec.cpp | 16 +++++++--- src/shared/Modules/Mavlink/MavlinkCodec.h | 12 ++++--- .../Modules/Mavlink/MavlinkVersionHeader.h | 2 +- src/shared/Modules/ValvesViewer/ValvesList.h | 20 +++++++++--- .../Modules/ValvesViewer/ValvesViewer.cpp | 32 +++++++++++++------ .../Modules/ValvesViewer/ValvesViewer.h | 3 ++ 9 files changed, 84 insertions(+), 36 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9dcff53c..21ef00b6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -167,7 +167,8 @@ "qtvirtualkeyboard": "cpp", "qabstractbutton": "cpp", "qmetatype": "cpp", - "qmainwindow": "cpp" + "qmainwindow": "cpp", + "qapplication": "cpp" }, "editor.defaultFormatter": "ms-vscode.cpptools", "[xml]": { diff --git a/libs/mavlink-skyward-lib b/libs/mavlink-skyward-lib index 7abedf97..78a568f5 160000 --- a/libs/mavlink-skyward-lib +++ b/libs/mavlink-skyward-lib @@ -1 +1 @@ -Subproject commit 7abedf9773b3ebce9d14687d13544f40fad5577f +Subproject commit 78a568f5e31fb9b50dbf8ec7d9af16261b364a8f diff --git a/src/shared/Modules/CommandPad/MessagesList.h b/src/shared/Modules/CommandPad/MessagesList.h index f7b71509..90e81636 100644 --- a/src/shared/Modules/CommandPad/MessagesList.h +++ b/src/shared/Modules/CommandPad/MessagesList.h @@ -171,11 +171,17 @@ const QMap<QString, int> servosList{ {"EXPULSION_SERVO", EXPULSION_SERVO}, {"PARAFOIL_LEFT_SERVO", PARAFOIL_LEFT_SERVO}, {"PARAFOIL_RIGHT_SERVO", PARAFOIL_RIGHT_SERVO}, + {"N2O_FILLING_VALVE", N2O_FILLING_VALVE}, + {"N2O_RELEASE_VALVE", N2O_RELEASE_VALVE}, + {"N2O_DETATCH_SERVO", N2O_DETACH_SERVO}, + {"N2O_VENTING_VALVE", N2O_VENTING_VALVE}, + {"N2_FILLING_VALVE", N2_FILLING_VALVE}, + {"N2_RELEASE_VALVE", N2_RELEASE_VALVE}, + {"N2_DETACH_SERVO", N2_DETACH_SERVO}, + {"N2_QUENCHING_VALVE", N2_QUENCHING_VALVE}, + {"N2_3WAY_VALVE", N2_3WAY_VAVLE}, {"MAIN_VALVE", MAIN_VALVE}, - {"VENTING_VALVE", VENTING_VALVE}, - {"RELEASE_VALVE", RELEASE_VALVE}, - {"FILLING_VALVE", FILLING_VALVE}, - {"DISCONNECT_SERVO", DISCONNECT_SERVO}}; + {"NITROGEN_VALVE", NITROGEN_VALVE}}; const QMap<QString, int> stepperList{{"STEPPER_X", STEPPER_X}, {"STEPPER_Y", STEPPER_Y}}; @@ -287,12 +293,18 @@ inline void fillMessagesMap(QMap<QString, MessageFormElement *> &formElements) formElements["SET_COOLING_TIME_TC"] = element; element = new MessageFormElement(); + element->addInteger("n2o_filling_btn", "N2O Filling:", 0, 1); + element->addInteger("n2o_release_btn", "N2O Release:", 0, 1); + element->addInteger("n2o_detach_btn", "N2O Detatch:", 0, 1); + element->addInteger("n2o_venting_btn", "N2O Venting:", 0, 1); + element->addInteger("n2_filling_btn", "N2 Filling:", 0, 1); + element->addInteger("n2_release_btn", "N2 Release:", 0, 1); + element->addInteger("n2_detach_btn", "N2 Detach:", 0, 1); + element->addInteger("n2_quenching_btn", "N2 Quenching:", 0, 1); + element->addInteger("n2_3way_btn", "N2 3-Way Valve:", 0, 1); + element->addInteger("tars_btn", "TARS:", 0, 1); + element->addInteger("nitrogen_btn", "Nitrogen:", 0, 1); element->addInteger("ignition_btn", "Ignition:", 0, 1); - element->addInteger("filling_valve_btn", "Filling:", 0, 1); - element->addInteger("venting_valve_btn", "Venting:", 0, 1); - element->addInteger("release_pressure_btn", "Release:", 0, 1); - element->addInteger("quick_connector_btn", "Quick connector:", 0, 1); - element->addInteger("start_tars_btn", "Tars:", 0, 1); element->addInteger("arm_switch", "Arm:", 0, 1); formElements["CONRIG_STATE_TC"] = element; diff --git a/src/shared/Modules/Mavlink/MavlinkCodec.cpp b/src/shared/Modules/Mavlink/MavlinkCodec.cpp index 122c642f..529cc5c7 100644 --- a/src/shared/Modules/Mavlink/MavlinkCodec.cpp +++ b/src/shared/Modules/Mavlink/MavlinkCodec.cpp @@ -418,12 +418,18 @@ bool MavlinkCodec::encodeMessage(const Message& msg, SysId sysId, CompId compId, { mavlink_msg_conrig_state_tc_pack( sysId, compId, &output, + msg.getField("n2o_filing_btn").getUnsignedInteger(), + msg.getField("n2o_release_btn").getUnsignedInteger(), + msg.getField("n2o_detach_btn").getUnsignedInteger(), + msg.getField("n2o_venting_btn").getUnsignedInteger(), + msg.getField("n2_filling_btn").getUnsignedInteger(), + msg.getField("n2_release_btn").getUnsignedInteger(), + msg.getField("n2_detach_btn").getUnsignedInteger(), + msg.getField("n2_quenching_btn").getUnsignedInteger(), + msg.getField("n2_3way_btn").getUnsignedInteger(), + msg.getField("tars_btn").getUnsignedInteger(), + msg.getField("nitrogen_btn").getUnsignedInteger(), msg.getField("ignition_btn").getUnsignedInteger(), - msg.getField("filling_valve_btn").getUnsignedInteger(), - msg.getField("venting_valve_btn").getUnsignedInteger(), - msg.getField("release_pressure_btn").getUnsignedInteger(), - msg.getField("quick_connector_btn").getUnsignedInteger(), - msg.getField("start_tars_btn").getUnsignedInteger(), msg.getField("arm_switch").getUnsignedInteger()); return true; } diff --git a/src/shared/Modules/Mavlink/MavlinkCodec.h b/src/shared/Modules/Mavlink/MavlinkCodec.h index c79a6262..456c9ac7 100644 --- a/src/shared/Modules/Mavlink/MavlinkCodec.h +++ b/src/shared/Modules/Mavlink/MavlinkCodec.h @@ -34,11 +34,13 @@ class MavlinkCodec : public QObject public: enum SysId { - SysIdMain = MAV_SYSID_MAIN, - SysIdPayload = MAV_SYSID_PAYLOAD, - SysIdRig = MAV_SYSID_RIG, - SysIdGS = MAV_SYSID_GS, - SysIdARP = MAV_SYSID_ARP, + SysIdMain = MAV_SYSID_MAIN, + SysIdPayload = MAV_SYSID_PAYLOAD, + SysIdRig = MAV_SYSID_RIG, + SysIdGS = MAV_SYSID_GS, + SysIdARP = MAV_SYSID_ARP, + SysIdGSBackup = MAV_SYSID_GS_BACKUP, + SysIdARRPBackup = MAV_SYSID_ARP_BACKUP }; enum CompId diff --git a/src/shared/Modules/Mavlink/MavlinkVersionHeader.h b/src/shared/Modules/Mavlink/MavlinkVersionHeader.h index 69e6e2a6..b2138abc 100644 --- a/src/shared/Modules/Mavlink/MavlinkVersionHeader.h +++ b/src/shared/Modules/Mavlink/MavlinkVersionHeader.h @@ -23,7 +23,7 @@ #if __GNUC__ >= 9 #pragma GCC diagnostic ignored "-Waddress-of-packed-member" #endif -#include <mavlink_lib/lyra/mavlink.h> +#include <mavlink_lib/orion/mavlink.h> #pragma GCC diagnostic pop // static __attribute__((unused)) uint8_t validSysid = 171; diff --git a/src/shared/Modules/ValvesViewer/ValvesList.h b/src/shared/Modules/ValvesViewer/ValvesList.h index be0077cb..0271a7a6 100644 --- a/src/shared/Modules/ValvesViewer/ValvesList.h +++ b/src/shared/Modules/ValvesViewer/ValvesList.h @@ -28,16 +28,26 @@ namespace ValvesList // Valves enum class Valve : int { - FILLING = 0, - RELEASE, - VENTING, + N2O_FILLING = 0, + N2O_RELEASE, + N2O_DETACH, + N2O_VENTING, + N2_FILLING, + N2_RELEASE, + N2_VENTING, + N2_DETACH, + N2_QUENCHING, + N2_3WAY, MAIN, NITROGEN, TARS, + IGNITION }; // Groundstation labels -static const QList<QString> valvesLabels{"FILLING", "RELEASE", "VENTING", - "MAIN", "NITROGEN", "TARS"}; +static const QList<QString> valvesLabels{ + "N2O FILLING", "N2O RELEASE", "N2O DETACH", "N2O VENTING", "N2 FILLING", + "N2 RELEASE", "N2 VENTING", "N2 DETACH", "N2 QUENCHING", "N2 3WAY", + "MAIN", "NITROGEN", "TARS", "IGNITION"}; } // namespace ValvesList \ No newline at end of file diff --git a/src/shared/Modules/ValvesViewer/ValvesViewer.cpp b/src/shared/Modules/ValvesViewer/ValvesViewer.cpp index 4889eb8c..4571e94c 100644 --- a/src/shared/Modules/ValvesViewer/ValvesViewer.cpp +++ b/src/shared/Modules/ValvesViewer/ValvesViewer.cpp @@ -59,6 +59,8 @@ void ValvesViewer::setupUi() label->setText(labelText); label->setAlignment(Qt::AlignCenter); label->setContentsMargins(4, 4, 4, 4); + QString baseStyle{baseStylesheet}; + label->setStyleSheet(baseStyle); outerLayout->addWidget(label); } @@ -94,23 +96,35 @@ void ValvesViewer::onMsgReceived(const Message& msg) { // Couple the valves with their own state QMap<ValvesList::Valve, uint64_t> map{ - {ValvesList::Valve::FILLING, - msg.getField("filling_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::N2O_FILLING, + msg.getField("n2o_filling_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::N2O_RELEASE, + msg.getField("n2o_release_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::N2O_DETACH, + msg.getField("n2o_detach_state").getUnsignedInteger()}, + {ValvesList::Valve::N2O_VENTING, + msg.getField("n2o_venting_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::N2_FILLING, + msg.getField("n2_filling_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::N2_RELEASE, + msg.getField("n2_release_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::N2_DETACH, + msg.getField("n2_detach_state").getUnsignedInteger()}, + {ValvesList::Valve::N2_QUENCHING, + msg.getField("n2_quenching_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::N2_3WAY, + msg.getField("n2_3way_valve_state").getUnsignedInteger()}, {ValvesList::Valve::MAIN, msg.getField("main_valve_state").getUnsignedInteger()}, - {ValvesList::Valve::RELEASE, - msg.getField("release_valve_state").getUnsignedInteger()}, - {ValvesList::Valve::VENTING, - msg.getField("venting_valve_state").getUnsignedInteger()}, {ValvesList::Valve::NITROGEN, msg.getField("nitrogen_valve_state").getUnsignedInteger()}, + {ValvesList::Valve::IGNITION, + msg.getField("ignition_state").getUnsignedInteger()}, {ValvesList::Valve::TARS, msg.getField("tars_state").getUnsignedInteger()}}; // Define the "active" and the "not active" look - QString baseStyle = - "border-bottom-width:1px;border-left-width:1px;border-top-width:" - "1px;border-radius:0;"; + QString baseStyle{baseStylesheet}; QString completedStyle = "background-color:green;" + baseStyle; QString errorStyle = "background-color:red;" + baseStyle; diff --git a/src/shared/Modules/ValvesViewer/ValvesViewer.h b/src/shared/Modules/ValvesViewer/ValvesViewer.h index 5c0b4efd..2a68dc10 100644 --- a/src/shared/Modules/ValvesViewer/ValvesViewer.h +++ b/src/shared/Modules/ValvesViewer/ValvesViewer.h @@ -49,4 +49,7 @@ private: Filter filter; ValvesList::Valve currentState; + static constexpr char* baseStylesheet = + "border-bottom-width:1px;border-left-width:1px;border-top-width:" + "1px;border-radius:0;"; }; -- GitLab