// How to avoid extremely redundant `#ifdef DEBUG` instructions for every Serial.print?
// https://forum.arduino.cc/t/how-to-avoid-extremely-redundant-ifdef-debug-instructions-for-every-serial-print/1324688/8
#define DEBUG_ERROR true
#define DEBUG_ERROR_SERIAL \
if (DEBUG_ERROR) Serial
#define DEBUG_WARNING true
#define DEBUG_WARNING_SERIAL \
if (DEBUG_WARNING) Serial
#define DEBUG_INFORMATION true
#define DEBUG_INFORMATION_SERIAL \
if (DEBUG_INFORMATION) Serial
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
DEBUG_ERROR_SERIAL.println("This is an error message");
DEBUG_WARNING_SERIAL.println("This is a warning message");
DEBUG_INFORMATION_SERIAL.print("The state of pin 5 is ");
DEBUG_INFORMATION_SERIAL.println(digitalRead(5) ? "HIGH" : "LOW");
Serial.println("This is standard program output");
}
void loop() {
// put your main code here, to run repeatedly:
}