-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathdebug.h
81 lines (62 loc) · 2.54 KB
/
debug.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#pragma once
// #define DEBUG // toggle debug mode
#ifdef DEBUG
#include <Arduino.h>
namespace midier
{
struct Layer;
struct Time;
namespace debug
{
// forward declaration of Arduino Serial.print(...) methods
void print(const char[]);
void print(char);
void print(unsigned char);
void print(int);
void print(unsigned int);
void print(long);
void print(unsigned long);
void print(float);
void print(const __FlashStringHelper *);
void println(const char[]);
void println(char);
void println(unsigned char);
void println(int);
void println(unsigned int);
void println(long);
void println(unsigned long);
void println(float);
void println(const __FlashStringHelper *);
void println();
// midier specific
void print(const Time &);
void print(const Layer &);
void prefix(const __FlashStringHelper * file, int line, const char function[]);
} // debug
} // midier
#define PRINT(x) debug::print(x)
#define PRINTLN(x) debug::println(x)
#define TRACE_START() debug::prefix(F(__FILE__), __LINE__, __FUNCTION__)
#define TRACE_END() PRINTLN()
#define TRACE_1(x1) TRACE_START(); PRINT(x1); TRACE_END()
#define TRACE_2(x1,x2) TRACE_START(); PRINT(x1); PRINT(x2); TRACE_END()
#define TRACE_3(x1,x2,x3) TRACE_START(); PRINT(x1); PRINT(x2); PRINT(x3); TRACE_END()
#define TRACE_4(x1,x2,x3,x4) TRACE_START(); PRINT(x1); PRINT(x2); PRINT(x3); PRINT(x4); TRACE_END()
#define TRACE_5(x1,x2,x3,x4,x5) TRACE_START(); PRINT(x1); PRINT(x2); PRINT(x3); PRINT(x4); PRINT(x5); TRACE_END()
#define TRACE_6(x1,x2,x3,x4,x5,x6) TRACE_START(); PRINT(x1); PRINT(x2); PRINT(x3); PRINT(x4); PRINT(x5); PRINT(x6); TRACE_END()
#define TRACE_7(x1,x2,x3,x4,x5,x6,x7) TRACE_START(); PRINT(x1); PRINT(x2); PRINT(x3); PRINT(x4); PRINT(x5); PRINT(x6); PRINT(x7); TRACE_END()
#define TRACE_8(x1,x2,x3,x4,x5,x6,x7,x8) TRACE_START(); PRINT(x1); PRINT(x2); PRINT(x3); PRINT(x4); PRINT(x5); PRINT(x6); PRINT(x7); PRINT(x8); TRACE_END()
#else
#define PRINT(x)
#define PRINTLN(x)
#define TRACE_START()
#define TRACE_END()
#define TRACE_1(...)
#define TRACE_2(...)
#define TRACE_3(...)
#define TRACE_4(...)
#define TRACE_5(...)
#define TRACE_6(...)
#define TRACE_7(...)
#define TRACE_8(...)
#endif