* allowing for missing value-id (and consequently external_id, as well) in local_column (refer to issue #12) => resulting in empty channel in output
* simplify get_channel_overview(...) by removing full group info * add build-timestamp to version/help message of CLI binary * simplify/unify group/channel/submatrix/localcolumn overview of CLI binary
This commit is contained in:
parent
b5d32f1ccd
commit
e1331cc6e6
@ -445,6 +445,11 @@ void tdm_termite::process_localcolumns(bool showlog, pugi::xml_document& xml_doc
|
||||
{
|
||||
locc.values_ = vl.at(0);
|
||||
}
|
||||
else if ( vl.size() == 0 )
|
||||
{
|
||||
//std::cerr<<"localcolumn ("<<locc.id_<<","<<locc.name_<<") misses any value-ids"<<"\n";
|
||||
locc.values_ = "none";
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::logic_error("localcolumn with out/multiple values id(s)");
|
||||
@ -460,7 +465,7 @@ void tdm_termite::process_localcolumns(bool showlog, pugi::xml_document& xml_doc
|
||||
{
|
||||
throw std::runtime_error(std::string("measurement_quantity: ")
|
||||
+ locc.measurement_quantity_
|
||||
+ std::string(" is ambiguous") );
|
||||
+ std::string(" is missing/ambiguous") );
|
||||
}
|
||||
std::string dt = tdmchannels_.at(locc.measurement_quantity_).datatype_;
|
||||
std::string sequence_type;
|
||||
@ -482,8 +487,10 @@ void tdm_termite::process_localcolumns(bool showlog, pugi::xml_document& xml_doc
|
||||
|
||||
if ( locc.external_id_.empty() )
|
||||
{
|
||||
throw std::logic_error( std::string("no external id found for ")
|
||||
+ sequence_type + std::string(" with ") + locc.values_ );
|
||||
//throw std::logic_error( std::string("no external id found for ")
|
||||
// + sequence_type + std::string(" with ") + locc.values_ );
|
||||
//std::cerr<<"no external id found for "<<sequence_type<<" with "<<locc.values_<<"\n";
|
||||
locc.external_id_ = "none";
|
||||
}
|
||||
}
|
||||
|
||||
@ -508,8 +515,8 @@ std::string tdm_termite::get_channel_overview(format chformatter)
|
||||
|
||||
// compose header
|
||||
chformatter.set_header(true);
|
||||
tdm_channelgroup grp;
|
||||
channels_summary += grp.get_info(chformatter);
|
||||
//tdm_channelgroup grp;
|
||||
//channels_summary += grp.get_info(chformatter);
|
||||
tdm_channel chn;
|
||||
channels_summary += chn.get_info(chformatter);
|
||||
std::string rule; // = std::string("#");
|
||||
@ -526,8 +533,9 @@ std::string tdm_termite::get_channel_overview(format chformatter)
|
||||
it!=tdmchannels_.end(); ++it)
|
||||
{
|
||||
// get corresponding group
|
||||
tdm_channelgroup grp = tdmchannelgroups_.at(it->second.group_);
|
||||
channels_summary += grp.get_info(chformatter);
|
||||
// tdm_channelgroup grp = tdmchannelgroups_.at(it->second.group_);
|
||||
// channels_summary += grp.get_info(chformatter);
|
||||
|
||||
// ...and actual channel
|
||||
channels_summary += it->second.get_info(chformatter);
|
||||
channels_summary += std::string("\n");
|
||||
@ -619,7 +627,7 @@ std::vector<tdmdatatype> tdm_termite::get_channel(std::string& id)
|
||||
// retrieve full channel info
|
||||
tdm_channel chn = tdmchannels_.at(id);
|
||||
|
||||
// extract (first) "localcolumn" for channel
|
||||
// extract (first) "localcolumn" for channel TODO there should only be a single!! local_column!!
|
||||
if ( chn.local_columns_.size() != 1 )
|
||||
{
|
||||
throw std::runtime_error(std::string("invalid local_columns_ of channel: ") + id);
|
||||
@ -636,6 +644,12 @@ std::vector<tdmdatatype> tdm_termite::get_channel(std::string& id)
|
||||
}
|
||||
|
||||
// use "values" id to map to external block
|
||||
if ( loccol.external_id_ == "none" )
|
||||
{
|
||||
//throw std::runtime_error(std::string("missing external_id in local_column ")+loccol.id_);
|
||||
//std::cerr<<"missing external_id in local_column "<<loccol.id_<<"\n";
|
||||
return std::vector<tdmdatatype>(0);
|
||||
}
|
||||
block blk = tdx_blocks_.at(loccol.external_id_);
|
||||
|
||||
// declare vector of appropriate length
|
||||
|
4
makefile
4
makefile
@ -26,6 +26,9 @@ GHSH := $(shell git rev-parse HEAD | head -c8)
|
||||
PIPYVS := $(shell grep "version" pip/setup.py | tr -d 'version=,\#\" ')
|
||||
PICGVS := $(shell grep "version" pip/setup.cfg | tr -d 'version=,\#\" ')
|
||||
|
||||
# current timestamp
|
||||
TMS = $(shell date +%Y%m%dT%H%M%S)
|
||||
|
||||
# define install location
|
||||
INST := /usr/local/bin
|
||||
|
||||
@ -63,6 +66,7 @@ main.o : src/main.cpp lib/$(SRC).hpp $(HPP)
|
||||
@if [ $(OST) = "Linux" ]; then\
|
||||
sed -i 's/TAGSTRING/$(GTAG)/g' $<.cpp; \
|
||||
sed -i 's/HASHSTRING/$(GHSH)/g' $<.cpp; \
|
||||
sed -i 's/TIMESTAMPSTRING/$(TMS)/g' $<.cpp; \
|
||||
fi
|
||||
@if [ $(OST) = "Darwin" ]; then\
|
||||
sed -i '' 's/TAGSTRING/$(GTAG)/g' $<.cpp; \
|
||||
|
11
src/main.cpp
11
src/main.cpp
@ -11,11 +11,12 @@
|
||||
|
||||
const std::string gittag("TAGSTRING");
|
||||
const std::string githash("HASHSTRING");
|
||||
const std::string timestamp("TIMESTAMPSTRING");
|
||||
|
||||
void show_usage()
|
||||
{
|
||||
std::cout<<"\n"
|
||||
<<"tdmtermite ["<<gittag<<"-g"<<githash<<"] (github.com/RecordEvolution/TDMtermite.git)"
|
||||
<<"tdmtermite ["<<gittag<<"-g"<<githash<<"-"<<timestamp<<"] (https://github.com/RecordEvolution/TDMtermite.git)"
|
||||
<<"\n\n"
|
||||
<<"Decode TDM/TDX files and dump data as *.csv"
|
||||
<<"\n\n"
|
||||
@ -78,7 +79,7 @@ optkeys parse_args(int argc, char* argv[], bool showargs = false)
|
||||
else if ( std::string(argv[1]) == std::string("--version")
|
||||
|| std::string(argv[1]) == std::string("-v") )
|
||||
{
|
||||
std::cout<<"tdmtermite "<<gittag<<"-g"<<githash<<"\n";
|
||||
std::cout<<"tdmtermite "<<gittag<<"-g"<<githash<<"-"<<timestamp<<"\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -284,13 +285,13 @@ int main(int argc, char* argv[])
|
||||
if ( showroot ) std::cout<<"\n"<<jack.get_root().get_info()<<"\n";
|
||||
|
||||
// get complete channel(-group) overview
|
||||
format grpformatter(26,false,false,' ');
|
||||
format grpformatter(16,false,false,' ');
|
||||
if (listgroups) std::cout<<"\n"<<jack.get_overview<tdm_channelgroup>(grpformatter)<<"\n";
|
||||
format chformatter(14,false,false,' ');
|
||||
format chformatter(16,false,false,' ');
|
||||
if (listchannels) std::cout<<"\n"<<jack.get_channel_overview(chformatter)<<"\n";
|
||||
|
||||
// get complete submatrix/localcolumns overview
|
||||
format formatter(18,false,false,' ');
|
||||
format formatter(16,false,false,' ');
|
||||
if (listblocks) std::cout<<jack.get_overview<block>(formatter)<<"\n";
|
||||
if (listsubmatrices) std::cout<<jack.get_overview<submatrix>(formatter)<<"\n";
|
||||
if (listlocalcolumns) std::cout<<jack.get_overview<localcolumn>(formatter)<<"\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user