From a4a8aa91c2bc0032a8f6b4050f9cc2b7cd4dffc4 Mon Sep 17 00:00:00 2001 From: Mario Fink Date: Mon, 29 Apr 2019 18:01:34 +0200 Subject: [PATCH] starting integration into workflow --- lib/tdm_ripper.cpp | 17 +++++++++++++++++ lib/tdm_ripper.hpp | 18 ++++++++++++++++++ pytdm_ripper.pyx | 10 ++++++++++ 3 files changed, 45 insertions(+) diff --git a/lib/tdm_ripper.cpp b/lib/tdm_ripper.cpp index fad99d6..a09ef77 100644 --- a/lib/tdm_ripper.cpp +++ b/lib/tdm_ripper.cpp @@ -267,6 +267,23 @@ int tdm_ripper::convert_int(std::vector bych) return df; } +// disassemble single integer into array of chars +std::vector tdm_ripper::convert_int(int df) +{ + assert( endianness_ ); + + std::vector bych((int)sizeof(int)); + + uint8_t *dfcast = reinterpret_cast(&df); + + for ( int i = 0; i < (int)sizeof(int); i++ ) + { + bych[i] = (int)dfcast[i]; + } + + return bych; +} + // convert array of chars to floating point double double tdm_ripper::convert_double(std::vector bych) { diff --git a/lib/tdm_ripper.hpp b/lib/tdm_ripper.hpp index 82357d7..5f5acc4 100644 --- a/lib/tdm_ripper.hpp +++ b/lib/tdm_ripper.hpp @@ -77,12 +77,30 @@ public: return num_groups_; } + const std::string& channel_name(int channelid) + { + assert( channelid > 0 && channelid <= num_channels_ ); + + return channel_name_[channelid-1]; + } + + const std::string& group_name(int groupid) + { + assert( groupid > 0 && groupid <= num_channels_ ); + + return group_name_[groupid-1]; + } + void list_datatypes(); // convert array of chars to single integer or floating point double int convert_int(std::vector bych); double convert_double(std::vector bych); + // disassemble single integer or double into array of chars + std::vector convert_int(int number); + std::vector convert_double(double number); + // convert entire channel, i.e. expert of .tdx binary file // std::vector convert_channel(int byteoffset, int length, int typesize); std::vector convert_channel(int byteoffset, int length, std::string type); diff --git a/pytdm_ripper.pyx b/pytdm_ripper.pyx index 96523dc..a1f9e8e 100644 --- a/pytdm_ripper.pyx +++ b/pytdm_ripper.pyx @@ -27,3 +27,13 @@ cdef class pytdmripper: def print_channel(self, int channelid, const char* filename): self.cripp.print_channel(channelid,filename) + + # integrate into CONTI_HBS workflow by adding methods: (29.04.2019) + # tdm_loader.OpenFile(tmp_path + name_prefix + '/Messung.tdm', encoding='utf-8') + # .no_channel_groups() + # .no_channels(i) + # .channel_name(i, j) + # .channel(i, j) + # .close() + # + # evtl. get time_stamp of .tdm file in the unix format, i.e. #seconds since 01.01.0000 with average year having 365+97/400 = 365.2425 days