This repository was archived by the owner on Mar 1, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDebugMessage.cpp
More file actions
123 lines (110 loc) · 2.64 KB
/
DebugMessage.cpp
File metadata and controls
123 lines (110 loc) · 2.64 KB
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*
Jonathan P Weber
Library for creating formatted and filtered debug outputs
*/
#include "DebugMessage.h"
#define ANSI_NONE ""
#define ANSI_GRAY "\033[01;30m"
#define ANSI_GREEN_FAINT "\033[02;32m"
#define ANSI_BLINK_RED "\033[01;05;31m"
#define ANSI_RED "\033[01;31m"
#define ANSI_GREEN "\033[01;32m"
#define ANSI_YELLOW "\033[01;33m"
#define ANSI_YELLOW_FAINT "\033[02;33m"
#define ANSI_BLUE "\033[01;34m"
#define ANSI_BLUE_FAINT "\033[02;34m"
#define ANSI_URL "\033[01;04;34m"
#define ANSI_MAGENTA "\033[01;35m"
#define ANSI_CYAN "\033[01;36m"
#define ANSI_WHITE "\033[01;37m"
#define ANSI_RESET "\033[00;49m"
#define ANSI_RESET_BLINK "\033[01;25m"
#define ANSI_CLI ANSI_WHITE
uint8 DM_MASK;
//Instantiate global
Debug DB(921600,
DM_ERROR
| DM_TIMING
| DM_INFO
| DM_RECEIVE
| DM_SEND
);
Debug::Debug(uint32_t baud, uint16 mask)
{
BaudRate = baud;
ConfigMask.SEND = mask & DM_SEND;
ConfigMask.RECEIVE = mask & DM_RECEIVE;
ConfigMask.SSEND = mask & DM_SSEND;
ConfigMask.SRECEIVE = mask & DM_SRECEIVE;
ConfigMask.INFO = mask & DM_INFO;
ConfigMask.TIMING = mask & DM_TIMING;
ConfigMask.ERROR = mask & DM_ERROR;
ConfigMask.INIT_SD = mask & DM_INIT_SD;
ConfigMask.WRITE_SD = mask & DM_WRITE_SD;
ConfigMask.SD_MANUAL_FLUSH = mask & DM_SD_MANUAL_FLUSH;
}
Debug::~Debug()
{
}
void Debug::begin()
{
Serial.begin(BaudRate);
}
void Debug::Message(uint16 DM_TYPE, String message, bool newline)
{
String ANSI_Prefix;
switch (DM_TYPE)
{
case DM_SEND:
if (!(ConfigMask.SEND)) return;
message = "<< " + message;
message.replace("\n", "\r\n<< ");
ANSI_Prefix = ANSI_GREEN;
break;
case DM_RECEIVE:
if (!(ConfigMask.RECEIVE)) return;
message = ">> " + message;
message.replace("\n", "\r\n>> ");
ANSI_Prefix = ANSI_GREEN;
break;
case DM_SSEND:
if (!(ConfigMask.SSEND)) return;
message = "< " + message;
message.replace("\n", "\r\n< ");
ANSI_Prefix = ANSI_BLUE;
break;
case DM_SRECEIVE:
if (!(ConfigMask.SRECEIVE)) return;
message = "> " + message;
message.replace("\n", "\r\n> ");
ANSI_Prefix = ANSI_BLUE;
break;
case DM_ERROR:
if (!(ConfigMask.ERROR)) return;
message = "! " + message;
message.replace("\n", "\r\n! ");
ANSI_Prefix = ANSI_RED;
break;
case DM_INFO:
if (!(ConfigMask.INFO)) return;
message = "- " + message;
message.replace("\n", "\r\n- ");
ANSI_Prefix = ANSI_WHITE;
break;
case DM_TIMING:
if (!(ConfigMask.TIMING)) return;
message = "~ " + message;
message.replace("\n", "\r\n~ ");
ANSI_Prefix = ANSI_GRAY;
break;
}
Serial.print(ANSI_Prefix + message + ANSI_CLI);
if (newline)
{
Serial.println();
}
}
void Debug::Message(uint16 DM_TYPE, String message)
{
Message(DM_TYPE, message, true);
}