0

这是问题所在。传感器板每秒以各种 UDP 数据包大小发送 31 字节数据 3 次。例如:

1st packet 6 bytes
2nd packet 8 bytes
3rd packet 1 byte
4th packet 5 bytes
5th packet 5 bytes
6th packet 6 bytes

1st packet 4 bytes
2nd packet 5 bytes
3rd packet 1 byte
4th packet 7 bytes
5th packet 3 bytes
6th packet 6 bytes
7th packet 5 bytes

有多个传感器板从不同位置发送数据。

我遇到的问题是如何在接收到多个传感器板数据时对其进行序列检测。我可以顺序检测一块板,因为它是连续的。但不知道如何排序检测每个传感器板的数据,然后存储每个传感器板每100组数据的平均值。如果没有一个结构来为每个唯一的发送者收集数据,直到收到 31 个字节的缓冲区以形成一个完整的数据包,然后将其存储在另一个结构中,直到每个发送者收到 100 个集合,我不知道该怎么做。

正如我所说,使用一个设备,我可以对接收一整套 31 个字节进行序列检测。数据存储在 mysql 数据库中。

程序在 C 中。

任何想法将不胜感激。

谢谢,

杰森

4

1 回答 1

0

它是UDP,源端口号不应该是数据包的一部分吗?您可以根据数据包的来源,为每个单独的数据按顺序构建一个 31 字节的数据集。

但是,由于它是 UDP,因此您不能保证数据包会按顺序发送。路由问题可能导致数据包丢失、延迟和各种问题。如果它实际上没有通过互联网,那么这些问题将是最小的,而是只有一跳。

如果您无法修改这些传感器的输出,那么我认为您将必须拥有多个接收器,以便您可以顺序构建一个 31 字节的数据包,然后将其传递给组合来自所有的传感器。

于 2012-05-10T18:50:20.310 回答