diff --git a/src/boards/MockupMain/PinHandler/PinHandler.cpp b/src/boards/MockupMain/PinHandler/PinHandler.cpp index 67b4ed246baeb06ee183a608c4a44c5bee56f394..136187b65a88ab832eaeb4a88cead62f87b701c0 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 d40539e608b79c42b6d812a7cee445a12477bf64..51e680ca935aae752d22996f8f1db8ce73ea85fc 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; };