From ec36f93ef364f4f7724a459539dcd10daaea3420 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 22 Feb 2019 13:44:45 +0100 Subject: Add PTALog class --- include/object/ptalog.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 include/object/ptalog.h (limited to 'include') diff --git a/include/object/ptalog.h b/include/object/ptalog.h new file mode 100644 index 0000000..6b00e78 --- /dev/null +++ b/include/object/ptalog.h @@ -0,0 +1,51 @@ +#ifndef PTALOG_H +#define PTALOG_H + +#include +#include "driver/stdout.h" + +class PTALog { + public: + typedef struct { + uint8_t transition_id; + } log_entry; + + log_entry log[32]; + uint8_t log_index; + + PTALog() : log_index(0) {} + + void passTransition(uint8_t transition_id) + { + log[log_index].transition_id = transition_id; + log_index++; + } + + void reset() + { + log_index = 0; + } + + void startBenchmark(uint8_t id) + { + kout << "[PTA] benchmark start, id=" << dec << id << endl; + } + + void stopBenchmark() + { + kout << "[PTA] benchmark stop" << endl; + } + + void dump() + { + kout << "[PTA] trace, count=" << dec << log_index << endl; + for (uint8_t i = 0; i < log_index; i++) { + kout << "[PTA] transition=" << log[i].transition_id << endl; + } + } + + private: + PTALog(const PTALog& copy); +}; + +#endif -- cgit v1.2.3