ESP8266软接入点循环服务?

时间:2019-04-11 09:43:55

标签: c++ networking arduino udp esp8266

我正在尝试从Wemos D1 Mini(带有arduino框架的platformio ESP8266 )向Windows机器发送 udp数据包到Windows机器,在那里我必须更新3D对象。 Wemos正在打开一个soft access point,我将其连接到PC。

我每 10ms 达到一个数据包(假设我必须从传感器读取数据),但是会有明显的延迟(每100毫秒〜200毫秒 )(wireshark屏幕截图)。

Delay every 100ms = ~ every 18 packets

我已经使用串行数据包而不是 udp 对其进行了测试,在那里我完全没有问题(每 10ms 一个数据包> ,由hterm捕获)。

我唯一的猜测是与软访问点相关的一些周期性服务,但是我不知道如何解决它。有帮助吗?


代码,使用<WiFiUdp.h><ESP8266WiFi.h>

打开软访问点(在setup中):

WiFi.softAP("martin_router_king", "i_have_a_stream");

发送数据(由loop调用,其中udp_的类型为WiFiUDP,而length的类型为3):

bool Sender::sendData(float *data, uint16_t length)
{
    // Send data using udp
    udp_.beginPacket(receiver_, port_);
    for (uint16_t i = 0; i < length; ++i) {
        udp_.print(':');
        udp_.print(data[i]);
    }
    return udp_.endPacket();
}

修改 我已经测试过ESP是 wifi客户端(不再托管软访问点)了,并且它可以完美地运行。

WiFi.begin("ssid", "password");

因此“ 性能错误”必须由ESP8266使用的软访问点/网络堆栈引起。 确切的位置有什么想法(或向谁问这个问题)?

0 个答案:

没有答案