Bluenet
5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_LogBinaryProtocol.h
Go to the documentation of this file.
1
/*
2
* Author: Crownstone Team
3
* Copyright: Crownstone (https://crownstone.rocks)
4
* Date: Sep 1, 2022
5
* License: LGPLv3+, Apache License 2.0, and/or MIT (triple-licensed)
6
*/
7
8
#pragma once
9
10
#include <
logging/impl/cs_LogUtils.h
>
11
20
#define _log(level, addNewLine, fmt, ...) \
21
if (level <= SERIAL_VERBOSITY) { \
22
cs_log_args(fileNameHash(__FILE__, sizeof(__FILE__)), __LINE__, level, addNewLine, fmt, ##__VA_ARGS__); \
23
}
24
25
// No manual formatting: uses default format based on element type.
26
#define _logArray0(level, addNewLine, pointer, size) \
27
if (level <= SERIAL_VERBOSITY) { \
28
cs_log_array( \
29
fileNameHash(__FILE__, sizeof(__FILE__)), \
30
__LINE__, \
31
level, \
32
addNewLine, \
33
false, \
34
pointer, \
35
size, \
36
"["
, \
37
"]", \
38
", "); \
39
}
40
41
// Manual element format, but default start and end format.
42
#define _logArray1(level, addNewLine, pointer, size, elementFmt) \
43
if (level <= SERIAL_VERBOSITY) { \
44
cs_log_array( \
45
fileNameHash(__FILE__, sizeof(__FILE__)), \
46
__LINE__, \
47
level, \
48
addNewLine, \
49
false, \
50
pointer, \
51
size, \
52
"["
, \
53
"]", \
54
", ", \
55
elementFmt); \
56
}
57
58
// Manual start and end format. Default element format, based on element type.
59
#define _logArray2(level, addNewLine, pointer, size, startFmt, endFmt) \
60
if (level <= SERIAL_VERBOSITY) { \
61
cs_log_array( \
62
fileNameHash(__FILE__, sizeof(__FILE__)), \
63
__LINE__, \
64
level, \
65
addNewLine, \
66
false, \
67
pointer, \
68
size, \
69
startFmt, \
70
endFmt, \
71
", "
); \
72
}
73
74
// Manual start and end format. Default element separation format.
75
#define _logArray3(level, addNewLine, pointer, size, startFmt, endFmt, elementFmt) \
76
if (level <= SERIAL_VERBOSITY) { \
77
cs_log_array( \
78
fileNameHash(__FILE__, sizeof(__FILE__)), \
79
__LINE__, \
80
level, \
81
addNewLine, \
82
false, \
83
pointer, \
84
size, \
85
startFmt, \
86
endFmt, \
87
", "
, \
88
elementFmt); \
89
}
90
91
// Manual format.
92
#define _logArray4(level, addNewLine, pointer, size, startFmt, endFmt, elementFmt, seperationFmt) \
93
if (level <= SERIAL_VERBOSITY) { \
94
cs_log_array( \
95
fileNameHash(__FILE__, sizeof(__FILE__)), \
96
__LINE__, \
97
level, \
98
addNewLine, \
99
false, \
100
pointer, \
101
size, \
102
startFmt, \
103
endFmt, \
104
seperationFmt, \
105
elementFmt); \
106
}
107
108
// Manual format.
109
#define _logArray5(level, addNewLine, pointer, size, startFmt, endFmt, elementFmt, seperationFmt, reverse) \
110
if (level <= SERIAL_VERBOSITY) { \
111
cs_log_array( \
112
fileNameHash(__FILE__, sizeof(__FILE__)), \
113
__LINE__, \
114
level, \
115
addNewLine, \
116
reverse, \
117
pointer, \
118
size, \
119
startFmt, \
120
endFmt, \
121
seperationFmt, \
122
elementFmt); \
123
}
124
125
// Helper function that returns argument 5 (which is one of the _logArrayX definitions).
126
#define _logArrayGetArg5(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ...) arg6
127
128
#define _logArray(level, addNewLine, pointer, ...) \
129
_logArrayGetArg5(__VA_ARGS__, _logArray5, _logArray4, _logArray3, _logArray2, _logArray1, _logArray0)( \
130
level, addNewLine, pointer, __VA_ARGS__)
cs_LogUtils.h
source
include
logging
impl
cs_LogBinaryProtocol.h
Generated by
1.9.5