用TOSSIM来模拟传感器和PC的通讯。
步骤如下:
1, 首先进入到apps/Oscilloscope 用make pc 编译该程序。
2, 用build/pc/main.exe 1 运行一个节点的模拟。
3, 另外打开一个cygwin窗口,首先进入/opt/tinyos-1.x/tools/java 当中,输入make 编译java工具。
4, 重点在这里,都编译完成之后,不要按照教程的说法,去指定对应的COM口,而是应该输入export MOTECOM= tossim-serial。
tossim-serial是本机TOSSIM所对应的专门指令!
5, TOSSIM为了在传递Event和Command信号在本机上设置了两个端口, 10585是TOSSIM的event port,而10584是TOSSIM的command port。另外SerialForwarder和服务器的通信模块缺省情况下通过端口9001传递数据,服务器上的应用程序到9001端口读取数据。那么现在可以用监听器查看信息, 输入:
java net.tinyos.tools.Listen
监听器就会监听本地计算机上的10585号端口和10584号端口。在console中就可以看到console当中出现和教程类似的输出.
和以前一样,为了观察方便并把实验结果记录,也可以把listen下来的信息保存到文件中, 可以采用如下命令:
java net.tinyos.tools.Listen > 1.txt
文件名可以自定.所生成的文件会放在cygwin的home/{username}目录下。
Listen的信息会记录在文件中,而在console当中不会显示。所以感觉在console当中是死机了一样,卡住了,其实后台正在运行。同样用Ctrl+C结束listen。
6, 用unset MOTECOM指令来解除对端口的绑定。
7, SerialForwarder模拟,同样进入到 /opt/tinyos-1.x/tools/java 中,输入:
java net.tinyos.sf.SerialForwarder –comm tossim-serial
来抓包。在成功运行的这个图形界面中,我们观测到pckts Read不停的增长,说明串口转发器在不停的读取来自TOSSIM发送的数据。
8, 再新开一个cgywin窗口,无需进入任何目录,输入
java net.tinyos.oscope.oscilloscope
既可打开一个新的图形界面,选上scrolling,并设置合适的X轴,Y轴就可以看到和教程上一样的“心电图”!!!
总结:
在TOSSIM中,为了与模拟网络交互,我们必须使用SerialForwarder. TOSSIM当中提供了两种交互的方式:
1, tossim-serial 这种方式是只能通过串口和1个节点交互.
2. tossim-radio 这种方式被称之为network snooping, 并可以和整个网络交互.
The serial port mode (“tossim-serial” in the “Mote Communications” field or “-comm tossim-serial” at the command line) interacts with mote 0 over its serial port. Programs connecting to SerialForwarder can read messages mote 0 sends to its serial port, and send messages to mote 0 over its serial port.
The snooping mode (“tossim-radio” in the “Mote Communications” field or “-comm tossim-radio” at the command line) sits on top of the TOSSIM network model. Programs connecting to SerialForwarder hear every radio message sent in the network, and can inject radio messages to arrive (without error) at any mote. Because this mode outputs every message sent , it does not consider loss; programs connecting will hear packets that might not arrive successfully at any mote.