我正在为无线传感器网络编写一个 linux 测试平台。核心目标是测试任意两个节点之间的数据传输。网络使用树形拓扑运行。网络中的一个节点是“驱动程序”。该节点使用串行端口连接到 linux PC。我正在尝试编写的是这台 linux PC 上的软件,它将驱动网络中的数据传输。
“Driver”节点从Linux PC上运行的软件获取命令,将数据请求消息发送到Sender节点。Sender 节点将解析数据请求消息并开始向“驱动程序”传输数据。可以存在多个这样的发件人。所有数据传输都是从发件人到“驱动程序”节点。“驱动程序”节点将它接收到的所有数据传递给 linux 应用程序。linux 应用程序跟踪从不同发件人收到的数据包数量。
以下是要求。
- 网络中的任何节点都可以是驱动程序(目的地),任何节点都可以是发送者。
- 在任何给定时间都可以有多个 Sender,将数据发送到“Driver”节点。
- linux应用程序从串口接收和通过串口发送的数据被记录到一个文件中。
- linux 应用程序应该能够从文件中读取数据请求消息并在指定的时间将它们发送出去。
- 此 linux 应用程序的 GUI。所有代码都在 C 中,因此 GUI 选择必须与 C 相得益彰。
最后一个转折点:从 Sender 到“Driver”的数据是碎片数据。在发件人端,碎片在设备本身中处理。在“驱动程序”端,碎片将在 linux 应用程序中处理。因此,Linux 应用程序必须跟踪分段窗口,并为与多个发送方进行的每个数据传输发送分段确认,并跟踪到目前为止从每个发送方接收到的数据包数量。
那么在 linux 应用程序中,有多个线程的方法 - 每个 Sender 一个线程吗?一个串口可以同时发送和接收多个线程吗?
任何要求的建议将不胜感激。基本思想是测试数据传输,尤其是数据收集(几个节点向一个节点发送数据)。如果建议采用与上述不同的方法,我也非常欢迎听到它们。
谢谢一堆
詹姆士