25
25
CONSTANTS
26
26
******************************************************************************/
27
27
28
- static int const DEFAULT_DEBUG_LEVEL = DBG_INFO;
29
- static Stream * DEFAULT_OUTPUT_STREAM = &Serial;
28
+ static Arduino_DebugUtils::Level const DEFAULT_DEBUG_LEVEL = DBG_INFO;
29
+ static Stream * DEFAULT_OUTPUT_STREAM = &Serial;
30
30
31
31
/* *****************************************************************************
32
32
CTOR/DTOR
@@ -45,11 +45,11 @@ Arduino_DebugUtils::Arduino_DebugUtils() {
45
45
PUBLIC MEMBER FUNCTIONS
46
46
******************************************************************************/
47
47
48
- void Arduino_DebugUtils::setDebugLevel (int const debug_level) {
48
+ void Arduino_DebugUtils::setDebugLevel (Arduino_DebugUtils::Level const debug_level) {
49
49
_debug_level = debug_level;
50
50
}
51
51
52
- int Arduino_DebugUtils::getDebugLevel () const {
52
+ Arduino_DebugUtils::Level Arduino_DebugUtils::getDebugLevel () const {
53
53
return _debug_level;
54
54
}
55
55
@@ -89,7 +89,7 @@ void Arduino_DebugUtils::timestampOff() {
89
89
_timestamp_on = false ;
90
90
}
91
91
92
- void Arduino_DebugUtils::print (int const debug_level, const char * fmt, ...)
92
+ void Arduino_DebugUtils::print (Arduino_DebugUtils::Level const debug_level, const char * fmt, ...)
93
93
{
94
94
if (!shouldPrint (debug_level))
95
95
return ;
@@ -106,7 +106,7 @@ void Arduino_DebugUtils::print(int const debug_level, const char * fmt, ...)
106
106
va_end (args);
107
107
}
108
108
109
- void Arduino_DebugUtils::print (int const debug_level, const __FlashStringHelper * fmt, ...)
109
+ void Arduino_DebugUtils::print (Arduino_DebugUtils::Level const debug_level, const __FlashStringHelper * fmt, ...)
110
110
{
111
111
if (!shouldPrint (debug_level))
112
112
return ;
@@ -196,7 +196,7 @@ void Arduino_DebugUtils::printTimestamp()
196
196
_debug_output_stream->print (timestamp);
197
197
}
198
198
199
- void Arduino_DebugUtils::printDebugLabel (int const debug_level)
199
+ void Arduino_DebugUtils::printDebugLabel (Arduino_DebugUtils::Level const debug_level)
200
200
{
201
201
static char const * DEBUG_MODE_STRING[5 ] =
202
202
{
@@ -207,16 +207,42 @@ void Arduino_DebugUtils::printDebugLabel(int const debug_level)
207
207
" [DBG_VERBOSE] " ,
208
208
};
209
209
210
- bool is_valid_debug_level = (debug_level >= DBG_ERROR) && (debug_level <= DBG_VERBOSE);
211
- if (!is_valid_debug_level)
212
- return ;
210
+ const char * level_str = nullptr ;
211
+ switch (debug_level) {
212
+ case Arduino_DebugUtils::Level::Error:
213
+ level_str = DEBUG_MODE_STRING[0 ];
214
+ break ;
215
+ case Arduino_DebugUtils::Level::Warning:
216
+ level_str = DEBUG_MODE_STRING[1 ];
217
+ break ;
218
+ case Arduino_DebugUtils::Level::Info:
219
+ level_str = DEBUG_MODE_STRING[2 ];
220
+ break ;
221
+ case Arduino_DebugUtils::Level::Debug:
222
+ level_str = DEBUG_MODE_STRING[3 ];
223
+ break ;
224
+ case Arduino_DebugUtils::Level::Verbose:
225
+ level_str = DEBUG_MODE_STRING[4 ];
226
+ break ;
227
+ case Arduino_DebugUtils::Level::None:
228
+ case Arduino_DebugUtils::Level::Profiling:
229
+ case Arduino_DebugUtils::Level::ContinuousIntegration:
230
+ case Arduino_DebugUtils::Level::All:
231
+ default :
232
+ break ;
233
+ }
213
234
214
- _debug_output_stream->print (DEBUG_MODE_STRING[debug_level]);
235
+ if (level_str != nullptr ) {
236
+ _debug_output_stream->print (level_str);
237
+ }
215
238
}
216
239
217
- bool Arduino_DebugUtils::shouldPrint (int const debug_level) const
240
+ bool Arduino_DebugUtils::shouldPrint (Arduino_DebugUtils::Level const debug_level) const
218
241
{
219
- return ((debug_level >= DBG_ERROR) && (debug_level <= DBG_VERBOSE) && (debug_level <= _debug_level));
242
+ uint_fast16_t dl = static_cast <uint_fast16_t >(debug_level);
243
+ uint_fast16_t _dl = static_cast <uint_fast16_t >(_debug_level);
244
+
245
+ return _dl & dl == dl;
220
246
}
221
247
222
248
/* *****************************************************************************
@@ -226,9 +252,9 @@ bool Arduino_DebugUtils::shouldPrint(int const debug_level) const
226
252
Arduino_DebugUtils Debug;
227
253
228
254
void setDebugMessageLevel (int const debug_level) {
229
- Debug.setDebugLevel (debug_level);
255
+ Debug.setDebugLevel (static_cast <Arduino_DebugUtils::Level>( debug_level) );
230
256
}
231
257
232
258
int getDebugMessageLevel () {
233
- return Debug.getDebugLevel ();
259
+ return static_cast < int >( Debug.getDebugLevel () );
234
260
}
0 commit comments