Arduino 在esp8266上保持持久带宽
我正在使用esp8266 Arduino(通过Adafruit Feather Huzzah),我试图连续向TCP套接字写入3个字符,但没有连续性。它具有非常规则的高带宽和低带宽模式。它以非常高的速率写入约10秒,然后以非常低的速率写入约4秒(参见接收数据包的图表)Arduino 在esp8266上保持持久带宽,arduino,esp8266,Arduino,Esp8266,我正在使用esp8266 Arduino(通过Adafruit Feather Huzzah),我试图连续向TCP套接字写入3个字符,但没有连续性。它具有非常规则的高带宽和低带宽模式。它以非常高的速率写入约10秒,然后以非常低的速率写入约4秒(参见接收数据包的图表) /。。。 void循环(){ 如果(!client.connect(主机、端口)){ 延迟(10); 返回; } 对于(int i=0;i
/。。。
void循环(){
如果(!client.connect(主机、端口)){
延迟(10);
返回;
}
对于(int i=0;i<1024;i++){
client.print(字符串(analogRead(A0))+“\r\n”);
延迟(1);
}
}
接收到的消息数(v2.2.0和2.3.0固件)
如果是wifi驱动程序、芯片中的某些东西或硬件定时器,我不能四处走动,有什么想法吗。。。或者别的什么
--更新--
我已经用master测试过了,它得到了一个不同的结果,但仍然是火爆的结果。它现在似乎“迎头赶上”,而不是减速,但它仍然处于~10s/~4s的模式。这可能是什么原因造成的?缓解措施有哪些选择
我知道这不是一个正确的答案,但这可能是由于Nagle的算法默认在espduino上运行。尝试使用
client.setNoDelay(false)
方法将其关闭。另外,如果你发布你的代码,其他人(比如我)可以测试它 您使用的是什么版本的ESP8266 Arduino core?您可以使用最新的git吗?在该版本发布后不久,提交了一个大型重写,修复了许多wificlienty的吞吐量问题!谢谢我会试试看,然后回来汇报。谢谢你。谢谢类似但不那么糟糕的问题。见更新的问题。
//...
void loop() {
if (!client.connect(host, port)) {
delay(10);
return;
}
for (int i=0; i < 1024; i++){
client.print(String(analogRead(A0)) + "\r\n");
delay(1);
}
}