From 30f2fad6bac190daa3198427183fbc866ec01ca8 Mon Sep 17 00:00:00 2001
From: Angelo Prete <angelo.prete@skywarder.eu>
Date: Fri, 31 May 2024 23:36:53 +0200
Subject: [PATCH] [PinHandler] Updated after removing PinObserver singleton

---
 src/boards/MockupMain/PinHandler/PinHandler.cpp | 9 +++++----
 src/boards/MockupMain/PinHandler/PinHandler.h   | 4 +++-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/boards/MockupMain/PinHandler/PinHandler.cpp b/src/boards/MockupMain/PinHandler/PinHandler.cpp
index 67b4ed246..136187b65 100644
--- a/src/boards/MockupMain/PinHandler/PinHandler.cpp
+++ b/src/boards/MockupMain/PinHandler/PinHandler.cpp
@@ -46,7 +46,7 @@ void PinHandler::onExpulsionPinTransition(PinTransition transition)
 
 bool PinHandler::start()
 {
-    running = PinObserver::getInstance().start();
+    running = true;
     return running;
 }
 
@@ -57,14 +57,15 @@ std::map<PinsList, PinData> PinHandler::getPinsData()
     std::map<PinsList, PinData> data;
 
     data[PinsList::NOSECONE_PIN] =
-        PinObserver::getInstance().getPinData(inputs::expulsion::getPin());
+        pinObserver.getPinData(inputs::expulsion::getPin());
 
     return data;
 }
 
-PinHandler::PinHandler() : running(false)
+PinHandler::PinHandler(TaskScheduler scheduler)
+    : running(false), pinObserver(scheduler)
 {
-    PinObserver::getInstance().registerPinCallback(
+    pinObserver.registerPinCallback(
         inputs::expulsion::getPin(),
         std::bind(&PinHandler::onExpulsionPinTransition, this, _1),
         NC_DETACH_PIN_THRESHOLD);
diff --git a/src/boards/MockupMain/PinHandler/PinHandler.h b/src/boards/MockupMain/PinHandler/PinHandler.h
index d40539e60..51e680ca9 100644
--- a/src/boards/MockupMain/PinHandler/PinHandler.h
+++ b/src/boards/MockupMain/PinHandler/PinHandler.h
@@ -40,7 +40,7 @@ namespace MockupMain
 class PinHandler : public Boardcore::Module
 {
 public:
-    PinHandler();
+    PinHandler(TaskScheduler scheduler);
 
     bool start();
 
@@ -60,6 +60,8 @@ public:
 private:
     Boardcore::PrintLogger logger = Boardcore::Logging::getLogger("pinhandler");
 
+    Boardcore::PinObserver pinObserver;
+
     std::atomic<bool> running;
 };
 
-- 
GitLab