Repository navigation
Expand file tree
/
Copy pathConsoleLog.cpp
More file actions
88 lines (80 loc) · 1.83 KB
/
Copy pathConsoleLog.cpp
File metadata and controls
88 lines (80 loc) · 1.83 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
/*
Console code - Scott Penrose <[email protected]>
*/
#include <Arduino.h>
#include "ConsolePrint.h"
void WII5Sh3dConsole::setLevel(byte l) {
level = l;
}
// TODO Move to Sh3dNodeErrors
void Console::printPrefix(uint8_t level) {
switch(level) {
case LOG_INFO:
printf(F(CONSOLE_PRE_INFO));
break;
case LOG_WARN:
printf(F(CONSOLE_PRE_WARN));
break;
case LOG_ERROR:
printf(F(CONSOLE_PRE_ERROR));
break;
case LOG_DEBUG:
printf(F(CONSOLE_PRE_DEBUG));
break;
case LOG_FATAL:
printf(F(CONSOLE_PRE_FATAL));
break;
default:
// Do we need unknown?
break;
}
printDateTime();
printf(F(CONSOLE_POST_TIME));
}
// printf support
void Console::log(uint8_t l, char* out, ...) {
if (level < l) return;
if (!check()) return;
printPrefix(l);
va_list argptr;
va_start(argptr, out);
vsnprintf(printBuffer, bufferMax, out, argptr);
va_end(argptr);
print(printBuffer);
printNewLine();
}
// Convert FLASH String to String
void Console::log(uint8_t l, const __FlashStringHelper *out, ... ){
if (level < l) return;
if (!check()) return;
printPrefix(l);
va_list argptr;
va_start(argptr, out);
VSNPRINTF(printBuffer, bufferMax, (const char *)out, argptr);
va_end(argptr);
print(printBuffer);
printNewLine();
}
// TODO - Compile time option to remove unused entries - e.g We may not support String
void Console::safeLog(uint8_t l, char* out, ...) {
if (!check()) return;
printPrefix(l);
va_list argptr;
va_start(argptr, out);
vsnprintf(printBuffer, bufferMax, out, argptr);
va_end(argptr);
print(printBuffer);
printNewLine();
flush();
}
void Console::safeLog(uint8_t l, const __FlashStringHelper *out, ... ){
if (!check()) return;
printPrefix(l);
va_list argptr;
va_start(argptr, out);
VSNPRINTF(printBuffer, bufferMax, (const char *)out, argptr);
va_end(argptr);
print(printBuffer);
printNewLine();
flush();
}