From 6dfaf005d7286c584c82d5532786b54cd4b60cb9 Mon Sep 17 00:00:00 2001 From: JbLb Date: Tue, 19 Dec 2017 09:54:36 +0100 Subject: [PATCH] add extern file for debug and OTA functions --- OTAsetup.cpp | 31 +++++++++++++++++++++++++++++++ OTAsetup.h | 10 ++++++++++ config.h | 4 ++++ d_helper.cpp | 31 +++++++++++++++++++++++++++++++ d_helper.h | 21 +++++++++++++++++++++ 5 files changed, 97 insertions(+) create mode 100644 OTAsetup.cpp create mode 100644 OTAsetup.h create mode 100644 d_helper.cpp create mode 100644 d_helper.h diff --git a/OTAsetup.cpp b/OTAsetup.cpp new file mode 100644 index 0000000..54b7777 --- /dev/null +++ b/OTAsetup.cpp @@ -0,0 +1,31 @@ + +#include "OTAsetup.h" + +void initOTA(){ + // Set hostname and start OTA + ArduinoOTA.setHostname("Horloge"); + // Start of OTA + ArduinoOTA.onStart([]() { + DEBUG_PRINTLN("OTA Beginning!"); + }); + // progress of OTA + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { + DEBUG_PRINTF("progress: %u%%\r", (progress/(total/100))); + }); + // OTA onEnd + ArduinoOTA.onEnd([](){ + DEBUG_PRINTLN("\nOTA ended, let\'s restart"); + }); + // OTA error handle + ArduinoOTA.onError([](ota_error_t error) { + DEBUG_PRINT("ArduinoOTA Error["); + DEBUG_PRINT(error); + DEBUG_PRINT("]: "); + if (error == OTA_AUTH_ERROR) DEBUG_PRINTLN("Auth Failed"); + else if (error == OTA_BEGIN_ERROR) DEBUG_PRINTLN("Begin Failed"); + else if (error == OTA_CONNECT_ERROR) DEBUG_PRINTLN("Connect Failed"); + else if (error == OTA_RECEIVE_ERROR) DEBUG_PRINTLN("Receive Failed"); + else if (error == OTA_END_ERROR) DEBUG_PRINTLN("End Failed"); + }); + ArduinoOTA.begin(); +} diff --git a/OTAsetup.h b/OTAsetup.h new file mode 100644 index 0000000..6528904 --- /dev/null +++ b/OTAsetup.h @@ -0,0 +1,10 @@ + +#ifndef OTAsetup_h +#define OTAsetup_h + +#include +#include "d_helper.h" + +void initOTA(); + +#endif diff --git a/config.h b/config.h index 18fcfc5..74c1035 100644 --- a/config.h +++ b/config.h @@ -1,2 +1,6 @@ // Enable console output via telnet // #define DEBUG_TELNET + + +// Enable wifimanager debug +// #define DEBUG_WifiM diff --git a/d_helper.cpp b/d_helper.cpp new file mode 100644 index 0000000..1d14ca3 --- /dev/null +++ b/d_helper.cpp @@ -0,0 +1,31 @@ +// debug helper + +#include "d_helper.h" + +// in a terminal: telnet esp IP +#ifdef DEBUG_TELNET +WiFiServer telnetServer(23); +WiFiClient telnetClient; +#endif + +/////////////////////////////////////////////////////////////////////////// +// TELNET +/////////////////////////////////////////////////////////////////////////// +/* + Function called to handle Telnet clients + https://www.youtube.com/watch?v=j9yW10OcahI +*/ +#ifdef DEBUG_TELNET +void handleTelnet(void) { + if (telnetServer.hasClient()) { + if (!telnetClient || !telnetClient.connected()) { + if (telnetClient) { + telnetClient.stop(); + } + telnetClient = telnetServer.available(); + } else { + telnetServer.available().stop(); + } + } +} +#endif diff --git a/d_helper.h b/d_helper.h new file mode 100644 index 0000000..d2bcfa3 --- /dev/null +++ b/d_helper.h @@ -0,0 +1,21 @@ +#ifndef D_helper_h +#define D_helper_h + +void handleTelnet(void); + +// ################# Macros for debugging ################ +#ifdef DEBUG_TELNET +#define DEBUG_PRINT(x) telnetClient.print(x) +#define DEBUG_PRINTF(x,y) telnetClient.printf(x,y) +#define DEBUG_PRINT_WITH_FMT(x, fmt) telnetClient.print(x, fmt) +#define DEBUG_PRINTLN(x) telnetClient.println(x) +#define DEBUG_PRINTLN_WITH_FMT(x, fmt) telnetClient.println(x, fmt) +#else +#define DEBUG_PRINT(x) Serial.print(x) +#define DEBUG_PRINTF(x,y) Serial.printf(x,y) +#define DEBUG_PRINT_WITH_FMT(x, fmt) Serial.print(x, fmt) +#define DEBUG_PRINTLN(x) Serial.println(x) +#define DEBUG_PRINTLN_WITH_FMT(x, fmt) Serial.println(x, fmt) +#endif + +#endif