diff --git a/MyConfig.h b/MyConfig.h index 5d9fb31..a51c98c 100644 --- a/MyConfig.h +++ b/MyConfig.h @@ -46,7 +46,21 @@ * the flag in your sketch. */ //#define MY_DEBUG - +/** + * @def MY_DEBUGDEVICE + * @brief Define MY_DEBUGDEVICE to redirect debug prints. + * + * If defined, MY_DEBUGDEVICE replaces MY_SERIALDEVICE for the purpose + * of printing debug messages. This only applies to debugging. + * + * The intent is to provide the ability to send debugging messages + * out a different serial port than what is being used for + * communication between nodes or from gateway to controller when + * this communication uses a serial interface. This assumes that + * the MY_DEBUGDEVICE serial interface already exists. It can be a + * hardware serial device or a software serial device. + */ +//#define MY_DEBUGDEVICE /** * @def MY_DEBUG_OTA * @brief Define MY_DEBUG_OTA to redirect debug prints to given node ID @@ -1861,6 +1875,7 @@ // debug #define MY_DEBUG +#define MY_DEBUGDEVICE #define MY_DEBUG_OTA #define MY_DEBUG_OTA_DISABLE_ACK #define MY_SPECIAL_DEBUG diff --git a/hal/architecture/AVR/MyHwAVR.cpp b/hal/architecture/AVR/MyHwAVR.cpp index b862f92..8a3bf22 100644 --- a/hal/architecture/AVR/MyHwAVR.cpp +++ b/hal/architecture/AVR/MyHwAVR.cpp @@ -313,17 +313,20 @@ uint16_t hwFreeMem() void hwDebugPrint(const char *fmt, ... ) { +#ifndef MY_DEBUGDEVICE +#define MY_DEBUGDEVICE MY_SERIALDEVICE +#endif #ifndef MY_DISABLED_SERIAL char fmtBuffer[MY_SERIAL_OUTPUT_SIZE]; #ifdef MY_GATEWAY_SERIAL // prepend debug message to be handled correctly by controller (C_INTERNAL, I_LOG_MESSAGE) snprintf_P(fmtBuffer, sizeof(fmtBuffer), PSTR("0;255;%" PRIu8 ";0;%" PRIu8 ";%" PRIu32 " "), C_INTERNAL, I_LOG_MESSAGE, hwMillis()); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); #else // prepend timestamp - MY_SERIALDEVICE.print(hwMillis()); - MY_SERIALDEVICE.print(F(" ")); + MY_DEBUGDEVICE.print(hwMillis()); + MY_DEBUGDEVICE.print(F(" ")); #endif va_list args; va_start (args, fmt ); @@ -334,8 +337,8 @@ void hwDebugPrint(const char *fmt, ... ) fmtBuffer[sizeof(fmtBuffer) - 1] = '\0'; #endif va_end (args); - MY_SERIALDEVICE.print(fmtBuffer); - MY_SERIALDEVICE.flush(); + MY_DEBUGDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.flush(); #else (void)fmt; #endif diff --git a/hal/architecture/ESP8266/MyHwESP8266.cpp b/hal/architecture/ESP8266/MyHwESP8266.cpp index fcce169..4a85707 100644 --- a/hal/architecture/ESP8266/MyHwESP8266.cpp +++ b/hal/architecture/ESP8266/MyHwESP8266.cpp @@ -149,17 +149,20 @@ uint16_t hwFreeMem() void hwDebugPrint(const char *fmt, ... ) { +#ifndef MY_DEBUGDEVICE +#define MY_DEBUGDEVICE MY_SERIALDEVICE +#endif #ifndef MY_DISABLED_SERIAL char fmtBuffer[MY_SERIAL_OUTPUT_SIZE]; #ifdef MY_GATEWAY_SERIAL // prepend debug message to be handled correctly by controller (C_INTERNAL, I_LOG_MESSAGE) snprintf_P(fmtBuffer, sizeof(fmtBuffer), PSTR("0;255;%" PRIu8 ";0;%" PRIu8 ";%" PRIu32 " "), C_INTERNAL, I_LOG_MESSAGE, hwMillis()); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); #else // prepend timestamp - MY_SERIALDEVICE.print(hwMillis()); - MY_SERIALDEVICE.print(" "); + MY_DEBUGDEVICE.print(hwMillis()); + MY_DEBUGDEVICE.print(" "); #endif va_list args; va_start (args, fmt ); @@ -170,8 +173,8 @@ void hwDebugPrint(const char *fmt, ... ) fmtBuffer[sizeof(fmtBuffer) - 1] = '\0'; #endif va_end (args); - MY_SERIALDEVICE.print(fmtBuffer); - MY_SERIALDEVICE.flush(); + MY_DEBUGDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.flush(); #else (void)fmt; #endif diff --git a/hal/architecture/NRF5/MyHwNRF5.cpp b/hal/architecture/NRF5/MyHwNRF5.cpp index 024c4eb..b67d24c 100644 --- a/hal/architecture/NRF5/MyHwNRF5.cpp +++ b/hal/architecture/NRF5/MyHwNRF5.cpp @@ -507,17 +507,20 @@ uint16_t hwFreeMem() void hwDebugPrint(const char *fmt, ...) { +#ifndef MY_DEBUGDEVICE +#define MY_DEBUGDEVICE MY_SERIALDEVICE +#endif #ifndef MY_DISABLED_SERIAL char fmtBuffer[MY_SERIAL_OUTPUT_SIZE]; #ifdef MY_GATEWAY_SERIAL // prepend debug message to be handled correctly by controller (C_INTERNAL, I_LOG_MESSAGE) snprintf(fmtBuffer, sizeof(fmtBuffer), PSTR("0;255;%" PRIu8 ";0;%" PRIu8 ";%" PRIu32 " "), C_INTERNAL, I_LOG_MESSAGE, hwMillis()); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); #else // prepend timestamp - MY_SERIALDEVICE.print(hwMillis()); - MY_SERIALDEVICE.print(F(" ")); + MY_DEBUGDEVICE.print(hwMillis()); + MY_DEBUGDEVICE.print(F(" ")); #endif va_list args; va_start (args, fmt ); @@ -528,8 +531,8 @@ void hwDebugPrint(const char *fmt, ...) fmtBuffer[sizeof(fmtBuffer) - 1] = '\0'; #endif va_end (args); - MY_SERIALDEVICE.print(fmtBuffer); - MY_SERIALDEVICE.flush(); + MY_DEBUGDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.flush(); #else (void)fmt; #endif diff --git a/hal/architecture/SAMD/MyHwSAMD.cpp b/hal/architecture/SAMD/MyHwSAMD.cpp index 2533da6..47a14af 100644 --- a/hal/architecture/SAMD/MyHwSAMD.cpp +++ b/hal/architecture/SAMD/MyHwSAMD.cpp @@ -181,18 +181,21 @@ uint16_t hwFreeMem() void hwDebugPrint(const char *fmt, ... ) { +#ifndef MY_DEBUGDEVICE +#define MY_DEBUGDEVICE MY_SERIALDEVICE +#endif #ifndef MY_DISABLED_SERIAL - if (MY_SERIALDEVICE) { + if (MY_DEBUGDEVICE) { char fmtBuffer[MY_SERIAL_OUTPUT_SIZE]; #ifdef MY_GATEWAY_SERIAL // prepend debug message to be handled correctly by controller (C_INTERNAL, I_LOG_MESSAGE) snprintf(fmtBuffer, sizeof(fmtBuffer), PSTR("0;255;%" PRIu8 ";0;%" PRIu8 ";%" PRIu32 " "), C_INTERNAL, I_LOG_MESSAGE, hwMillis()); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); #else // prepend timestamp - MY_SERIALDEVICE.print(hwMillis()); - MY_SERIALDEVICE.print(" "); + MY_DEBUGDEVICE.print(hwMillis()); + MY_DEBUGDEVICE.print(" "); #endif va_list args; va_start (args, fmt ); @@ -203,7 +206,7 @@ void hwDebugPrint(const char *fmt, ... ) fmtBuffer[sizeof(fmtBuffer) - 1] = '\0'; #endif va_end (args); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); // MY_SERIALDEVICE.flush(); } #else diff --git a/hal/architecture/STM32F1/MyHwSTM32F1.cpp b/hal/architecture/STM32F1/MyHwSTM32F1.cpp index c8a5e54..435d244 100644 --- a/hal/architecture/STM32F1/MyHwSTM32F1.cpp +++ b/hal/architecture/STM32F1/MyHwSTM32F1.cpp @@ -170,17 +170,20 @@ uint16_t hwFreeMem() void hwDebugPrint(const char *fmt, ...) { +#ifndef MY_DEBUGDEVICE +#define MY_DEBUGDEVICE MY_SERIALDEVICE +#endif #ifndef MY_DISABLED_SERIAL char fmtBuffer[MY_SERIAL_OUTPUT_SIZE]; #ifdef MY_GATEWAY_SERIAL // prepend debug message to be handled correctly by controller (C_INTERNAL, I_LOG_MESSAGE) snprintf_P(fmtBuffer, sizeof(fmtBuffer), PSTR("0;255;%" PRIu8 ";0;%" PRIu8 ";%" PRIu32 " "), C_INTERNAL, I_LOG_MESSAGE, hwMillis()); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); #else // prepend timestamp - MY_SERIALDEVICE.print(hwMillis()); - MY_SERIALDEVICE.print(" "); + MY_DEBUGDEVICE.print(hwMillis()); + MY_DEBUGDEVICE.print(" "); #endif va_list args; va_start(args, fmt); @@ -191,10 +194,10 @@ void hwDebugPrint(const char *fmt, ...) fmtBuffer[sizeof(fmtBuffer) - 1] = '\0'; #endif va_end(args); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); // Disable flush since current STM32duino implementation performs a reset // instead of an actual flush - //MY_SERIALDEVICE.flush(); + //MY_DEBUGDEVICE.flush(); #else (void)fmt; #endif diff --git a/hal/architecture/Teensy3/MyHwTeensy3.cpp b/hal/architecture/Teensy3/MyHwTeensy3.cpp index 6355ce9..1771795 100644 --- a/hal/architecture/Teensy3/MyHwTeensy3.cpp +++ b/hal/architecture/Teensy3/MyHwTeensy3.cpp @@ -167,17 +167,20 @@ void hwRandomNumberInit(void) void hwDebugPrint(const char *fmt, ...) { +#ifndef MY_DEBUGDEVICE +#define MY_DEBUGDEVICE MY_SERIALDEVICE +#endif #ifndef MY_DISABLED_SERIAL char fmtBuffer[MY_SERIAL_OUTPUT_SIZE]; #ifdef MY_GATEWAY_SERIAL // prepend debug message to be handled correctly by controller (C_INTERNAL, I_LOG_MESSAGE) snprintf_P(fmtBuffer, sizeof(fmtBuffer), PSTR("0;255;%" PRIu8 ";0;%" PRIu8 ";%" PRIu32 " "), C_INTERNAL, I_LOG_MESSAGE, hwMillis()); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); #else // prepend timestamp - MY_SERIALDEVICE.print(hwMillis()); - MY_SERIALDEVICE.print(F(" ")); + MY_DEBUGDEVICE.print(hwMillis()); + MY_DEBUGDEVICE.print(F(" ")); #endif va_list args; va_start(args, fmt); @@ -188,7 +191,7 @@ void hwDebugPrint(const char *fmt, ...) fmtBuffer[sizeof(fmtBuffer) - 1] = '\0'; #endif va_end(args); - MY_SERIALDEVICE.print(fmtBuffer); + MY_DEBUGDEVICE.print(fmtBuffer); #else (void)fmt; #endif diff --git a/keywords.txt b/keywords.txt index 67468c9..5c87e38 100644 --- a/keywords.txt +++ b/keywords.txt @@ -56,6 +56,7 @@ MY_PASSIVE_NODE LITERAL1 # debug MY_DEBUG LITERAL1 +MY_DEBUGDEVICE LITERAL1 MY_DEBUG_OTA LITERAL1 MY_DEBUG_OTA_DISABLE_ACK LITERAL1 MY_SPECIAL_DEBUG LITERAL1