2525 CONSTANTS
2626 ******************************************************************************/
2727
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;
3030
3131/* *****************************************************************************
3232 CTOR/DTOR
@@ -45,11 +45,11 @@ Arduino_DebugUtils::Arduino_DebugUtils() {
4545 PUBLIC MEMBER FUNCTIONS
4646 ******************************************************************************/
4747
48- void Arduino_DebugUtils::setDebugLevel (int const debug_level) {
48+ void Arduino_DebugUtils::setDebugLevel (Arduino_DebugUtils::Level const debug_level) {
4949 _debug_level = debug_level;
5050}
5151
52- int Arduino_DebugUtils::getDebugLevel () const {
52+ Arduino_DebugUtils::Level Arduino_DebugUtils::getDebugLevel () const {
5353 return _debug_level;
5454}
5555
@@ -89,7 +89,7 @@ void Arduino_DebugUtils::timestampOff() {
8989 _timestamp_on = false ;
9090}
9191
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, ...)
9393{
9494 if (!shouldPrint (debug_level))
9595 return ;
@@ -106,7 +106,7 @@ void Arduino_DebugUtils::print(int const debug_level, const char * fmt, ...)
106106 va_end (args);
107107}
108108
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, ...)
110110{
111111 if (!shouldPrint (debug_level))
112112 return ;
@@ -196,7 +196,7 @@ void Arduino_DebugUtils::printTimestamp()
196196 _debug_output_stream->print (timestamp);
197197}
198198
199- void Arduino_DebugUtils::printDebugLabel (int const debug_level)
199+ void Arduino_DebugUtils::printDebugLabel (Arduino_DebugUtils::Level const debug_level)
200200{
201201 static char const * DEBUG_MODE_STRING[5 ] =
202202 {
@@ -207,16 +207,40 @@ void Arduino_DebugUtils::printDebugLabel(int const debug_level)
207207 " [DBG_VERBOSE] " ,
208208 };
209209
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+ }
213232
214- _debug_output_stream->print (DEBUG_MODE_STRING[debug_level]);
233+ if (level_str != nullptr ) {
234+ _debug_output_stream->print (level_str);
235+ }
215236}
216237
217- bool Arduino_DebugUtils::shouldPrint (int const debug_level) const
238+ bool Arduino_DebugUtils::shouldPrint (Arduino_DebugUtils::Level const debug_level) const
218239{
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;
220244}
221245
222246/* *****************************************************************************
@@ -226,9 +250,9 @@ bool Arduino_DebugUtils::shouldPrint(int const debug_level) const
226250Arduino_DebugUtils Debug;
227251
228252void setDebugMessageLevel (int const debug_level) {
229- Debug.setDebugLevel (debug_level);
253+ Debug.setDebugLevel (static_cast <Arduino_DebugUtils::Level>( debug_level) );
230254}
231255
232256int getDebugMessageLevel () {
233- return Debug.getDebugLevel ();
257+ return static_cast < int >( Debug.getDebugLevel () );
234258}
0 commit comments