[MOS-226] Moved algorithms and their data to separate classes

This way we have controll over what does what, and can test
them separatelly
Logging statistics update more and better data presented
This commit is contained in:
Adam Dobrowolski
2022-02-23 16:34:52 +01:00
committed by Adam Dobrowolski
parent ad3aa54b66
commit dd12853503
43 changed files with 673 additions and 390 deletions

View File

@@ -0,0 +1,32 @@
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include "AlgorithmID.hpp"
#include "SystemManager/SentinelView.hpp"
#include "common.hpp"
namespace sys::cpu
{
struct AlgorithmData
{
unsigned int CPUload = 0;
bsp::CpuFrequencyMHz curentFrequency = bsp::CpuFrequencyMHz::Level_6;
sentinel::View sentinel;
};
class Algorithm
{
private:
[[nodiscard]] virtual bsp::CpuFrequencyMHz calculateImplementation(const AlgorithmData &) = 0;
virtual void resetImplementation()
{}
public:
[[nodiscard]] virtual bsp::CpuFrequencyMHz calculate(const AlgorithmData &) final;
virtual void reset() final;
virtual ~Algorithm() = default;
};
} // namespace sys::cpu