From 97d26f57da31d26fa86596cd124c7f511f38595b Mon Sep 17 00:00:00 2001 From: Mario Fink Date: Fri, 26 Apr 2019 11:59:11 +0200 Subject: [PATCH] added methods to .pyx --- .gitignore | 1 + example.py | 9 ++++++++- lib/tdm_ripper.cpp | 28 +--------------------------- lib/tdm_ripper.hpp | 5 ----- pytdm_ripper.pyx | 15 +++++++++++---- tdm_ripper.pxd | 8 ++++---- 6 files changed, 25 insertions(+), 41 deletions(-) diff --git a/.gitignore b/.gitignore index 7700c2d..8977592 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ pytdm_ripper.cpp build/ *.o *.a +*.dat diff --git a/example.py b/example.py index 1be252f..1122d01 100644 --- a/example.py +++ b/example.py @@ -3,4 +3,11 @@ import tdm_ripper tdmpath = b"samples/SineData.tdm" tdxpath = b"samples/SineData.tdx" -tdm_ripper.pytdmripper(tdmpath) +rippobj = tdm_ripper.pytdmripper(tdmpath) + +rippobj.show_channels() + +print(rippobj.num_channels()) +print(rippobj.num_groups()) + +rippobj.print_channel(1,b"SineData_extract.dat") diff --git a/lib/tdm_ripper.cpp b/lib/tdm_ripper.cpp index 58413c9..8c29fa4 100644 --- a/lib/tdm_ripper.cpp +++ b/lib/tdm_ripper.cpp @@ -1,38 +1,12 @@ #include "tdm_ripper.hpp" -// tdm_ripper::tdm_ripper(): -// tdmfile_(""), tdxfile_(""), filesprovided_(false), -// num_channels_(0), num_groups_(0), -// channel_id_(0), group_id_(0), channel_name_(0), group_name_(0), -// num_channels_group_(0), channels_group_(0), -// byteoffset_(0), length_(0), type_(0) -// { -// -// } - tdm_ripper::tdm_ripper(std::string tdmfile, std::string tdxfile): - tdmfile_(tdmfile), tdxfile_(tdxfile), //filesprovided_(true), - num_channels_(0), num_groups_(0), + tdmfile_(tdmfile), tdxfile_(tdxfile), num_channels_(0), num_groups_(0), channel_id_(0), group_id_(0), channel_name_(0), group_name_(0), num_channels_group_(0), channels_group_(0), byteoffset_(0), length_(0), type_(0) { - setup(); -} -// -// void tdm_ripper::setfiles(std::string tdmfile, std::string tdxfile) -// { -// tdmfile_ = tdmfile; -// tdxfile_ = tdxfile; -// filesprovided_ = true; -// setup(); -// } - -void tdm_ripper::setup() -{ - // assert( filesprovided_ ); - // TODO directly provide the C datatype to be used!! datatypes_ = { {"eInt8Usi",8}, diff --git a/lib/tdm_ripper.hpp b/lib/tdm_ripper.hpp index 7bf139d..045af87 100644 --- a/lib/tdm_ripper.hpp +++ b/lib/tdm_ripper.hpp @@ -17,7 +17,6 @@ class tdm_ripper // .tdm and .tdx filenames std::string tdmfile_; std::string tdxfile_; - // bool filesprovided_; // endianness (true = little, false = big) bool endianness_, machine_endianness_; @@ -45,12 +44,8 @@ class tdm_ripper public: - // tdm_ripper(); tdm_ripper(std::string tdmfile, std::string tdxfile = ""); - // void setfiles(std::string tdmfile, std::string tdxfile = ""); - void setup(); - void parse_structure(); void show_channels(int width = 15, int maxshow = 300); diff --git a/pytdm_ripper.pyx b/pytdm_ripper.pyx index 0f64c2e..5729b9c 100644 --- a/pytdm_ripper.pyx +++ b/pytdm_ripper.pyx @@ -1,8 +1,6 @@ # cython: language_level = 3 # distutils: language = c++ -## distutils: sources = lib/tdm_ripper.cpp - from tdm_ripper cimport tdm_ripper cdef class pytdmripper: @@ -16,5 +14,14 @@ cdef class pytdmripper: def __dealloc__(self): del self.cripp - # def setfiles(self, string tdmfile, string tdxfile): - # self.cripp(tdmfile,tdxfile) + def show_channels(self): + self.cripp.show_channels() + + def num_channels(self): + return self.cripp.num_channels() + + def num_groups(self): + return self.cripp.num_groups() + + def print_channel(self,int channelid, const char* filename): + self.cripp.print_channel(channelid,filename) diff --git a/tdm_ripper.pxd b/tdm_ripper.pxd index defedef..91b9c67 100644 --- a/tdm_ripper.pxd +++ b/tdm_ripper.pxd @@ -2,13 +2,13 @@ from libcpp.string cimport string from libcpp.vector cimport vector -# use only in absence of # distutils: sources = lib/tdm_ripper.cpp in .pyx cdef extern from "tdm_ripper.cpp": pass cdef extern from "tdm_ripper.hpp": cdef cppclass tdm_ripper: - # tdm_ripper() except + tdm_ripper(string) except + - # void setfiles(string, string) - # void setup() + void show_channels() + int num_channels() + int num_groups() + void print_channel(int,const char*)