SpaIot Library
Loading...
Searching...
No Matches
spaiotdebug.h
1/*
2 * SpaIot Library (c) by epsilonrt - epsilonrt@epsilonrt.fr
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#include "private/unittest_p.h"
19
20#if ! defined(NODEBUG_SPAIOT) && defined(DEBUG_ESP_PORT)
21 #define SPAIOT_DBG(...) { DEBUG_ESP_PORT.printf(__VA_ARGS__); DEBUG_ESP_PORT.println(""); }
22 #define SPAIOT_DBGP(...) { DEBUG_ESP_PORT.printf_P(__VA_ARGS__); DEBUG_ESP_PORT.println(""); }
23 #define SPAIOT_DBGNOLN(...) { DEBUG_ESP_PORT.printf(__VA_ARGS__); }
24 #define SPAIOT_DBGNOLNP(...) { DEBUG_ESP_PORT.printf_P(__VA_ARGS__); }
25 #define SPAIOT_ASSERT(cond, str, ...) { if (!(cond)) SPAIOT_DBG(str, ##__VA_ARGS__); }
26
27#else
28 #define SPAIOT_DBG(...)
29 #define SPAIOT_DBGP(...)
30 #define SPAIOT_DBGNOLN(...)
31 #define SPAIOT_DBGNOLNP(...)
32 #define SPAIOT_ASSERT(cond, str, ...)
33#endif
34
35#if ! defined(NODEBUG_SPAIOT) && defined(DEBUG_LED)
36 #ifndef DEBUG_LED_ONSTATE
37 #define SPAIOT_DBGLED_LOW HIGH
38 #define SPAIOT_DBGLED_HIGH LOW
39 #else
40 #if DEBUG_LED_ONSTATE == HIGH
41 #define SPAIOT_DBGLED_LOW LOW
42 #define SPAIOT_DBGLED_HIGH HIGH
43 #else
44 #define SPAIOT_DBGLED_LOW HIGH
45 #define SPAIOT_DBGLED_HIGH LOW
46 #endif
47 #endif
48
49 #define SPAIOT_DBGLED_INIT() { \
50 pinMode(DEBUG_LED, OUTPUT); \
51 digitalWrite(DEBUG_LED, SPAIOT_DBGLED_LOW); \
52 }
53 #define SPAIOT_DBGLED_SET() { \
54 digitalWrite(DEBUG_LED, SPAIOT_DBGLED_HIGH); \
55 }
56 #define SPAIOT_DBGLED_CLR() { \
57 digitalWrite(DEBUG_LED, SPAIOT_DBGLED_LOW); \
58 }
59
60#else
61#define SPAIOT_DBGLED_INIT()
62#define SPAIOT_DBGLED_SET()
63#define SPAIOT_DBGLED_CLR()
64#endif