我是靠谱客的博主 顺心黄豆,最近开发中收集的这篇文章主要介绍TinyOS之UDPEcho(一) - 精简程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

  1. 能够实现ping6功能(支持ICMP协议)
  2. 能够接收和发送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 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(一) - 精简程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部