我是靠谱客的博主 顺心黄豆,这篇文章主要介绍TinyOS之UDPEcho(一) - 精简程序,现在分享给大家,希望可以做个参考。

对于6LoWPAN的学习,tinyos2.x/apps/UDPEcho是对于初学者最好的例子了。系统例程考虑到应用的扩展性,在程序中增添了很多宏定义,对于熟练的应用者而言,这样是便于开发的;但对于初学者,程序显得复杂而臃肿。下面我们本着实现最简单应用的原则,将UDPEcho实例的代码精简。

在本示例中我们要实现的功能是:

  1. 能够实现ping6功能(支持ICMP协议)
  2. 能够接收和发送UDP数据包
精简后代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//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; }

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//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 Boot; interface SplitControl as RadioControl; interface UDP as Echo; } } implementation { event void Boot.booted() { call RadioControl.start(); call Echo.bind(5002); } event void RadioControl.startDone(error_t e) { } event void RadioControl.stopDone(error_t e) { } event void Echo.recvfrom(struct sockaddr_in6 *from, void *data, uint16_t len, struct ip_metadata *meta) { call Echo.sendto(from, data, len); } }
上面的精简的代码完全能够实现最初我们设定的功能。

最后

以上就是顺心黄豆最近收集整理的关于TinyOS之UDPEcho(一) - 精简程序的全部内容,更多相关TinyOS之UDPEcho(一)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部