0

我如何构建串行转发器或使用它将接收到的数据转发到另一个程序以进行某些处理?

如何解析数据并将其用作另一个程序(如 Matlab 或 c# 或 java 应用程序)的输入数据。哪个协议用于解析接收到的数据?

最后一个问题:它只适用于基站微尘吗?我可以为任何微粒建造一个吗?

4

1 回答 1

0

你必须彻底阅读串行堆栈......它不是很容易,但它确实可以。

可以直接从串口读取。在这种情况下,您不需要串行转发器。有几件事情需要照顾。

例如,如果您想读取发送到 PC 串行端口的串行消息(USB 传感器板就像串行一样工作,因为它们使用 USB 到串行转换器,如 FTDI 芯片)。

在 C#(Java 等)中,您可以读取串行端口中的字节流。您可以解析此字节流以提取 tinyos 的标准串行消息。

这在TEP #113中以某种方式进行了解释,尽管它存在一些问题,但是您应该能够找到这些问题并使您的程序正常工作。

正如 TEP 113 中所述,标准串行数据包类似于:

7e 40 09 00 是 05 7d 5d 06 01 02 03 04 05 7e

这意味着,一个数据包以十六进制7E(我相信它的 126 或 127)开头,也以7E. 最后 2 个字节是CRC数据包。因此,您可以在您的 c# 程序中在遇到流时开始从串行端口7E读取,并在到达流中的下一个时停止读取7E。介于两者之间的一切都将是您的数据包。

您必须注意的escaping是,如果 a7E是您的数据包内容的一部分,请不要与开始和结束直径计混淆,它将被转义为其他内容......这也在 TEP 113 中进行了解释。

我相信有一些 C++ 代码用于计算 CRC,您可以轻松地将其转换为 C# 或 Java 代码。

还要检查源代码,Serial.h其中包含有关如何在 TinyOS 中形成串行数据包的一些详细信息。

于 2013-04-28T15:45:39.277 回答