Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WiFi上的ESP32 UDP数据包接收延迟_Udp_Esp32_Packet Loss - Fatal编程技术网

WiFi上的ESP32 UDP数据包接收延迟

WiFi上的ESP32 UDP数据包接收延迟,udp,esp32,packet-loss,Udp,Esp32,Packet Loss,我有一个相对简单的ESP32应用程序,使用WiFi上的UDP和Arduino IDE。测试应用程序每两秒轮询一次接收器应用程序。所有数据报的长度均为5字节。通常,接收器在大约150ms内作出响应,但是大约每5000个数据包,接收器就无法响应,直到另一个轮询到达,然后丢失的响应与对下一个轮询的响应一起被接收。起初,我认为我在WiFi上丢失了UDP数据包,但有时似乎只有在下一次收到的轮询“碰撞”后,才会收到收到的数据包 数据报到达被监控如下 pktSize = udp.parsePacket()

我有一个相对简单的ESP32应用程序,使用WiFi上的UDP和Arduino IDE。测试应用程序每两秒轮询一次接收器应用程序。所有数据报的长度均为5字节。通常,接收器在大约150ms内作出响应,但是大约每5000个数据包,接收器就无法响应,直到另一个轮询到达,然后丢失的响应与对下一个轮询的响应一起被接收。起初,我认为我在WiFi上丢失了UDP数据包,但有时似乎只有在下一次收到的轮询“碰撞”后,才会收到收到的数据包

数据报到达被监控如下

  pktSize = udp.parsePacket();
在出现另一个数据包之前,pktSize不会偶尔设置为非零

凭直觉,我已经用include“esp_WiFi.h”替换了#include“WiFi.h”,这似乎解决了问题,而且还将投票响应时间从大约150毫秒缩短到60毫秒

有人知道发生了什么事吗? “Wifi.h”和“esp_Wifi.h”之间有什么区别?我看到的大多数esp32应用程序似乎都使用“Wifi.h”


谢谢

如果你想发布一个完整的程序,也许有人可以帮助你。否则你会让我们猜测你的程序还能做什么。事实上,提供代码比描述代码要有用得多。是的,我知道这一点,但我不想给任何人带来麻烦。代码很可能没有问题。我正在寻找一个其他人可能会认识到的问题,这可能与WiFi库本身有关。我演示了如何等待传入的UDP数据包,我确信这是相当标准的。我可以发布代码的精简版本,但缺陷仅显示每5000到10000次轮询。谁会想调试它。我特别感兴趣的是“wifi.h”和“esp_wifi.h”之间的区别,如果有人知道的话。如果我能得到这个问题的答案,我会很高兴的。