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,40 @@ 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::All:
229
+ default :
230
+ break ;
231
+ }
213
232
214
- _debug_output_stream->print (DEBUG_MODE_STRING[debug_level]);
233
+ if (level_str != nullptr ) {
234
+ _debug_output_stream->print (level_str);
235
+ }
215
236
}
216
237
217
- bool Arduino_DebugUtils::shouldPrint (int const debug_level) const
238
+ bool Arduino_DebugUtils::shouldPrint (Arduino_DebugUtils::Level const debug_level) const
218
239
{
219
- return ((debug_level >= DBG_ERROR) && (debug_level <= DBG_VERBOSE) && (debug_level <= _debug_level));
240
+ uint_fast16_t dl = static_cast <uint_fast16_t >(debug_level);
241
+ uint_fast16_t _dl = static_cast <uint_fast16_t >(_debug_level);
242
+
243
+ return _dl & dl == dl;
220
244
}
221
245
222
246
/* *****************************************************************************
@@ -226,9 +250,9 @@ bool Arduino_DebugUtils::shouldPrint(int const debug_level) const
226
250
Arduino_DebugUtils Debug;
227
251
228
252
void setDebugMessageLevel (int const debug_level) {
229
- Debug.setDebugLevel (debug_level);
253
+ Debug.setDebugLevel (static_cast <Arduino_DebugUtils::Level>( debug_level) );
230
254
}
231
255
232
256
int getDebugMessageLevel () {
233
- return Debug.getDebugLevel ();
257
+ return static_cast < int >( Debug.getDebugLevel () );
234
258
}
0 commit comments