对于6LoWPAN的学习,tinyos2.x/apps/UDPEcho是对于初学者最好的例子了。系统例程考虑到应用的扩展性,在程序中增添了很多宏定义,对于熟练的应用者而言,这样是便于开发的;但对于初学者,程序显得复杂而臃肿。下面我们本着实现最简单应用的原则,将UDPEcho实例的代码精简。
在本示例中我们要实现的功能是:
- 能够实现ping6功能(支持ICMP协议)
- 能够接收和发送UDP数据包
//UDPEchoC.nc
#include <6lowpan.h>
configuration UDPEchoC {
} implementation {
components MainC;
components UDPEchoP;
UDPEchoP.Boot -> MainC;
components IPDispatchC;
UDPEchoP.RadioControl -> IPDispatchC;
components new UdpSocketC() as Echo;
UDPEchoP.Echo -> Echo;
}
//UDPEchoP.nc
#include <IPDispatch.h>
#include <lib6lowpan.h>
#include <ip.h>
#include <lib6lowpan.h>
#include <ip.h>
#include "UDPReport.h"
#include "PrintfUART.h"
module UDPEchoP {
uses {
interface