From cea537de578df8ed44b4539219c3ea0f345a7fe4 Mon Sep 17 00:00:00 2001
From: Davide Rosato <73779437+DavideRosato99@users.noreply.github.com>
Date: Mon, 1 May 2023 00:22:23 +0200
Subject: [PATCH] [Refueling Visualizer] Small try to fix bug

---
 .../RefuelingVisualizer.cpp                   | 133 ++++++++++++++++--
 .../RefuelingVisualizer/RefuelingVisualizer.h |   1 +
 2 files changed, 120 insertions(+), 14 deletions(-)

diff --git a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp
index 5524041e..fb5adc4f 100644
--- a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp
+++ b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp
@@ -68,7 +68,7 @@ void RefuelingVisualizer::setupUi()
     outerLayout->addWidget(background, 0, 0, 5000, 5000);
 
     // VALVE LABELS STYLE
-    QString valveLabelStyleCompleted =
+    QString valveLabelStyleON =
         "border-width: 1px; border-style: solid; border-radius: 1px; "
         "border-color: white; background-color: rgb(82, 142, 56)";
 
@@ -95,7 +95,7 @@ void RefuelingVisualizer::setupUi()
     labelTars->setText(RefuelingVisualizerCommandList::commandLabels[0]);
     labelTars->setAlignment(Qt::AlignCenter);
     labelTars->setContentsMargins(4, 4, 4, 4);
-    labelTars->setStyleSheet(valveLabelStyleCompleted);
+    labelTars->setStyleSheet(valveLabelStyleON);
     outerLayout->addWidget(labelTars, 5570, 0, 70, 5000);
 
     // MAIN VALVE
@@ -103,7 +103,7 @@ void RefuelingVisualizer::setupUi()
     labelMain->setText(RefuelingVisualizerCommandList::commandLabels[4]);
     labelMain->setAlignment(Qt::AlignCenter);
     labelMain->setContentsMargins(4, 4, 4, 4);
-    labelMain->setStyleSheet(valveLabelStyleCompleted);
+    labelMain->setStyleSheet(valveLabelStyleON);
     outerLayout->addWidget(labelMain, 5640, 0, 70, 5000);
 
     // VALVES STATES
@@ -113,7 +113,7 @@ void RefuelingVisualizer::setupUi()
         labelValve->setText(RefuelingVisualizerCommandList::commandLabels[i]);
         labelValve->setAlignment(Qt::AlignCenter);
         labelValve->setContentsMargins(4, 4, 4, 4);
-        labelValve->setStyleSheet(valveLabelStyleCompleted);
+        labelValve->setStyleSheet(valveLabelStyleON);
         outerLayout->addWidget(labelValve, 5499, (i - 1) * 1666, 70, 1666);
     }
 
@@ -329,21 +329,126 @@ void RefuelingVisualizer::setFilter(const Filter& newFilter)
         newFilter, this,
         [this](const Message& message, const Filter& filter)
         { onMsgReceived(message); });
-    filter = newFilter;
+    // filter = newFilter;
+}
+
+void RefuelingVisualizer::backgroundValves(Message msg)
+{
+    uint64_t releaseValve =
+        msg.getField("release_valve_state").getUnsignedInteger();
+    uint64_t fillingValve =
+        msg.getField("filling_valve_state").getUnsignedInteger();
+    uint64_t ventingValve =
+        msg.getField("venting_valve_state").getUnsignedInteger();
+
+    auto background        = outerLayout->itemAt(0)->widget();
+    auto labelFillingValve = outerLayout->itemAt(3)->widget();
+    auto labelReleaseValve = outerLayout->itemAt(4)->widget();
+    auto labelVentingValve = outerLayout->itemAt(5)->widget();
+
+    // VALVE STATE LABELS STYLE
+    QString valveLabelStyleON =
+        "border-width: 1px; border-style: solid; border-radius: 1px; "
+        "border-color: white; background-color: rgb(82, 142, 56)";
+    QString valveLabelStyleOFF =
+        "border-width: 1px; border-style: solid; border-radius: 1px; "
+        "border-color: white; background-color: rgb(255, 0, 0)";
+
+    if (fillingValve == 0 && releaseValve == 0 && ventingValve == 0)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "000.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleOFF);
+        labelReleaseValve->setStyleSheet(valveLabelStyleOFF);
+        labelVentingValve->setStyleSheet(valveLabelStyleOFF);
+    }
+
+    if (fillingValve == 0 && releaseValve == 0 && ventingValve == 1)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "001.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleOFF);
+        labelReleaseValve->setStyleSheet(valveLabelStyleOFF);
+        labelVentingValve->setStyleSheet(valveLabelStyleON);
+    }
+
+    if (fillingValve == 0 && releaseValve == 1 && ventingValve == 0)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "010.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleOFF);
+        labelReleaseValve->setStyleSheet(valveLabelStyleON);
+        labelVentingValve->setStyleSheet(valveLabelStyleOFF);
+    }
+
+    if (fillingValve == 0 && releaseValve == 1 && ventingValve == 1)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "011.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleOFF);
+        labelReleaseValve->setStyleSheet(valveLabelStyleON);
+        labelVentingValve->setStyleSheet(valveLabelStyleON);
+    }
+
+    if (fillingValve == 1 && releaseValve == 0 && ventingValve == 0)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "100.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleON);
+        labelReleaseValve->setStyleSheet(valveLabelStyleOFF);
+        labelVentingValve->setStyleSheet(valveLabelStyleOFF);
+    }
+
+    if (fillingValve == 1 && releaseValve == 0 && ventingValve == 1)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "101.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleON);
+        labelReleaseValve->setStyleSheet(valveLabelStyleOFF);
+        labelVentingValve->setStyleSheet(valveLabelStyleON);
+    }
+
+    if (fillingValve == 1 && releaseValve == 1 && ventingValve == 0)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "110.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleON);
+        labelReleaseValve->setStyleSheet(valveLabelStyleON);
+        labelVentingValve->setStyleSheet(valveLabelStyleOFF);
+    }
+
+    if (fillingValve == 1 && releaseValve == 1 && ventingValve == 1)
+    {
+        background->setStyleSheet(
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/"
+            "111.png);border:0px;");
+        labelFillingValve->setStyleSheet(valveLabelStyleON);
+        labelReleaseValve->setStyleSheet(valveLabelStyleON);
+        labelVentingValve->setStyleSheet(valveLabelStyleON);
+    }
 }
 
 void RefuelingVisualizer::onMsgReceived(const Message& msg)
 {
     // uint64_t tarsState = msg.getField("tars_state").getUnsignedInteger();
-    // uint64_t release =
-    // msg.getField("release_valve_state").getUnsignedInteger(); uint64_t
-    // filling = msg.getField("filling_valve_state").getUnsignedInteger();
-    // uint64_t venting =
-    // msg.getField("venting_valve_state").getUnsignedInteger();
-
-    // QString baseStyle =
-    //     "border-width: 1px; border-style: solid; border-radius: 1px; "
-    //     "border-color: white; background-color: rgb(82, 142, 56)";
+
+    backgroundValves(msg);
+    
 
     // auto ciao = outerLayout->itemAt(8)->widget();
     // topTankPressureLabelIm->setStyleSheet(
diff --git a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h
index 3c991d3c..85721c61 100644
--- a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h
+++ b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h
@@ -46,6 +46,7 @@ private:
     void onConfigureClicked();
     void setFilter(const Filter& filter);
     void onMsgReceived(const Message& msg);
+    void backgroundValves(Message msg);
 
     QGridLayout* outerLayout;
 
-- 
GitLab