From fe19f723b3f7c6d26bfa18566cebc433739d3950 Mon Sep 17 00:00:00 2001 From: Mario Fink Date: Thu, 21 Jan 2021 16:55:46 +0100 Subject: [PATCH] full tdm datamodel overview --- lib/tdm_datamodel.hpp | 4 +-- lib/tdm_reaper.cpp | 66 +++++++++++++++++++++++++++++++++++++++++-- lib/tdm_reaper.hpp | 4 +++ src/main.cpp | 9 ++++-- 4 files changed, 76 insertions(+), 7 deletions(-) diff --git a/lib/tdm_datamodel.hpp b/lib/tdm_datamodel.hpp index ef2a48c..77b621c 100644 --- a/lib/tdm_datamodel.hpp +++ b/lib/tdm_datamodel.hpp @@ -354,7 +354,7 @@ struct submatrix { const std::string get_info() { return get_info(defformat); } const std::string get_info(format& formatter) { - formatter.set_columns({ std::make_pair("id",id_), + formatter.set_columns({ std::make_pair("submatrix-id",id_), std::make_pair("name",name_), std::make_pair("description",description_), std::make_pair("measurement",measurement_), @@ -399,7 +399,7 @@ struct localcolumn { const std::string get_info() { return get_info(defformat); } const std::string get_info(format& formatter) { - formatter.set_columns({ std::make_pair("id",id_), + formatter.set_columns({ std::make_pair("localcolumn-id",id_), std::make_pair("name",name_), std::make_pair("description",description_), std::make_pair("measurement_quantity",measurement_quantity_), diff --git a/lib/tdm_reaper.cpp b/lib/tdm_reaper.cpp index f3a3041..4ba2ce8 100644 --- a/lib/tdm_reaper.cpp +++ b/lib/tdm_reaper.cpp @@ -395,9 +395,6 @@ void tdm_reaper::process_localcolumns(bool showlog) std::string tdm_reaper::get_channel_overview(format chformatter) { - // declare format instance - // format chformatter(15,false,false,' '); - // summarize all output in single string std::string channels_summary; @@ -434,6 +431,66 @@ std::string tdm_reaper::get_channel_overview(format chformatter) return channels_summary; } +std::string tdm_reaper::get_submatrix_overview(format formatter) +{ + // summarize all output in single string + std::string submatrix_summary; + + // set tabular mode of formatter + formatter.set_tabular(true); + + // compose header + formatter.set_header(true); + submatrix sbm; + submatrix_summary += sbm.get_info(formatter); + std::string rule; + for ( unsigned long int i = 0; i < submatrix_summary.size(); i++ ) + { + rule += std::string("-"); + } + submatrix_summary += std::string("\n") + rule + std::string("\n"); + + formatter.set_header(false); + for (std::map::iterator it=submatrices_.begin(); + it!=submatrices_.end(); ++it) + { + submatrix_summary += it->second.get_info(formatter); + submatrix_summary += std::string("\n"); + } + + return submatrix_summary; +} + +std::string tdm_reaper::get_localcolumn_overview(format formatter) +{ + // summarize all output in single string + std::string summary; + + // set tabular mode of formatter + formatter.set_tabular(true); + + // compose header + formatter.set_header(true); + localcolumn lc; + summary += lc.get_info(formatter); + std::string rule; + for ( unsigned long int i = 0; i < summary.size(); i++ ) + { + rule += std::string("-"); + } + summary += std::string("\n") + rule + std::string("\n"); + + formatter.set_header(false); + for (std::map::iterator it=localcolumns_.begin(); + it!=localcolumns_.end(); ++it) + { + summary += it->second.get_info(formatter); + summary += std::string("\n"); + } + + return summary; +} + // -------------------------------------------------------------------------- // std::vector tdm_reaper::get_channel(std::string &id) @@ -477,6 +534,9 @@ void tdm_reaper::print_channel(std::string &id, const char* filename) fou.close(); } + +// -------------------------------------------------------------------------- // + template void tdm_reaper::convert_data_to_type(std::vector &buffer, std::vector &channel) diff --git a/lib/tdm_reaper.hpp b/lib/tdm_reaper.hpp index 678b28a..012b23c 100644 --- a/lib/tdm_reaper.hpp +++ b/lib/tdm_reaper.hpp @@ -149,6 +149,10 @@ public: // get full channel(group) overview std::string get_channel_overview(format chformatter); + // get submatrix/localcolumn overview + std::string get_submatrix_overview(format formatter); + std::string get_localcolumn_overview(format formatter); + // get list of channelgroup ids std::vector get_channelgroup_ids() { diff --git a/src/main.cpp b/src/main.cpp index af54ade..2cf6886 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -179,14 +179,14 @@ int main(int argc, char* argv[]) // declare and initialize tdm_ripper instance tdm_reaper jack; try { - jack.submit_files(cfgopts.at("tdm"),cfgopts.at("tdx"),true); + jack.submit_files(cfgopts.at("tdm"),cfgopts.at("tdx"),false); } catch (const std::exception& e) { throw std::runtime_error( std::string("failed to load/parse tdm/tdx files: ") + e.what() ); } // check available datatypes on machine - jack.check_local_datatypes(); + // jack.check_local_datatypes(); // show some meta data of the dataset std::cout<<"\n"< chgrids = jack.get_channelgroup_ids(); // for ( auto el: chgrids ) std::cout<