#pragma once #include #include #include #include "ring_buffer.h" #include "analysis_model.h" template class SensorNetwork { RingBuffer buffer; AnalysisModel model; std::atomic running{false}; std::vector sensors; std::vector 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(); };