我正在为无线传感器网络上的项目编写一个软件。现在我担心注入各种数据包到网络中。TinyOS PC与微波通信
我使用MIB520接口板安装在IRIS微尘TinyOS的-2.1.2。我试过了sdk/c/sf中的各种实用程序,以及net.tinyos.sf。*和net.tinyos.tools。* Java软件包中的工具。
我试过到目前为止:
我一直在使用的应用程序/基站和应用程序/安装在我的微尘BaseStation15.4,或者与应用程序/测试/ TestSerial闪烁它。阅读从mote通过USB发送的数据没有问题。我可以使用net.tinyos.tools.SerialForwarder或sdk/c/f或net.tinyos.tools *的实用程序读取它。
但是,当涉及到从PC发送数据到微尘,似乎没有任何干活用net.tinyos.tools.Send,serialsend.c,sf.c和sfsend.c。 SerialForwarder一段时间后抛出错误消息,而C实用程序抛出“无确认”错误。
寻找在TinyOS的wiki和SO,我想这可能与微尘发送该“ACK”消息的问题的答案后。我正在寻找一种方法来生成并发送合法的数据包给mote,建议为here。
继维基文章中,我发现合适的TEP和使用它上市位( “7E 40 09 00是EF 05 7D 5D 06 01 02 03 04 05 7E”)。
我使用Wireshark的嗅探上,我发送的数据到USB微尘,我看到发送到微尘同位。我的理论是mote不能识别我发送的输入,或者我错误地使用了实用程序。无论如何,永远不会被触发此特定事件:
event message_t* UartReceive.receive(message_t* bufPtr, void* payload, uint8_t len) {
call Leds.led0On();
return bufPtr;
}
我的问题是,我怎么去发送数据从PC到微尘?也许有一些准备使用我忽略的工具?我一直在使用BaseStation15.4中的说明,但我卡住了。
编辑:
从基站/ README.txt中 “基站承认在抵达只有成功地排队等待传送到无线链路该消息的串行链路的消息。” 这将解释serialsend.c中的“no ack”和SerialForwarder.java中的“写入失败”。
但尽管如此,该UartReceive.receive()事件从未被触发,即使清除其体内(在基站),并只留下LED切换后。
由于我的声誉很低,我必须在这里发布链接:[SerialForwarder上的TinyOS wiki](http://tinyos.stanford.edu/tinyos-wiki/index.php/Mote-PC_serial_communication_and_SerialForwarder),[Releveant TEP ](http://www.tinyos.net/tinyos-2.x/doc/html/tep113.html) – zibzabzubudua