From 5105380f0b95906763f117c309f697ebcc19cd71 Mon Sep 17 00:00:00 2001
From: Davide Rosato <73779437+DavideRosato99@users.noreply.github.com>
Date: Mon, 8 May 2023 18:11:44 +0200
Subject: [PATCH] [Refueling Visualizer] optimized background render

---
 .../RefuelingVisualizer.cpp                   | 89 +++++++++++++------
 .../RefuelingVisualizer/RefuelingVisualizer.h |  1 +
 2 files changed, 63 insertions(+), 27 deletions(-)

diff --git a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp
index 246cf5c0..0bf656bf 100644
--- a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp
+++ b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.cpp
@@ -21,6 +21,8 @@
 #include <Components/FilterSelector/FilterSelector.h>
 #include <Core/MessageBroker/MessageBroker.h>
 
+#include <QElapsedTimer>
+
 RefuelingVisualizer::RefuelingVisualizer(QWidget* parent)
     : DefaultModule(parent)
 {
@@ -30,12 +32,24 @@ RefuelingVisualizer::RefuelingVisualizer(QWidget* parent)
     getCore()->getMessageBroker()->subscribe(
         Filter::fromString("Mav/GSE_TM"), this,
         [this](const Message& message, const Filter& filter)
-        { onMsgReceivedGSE(message); });
+        {
+            QElapsedTimer timer;
+            timer.start();
+            onMsgReceivedGSE(message);
+            long long int time = timer.elapsed();
+            printf("GSE: %lld\n", time);
+        });
 
     getCore()->getMessageBroker()->subscribe(
         Filter::fromString("Mav/MOTOR_TM"), this,
         [this](const Message& message, const Filter& filter)
-        { onMsgReceivedMOT(message); });
+        {
+            QElapsedTimer timer;
+            timer.start();
+            onMsgReceivedMOT(message);
+            long long int time = timer.elapsed();
+            printf("MOTOR: %lld\n", time);
+        });
 }
 
 RefuelingVisualizer::~RefuelingVisualizer()
@@ -74,6 +88,7 @@ void RefuelingVisualizer::setupUi()
     background->setStyleSheet(
         "border-image:url(../skywardhub/src/shared/Modules/RefuelingVisualizer/"
         "111.png);border:0px;");
+    labelStatus = {1, 1, 1};
 
     outerLayout->addWidget(background, 0, 0, 5000, 5000);
 
@@ -376,15 +391,56 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
     }
 
     // VALVES TABS
+    if (fillingValve != labelStatus[0])
+    {
+        labelFillingValve->setStyleSheet(valveLabelStyleOFF);
+    }
+    if (releaseValve != labelStatus[1])
+    {
+        labelReleaseValve->setStyleSheet(valveLabelStyleOFF);
+    }
+    if (ventingValve != labelStatus[2])
+    {
+        labelVentingValve->setStyleSheet(valveLabelStyleOFF);
+    }
+
+    // char actualValveVec = fillingValve.toString() + (char)releaseValve +
+    // (char)ventingValve;
+    QString actualValveVec = QString::number(fillingValve) +
+                             QString::number(releaseValve) +
+                             QString::number(ventingValve);
+
+    if (fillingValve != labelStatus[0] || releaseValve != labelStatus[1] ||
+        ventingValve != labelStatus[2])
+    {
+        QString newStyle =
+            "border-image:url(../skywardhub/src/shared/Modules/"
+            "RefuelingVisualizer/" +
+            actualValveVec + ".png);border:0px;";
+        background->setStyleSheet(newStyle);   
+    }
+
+    if (fillingValve != labelStatus[0])
+    {
+        labelStatus[0] = (uint64_t)fillingValve;
+    }
+    if (releaseValve != labelStatus[1])
+    {
+        labelStatus[1] = (uint64_t)releaseValve;
+    }
+    if (ventingValve != labelStatus[2])
+    {
+        labelStatus[2] = (uint64_t)ventingValve;
+    }
+
+    /* // BACKGROUND
+
     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)
@@ -393,9 +449,6 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
             "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)
@@ -404,9 +457,6 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
             "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)
@@ -415,9 +465,6 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
             "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)
@@ -426,9 +473,6 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
             "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)
@@ -437,9 +481,6 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
             "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)
@@ -448,9 +489,6 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
             "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)
@@ -459,10 +497,7 @@ void RefuelingVisualizer::backgroundTabs(Message msg)
             "border-image:url(../skywardhub/src/shared/Modules/"
             "RefuelingVisualizer/"
             "111.png);border:0px;");
-        labelFillingValve->setStyleSheet(valveLabelStyleON);
-        labelReleaseValve->setStyleSheet(valveLabelStyleON);
-        labelVentingValve->setStyleSheet(valveLabelStyleON);
-    }
+    } */
 }
 
 void RefuelingVisualizer::onMsgReceivedGSE(const Message& msg)
diff --git a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h
index 5cb1074b..2a1f3fae 100644
--- a/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h
+++ b/src/shared/Modules/RefuelingVisualizer/RefuelingVisualizer.h
@@ -51,6 +51,7 @@ private:
 
     QGridLayout* outerLayout;
     QLabel* labelTarsTab;
+    QList<uint64_t> labelStatus;
 
     // TANK VISUALIZER LABELS
     QLabel* tankHeaderLabel;
-- 
GitLab