From 0d973b511d4717c38165641dc63e86627ef4644e Mon Sep 17 00:00:00 2001
From: Alberto Nidasio <alberto.nidasio@skywarder.eu>
Date: Sun, 11 Sep 2022 07:39:45 +0000
Subject: [PATCH] [Events] Now all events are logged

---
 skyward-boardcore                         |  2 +-
 src/boards/Payload/Configs/NASConfig.h    |  2 --
 src/boards/common/events/Topics.h         |  5 +++++
 src/entrypoints/Groundstation/GUI/GUI.h   |  5 +++--
 src/entrypoints/Main/main-entry.cpp       | 11 +++++++++++
 src/entrypoints/Payload/payload-entry.cpp | 11 +++++++++++
 6 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/skyward-boardcore b/skyward-boardcore
index b6387642f..9973d441d 160000
--- a/skyward-boardcore
+++ b/skyward-boardcore
@@ -1 +1 @@
-Subproject commit b6387642f610fcb42c73780448130c319103f87f
+Subproject commit 9973d441dcbf2e88a7ba52b2d35a923da9f5b55a
diff --git a/src/boards/Payload/Configs/NASConfig.h b/src/boards/Payload/Configs/NASConfig.h
index 59b1b427e..c99dde138 100644
--- a/src/boards/Payload/Configs/NASConfig.h
+++ b/src/boards/Payload/Configs/NASConfig.h
@@ -26,8 +26,6 @@
 #include <algorithms/ReferenceValues.h>
 #include <common/ReferenceConfig.h>
 
-using namespace Common::ReferenceConfig;
-
 namespace Payload
 {
 
diff --git a/src/boards/common/events/Topics.h b/src/boards/common/events/Topics.h
index b3a745eeb..f55dbdac3 100644
--- a/src/boards/common/events/Topics.h
+++ b/src/boards/common/events/Topics.h
@@ -41,4 +41,9 @@ enum Topics : uint8_t
     TOPIC_TMTC,
 };
 
+const std::vector<uint8_t> TOPICS_LIST{
+    TOPIC_ABK, TOPIC_ADA, TOPIC_DPL, TOPIC_FLIGHT,
+    TOPIC_FMM, TOPIC_FSR, TOPIC_NAS, TOPIC_TMTC,
+};
+
 }  // namespace Common
diff --git a/src/entrypoints/Groundstation/GUI/GUI.h b/src/entrypoints/Groundstation/GUI/GUI.h
index 94d1b0dd5..788294560 100644
--- a/src/entrypoints/Groundstation/GUI/GUI.h
+++ b/src/entrypoints/Groundstation/GUI/GUI.h
@@ -97,7 +97,8 @@ public:
         status.setText("READY");
     }
 
-    void updateStats(const Data &data) {
+    void updateStats(const Data &data)
+    {
         tx_bitrate.setText(format_link_speed(data.tx_bitrate));
         sent_count.setText(fmt::format("{}", data.sent_count));
 
@@ -137,4 +138,4 @@ public:
 
     Boardcore::ScreenManager screen_manager;
     StatsScreen stats_screen;
-};
\ No newline at end of file
+};
diff --git a/src/entrypoints/Main/main-entry.cpp b/src/entrypoints/Main/main-entry.cpp
index ca2f92366..a99ca6b43 100644
--- a/src/entrypoints/Main/main-entry.cpp
+++ b/src/entrypoints/Main/main-entry.cpp
@@ -35,6 +35,8 @@
 #include <common/events/Events.h>
 #include <diagnostic/CpuMeter/CpuMeter.h>
 #include <events/EventBroker.h>
+#include <events/EventData.h>
+#include <events/utils/EventSniffer.h>
 #include <miosix.h>
 #include <utils/PinObserver/PinObserver.h>
 
@@ -163,6 +165,15 @@ int main()
     else
         EventBroker::getInstance().post(FMM_INIT_ERROR, TOPIC_FMM);
 
+    // Log all events
+    EventSniffer sniffer(
+        EventBroker::getInstance(), TOPICS_LIST,
+        [](uint8_t event, uint8_t topic)
+        {
+            EventData ev{TimestampTimer::getTimestamp(), event, topic};
+            Logger::getInstance().log(ev);
+        });
+
     // Periodical statistics
     while (true)
     {
diff --git a/src/entrypoints/Payload/payload-entry.cpp b/src/entrypoints/Payload/payload-entry.cpp
index b495757db..8c0eff177 100644
--- a/src/entrypoints/Payload/payload-entry.cpp
+++ b/src/entrypoints/Payload/payload-entry.cpp
@@ -38,6 +38,8 @@
 #include <diagnostic/CpuMeter/CpuMeter.h>
 #include <diagnostic/PrintLogger.h>
 #include <events/EventBroker.h>
+#include <events/EventData.h>
+#include <events/utils/EventSniffer.h>
 #include <miosix.h>
 
 using namespace miosix;
@@ -146,6 +148,15 @@ int main()
     else
         EventBroker::getInstance().post(FMM_INIT_ERROR, TOPIC_FMM);
 
+    // Log all events
+    EventSniffer sniffer(
+        EventBroker::getInstance(), TOPICS_LIST,
+        [](uint8_t event, uint8_t topic)
+        {
+            EventData ev{TimestampTimer::getTimestamp(), event, topic};
+            Logger::getInstance().log(ev);
+        });
+
     // Periodically statistics
     while (true)
     {
-- 
GitLab