simple and functional

This commit is contained in:
portnoytmy 2025-06-03 01:25:44 +02:00
parent e2f3584f47
commit 70aad3fe1c
6 changed files with 69 additions and 381 deletions

View file

@ -5,37 +5,15 @@
#include "ring_buffer.h"
#include "analysis_model.h"
/**
* Hauptklasse des Sensornetzwerks
* @tparam N Größe des Ringpuffers
*
* Verwaltet alle Komponenten:
* - Ringpuffer für Sensordaten
* - Analysemodell
* - Threads für Sensoren, Analyse und Controller
*/
template <size_t N>
class SensorNetwork {
RingBuffer<N> buffer; // Gemeinsamer Datenpuffer
AnalysisModel model; // Geteiltes Analysemodell
std::atomic<bool> running{false}; // Steuerflag für Threads
// Thread-Container
std::vector<std::thread> sensors;
std::vector<std::thread> analysers;
std::thread controller;
RingBuffer<N> buffer;
AnalysisModel model;
std::atomic<bool> running = false;
std::vector<std::thread> threads;
public:
~SensorNetwork() {
if (running) stop();
}
void start(size_t num_sensors, size_t num_analysers);
~SensorNetwork() { if (running) stop(); }
void start(size_t sensors, size_t analysers);
void stop();
private:
// Thread-Funktionen
void sensor_thread(int id);
void analyser_thread(int id);
void controller_thread();
};
};