Files
Arduino_libraries/AsyncMQTT_ESP32/src/AsyncMQTT_ESP32_Debug.h

104 lines
6.6 KiB
C

/****************************************************************************************************************************
AsyncMQTT_ESP32_Debug.h
AsyncMQTT_ESP32 is a library for ESP32 boards using WiFi or LwIP W5500 / W6100 / ENC28J60 / LAN8720 Ethernet
Based on and modified from :
1) async-mqtt-client (https://github.com/marvinroger/async-mqtt-client)
2) AsyncMQTT_Generic (https://github.com/khoih-prog/AsyncMQTT_Generic)
Built by Khoi Hoang https://github.com/khoih-prog/AsyncMQTT_ESP32
Version: 1.10.0
Version Modified By Date Comments
------- ----------- ---------- -----------
1.8.0 K Hoang 17/12/2022 Initial coding to port to ESP32 boards using WiFi or LwIP W5500, LAN8720 or ENC28J60
1.9.0 K Hoang 21/12/2022 Add support to ESP32S2/C3 boards using LwIP W5500 or ENC28J60 Ethernet
1.10.0 K Hoang 09/01/2023 Add support to ESP32 and ESP32S2/S3/C3 boards using LwIP W6100
*****************************************************************************************************************************/
#pragma once
#ifndef ASYNC_MQTT_ESP32_DEBUG_H
#define ASYNC_MQTT_ESP32_DEBUG_H
#ifdef ASYNC_MQTT_DEBUG_PORT
#define DBG_PORT_AMQTT ASYNC_MQTT_DEBUG_PORT
#else
#define DBG_PORT_AMQTT Serial
#endif
// Change _ASYNC_MQTT_LOGLEVEL_ to set tracing and logging verbosity
// 0: DISABLED: no logging
// 1: ERROR: errors
// 2: WARN: errors and warnings
// 3: INFO: errors, warnings and informational (default)
// 4: DEBUG: errors, warnings, informational and debug
#ifndef _ASYNC_MQTT_LOGLEVEL_
#define _ASYNC_MQTT_LOGLEVEL_ 1
#endif
/////////////////////////////////////////////////////////
#define AMQTT_PRINT_MARK AMQTT_PRINT("[AMQTT] ")
#define AMQTT_PRINT_SP DBG_PORT_AMQTT.print(" ")
#define AMQTT_PRINT_SP0X DBG_PORT_AMQTT.print(" 0x")
#define AMQTT_PRINT DBG_PORT_AMQTT.print
#define AMQTT_PRINTLN DBG_PORT_AMQTT.println
#define AMQTT_PRINTF DBG_PORT_AMQTT.printf
/////////////////////////////////////////////////////////
#define AMQTT_DEBUG(...) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINTF(__VA_ARGS__); }
#define AMQTT_SSL_DEBUG(...) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINTF(__VA_ARGS__); }
#define AMQTT_ASSERT( a ) do{ if(!(a)){AMQTT_PRINTF("ASSERT: %s %u \n", __FILE__, __LINE__);}}while(0)
/////////////////////////////////////////////////////////
#define AMQTT_LOGERROR(x) if(_ASYNC_MQTT_LOGLEVEL_>0) { AMQTT_PRINT_MARK; AMQTT_PRINTLN(x); }
#define AMQTT_LOGERROR0(x) if(_ASYNC_MQTT_LOGLEVEL_>0) { AMQTT_PRINT(x); }
#define AMQTT_LOGERROR1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>0) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINTLN(y); }
#define AMQTT_HEXLOGERROR1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>0) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(y, HEX); }
#define AMQTT_LOGERROR2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>0) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINTLN(z); }
#define AMQTT_HEXLOGERROR2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>0) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINT(y, HEX); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(z, HEX); }
#define AMQTT_LOGERROR3(x,y,z,w) if(_ASYNC_MQTT_LOGLEVEL_>0) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINT(z); AMQTT_PRINT_SP; AMQTT_PRINTLN(w); }
/////////////////////////////////////////////////////////
#define AMQTT_LOGWARN(x) if(_ASYNC_MQTT_LOGLEVEL_>1) { AMQTT_PRINT_MARK; AMQTT_PRINTLN(x); }
#define AMQTT_LOGWARN0(x) if(_ASYNC_MQTT_LOGLEVEL_>1) { AMQTT_PRINT(x); }
#define AMQTT_LOGWARN1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>1) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINTLN(y); }
#define AMQTT_HEXLOGWARN1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>1) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(y, HEX); }
#define AMQTT_LOGWARN2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>1) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINTLN(z); }
#define AMQTT_HEXLOGWARN2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>1) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINT(y, HEX); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(z, HEX); }
#define AMQTT_LOGWARN3(x,y,z,w) if(_ASYNC_MQTT_LOGLEVEL_>1) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINT(z); AMQTT_PRINT_SP; AMQTT_PRINTLN(w); }
/////////////////////////////////////////////////////////
#define AMQTT_LOGINFO(x) if(_ASYNC_MQTT_LOGLEVEL_>2) { AMQTT_PRINT_MARK; AMQTT_PRINTLN(x); }
#define AMQTT_LOGINFO0(x) if(_ASYNC_MQTT_LOGLEVEL_>2) { AMQTT_PRINT(x); }
#define AMQTT_LOGINFO1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>2) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINTLN(y); }
#define AMQTT_HEXLOGINFO1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>2) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(y, HEX); }
#define AMQTT_LOGINFO2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>2) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINTLN(z); }
#define AMQTT_HEXLOGINFO2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>2) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINT(y, HEX); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(z, HEX); }
#define AMQTT_LOGINFO3(x,y,z,w) if(_ASYNC_MQTT_LOGLEVEL_>2) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINT(z); AMQTT_PRINT_SP; AMQTT_PRINTLN(w); }
/////////////////////////////////////////////////////////
#define AMQTT_LOGDEBUG(x) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINT_MARK; AMQTT_PRINTLN(x); }
#define AMQTT_LOGDEBUG0(x) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINT(x); }
#define AMQTT_LOGDEBUG1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINTLN(y); }
#define AMQTT_HEXLOGDEBUG1(x,y) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(y, HEX); }
#define AMQTT_LOGDEBUG2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINTLN(z); }
#define AMQTT_HEXLOGDEBUG2(x,y,z) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP0X; AMQTT_PRINT(y, HEX); AMQTT_PRINT_SP0X; AMQTT_PRINTLN(z, HEX); }
#define AMQTT_LOGDEBUG3(x,y,z,w) if(_ASYNC_MQTT_LOGLEVEL_>3) { AMQTT_PRINT_MARK; AMQTT_PRINT(x); AMQTT_PRINT_SP; AMQTT_PRINT(y); AMQTT_PRINT_SP; AMQTT_PRINT(z); AMQTT_PRINT_SP; AMQTT_PRINTLN(w); }
/////////////////////////////////////////////////////////
#endif //ASYNC_MQTT_ESP32_DEBUG_H