diff --git a/CHANGELOG.md b/CHANGELOG.md index da11df8ff..583714c76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ All notable changes to this project will be documented in this file. ### Fixed - Telegram TLS fingerprint, remove CA validation (#21514) +- ESP32 I2S multiple fixes (#21511) +- ESP32 slow response when using UDP as in emulation (#21470) ### Removed diff --git a/RELEASENOTES.md b/RELEASENOTES.md index db05707ad..8ab49ae3e 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -149,6 +149,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm - Telegram TLS fingerprint, remove CA validation [#21514](https://github.com/arendst/Tasmota/issues/21514) - Zigbee crash when removing `ZbName` [#21449](https://github.com/arendst/Tasmota/issues/21449) - Avoid connection errors when switching to safeboot to upload OTA firmware [#21428](https://github.com/arendst/Tasmota/issues/21428) +- ESP32 slow response when using UDP as in emulation [#21470](https://github.com/arendst/Tasmota/issues/21470) - ESP32 BLE fix scanning [#21451](https://github.com/arendst/Tasmota/issues/21451) - I2S APLL not supported on all SOCs [#21483](https://github.com/arendst/Tasmota/issues/21483) - Webradio crash with invalid url [#21446](https://github.com/arendst/Tasmota/issues/21446) diff --git a/tasmota/tasmota_support/support_udp.ino b/tasmota/tasmota_support/support_udp.ino index 2e340ceb6..0cb6c4b75 100644 --- a/tasmota/tasmota_support/support_udp.ino +++ b/tasmota/tasmota_support/support_udp.ino @@ -60,7 +60,10 @@ bool UdpDisconnect(void) { if (udp_connected) { // flush any outgoing packet - PortUdp.flush(); + PortUdp.flush(); // Does nothing in core3 +#ifdef ESP32 + PortUdp.clear(); // New with core3. Does what flush() did in core2; +#endif #ifdef ESP8266 UdpCtx.disconnect(); #endif @@ -130,7 +133,8 @@ void PollUdp(void) int32_t len = PortUdp.read(packet_buffer, UDP_BUFFER_SIZE -1); packet_buffer[len] = 0; - PortUdp.flush(); +// PortUdp.flush(); + PortUdp.clear(); // New with core3. Does what flush() did in core2; AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("UDP: Packet (%d/%d)"), len, pack_len); #endif // ESP32 diff --git a/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino b/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino index b116e7abf..edc2a0d1a 100755 --- a/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino @@ -1406,6 +1406,9 @@ void Script_Stop_UDP(void) { if (!glob_script_mem.udp_flags.udp_used) return; if (glob_script_mem.udp_flags.udp_connected) { glob_script_mem.Script_PortUdp.flush(); +#ifdef ESP32 + glob_script_mem.Script_PortUdp.clear(); // New with core3. Does what flush() did in core2; +#endif glob_script_mem.Script_PortUdp.stop(); glob_script_mem.udp_flags.udp_connected = 0; }