-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStringDebug.ino
More file actions
44 lines (40 loc) · 1003 Bytes
/
StringDebug.ino
File metadata and controls
44 lines (40 loc) · 1003 Bytes
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
#include <stdarg.h>
void serialPrintf(const char* input...) {
if (!Serial) {
Serial.begin(9600);
return; // No timeout, either do in setup() and block, or just drop some stuff
}
va_list args;
va_start(args, input);
for(const char* i=input; *i!=0; ++i) {
if (*i!='%') {
Serial.print(*i);
continue;
}
switch (*(++i)) {
case '%': Serial.print('%'); break;
case 'd': Serial.print(va_arg(args, int), DEC); break;
case 'x': Serial.print(va_arg(args, int), HEX); break;
// Can save some space by commenting out
case 'f': Serial.print(va_arg(args, float), 2); break;
default:
Serial.print("?");
break;
}
}
va_end(args);
}
// Format to a buffer first
//void serialBufPrintf(const char * input...) {
// if (!Serial) {
// Serial.begin(9600);
// return;
// }
//
// va_list args;
// va_start(args, input);
//
// char buf[50];
// vsnprintf(buf, sizeof(buf), input, args);
// Serial.print(buf);
//}