diff --git a/.vscode/settings.json b/.vscode/settings.json index 9dcff53cc37fcb79f0ccd20517eee430e24827e1..21ef00b63f86fd8d69920f2c9b121bd6cd70ca85 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 7abedf9773b3ebce9d14687d13544f40fad5577f..78a568f5e31fb9b50dbf8ec7d9af16261b364a8f 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 f7b715096eba70013ad9d7d6bb72ce74b127751b..90e8163613ed93d65d72565ef013a16d4f9467bc 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 122c642f69f09063053fddd3d74b9d452839b5be..529cc5c75edace6b014de6bbebf52ab8de8e9590 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 c79a62622b2b5f918252eab322d96e435c1f6ec4..456c9ac7dad101c0eb185ba2323e31d35de66a5c 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 69e6e2a675f4538b3547d71e01ff62fd65510fa5..b2138abc402a87cb1aa8e16022476a650c3d4811 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 be0077cbbbb8f8b74153bd676cef1b2f24baf2c0..0271a7a6ed3baa1514e2220a41f3c1f95115ae1a 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 4889eb8ca9eeb1945bc2347dcb6c5af56c77f5a9..4571e94c65603699181a04434cdb147b6bfe9411 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 5c0b4efd1f0a65705f8f1bcfdac20c34b12accff..2a68dc10ad7c20f1ad48ed4f52664f4ce0f05ccc 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;"; };