diff --git a/README.md b/README.md index 24fb18b..32a5558 100644 --- a/README.md +++ b/README.md @@ -27,3 +27,62 @@ If desired timestamps can be prefixed to the debug message. Timestamp output can # How-To-Use Advanced Normally all debug output is redirected to the primary serial output of each board (`Serial`). In case you want to redirect the output to another output stream you can make use of `setDebugOutputStream(&Serial2)`. + +# Documentation +### Debug : +Arduino_DebugUtils Object that will be used for calling member functions. + +### Debug.setDebugLevel(int const debug_level) : +Parameter debug_level in order of lowest to highest priority are : `DBG_NONE`, `DBG_ERROR`, `DBG_WARNING`, `DBG_INFO` (default), `DBG_DEBUG`, and `DBG_VERBOSE`. + +Return type: void. + +Example: +``` +Debug.setDebugLevel(DBG_VERBOSE); +``` +### Debug.setDebugOutputStream(Stream * stream) : +By default, Output Stream is Serial. In advanced cases other objects could be other serial ports (if available), or can be a Software Serial object. + +Return type: void. + +Example: +``` +SoftwareSerial mySerial(10, 11); // RX, TX +Debug.setDebugOutputStream(&mySerial); +``` +### Debug.timestampOn() : +Calling this function switches on the timestamp in the `Debug.print()` function call; +By default, printing timestamp is off, unless turned on using this function call. + +Return type: void. + +Example: +``` +Debug.timestampOn(); +Debug.print(DBG_VERBOSE, "i = %d", i); //Output looks like : [ 21007 ] i = 21 +``` + +### Debug.timestampOff() : +Calling this function switches off the timestamp in the `Debug.print()` function call; + +Return type: void. + +Example: +``` +Debug.timestampOff(); +Debug.print(DBG_VERBOSE, "i = %d", i); //Output looks like : i = 21 +``` + + +### Debug.print(int const debug_level, const char * fmt, ...); +This function prints the message if parameter `debug_level` in the `Debug.print(debug_level, ...)` function call belongs to the range: DBG_ERROR <= debug_level <= ( that has been set using `setDebugLevel()` function). + +Return type: void. + +Example: +``` +Debug.setDebugLevel(DBG_VERBOSE); +int i = 0; +Debug.print(DBG_VERBOSE, "DBG_VERBOSE i = %d", i); +``` diff --git a/examples/Arduino_Debug_Advance/Arduino_Debug_Advance.ino b/examples/Arduino_Debug_Advance/Arduino_Debug_Advance.ino new file mode 100644 index 0000000..5ebbcc1 --- /dev/null +++ b/examples/Arduino_Debug_Advance/Arduino_Debug_Advance.ino @@ -0,0 +1,29 @@ +/* + Advanced Debug can be helpful in embedded applications when + there are more that two microcontrollers connected serially + or a wireless sensor like XBee is connected to the serial port + that will send data wirelessly to other XBee node. + + In boards like Arduino Nano, UNO, MEGA only one serial port is available, + therefore additional Software Serial ports can be made using SoftwareSerial +*/ + +#include "Arduino_DebugUtils.h" +#include + +SoftwareSerial mySerial(10, 11); // RX, TX + +void setup() { + mySerial.begin(9600); + Debug.setDebugOutputStream(&mySerial); + Debug.setDebugLevel(DBG_VERBOSE); + Debug.timestampOn(); +} + +int i = 0; + +void loop() { + Debug.print(DBG_VERBOSE, "i = %d", i); + i++; + delay(1000); +}