SpaIot Library
spaiotdebug.h
1/*
2 * SpaIot Library (c) by epsilonrt - epsilonrt@gmail.com
3 * This file is part of SpaIot library <https://github.com/epsilonrt/spaiot-lib>
4 *
5 * SpaIot library is licensed under a
6 * Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
7 *
8 * You should have received a copy of the license along with this
9 * work. If not, see <http://creativecommons.org/licenses/by-nc-sa/4.0/>.
10 *
11 * SpaIot library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY;
13 */
14
15#pragma once
16
17#include <Arduino.h>
18
19#if ! defined(NODEBUG_SPAIOT) && defined(DEBUG_ESP_PORT)
20 #define SPAIOT_DBG(str, ...) { DEBUG_ESP_PORT.printf(str, ##__VA_ARGS__); DEBUG_ESP_PORT.println(""); }
21 #define SPAIOT_DBGNOLN(str, ...) { DEBUG_ESP_PORT.printf(str, ##__VA_ARGS__); }
22 #define SPAIOT_ASSERT(cond, str, ...) { if (!(cond)) SPAIOT_DBG(str, ##__VA_ARGS__); }
23
24#else
25 #define SPAIOT_DBG(str, ...)
26 #define SPAIOT_DBGNOLN(str, ...)
27 #define SPAIOT_ASSERT(cond, str, ...)
28#endif
29
30#if ! defined(NODEBUG_SPAIOT) && defined(DEBUG_LED)
31 #ifndef DEBUG_LED_ONSTATE
32 #define SPAIOT_DBGLED_LOW HIGH
33 #define SPAIOT_DBGLED_HIGH LOW
34 #else
35 #if DEBUG_LED_ONSTATE == HIGH
36 #define SPAIOT_DBGLED_LOW LOW
37 #define SPAIOT_DBGLED_HIGH HIGH
38 #else
39 #define SPAIOT_DBGLED_LOW HIGH
40 #define SPAIOT_DBGLED_HIGH LOW
41 #endif
42 #endif
43
44 #define SPAIOT_DBGLED_INIT() { \
45 pinMode(DEBUG_LED, OUTPUT); \
46 digitalWrite(DEBUG_LED, SPAIOT_DBGLED_LOW); \
47 }
48 #define SPAIOT_DBGLED_SET() { \
49 digitalWrite(DEBUG_LED, SPAIOT_DBGLED_HIGH); \
50 }
51 #define SPAIOT_DBGLED_CLR() { \
52 digitalWrite(DEBUG_LED, SPAIOT_DBGLED_LOW); \
53 }
54
55#else
56#define SPAIOT_DBGLED_INIT()
57#define SPAIOT_DBGLED_SET()
58#define SPAIOT_DBGLED_CLR()
59#endif