BS_Praktikum4/sensor_network.h

31 lines
632 B
C
Raw Normal View History

2025-06-03 00:50:08 +02:00
#pragma once
#include <thread>
#include <atomic>
#include <vector>
#include "ring_buffer.h"
#include "analysis_model.h"
template <size_t N>
class SensorNetwork {
2025-06-03 01:49:23 +02:00
RingBuffer<N> buffer;
AnalysisModel model;
std::atomic<bool> running{false};
2025-06-03 00:50:08 +02:00
std::vector<std::thread> sensors;
std::vector<std::thread> analysers;
std::thread controller;
public:
~SensorNetwork() {
if (running) stop();
}
void start(size_t num_sensors, size_t num_analysers);
void stop();
private:
void sensor_thread(int id);
void analyser_thread(int id);
void controller_thread();
2025-06-03 01:49:23 +02:00
};