From 9de3e896af5633ee3b66e82708a8d68e1bea53ab Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Wed, 30 Sep 2020 10:45:40 +0200 Subject: [PATCH] Add configuration loading code to core-buffer --- core-buffer/include/BufferUtils.hpp | 16 ++++++++++++++++ core-buffer/src/BufferUtils.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/core-buffer/include/BufferUtils.hpp b/core-buffer/include/BufferUtils.hpp index fa02a3f..f258d99 100644 --- a/core-buffer/include/BufferUtils.hpp +++ b/core-buffer/include/BufferUtils.hpp @@ -6,6 +6,20 @@ namespace BufferUtils { + + struct DetectorConfig { + const std::string streamvis_address; + const int reduction_factor_streamvis; + const std::string live_analysis_address; + const int reduction_factor_live_analysis; + const std::string PEDE_FILENAME; + const std::string GAIN_FILENAME; + const std::string DETECTOR_NAME; + const int n_modules; + const std::string pulse_address; + }; + + std::string get_filename( const std::string& detector_folder, const std::string& module_name, @@ -23,6 +37,8 @@ namespace BufferUtils void* ctx, const std::string& detector_name, const int source_id); void* connect_socket( void* ctx, const std::string& detector_name, const int source_id); + + DetectorConfig read_json_config(const std::string& filename); } #endif //BUFFER_UTILS_HPP diff --git a/core-buffer/src/BufferUtils.cpp b/core-buffer/src/BufferUtils.cpp index 388c945..69fd24d 100644 --- a/core-buffer/src/BufferUtils.cpp +++ b/core-buffer/src/BufferUtils.cpp @@ -3,6 +3,10 @@ #include #include #include +#include +#include +#include +#include using namespace std; using namespace buffer_config; @@ -122,3 +126,23 @@ void* BufferUtils::bind_socket( return socket; } + +BufferUtils::DetectorConfig read_json_config(const std::string& filename) +{ + std::ifstream ifs(filename); + rapidjson::IStreamWrapper isw(ifs); + rapidjson::Document config_parameters; + config_parameters.ParseStream(isw); + + return { + config_parameters["streamvis_stream"].GetString(), + config_parameters["streamvis_rate"].GetInt(), + config_parameters["live_stream"].GetString(), + config_parameters["live_rate"].GetInt(), + config_parameters["pedestal_file"].GetString(), + config_parameters["gain_file"].GetString(), + config_parameters["detector_name"].GetString(), + config_parameters["n_modules"].GetInt(), + "tcp://127.0.0.1:51234" + }; +}