diff --git a/.gitignore b/.gitignore index 002795b..e10e0ae 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,6 @@ nohup.out raw_eater.cpp +cyt/*.cpp + *.o diff --git a/lib/raweat.hpp b/lib/raweat.hpp index ef8a5ab..bdf253a 100644 --- a/lib/raweat.hpp +++ b/lib/raweat.hpp @@ -83,6 +83,27 @@ public: this->setup_and_conversion(showlog); } + raw_eater() + { + + } + + // provide/set new raw file + void set_file(std::string rawfile) + { + std::cout<<"raw_eater::set_file "<> channels_; + std::vector timeseries_; - // channel meta data + // temporal unit and channel meta data + std::string temp_unit_; std::vector channel_names_; public: // constructor raw_merger(std::string rawfile): raw_eater(rawfile) + { + // add first initial channel + this->add_channel(rawfile); + } + + raw_merger(): raw_eater() { } @@ -44,17 +52,92 @@ public: // add a single channel and its associated time series bool add_channel(std::string rawfile) { - return true; + // set raw file and perform conversion + this->set_file(rawfile); + + // add first/initial time series (and channel data) + if ( timeseries_.size() == 0 && channels_.size() == 0 ) + { + std::cout<<"adding first channel\n"; + // insert timeseries and its unit + timeseries_ = this->get_time(); + temp_unit_ = this->get_temp_unit(); + + // insert channel data and its meta data + channels_.push_back(this->get_data()); + channel_names_.push_back(this->get_name() + std::string(" [") + + this->get_unit() + std::string("]")); + + return true; + } + else + { + // TODO check consistency of time series, time unit, channels.... + return false; + } } // print all data to file void write_table(std::string filename, char delimiter = ',', int precision = 6, int width = 25) { + // if at least one channel including its time series is present + if ( timeseries_.size() > 0 && channels_.size() > 0 ) + { + // open file + std::ofstream fout(filename.c_str()); + if ( fout.good() ) + { + // define temporal column header + std::string colTime = std::string("Time [") + temp_unit_ + std::string("]"); + + // write header + if ( delimiter != ' ' ) + { + fout<channel_names_ ) fout<channel_names_ ) fout<timeseries_ ) + { + if ( delimiter != ' ' ) + { + fout< chn: this->channels_ ) + { + fout< chn: this->channels_ ) + { + fout<