diff options
Diffstat (limited to 'src/Detector')
-rw-r--r-- | src/Detector/Detector.cpp | 26 | ||||
-rw-r--r-- | src/Detector/Detector.h | 35 |
2 files changed, 61 insertions, 0 deletions
diff --git a/src/Detector/Detector.cpp b/src/Detector/Detector.cpp new file mode 100644 index 0000000..5dde6d1 --- /dev/null +++ b/src/Detector/Detector.cpp @@ -0,0 +1,26 @@ +/* + * Copyright 2016 Tobias Frust + * + * Detector.cpp + * + * Created on: 30.06.2016 + * Author: Tobias Frust + */ + + +#include "Detector.h" + +Detector::Detector(const std::string& address, const std::string& configPath, const unsigned int timeIntervall) : + timeIntervall_{timeIntervall}, + numberOfDetectorModules_{27} { + modules_.reserve(numberOfDetectorModules_); + for(auto i = 0; i < numberOfDetectorModules_; i++){ + modules_.emplace_back(i, address, configPath); + } +} + +auto Detector::run() -> void { + for(auto i = 0; i < numberOfDetectorModules_; i++) + modules_[i].sendPeriodically(timeIntervall_); +} + diff --git a/src/Detector/Detector.h b/src/Detector/Detector.h new file mode 100644 index 0000000..1969dbd --- /dev/null +++ b/src/Detector/Detector.h @@ -0,0 +1,35 @@ +/* + * Copyright 2016 Tobias Frust + * + * Detector.h + * + * Created on: 30.06.2016 + * Author: Tobias Frust + */ + +#ifndef DETECTOR_H_ +#define DETECTOR_H_ + +#include "../DetectorModule/DetectorModule.h" + +#include <vector> +#include <thread> + +class Detector { +public: + Detector(const std::string& address, const std::string& configPath, const unsigned int timeIntervall); + + auto run() -> void; +private: + std::vector<DetectorModule> modules_; + + std::vector<std::thread> moduleThreads_; + + unsigned int timeIntervall_; + int numberOfDetectorModules_; + + auto readConfig(const std::string& configFile) -> bool; + +}; + +#endif /* DETECTOR_H_ */ |