gpt4 book ai didi

c - Arduino:通过UDP发送整数数组

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:45 26 4
gpt4 key购买 nike

我对Arduino很陌生,对编程也相当陌生。我试图通过UDP向MaxMSP发送一个整数数组使用WiFiUDP库中的.print方法可以为每个数据包发送一个整数:

void loop() {

Udp.beginPacket(hostIP, HOST_PORT);
Udp.print("start");

for (int i = 0; i < NUMBER_OF_SENSORS; i++) {
int adcValue = analogRead(i);
Udp.print(adcValue);
}

Udp.endPacket();
Udp.flush();
}

问题是这是相当缓慢的我得到了最大端每个传感器大约10毫秒的刷新率,我假设通过将所有整数(目前只有4个)写入一个缓冲区并将其发送到自己的数据包中,我可以将速度提高四倍。我试过这个:
void loop() {

byte sensorBuffer [NUMBER_OF_SENSORS * 2];

for (int i = 0; i < NUMBER_OF_SENSORS; i++) {
int adcValue = analogRead(i);
sensorBuffer[i*2] = highByte(adcValue);
sensorBuffer[i*2+1] = lowByte(adcValue);
}

Udp.beginPacket(hostIP, HOST_PORT);
Udp.write(sensorBuffer, NUMBER_OF_SENSORS * 2);
Udp.endPacket();
Udp.flush();
}

这会在最大端产生垃圾我有一个模糊的想法为什么会这样-数组被格式化为7位ASCII值?-但我还没搞清楚怎么让它工作。任何意见都非常感谢。

最佳答案

你需要在void循环中给出一个适当的延迟,因为形成一个包需要一定的时间,void循环运行得很快,有些包可能会丢失甚至不会形成

关于c - Arduino:通过UDP发送整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37470406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com