00001 #ifndef DATA_DUMPER_H 00002 #define DATA_DUMPER_H 00003 00004 #include <string> 00005 #include <vector> 00006 00007 #define DEBUG_DUMP_ENABLED 00008 //#define DEBUG_DUMP_TO_CONSOLE_ENABLED 00009 00010 class DataDumper 00011 { 00012 public: 00013 static DataDumper& instance() 00014 { 00015 static DataDumper _instance; 00016 return _instance; 00017 } 00018 ~DataDumper() {} 00019 int pushData(double timeStamp, std::string info, double val); 00020 int writeDataToCsv(std::string fileName); 00021 int writeToFileNameWhenBufferIsFull(std::string filename); 00022 00023 int dumpUcharBufferToConsole(unsigned char *buffer, int bufLen); 00024 int testbed(); 00025 private: 00026 const int maxFifoSize = 10000; 00027 std::vector<double> timeStampVec; 00028 std::vector<std::string> infoVec; 00029 std::vector<double> dataVec; 00030 int pushCounter; 00031 DataDumper() 00032 { 00033 timeStampVec.resize(maxFifoSize); 00034 infoVec.resize(maxFifoSize); 00035 dataVec.resize(maxFifoSize); 00036 pushCounter = 0; 00037 } // verhindert, dass ein Objekt von au�erhalb von N erzeugt wird. 00038 // protected, wenn man von der Klasse noch erben m�chte 00039 DataDumper(const DataDumper&); /* verhindert, dass eine weitere Instanz via 00040 Kopier-Konstruktor erstellt werden kann */ 00041 DataDumper & operator = (const DataDumper &); //Verhindert weitere Instanz durch Kopie 00042 std::string dumpFileName; 00043 }; 00044 00045 /* Verwendung: 00046 DataDumper& s = DataDumper::instance(); 00047 s.xyz(); 00048 //oder 00049 DataDumper::instance().xyz(); */ 00050 #endif