NetworkDebugPrinter packet optimization.

This commit is contained in:
Blaž Kristan
2022-11-11 14:39:47 +01:00
parent c0a783198e
commit 77f04d913a
5 changed files with 38 additions and 24 deletions

View File

@@ -3,28 +3,26 @@
#ifdef WLED_DEBUG_HOST
size_t NetworkDebugPrinter::write(uint8_t c) {
if (!WLED_CONNECTED || !udpConnected) return 0;
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
}
debugUdp.beginPacket(debugPrintHostIP, netDebugPrintPort);
debugUdp.write(c);
debugUdp.endPacket();
return 1;
begin();
if (!udpConnected) return 0;
return debugUdp.write(c);
}
size_t NetworkDebugPrinter::write(const uint8_t *buf, size_t size) {
if (!WLED_CONNECTED || !udpConnected || buf == nullptr) return 0;
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
@@ -38,10 +36,13 @@ size_t NetworkDebugPrinter::write(const uint8_t *buf, size_t size) {
#endif
}
debugUdp.beginPacket(debugPrintHostIP, netDebugPrintPort);
debugUdp.write(buf, size);
debugUdp.endPacket();
return size;
udpConnected = debugUdp.beginPacket(debugPrintHostIP, netDebugPrintPort);
}
void NetworkDebugPrinter::flush() {
if (udpConnected) {
if (!debugUdp.endPacket()) udpConnected = false; // we were not able to send packet
}
}
NetworkDebugPrinter NetDebug;