diff --git a/src/shared/algorithms/AirBrakes/AirBrakesPI.cpp b/src/shared/algorithms/AirBrakes/AirBrakesPI.cpp index 4e4f868ee05ffbb16f48237b13e0344296217544..2e438d5c3bb961ae30e4def4cc492e0367462ad8 100644 --- a/src/shared/algorithms/AirBrakes/AirBrakesPI.cpp +++ b/src/shared/algorithms/AirBrakes/AirBrakesPI.cpp @@ -27,9 +27,11 @@ #include <utils/Constants.h> #include <limits> +#include <utils/ModuleManager/ModuleManager.hpp> #include "drivers/timer/TimestampTimer.h" #include "utils/Debug.h" + using namespace std; namespace Boardcore @@ -101,7 +103,8 @@ void AirBrakesPI::chooseTrajectory(TrajectoryPoint currentPosition) chosenTrajectory = &(trajectorySet.trajectories[trjIndexMin]); - Logger::getInstance().log(AirBrakesChosenTrajectory{trjIndexMin}); + ModuleManager::getInstance().get<Logger>()->log( + AirBrakesChosenTrajectory{trjIndexMin}); } TrajectoryPoint AirBrakesPI::getSetpoint(TrajectoryPoint currentPosition) diff --git a/src/shared/diagnostic/LogSink.h b/src/shared/diagnostic/LogSink.h index c06917f36c5edf7869f92b7240815ff1a89322a9..0f44ba9f6da1aa1a943092c604375f0a4a908b06 100644 --- a/src/shared/diagnostic/LogSink.h +++ b/src/shared/diagnostic/LogSink.h @@ -88,13 +88,10 @@ protected: class FileLogSinkBuffered : public FileLogSink { public: - FileLogSinkBuffered() : logger(Logger::getInstance()) {} + FileLogSinkBuffered() {} protected: void logImpl(const std::string& l) override; - -private: - Logger& logger; }; } // namespace Boardcore diff --git a/src/shared/diagnostic/PrintLogger.cpp b/src/shared/diagnostic/PrintLogger.cpp index 0aa1c4e5b527173dcb3a703ceff92b5a40548b35..cb3bb59f6300d30e056e6679578bc8b16114e003 100644 --- a/src/shared/diagnostic/PrintLogger.cpp +++ b/src/shared/diagnostic/PrintLogger.cpp @@ -22,6 +22,8 @@ #include "PrintLogger.h" +#include <utils/ModuleManager/ModuleManager.hpp> + using miosix::Lock; namespace Boardcore @@ -75,7 +77,7 @@ void FileLogSinkBuffered::logImpl(const string& l) Lock<FastMutex> lock(mutex); LoggingString s; strncpy(s.logString, l.c_str(), MAX_LOG_STRING_SIZE - 1); - logger.log(s); + ModuleManager::getInstance().get<Logger>()->log(s); } PrintLogger PrintLogger::getChild(const string& name) diff --git a/src/shared/diagnostic/StackLogger.h b/src/shared/diagnostic/StackLogger.h index c7998375a081783a35ca8044110ebff2b1e31e3e..1c55b449f9529187238e6f5c024635cc1ce09fff 100644 --- a/src/shared/diagnostic/StackLogger.h +++ b/src/shared/diagnostic/StackLogger.h @@ -27,6 +27,7 @@ #include <logger/Logger.h> #include <map> +#include <utils/ModuleManager/ModuleManager.hpp> #include "StackData.h" @@ -74,7 +75,7 @@ public: Lock<FastMutex> l(mutex); for (auto it = stacks.begin(); it != stacks.end(); it++) { - Logger::getInstance().log(it->second); + ModuleManager::getInstance().get<Logger>()->log(it->second); } } } diff --git a/src/shared/logger/Logger.h b/src/shared/logger/Logger.h index 088b91fe28fbdf6f5c34df079003bbbb612f5c6c..dd9632c9ecd252aaf4197a4e095eb73c176c474e 100644 --- a/src/shared/logger/Logger.h +++ b/src/shared/logger/Logger.h @@ -22,7 +22,6 @@ #pragma once -#include <Singleton.h> #include <miosix.h> #include <stdint.h> @@ -31,6 +30,7 @@ #include <queue> #include <string> #include <type_traits> +#include <utils/ModuleManager/ModuleManager.hpp> #include "LoggerStats.h" @@ -51,10 +51,8 @@ enum class LoggerResult /** * @brief Buffered logger. Needs to be started before it can be used. */ -class Logger : public Singleton<Logger> +class Logger : public Module { - friend class Singleton<Logger>; - public: /** * @brief Call this function to start the logger. @@ -132,9 +130,9 @@ public: return maxFilenameNumber; } -private: Logger(); +private: static std::string getFileName(int logNumber); static void packThreadLauncher(void *argv); diff --git a/src/shared/scheduler/TaskScheduler.h b/src/shared/scheduler/TaskScheduler.h index 6496eb9bf57c065ac76dcd00505da13495ae5b48..ef8300c05f4aca1e8cabc3676ee361a246542b09 100644 --- a/src/shared/scheduler/TaskScheduler.h +++ b/src/shared/scheduler/TaskScheduler.h @@ -33,6 +33,7 @@ #include <list> #include <map> #include <queue> +#include <utils/ModuleManager/ModuleManager.hpp> #include "TaskSchedulerData.h" @@ -57,7 +58,7 @@ namespace Boardcore * TaskScheduler.add(magic_std::function, 150); * */ -class TaskScheduler : public ActiveObject +class TaskScheduler : public ActiveObject, public Module { public: using function_t = std::function<void()>;