c++ - 传感器数据收集 C 守护进程困境

标签 c++ mysql c udp sensors

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

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

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

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

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

程序是用C语言编写的。

任何想法将不胜感激。

谢谢

杰森

最佳答案

这是UDP,源端口号不应该是数据包的一部分吗?您可以根据数据包的来源,依次为每个数据包建立 31 字节的数据集。

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

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

关于c++ - 传感器数据收集 C 守护进程困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540185/

相关文章:

C编程,scanf()函数

c++ - 动态内存分配 C++

c++ - make_shared 不能和 enable_shared_from_this 一起玩?

c++ - 使用键盘 Hook 时无法动态退出循环

MySQL SELECT 查询具有多个表的联结表

mysql:我使用什么数据模型来制作盐的组合

c - 如何在运行时在 C 中声明数组的大小?

c++ - 这是 C++ 链表的深层复制和正确实现的 = 运算符吗?

python - pip3.6 安装 mysqlclient==1.3.12 失败,错误为 : unknown type name ‘my_bool’ ; did you mean ‘bool

c - 如何在 dbx 中的内存位置放置断点?