【精品】tinyos操作系统开发技术及实践(西电版实践5tinyos网络协议精品ppt课件.ppt
《【精品】tinyos操作系统开发技术及实践(西电版实践5tinyos网络协议精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】tinyos操作系统开发技术及实践(西电版实践5tinyos网络协议精品ppt课件.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TinyOS操作系统开发技术及实践(西电版)实践5 TinyOS网络协议实践5 TinyOS网络协议 2 2实践指导实践指导 实践实践5.G.1基于分发协议的烟雾信息采集及传输。【分析】(1)本例程要实现信息的采集和传输,程序实现部分需要分为两部分编写,即发送部分和接收部分。(2)发送部分程序要实现烟雾信息的采集和传输。(3)接收部分程序要实现信息的接收以及将数据传输至PC机。(4)下载调试,观察现象。实践5 TinyOS网络协议 3 3【参考解决方案】【参考解决方案】1建立工程文件夹建立工程文件夹在“/mytinyos/apps”目录下新建一个SmokeTest的文件夹(其操作步骤参照实践5
2、.G.1),在SmokeTest文件夹下新建Sender和Receive文件夹。其中,Sender文件夹实现数据的发送部分程序;Receive文件夹实现数据的接收部分程序。实践5 TinyOS网络协议 4 42发送部分程序发送部分程序在“mytinyos/apps/SmokeTest/Sender”目录下新建三个文件:SmokeTestSApp.nc、SmokeTestSC.nc和Makefile文件。其中SmokeTestSC.nc文件实现了数据的采集和发送,SmokeTestSApp.nc文件为SmokeTestSC.nc文件的顶层配件。实践5 TinyOS网络协议 5 5(1)在Smok
3、eTestSApp.nc中的主要代码如下:#include BlinkToRadio.hconfiguration SmokeTestSAppC implementation components SmokeTestSC;components MainC;SmokeTestSC.Boot-MainC;components ActiveMessageC;SmokeTestSC.RadioControl-ActiveMessageC;实践5 TinyOS网络协议 6 6实践5 TinyOS网络协议 7 7实践5 TinyOS网络协议 8 8(2)SmokeTestSC.nc文件中的主要代码实现如下
4、:#include#include Adc.h#include BlinkToRadio.hmodule SmokeTestSC usesinterface AMSend;interface Packet;interface AMPacket;interface Read as ADSensorRead;interface AdcControl as ADSensorControl;interface Boot;实践5 TinyOS网络协议 9 9interface SplitControl as RadioControl;interface StdControl as Disseminati
5、onControl;interface DisseminationValue as Value16;interface DisseminationUpdate as Update16;interface Leds;interface Timer;implementation uint16_t counter;am_addr_t DES=0 x0003;实践5 TinyOS网络协议 10 10/*传感器采集任务*/task void sensorTask()/选择P0.7为AD采集通道,call ADSensorControl.enable(ADC_REF_AVDD,ADC_14_BIT,ADC
6、_AIN3);/开始采集AD信息call ADSensorRead.read();event void Boot.booted()call RadioControl.start();实践5 TinyOS网络协议 11 11event void RadioControl.startDone(error_t result)if(result!=SUCCESS)call RadioControl.start();elsecall DisseminationControl.start();counter=0;call Timer.startPeriodic(2000);实践5 TinyOS网络协议 1
7、2 12event void RadioControl.stopDone(error_t result)event void Timer.fired()post sensorTask();实践5 TinyOS网络协议 13 13event void Value16.changed()const uint16_t*newVal=call Value16.get();call Leds.led2Toggle();counter=*newVal;event void AMSend.sendDone(message_t*msg,error_t err)call Leds.led1Toggle();实践
8、5 TinyOS网络协议 14 14/*ADC读取完毕之后将会触发readDone事件*/event void ADSensorRead.readDone(error_t result,int16_t val)message_t pkt;BlinkToRadioMsg*btrpkt;counter=val;call Update16.change(&counter);btrpkt=(BlinkToRadioMsg*)call Packet.getPayload(&pkt,sizeof(BlinkToRadioMsg);btrpkt-nodeid=DES;btrpkt-num=counter;实
9、践5 TinyOS网络协议 15 15if(call AMSend.send(AM_BROADCAST_ADDR,&pkt,sizeof(BlinkToRadioMsg)=SUCCESS);实践5 TinyOS网络协议 16 16(3)在BlinkRadio.h文件中定义了发送数据的结构体,具体代码如下:#ifndef _BLINKTORADIO_H#define _BLINKTORADIO_Htypedef nx_struct BlinkToRadioMsgnx_uint16_t nodeid;nx_uint16_t num;BlinkToRadioMsg;#endif实践5 TinyOS网
10、络协议 17 17(4)在Makefile文件中注明程序的顶层配件,其代码如下:COMPONENT=SmokeTestSAppCCFLAGS+=-I$(TOSDIR)/lib/net-I%T/lib/net/dripinclude$(MAKERULES)实践5 TinyOS网络协议 18 183接收部分程序接收部分程序在“mytinyos/apps/SmokeTest/Sender”目录下新建三个文件:SmokeTestRApp.nc、SmokeTestRC.nc和Makefile文件。其中SmokeTestRC.nc文件实现了数据的接收以及通过串口将数据传输至PC机,SmokeTestRAp
11、p.nc文件为SmokeTestRC.nc文件的顶层配件。实践5 TinyOS网络协议 19 19(1)在SmokeTestRApp.nc中的主要代码如下:#include BlinkToRadio.hconfiguration SmokeTestRAppC implementation components SmokeTestRC,MainC;SmokeTestRC.Boot-MainC;components ActiveMessageC;SmokeTestRC.RadioControl-ActiveMessageC;实践5 TinyOS网络协议 2020components Dissemi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 【精品】tinyos操作系统开发技术及实践西电版实践5 tinyos网络协议精品ppt课件 tinyos 操作系统 开发 技术 实践 西电版 网络 协议 ppt 课件
链接地址:https://www.taowenge.com/p-86273287.html
限制150内