1 #ifndef ORG_EEROS_CONTROL_TRACE_HPP_ 2 #define ORG_EEROS_CONTROL_TRACE_HPP_ 17 template <
typename T =
double >
21 this->
buf =
new T[bufLen];
44 T* tmp =
new T[
index];
46 for (
int i = 0; i <
index; i++)
61 for (
int i = 0; i <
index; i++)
83 std::ostream& operator<<(std::ostream& os, Trace<T>& trace) {
84 os <<
"Block trace: '" << trace.getName() <<
"'";
88 template <
typename T =
double >
96 bool running =
false, go =
false;
100 while(running && !go) usleep(1000);
101 if (!running)
return;
103 log.info() <<
"start writing trace file " + name;
106 time_t now = time(0);
109 tstruct = *localtime(&now);
110 strftime(chbuf,
sizeof(chbuf),
"_%Y-%m-%d_%X", &tstruct);
112 file.open(name + chbuf, std::ios::trunc);
113 timestamp_t* timeStampBuf = trace.getTimestampTrace();
114 T*
buf = trace.getTrace();
115 file <<
"name = " << trace.getName() <<
", size = " << trace.getSize() <<
", maxBufLen = " << trace.maxBufLen <<
"\n";
116 for (
int i = 0; i < trace.getSize(); i++) file << timeStampBuf[i] <<
" " << buf[i] <<
std::endl;
118 log.info() <<
"trace file written";
virtual void enable()
Definition: Trace.hpp:67
Definition: Logger.hpp:15
bool cycle
Definition: Trace.hpp:75
void write()
Definition: Trace.hpp:93
virtual void run()
Definition: Trace.hpp:25
virtual void disable()
Definition: Trace.hpp:68
T * buf
Definition: Trace.hpp:77
Definition: Block1i.hpp:12
uint32_t maxBufLen
Definition: Trace.hpp:70
Definition: Config.hpp:14
~TraceWriter()
Definition: Trace.hpp:92
Trace(uint32_t bufLen)
Definition: Trace.hpp:20
timestamp_t * timeBuf
Definition: Trace.hpp:78
TraceWriter(Trace< T > &trace, std::string fileName)
Definition: Trace.hpp:91
virtual timestamp_t * getTimestampTrace()
Definition: Trace.hpp:51
Definition: Thread.hpp:12
uint32_t index
Definition: Trace.hpp:74
bool running
Definition: Trace.hpp:76
uint32_t size
Definition: Trace.hpp:73
void endl(LogWriter &w)
Definition: RecordWriter.hpp:19
virtual uint32_t getSize()
Definition: Trace.hpp:66
Input< T > in
Definition: Block1i.hpp:21
uint64_t timestamp_t
Definition: types.hpp:12
virtual T * getTrace()
Definition: Trace.hpp:36