51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
#include "wled.h"
|
|
|
|
#ifdef WLED_DEBUG_HOST
|
|
|
|
size_t NetworkDebugPrinter::write(uint8_t c) {
|
|
begin();
|
|
if (!udpConnected) return 0;
|
|
return debugUdp.write(c);
|
|
}
|
|
|
|
size_t NetworkDebugPrinter::write(const uint8_t *buf, size_t size) {
|
|
if (buf == nullptr) return 0;
|
|
begin();
|
|
if (!udpConnected) return 0;
|
|
return debugUdp.write(buf, size);
|
|
}
|
|
|
|
void NetworkDebugPrinter::begin() {
|
|
if (udpConnected) return;
|
|
if (!WLED_CONNECTED) {
|
|
debugUdp.stop();
|
|
debugPrintHostIP = INADDR_NONE;
|
|
udpConnected = false;
|
|
return;
|
|
}
|
|
|
|
if (!debugPrintHostIP && !debugPrintHostIP.fromString(netDebugPrintHost)) {
|
|
#ifdef ESP8266
|
|
WiFi.hostByName(netDebugPrintHost, debugPrintHostIP, 750);
|
|
#else
|
|
#ifdef WLED_USE_ETHERNET
|
|
ETH.hostByName(netDebugPrintHost, debugPrintHostIP);
|
|
#else
|
|
WiFi.hostByName(netDebugPrintHost, debugPrintHostIP);
|
|
#endif
|
|
#endif
|
|
}
|
|
|
|
udpConnected = debugUdp.beginPacket(debugPrintHostIP, netDebugPrintPort);
|
|
}
|
|
|
|
void NetworkDebugPrinter::flush() {
|
|
if (udpConnected) {
|
|
if (!debugUdp.endPacket()) udpConnected = false; // we were not able to send packet
|
|
}
|
|
}
|
|
|
|
NetworkDebugPrinter NetDebug;
|
|
|
|
#endif
|