simple and functional
This commit is contained in:
parent
e2f3584f47
commit
70aad3fe1c
6 changed files with 69 additions and 381 deletions
|
|
@ -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();
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue