change repository/library/tool name
This commit is contained in:
parent
7284314fcb
commit
3e4ee699ad
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,3 +11,4 @@ tdmripper
|
||||
*.log
|
||||
tdmreaper
|
||||
cython/*.cpp
|
||||
tdmtermite
|
||||
|
44
README.md
44
README.md
@ -2,14 +2,14 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/RecordEvolution/tdm_ripper.git">
|
||||
<img
|
||||
alt="tdmreaper.svg"
|
||||
src="assets/tdmreaper.svg"
|
||||
alt="tdmtermite.svg"
|
||||
src="assets/tdmtermite.svg"
|
||||
width="400"
|
||||
/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
The _tdm_reaper_ is a C++ based library that decodes (encodes) the proprietary
|
||||
_TDMtermite_ is a C++ based library that decodes (encodes) the proprietary
|
||||
file format _TDM/TDX_ for measurement data, which relies upon the
|
||||
_technical data management_ data model. The TDM format was introduced by
|
||||
[National Instruments](https://www.ni.com) and is employed by
|
||||
@ -134,7 +134,7 @@ The library can be used both as a _CLI_ based tool and as a _Python_ module.
|
||||
|
||||
### CLI tool
|
||||
|
||||
To install the CLI tool _tdmreaper_ do
|
||||
To install the CLI tool _tdmtermite_ do
|
||||
|
||||
```Shell
|
||||
make install
|
||||
@ -151,7 +151,7 @@ available, which may be installed via `python3 -m pip install cython` .
|
||||
Furthermore, the [Numpy](https://numpy.org) package is recommended to be able
|
||||
to pass arrays of data from the C++ kernel to Python. The _makefile_ provides
|
||||
the target `make cython-requirements` to install all required Python modules.
|
||||
Finally, to build the Python extension _tdm_reaper_ either locally or install
|
||||
Finally, to build the Python extension _tdm_termite_ either locally or install
|
||||
it the targets `make cython-build` and `make cython-install` are provided.
|
||||
Hence, to install the Python module on the system simply do
|
||||
|
||||
@ -160,19 +160,19 @@ make cython-requirements
|
||||
make cython-install
|
||||
```
|
||||
|
||||
that makes the module available to be imported as `import tdm_reaper` .
|
||||
that makes the module available to be imported as `import tdm_termite` .
|
||||
|
||||
## Usage
|
||||
|
||||
### CLI tool
|
||||
|
||||
The usage of the CLI tool is sufficiently clarified by its help message displayed
|
||||
by `tdmreaper --help`. For instance, to extract the data decoded in the pair of
|
||||
by `tdmtermite --help`. For instance, to extract the data decoded in the pair of
|
||||
files `samples/SineData.tdm` and `samples/SineData.tdx` into the directory
|
||||
`/home/jack/data/`:
|
||||
|
||||
```Shell
|
||||
tdmreaper samples/SineData.tdm samples/SineData.tdx --output /home/jack/data
|
||||
tdmtermite samples/SineData.tdm samples/SineData.tdx --output /home/jack/data
|
||||
```
|
||||
|
||||
The tool can also be used to list the available objects in the TDM dataset, which
|
||||
@ -180,7 +180,7 @@ are i.a. _channels_, _channelgroups_ and TDX _blocks_. For instance, to list
|
||||
all channels and channelgroups (without writing any file output):
|
||||
|
||||
```Shell
|
||||
tdmreaper samples/SineData.tdm samples/SineData.tdx --listgroups --listchannels
|
||||
tdmtermite samples/SineData.tdm samples/SineData.tdx --listgroups --listchannels
|
||||
```
|
||||
|
||||
The user may also submit a _filenaming rule_ to control the names of the files the
|
||||
@ -189,7 +189,7 @@ and `%c` representing the group id, group name, channel index and channel name
|
||||
are defined. The default filenaming option is
|
||||
|
||||
```Shell
|
||||
tdmreaper samples/SineData.tdm samples/SineData.tdx --output /home/jack/data --filenames channelgroup_%G.csv
|
||||
tdmtermite samples/SineData.tdm samples/SineData.tdx --output /home/jack/data --filenames channelgroup_%G.csv
|
||||
```
|
||||
|
||||
which makes the tool write _all channels_ grouped into files according to their
|
||||
@ -199,7 +199,7 @@ to extract only a single channel(group) by providing a particular channel(-group
|
||||
id in the filenaming flag. For example,
|
||||
|
||||
```Shell
|
||||
tdmreaper samples/SineData.tdm samples/SineData.tdx --output /home/jack/data -f channel_usi16_%c.csv --includemeta
|
||||
tdmtermite samples/SineData.tdm samples/SineData.tdx --output /home/jack/data -f channel_usi16_%c.csv --includemeta
|
||||
```
|
||||
|
||||
will write the single channel with id `usi16` to the file
|
||||
@ -207,25 +207,25 @@ will write the single channel with id `usi16` to the file
|
||||
|
||||
### Python
|
||||
|
||||
To be able to use the Python module _tdm_reaper_ it first has to be build locally
|
||||
To be able to use the Python module _tdm_termite_ it first has to be build locally
|
||||
or installed on the system. In the Python interpreter simply do:
|
||||
|
||||
```Python
|
||||
import tdm_reaper
|
||||
import tdm_termite
|
||||
```
|
||||
|
||||
to import the module. The TDM files are provided by creating an instance of
|
||||
the _tdm_reaper_ class:
|
||||
the _tdm_termite_ class:
|
||||
|
||||
```Python
|
||||
# create 'tdm_reaper' instance object
|
||||
# create 'tdm_termite' instance object
|
||||
try :
|
||||
jack = tdm_reaper.tdmreaper(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
jack = tdm_termite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
except RuntimeError as e:
|
||||
print("failed to load/decode TDM files: " + str(e))
|
||||
```
|
||||
|
||||
After initializing the _tdm_reaper_ object it can be used to extract any of the
|
||||
After initializing the _tdm_termite_ object it can be used to extract any of the
|
||||
available data. For instance, to list the included channelgroups and channels:
|
||||
|
||||
```Python
|
||||
@ -241,12 +241,12 @@ As a use case, we have look at listing the ids of all channelgroups and printing
|
||||
their data to separate files:
|
||||
|
||||
```Python
|
||||
import tdm_reaper
|
||||
import tdm_termite
|
||||
import re
|
||||
|
||||
# create 'tdm_reaper' instance object
|
||||
# create 'tdm_termite' instance object
|
||||
try :
|
||||
jack = tdm_reaper.tdmreaper(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
jack = tdm_termite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
except RuntimeError as e :
|
||||
print("failed to load/decode TDM files: " + str(e))
|
||||
|
||||
@ -280,8 +280,8 @@ to simply extract all data of the TDM datatset and dump it to files in a given
|
||||
(existing!) directory, do
|
||||
|
||||
```Python
|
||||
import tdm_reaper
|
||||
jack = tdm_reaper.tdmreaper(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
import tdm_termite
|
||||
jack = tdm_termite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
jack.write_all(b"./my_tdm_data_directory/")
|
||||
```
|
||||
|
||||
|
100
assets/tdmtermite.svg
Normal file
100
assets/tdmtermite.svg
Normal file
@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 366.72 77.08"
|
||||
version="1.1"
|
||||
id="svg3945"
|
||||
width="366.72"
|
||||
height="77.080002"
|
||||
sodipodi:docname="tdmtermite.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1168"
|
||||
id="namedview19"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.8766824"
|
||||
inkscape:cx="199.46638"
|
||||
inkscape:cy="38.540001"
|
||||
inkscape:window-x="2048"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3945" />
|
||||
<metadata
|
||||
id="metadata3951">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>flasher</dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3949" />
|
||||
<title
|
||||
id="title3916">flasher</title>
|
||||
<g
|
||||
id="logog">
|
||||
<path
|
||||
id="path138"
|
||||
d="m 32.86,2 -13,7.5 v 0 h -0.05 v 0 l -0.48,0.28 c -4.27,2.46 -5.68,11.38 -6.06,14.75 L 36.2,11.33 c 0.39,-0.19 7.6,-3.69 13.57,-3.69 h 0.14 L 40.13,2 a 8.15,8.15 0 0 0 -7.27,0"
|
||||
transform="translate(-2.04,-1.15)"
|
||||
style="fill:#364d5c" />
|
||||
<path
|
||||
id="path142"
|
||||
d="M 5.68,17.69 A 8.2,8.2 0 0 0 2,24 v 15.78 c 0,4.9 7,10.48 9.75,12.46 V 25.77 c 0,-0.44 0.6,-8.55 3.65,-13.72 z"
|
||||
transform="translate(-2.04,-1.15)"
|
||||
style="fill:#364d5c" />
|
||||
<path
|
||||
id="path146"
|
||||
d="m 12.1,54.12 v 0 C 11.74,53.88 5,49.41 2,44.24 v 11.14 a 8.2,8.2 0 0 0 3.64,6.3 l 13.5,7.79 c 4.28,2.46 12.7,-0.77 15.81,-2.12 z"
|
||||
transform="translate(-2.04,-1.15)"
|
||||
style="fill:#364d5c" />
|
||||
<path
|
||||
id="path150"
|
||||
d="m 36.79,68 c -0.4,0.19 -7.71,3.75 -13.71,3.69 l 9.78,5.64 a 8.15,8.15 0 0 0 7.27,0 l 13.51,-7.8 c 4.27,-2.46 5.68,-11.39 6.06,-14.75 z"
|
||||
transform="translate(-2.04,-1.15)"
|
||||
style="fill:#364d5c" />
|
||||
<path
|
||||
id="path154"
|
||||
d="M 61.2,27.13 V 53.6 c 0,0.44 -0.6,8.55 -3.65,13.72 l 9.77,-5.64 A 8.2,8.2 0 0 0 71,55.38 V 39.59 c 0,-4.94 -7,-10.5 -9.75,-12.46"
|
||||
transform="translate(-2.04,-1.15)"
|
||||
style="fill:#364d5c" />
|
||||
<path
|
||||
id="path158"
|
||||
d="M 67.31,17.69 53.81,9.9 C 49.53,7.44 41.11,10.67 38,12 l 22.85,13.23 v 0 a 43.43,43.43 0 0 1 5.7,4.51 24,24 0 0 1 4.45,5.35 V 24 a 8.2,8.2 0 0 0 -3.64,-6.3"
|
||||
transform="translate(-2.04,-1.15)"
|
||||
style="fill:#364d5c" />
|
||||
</g>
|
||||
<g
|
||||
id="re" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#364d5c;fill-opacity:1;stroke:none"
|
||||
x="74.101189"
|
||||
y="54.47554"
|
||||
id="text3955"><tspan
|
||||
id="tspan3953"
|
||||
x="74.101189"
|
||||
y="54.47554"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:44px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#364d5c;fill-opacity:1"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold'"
|
||||
id="tspan86">TDMtermite</tspan> </tspan></text>
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
@ -1,17 +1,17 @@
|
||||
# distutils: language = c++
|
||||
|
||||
from tdm_reaper cimport tdm_reaper
|
||||
from tdm_termite cimport tdm_termite
|
||||
import json as jn
|
||||
# import numpy as np
|
||||
|
||||
cdef class tdmreaper:
|
||||
cdef class tdmtermite:
|
||||
|
||||
# C++ instance of class => stack allocated (requires nullary constructor!)
|
||||
cdef tdm_reaper cpp_tdm
|
||||
cdef tdm_termite cpp_tdm
|
||||
|
||||
# constructor
|
||||
def __cinit__(self, string tdmfile, string tdxfile):
|
||||
self.cpp_tdm = tdm_reaper(tdmfile,tdxfile)
|
||||
self.cpp_tdm = tdm_termite(tdmfile,tdxfile)
|
||||
|
||||
# provide TDM files
|
||||
def submit_files(self,string tdmfile, string tdxfile):
|
@ -3,8 +3,8 @@ from distutils.extension import Extension
|
||||
from Cython.Build import cythonize
|
||||
|
||||
extensions = Extension(
|
||||
name="tdm_reaper",
|
||||
sources=["cython/py_tdm_reaper.pyx"],
|
||||
name="tdm_termite",
|
||||
sources=["cython/py_tdm_termite.pyx"],
|
||||
# libraries=[""],
|
||||
# library_dirs=["lib"],
|
||||
include_dirs=["lib","pugixml"],
|
||||
@ -15,10 +15,10 @@ extensions = Extension(
|
||||
|
||||
setup(
|
||||
version='0.1',
|
||||
description='TDMReaper cython extension',
|
||||
description='TDMtermite cython extension',
|
||||
author='Record Evolution GmbH',
|
||||
author_email='mario.fink@record-evolution.de',
|
||||
url='https://github.com/RecordEvolution/tdm_ripper.git',
|
||||
name="tdm_reaper",
|
||||
name="tdm_termite",
|
||||
ext_modules=cythonize(extensions)
|
||||
)
|
||||
|
@ -5,14 +5,14 @@ from libcpp.string cimport string
|
||||
from libcpp.vector cimport vector
|
||||
from libcpp cimport bool
|
||||
|
||||
cdef extern from "tdm_reaper.cpp":
|
||||
cdef extern from "tdm_termite.cpp":
|
||||
pass
|
||||
|
||||
cdef extern from "tdm_reaper.hpp":
|
||||
cdef cppclass tdm_reaper:
|
||||
cdef extern from "tdm_termite.hpp":
|
||||
cdef cppclass tdm_termite:
|
||||
# constructor(s)
|
||||
tdm_reaper() except +
|
||||
tdm_reaper(string tdmfile, string tdxfile) except +
|
||||
tdm_termite() except +
|
||||
tdm_termite(string tdmfile, string tdxfile) except +
|
||||
# provide TDM files
|
||||
void submit_files(string tdmfile, string tdxfile) except+
|
||||
# get list of channel(-group) ids
|
@ -1,22 +1,22 @@
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
#include "tdm_reaper.hpp"
|
||||
#include "tdm_termite.hpp"
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
tdm_reaper::tdm_reaper()
|
||||
tdm_termite::tdm_termite()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
tdm_reaper::tdm_reaper(std::string tdmfile, std::string tdxfile, bool showlog):
|
||||
tdm_termite::tdm_termite(std::string tdmfile, std::string tdxfile, bool showlog):
|
||||
tdmfile_(tdmfile), tdxfile_(tdxfile)
|
||||
{
|
||||
// start processing tdm data model
|
||||
this->process_tdm(showlog);
|
||||
}
|
||||
|
||||
void tdm_reaper::submit_files(std::string tdmfile, std::string tdxfile, bool showlog)
|
||||
void tdm_termite::submit_files(std::string tdmfile, std::string tdxfile, bool showlog)
|
||||
{
|
||||
// save files
|
||||
tdmfile_ = tdmfile;
|
||||
@ -34,7 +34,7 @@ void tdm_reaper::submit_files(std::string tdmfile, std::string tdxfile, bool sho
|
||||
this->process_tdm(showlog);
|
||||
}
|
||||
|
||||
void tdm_reaper::process_tdm(bool showlog)
|
||||
void tdm_termite::process_tdm(bool showlog)
|
||||
{
|
||||
// check both tdm, tdx files
|
||||
std::filesystem::path ptdm(tdmfile_), ptdx(tdxfile_);
|
||||
@ -124,7 +124,7 @@ void tdm_reaper::process_tdm(bool showlog)
|
||||
}
|
||||
}
|
||||
|
||||
void tdm_reaper::process_include(bool showlog, pugi::xml_document& xml_doc)
|
||||
void tdm_termite::process_include(bool showlog, pugi::xml_document& xml_doc)
|
||||
{
|
||||
// get XML node
|
||||
pugi::xml_node tdmincl = xml_doc.child("usi:tdm").child("usi:include");
|
||||
@ -178,7 +178,7 @@ void tdm_reaper::process_include(bool showlog, pugi::xml_document& xml_doc)
|
||||
if ( showlog ) std::cout<<"number of blocks: "<<tdx_blocks_.size()<<"\n\n";
|
||||
}
|
||||
|
||||
void tdm_reaper::process_root(bool showlog, pugi::xml_document& xml_doc)
|
||||
void tdm_termite::process_root(bool showlog, pugi::xml_document& xml_doc)
|
||||
{
|
||||
// get XML node
|
||||
pugi::xml_node tdmdataroot = xml_doc.child("usi:tdm").child("usi:data")
|
||||
@ -198,7 +198,7 @@ void tdm_reaper::process_root(bool showlog, pugi::xml_document& xml_doc)
|
||||
if ( showlog ) std::cout<<tdmroot_.get_info()<<"\n";
|
||||
}
|
||||
|
||||
void tdm_reaper::process_channelgroups(bool showlog, pugi::xml_document& xml_doc)
|
||||
void tdm_termite::process_channelgroups(bool showlog, pugi::xml_document& xml_doc)
|
||||
{
|
||||
// get XML node <usi:data>
|
||||
pugi::xml_node tdmdata = xml_doc.child("usi:tdm").child("usi:data");
|
||||
@ -236,7 +236,7 @@ void tdm_reaper::process_channelgroups(bool showlog, pugi::xml_document& xml_doc
|
||||
if ( showlog ) std::cout<<"number of channelgroups: "<<tdmchannelgroups_.size()<<"\n\n";
|
||||
}
|
||||
|
||||
void tdm_reaper::process_channels(bool showlog, pugi::xml_document& xml_doc)
|
||||
void tdm_termite::process_channels(bool showlog, pugi::xml_document& xml_doc)
|
||||
{
|
||||
// get XML node <usi:data>
|
||||
pugi::xml_node tdmdata = xml_doc.child("usi:tdm").child("usi:data");
|
||||
@ -280,7 +280,7 @@ void tdm_reaper::process_channels(bool showlog, pugi::xml_document& xml_doc)
|
||||
if ( showlog ) std::cout<<"number of channels: "<<tdmchannels_.size()<<"\n\n";
|
||||
}
|
||||
|
||||
void tdm_reaper::process_submatrices(bool showlog, pugi::xml_document& xml_doc)
|
||||
void tdm_termite::process_submatrices(bool showlog, pugi::xml_document& xml_doc)
|
||||
{
|
||||
// get XML node <usi:data>
|
||||
pugi::xml_node tdmdata = xml_doc.child("usi:tdm").child("usi:data");
|
||||
@ -319,7 +319,7 @@ void tdm_reaper::process_submatrices(bool showlog, pugi::xml_document& xml_doc)
|
||||
if ( showlog ) std::cout<<"number of submatrices: "<<submatrices_.size()<<"\n\n";
|
||||
}
|
||||
|
||||
void tdm_reaper::process_localcolumns(bool showlog, pugi::xml_document& xml_doc)
|
||||
void tdm_termite::process_localcolumns(bool showlog, pugi::xml_document& xml_doc)
|
||||
{
|
||||
// get XML node <usi:data>
|
||||
pugi::xml_node tdmdata = xml_doc.child("usi:tdm").child("usi:data");
|
||||
@ -435,7 +435,7 @@ void tdm_reaper::process_localcolumns(bool showlog, pugi::xml_document& xml_doc)
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
std::string tdm_reaper::get_channel_overview(format chformatter)
|
||||
std::string tdm_termite::get_channel_overview(format chformatter)
|
||||
{
|
||||
// summarize all output in single string
|
||||
std::string channels_summary;
|
||||
@ -474,7 +474,7 @@ std::string tdm_reaper::get_channel_overview(format chformatter)
|
||||
}
|
||||
|
||||
template<typename tdmelement>
|
||||
std::string tdm_reaper::get_overview(format formatter)
|
||||
std::string tdm_termite::get_overview(format formatter)
|
||||
{
|
||||
// summarize all output in single string
|
||||
std::string summary;
|
||||
@ -500,12 +500,12 @@ std::string tdm_reaper::get_overview(format formatter)
|
||||
return summary;
|
||||
}
|
||||
|
||||
template std::string tdm_reaper::get_overview<tdm_channelgroup>(format formatter);
|
||||
template std::string tdm_reaper::get_overview<submatrix>(format formatter);
|
||||
template std::string tdm_reaper::get_overview<localcolumn>(format formatter);
|
||||
template std::string tdm_reaper::get_overview<block>(format formatter);
|
||||
template std::string tdm_termite::get_overview<tdm_channelgroup>(format formatter);
|
||||
template std::string tdm_termite::get_overview<submatrix>(format formatter);
|
||||
template std::string tdm_termite::get_overview<localcolumn>(format formatter);
|
||||
template std::string tdm_termite::get_overview<block>(format formatter);
|
||||
|
||||
void tdm_reaper::summarize_member(tdm_channelgroup chp, std::string& summary, format& formatter)
|
||||
void tdm_termite::summarize_member(tdm_channelgroup chp, std::string& summary, format& formatter)
|
||||
{
|
||||
for ( std::map<std::string,tdm_channelgroup>::iterator it=this->tdmchannelgroups_.begin();
|
||||
it!=this->tdmchannelgroups_.end(); ++it)
|
||||
@ -515,7 +515,7 @@ void tdm_reaper::summarize_member(tdm_channelgroup chp, std::string& summary, fo
|
||||
}
|
||||
}
|
||||
|
||||
void tdm_reaper::summarize_member(submatrix sbm, std::string& summary, format& formatter)
|
||||
void tdm_termite::summarize_member(submatrix sbm, std::string& summary, format& formatter)
|
||||
{
|
||||
for ( std::map<std::string,submatrix>::iterator it=this->submatrices_.begin();
|
||||
it!=this->submatrices_.end(); ++it)
|
||||
@ -525,7 +525,7 @@ void tdm_reaper::summarize_member(submatrix sbm, std::string& summary, format& f
|
||||
}
|
||||
}
|
||||
|
||||
void tdm_reaper::summarize_member(localcolumn lcc, std::string& summary, format& formatter)
|
||||
void tdm_termite::summarize_member(localcolumn lcc, std::string& summary, format& formatter)
|
||||
{
|
||||
for ( std::map<std::string,localcolumn>::iterator it=this->localcolumns_.begin();
|
||||
it!=this->localcolumns_.end(); ++it)
|
||||
@ -535,7 +535,7 @@ void tdm_reaper::summarize_member(localcolumn lcc, std::string& summary, format&
|
||||
}
|
||||
}
|
||||
|
||||
void tdm_reaper::summarize_member(block blk, std::string& summary, format& formatter)
|
||||
void tdm_termite::summarize_member(block blk, std::string& summary, format& formatter)
|
||||
{
|
||||
for ( std::map<std::string,block>::iterator it=this->tdx_blocks_.begin();
|
||||
it!=this->tdx_blocks_.end(); ++it)
|
||||
@ -548,7 +548,7 @@ void tdm_reaper::summarize_member(block blk, std::string& summary, format& forma
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
// extract channel by id
|
||||
std::vector<tdmdatatype> tdm_reaper::get_channel(std::string& id)
|
||||
std::vector<tdmdatatype> tdm_termite::get_channel(std::string& id)
|
||||
{
|
||||
// check for existence of required channel id (=key)
|
||||
if ( tdmchannels_.count(id) == 1 )
|
||||
@ -653,7 +653,7 @@ std::vector<tdmdatatype> tdm_reaper::get_channel(std::string& id)
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void tdm_reaper::print_channel(std::string &id, const char* filename, bool include_meta)
|
||||
void tdm_termite::print_channel(std::string &id, const char* filename, bool include_meta)
|
||||
{
|
||||
// check required path
|
||||
this->check_filename_path(filename);
|
||||
@ -698,7 +698,7 @@ void tdm_reaper::print_channel(std::string &id, const char* filename, bool inclu
|
||||
}
|
||||
}
|
||||
|
||||
void tdm_reaper::print_group(std::string &id, const char* filename, bool include_meta,
|
||||
void tdm_termite::print_group(std::string &id, const char* filename, bool include_meta,
|
||||
char sep, std::string column_header)
|
||||
{
|
||||
// check required path
|
||||
@ -834,7 +834,7 @@ void tdm_reaper::print_group(std::string &id, const char* filename, bool include
|
||||
}
|
||||
}
|
||||
|
||||
void tdm_reaper::check_filename_path(const char* filename)
|
||||
void tdm_termite::check_filename_path(const char* filename)
|
||||
{
|
||||
// declare filesystem path instance from filename
|
||||
std::filesystem::path pt(filename);
|
||||
@ -850,7 +850,7 @@ void tdm_reaper::check_filename_path(const char* filename)
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
void tdm_reaper::check_local_datatypes()
|
||||
void tdm_termite::check_local_datatypes()
|
||||
{
|
||||
std::cout<<"\nmachine's C++ datatypes:\n";
|
||||
std::cout<<std::setw(25)<<std::left<<"char:"
|
||||
@ -881,7 +881,7 @@ void tdm_reaper::check_local_datatypes()
|
||||
<<std::setw(5)<<std::left<<sizeof(long double)<<"byte(s)\n\n";
|
||||
}
|
||||
|
||||
void tdm_reaper::check_datatype_consistency()
|
||||
void tdm_termite::check_datatype_consistency()
|
||||
{
|
||||
// check datatype consistency, i.e. "local" representation of datatypes
|
||||
for ( tdm_datatype el: tdm_datatypes )
|
||||
@ -924,7 +924,7 @@ void tdm_reaper::check_datatype_consistency()
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
template<typename datatype>
|
||||
void tdm_reaper::convert_data_to_type(std::vector<unsigned char> &buffer,
|
||||
void tdm_termite::convert_data_to_type(std::vector<unsigned char> &buffer,
|
||||
std::vector<tdmdatatype> &channel)
|
||||
{
|
||||
// check number of elements of type "datatype" in buffer
|
@ -1,7 +1,7 @@
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
#ifndef TDM_REAPER
|
||||
#define TDM_REAPER
|
||||
#ifndef TDM_TERMITE
|
||||
#define TDM_TERMITE
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
class tdm_reaper
|
||||
class tdm_termite
|
||||
{
|
||||
// .tdm and .tdx paths/filenames
|
||||
std::string tdmfile_;
|
||||
@ -115,11 +115,11 @@ class tdm_reaper
|
||||
public:
|
||||
|
||||
// encoding
|
||||
// tdm_reaper(std::vector<std::string> csvfile);
|
||||
// tdm_termite(std::vector<std::string> csvfile);
|
||||
|
||||
// decoding
|
||||
tdm_reaper();
|
||||
tdm_reaper(std::string tdmfile, std::string tdxfile = std::string(""),
|
||||
tdm_termite();
|
||||
tdm_termite(std::string tdmfile, std::string tdxfile = std::string(""),
|
||||
bool showlog = false);
|
||||
|
||||
// provide (tdm,tdx) files
|
14
makefile
14
makefile
@ -1,10 +1,10 @@
|
||||
# --------------------------------------------------------------------------- #
|
||||
|
||||
# declare name of executable
|
||||
EXE = tdmreaper
|
||||
EXE = tdmtermite
|
||||
|
||||
# sources and headers
|
||||
SRC := tdm_reaper
|
||||
SRC := tdm_termite
|
||||
HPP = $(wildcard lib/*.hpp)
|
||||
|
||||
# compiler and C++ standard
|
||||
@ -77,16 +77,16 @@ cython-help : cython/setup.py
|
||||
cython-list : cython/setup.py
|
||||
python3 $< --name --description --author --author-email --url
|
||||
|
||||
cython-build : cython/setup.py cython/tdm_reaper.pxd cython/py_tdm_reaper.pyx $(HPP) lib/tdm_reaper.cpp
|
||||
cython-build : cython/setup.py cython/tdm_termite.pxd cython/py_tdm_termite.pyx $(HPP) lib/tdm_termite.cpp
|
||||
python3 $< build_ext --inplace
|
||||
cp -v tdm_reaper.cpython-*.so python/
|
||||
cp -v tdm_termite.cpython-*.so python/
|
||||
|
||||
cython-install : cython/setup.py cython/tdm_reaper.pxd cython/py_tdm_reaper.pyx $(HPP) lib/tdm_reaper.cpp
|
||||
cython-install : cython/setup.py cython/tdm_termite.pxd cython/py_tdm_termite.pyx $(HPP) lib/tdm_termite.cpp
|
||||
python3 $< install
|
||||
|
||||
clean-cython :
|
||||
rm -vf cython/py_tdm_reaper.cpp
|
||||
rm -vf tdm_reaper.cpython-*.so python/tdm_reaper.cpython-*.so
|
||||
rm -vf cython/py_tdm_termite.cpp
|
||||
rm -vf tdm_termite.cpython-*.so python/tdm_termite.cpython-*.so
|
||||
rm -rf build
|
||||
|
||||
# --------------------------------------------------------------------------- #
|
||||
|
@ -1,11 +1,11 @@
|
||||
|
||||
import tdm_reaper
|
||||
import tdm_termite
|
||||
import json
|
||||
import re
|
||||
|
||||
# create 'tdm_reaper' instance object
|
||||
# create 'tdm_termite' instance object
|
||||
try :
|
||||
jack = tdm_reaper.tdmreaper(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
jack = tdm_termite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
except RuntimeError as e :
|
||||
print("failed to load/decode TDM files: " + str(e))
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
|
||||
import tdm_reaper
|
||||
import tdm_termite
|
||||
|
||||
# create 'tdm_reaper' instance object
|
||||
# create 'tdm_termite' instance object
|
||||
try :
|
||||
jack = tdm_reaper.tdmreaper(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
jack = tdm_termite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
# list ids of channelgroups
|
||||
grpids = jack.get_channelgroup_ids()
|
||||
# iterate through groups
|
||||
|
@ -1,12 +1,12 @@
|
||||
|
||||
import tdm_reaper
|
||||
import tdm_termite
|
||||
# import numpy as np
|
||||
import json
|
||||
import re
|
||||
|
||||
# create 'tdm_reaper' instance object
|
||||
# create 'tdm_termite' instance object
|
||||
try :
|
||||
jack = tdm_reaper.tdmreaper(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
jack = tdm_termite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
|
||||
except RuntimeError as e :
|
||||
print("failed to load/decode TDM files: " + str(e))
|
||||
|
||||
|
14
src/main.cpp
14
src/main.cpp
@ -1,6 +1,6 @@
|
||||
// ------------------------------------------------------------------------- //
|
||||
|
||||
#include "tdm_reaper.hpp"
|
||||
#include "tdm_termite.hpp"
|
||||
|
||||
#include <filesystem>
|
||||
#include <regex>
|
||||
@ -15,12 +15,12 @@ const std::string githash("HASHSTRING");
|
||||
void show_usage()
|
||||
{
|
||||
std::cout<<"\n"
|
||||
<<"tdmreaper ["<<gittag<<"-g"<<githash<<"] (github.com/RecordEvolution/tdm_ripper.git)"
|
||||
<<"tdmtermite ["<<gittag<<"-g"<<githash<<"] (github.com/RecordEvolution/TDMtermite.git)"
|
||||
<<"\n\n"
|
||||
<<"Decode TDM/TDX files and dump data as *.csv"
|
||||
<<"\n\n"
|
||||
<<"Usage:\n\n"
|
||||
<<" tdmreaper <tdm-file> <tdx-file> [options]"
|
||||
<<" tdmtermite <tdm-file> <tdx-file> [options]"
|
||||
<<"\n\n"
|
||||
<<"Options:"
|
||||
<<"\n\n"
|
||||
@ -55,7 +55,7 @@ void show_usage()
|
||||
typedef std::map<std::string,std::string> optkeys;
|
||||
|
||||
const std::string argmsg = std::string("both .tdm and .tdx file must be provided!");
|
||||
const std::string arguse = std::string("see $ tdmreaper --help for usage");
|
||||
const std::string arguse = std::string("see $ tdmtermite --help for usage");
|
||||
|
||||
optkeys parse_args(int argc, char* argv[], bool showargs = false)
|
||||
{
|
||||
@ -78,7 +78,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<<"tdmreaper "<<gittag<<"-g"<<githash<<"\n";
|
||||
std::cout<<"tdmtermite "<<gittag<<"-g"<<githash<<"\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -270,8 +270,8 @@ int main(int argc, char* argv[])
|
||||
std::string csvsep = cfgopts.count("csvsep") == 1 ? cfgopts.at("csvsep")
|
||||
: std::string(",");
|
||||
|
||||
// declare and initialize tdm_reaper instance
|
||||
tdm_reaper jack;
|
||||
// declare and initialize tdm_termite instance
|
||||
tdm_termite jack;
|
||||
try {
|
||||
jack.submit_files(cfgopts.at("tdm"),cfgopts.at("tdx"),false);
|
||||
} catch (const std::exception& e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user