BS_Praktikum4/sensor_network.h
2025-06-03 01:40:44 +02:00

29 lines
742 B
C++

#pragma once
#include <thread>
#include <atomic>
#include <vector>
#include "ring_buffer.h"
#include "analysis_model.h"
/**
* Hauptklasse für das Sensornetzwerk
* @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
std::vector<std::thread> threads; // Alle Threads
public:
~SensorNetwork() { if (running) stop(); }
void start(size_t sensors, size_t analysers);
void stop();
};