diff --git a/extract_all.cpp b/extract_all.cpp new file mode 100644 index 0000000..4e3fc48 --- /dev/null +++ b/extract_all.cpp @@ -0,0 +1,40 @@ + + +#include "lib/tdm_ripper.hpp" + +int main(int argc, char* argv[]) +{ + // list of arguments: a) tdm file b) tdx file c) optional argument: output directory, default is ./ + assert( argc == 3 || argc == 4 ); + + // declare and initialize tdm_ripper with two arguments specifying the files + tdm_ripper ripper(argv[1],argv[2],true); + + // use given or default directory for output + std::string outdir; + outdir = ( argc == 4 ) ? argv[3] : "./" ; + + ripper.print_hash_local((outdir+"hash_table_xml_local.dat").c_str()); + ripper.print_hash_values((outdir+"hash_table_xml_value.dat").c_str()); + ripper.print_hash_double((outdir+"hash_table_xml_double.dat").c_str()); + ripper.print_extid((outdir+"channel_ext_id.dat").c_str()); + + std::ofstream gout((outdir+"list_of_groups.dat").c_str()); + ripper.list_groups(gout); + gout.close(); + + std::ofstream fout((outdir+"list_of_channels.dat").c_str()); + ripper.list_channels(fout); + fout.close(); + + // print all meta information + ripper.print_meta((outdir+"meta_info.csv").c_str()); + + for ( int i = 0; i < ripper.num_channels(); i++ ) + { + ripper.print_channel(i,(outdir+"channel_"+std::to_string(i+1)+"_" + +ripper.channel_name(i)+".dat").c_str()); + } + + return 0; +} diff --git a/lib/tdm_ripper.cpp b/lib/tdm_ripper.cpp index c2847d9..b919f59 100644 --- a/lib/tdm_ripper.cpp +++ b/lib/tdm_ripper.cpp @@ -259,6 +259,9 @@ void tdm_ripper::parse_structure() // std::string keyinit("usi23258"); // std::cout<<"xml test "< tdm_ripper::get_channel(int channelid) // check if converted value is within expected range for ( int i = 0; i < (int)chann.size(); i++ ) { - // if ( chann[i] < minmax_[channelid-1].first - // || chann[i] > minmax_[channelid-1].second ) std::cout<= minmax_[channelid-1].first - 1.0e-6 - && chann[i] <= minmax_[channelid-1].second + 1.0e-6 ); + assert( chann[i] >= minmax_[channelid].first - 1.0e-6 + && chann[i] <= minmax_[channelid].second + 1.0e-6 ); } return chann; diff --git a/makefile b/makefile index 3e59e63..6e0c0da 100644 --- a/makefile +++ b/makefile @@ -15,9 +15,16 @@ main.o : main.cpp tdm_ripper.o : lib/tdm_ripper.cpp lib/tdm_ripper.hpp $(CC) -c $(CPPFLAGS) -I $(LIB) $< -o $@ +extall : extract_all.o tdm_ripper.o + $(CC) $(CPPFLAGS) $^ -o extract_all + +extract_all.o : extract_all.cpp + $(CC) -c $(CPPFLAGS) -I $(LIB) $< -o $@ + clean : rm -f $(EXE) *.o rm -f *.dat + rm -f extract_all rm -f data/*.dat rm -f data/*.csv