【精品】tinyos操作系统开发技术及实践(西电版实践4tinyos应用开发(可编辑.ppt
《【精品】tinyos操作系统开发技术及实践(西电版实践4tinyos应用开发(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】tinyos操作系统开发技术及实践(西电版实践4tinyos应用开发(可编辑.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TinyOS操作系统开发技术及实践(西电版)实践4 TinyOS应用开发实践4 TinyOS应用开发 2 2实践指导实践指导 实践实践4.G.1实现CC2530光敏信息的采集传输及向PC机传送数据,需要完成以下工作:(1)通过AD进行光敏信息的采集。(2)通过射频将数据发送至接收者。(3)接收者接收到数据之后,将接收的数据通过串口发送至PC机。实践4 TinyOS应用开发 3 3【分析】【分析】(1)本实验使用两个CC2530节点,命名为节点1和节点2。(2)在“mytinyos/apps”目录下创建工程文件。其中,程序的编写分为两部分:数据的发送部分和接收部分;节点1负责信息的采集和发送,节
2、点2负责信息的接收以及将数据通过串口传输至PC机。(3)编写程序及Makefile文件。(4)观察实验现象。实践4 TinyOS应用开发 4 4【参考解决方案】【参考解决方案】1创建工程目录创建工程目录由于本实验的节点1和节点2使用的程序不同,因此本实验的发送和接收分别在同一个工程文件的两个子目录下。(1)创建传感器采集传输工程目录Sensor。打开cygwin,在“opt/mytinyos/apps目录下”输入“mkdir Sensor”,创建目录,具体操作如图S4-1所示。实践4 TinyOS应用开发 5 5图S4-1 创建Sensor目录 实践4 TinyOS应用开发 6 6实践4 Ti
3、nyOS应用开发 7 7实践4 TinyOS应用开发 8 8创建完成之后目录如图S4-3所示。图S4-3 创建完成后的目录 实践4 TinyOS应用开发 9 92发送程序的编写发送程序的编写发送程序的编写需要完成以下几项工作:(1)创建并编写ADSensorSendApp.nc文件。使用EditPlus程序在ADRadioSend目录下新建ADSensorSendApp.nc文件,并输入如下代码:实践4 TinyOS应用开发 10 10#include#include BlinkToRadio.hconfiguration ADSensorSendAppCimplementationcompo
4、nents ADSensorSendC;components new AdcC()as ADSensor;components ActiveMessageC;components LedsC;实践4 TinyOS应用开发 11 11/ADC信息采集配置ADSensorSendC.ADSensorControl-ADSensor;/ADC读取ADSensorSendC.ADSensorRead-ADSensor;components MainC;/启动接口ADSensorSendC.Boot-MainC.Boot;components new TimerMilliC()as SensorTime
5、rC;/定时器ADSensorSendC.SensorTimer-SensorTimerC;components PlatformSerialC;/串口配置ADSensorSendC.StdControl-PlatformSerialC.StdControl;/串口传输实践4 TinyOS应用开发 12 12ADSensorSendC.UartStream-PlatformSerialC.UartStream;/LED组件ADSensorSendC.Leds-LedsC.Leds;/*射频发送组件*/ADSensorSendC.Packet-ActiveMessageC;ADSensorSen
6、dC.AMPacket-ActiveMessageC;ADSensorSendC.AMSend-ActiveMessageC.AMSenduniqueCount(ADRadioSend);ADSensorSendC.AMControl-ActiveMessageC;ADSensorSendC.PacketAcknowledgements-ActiveMessageC;实践4 TinyOS应用开发 13 13(2)创建并编写ADSensorSendC.nc文件。使用EditPlus程序在ADRadioSend目录下新建ADSensorSendC.nc文件,并输入如下代码:#include“Adc
7、.h”#include“BlinkToRadio.h”#include module ADSensorSendCuses 实践4 TinyOS应用开发 14 14interface Boot;interface AdcControl as ADSensorControl;interface Read as ADSensorRead;interface Timer as SensorTimer;interface Leds;interface Packet;interface AMPacket;interface AMSend;interface SplitControl as AMContro
8、l;interface PacketAcknowledgements;实践4 TinyOS应用开发 15 15interface StdControl;interface UartStream;implementationuint8_t m_len;uint8_t m_send_buf2;uint16_t counter;message_t pkt;实践4 TinyOS应用开发 16 16/*传感器采集任务*/task void sensorTask()/选择P0.7为AD采集通道,call ADSensorControl.enable(ADC_REF_AVDD,ADC_14_BIT,ADC_
9、AIN7);/开始采集AD信息call ADSensorRead.read();/*系统启动*/event void Boot.booted()/开启定时器任务实践4 TinyOS应用开发 17 17call SensorTimer.startPeriodic(1000);/开启ad采集call StdControl.start();/开启无线传输call AMControl.start();/*当无线开启之后会触发AMControl.startDone事件*/event void AMControl.startDone(error_t err)if(err=SUCCESS)实践4 TinyO
10、S应用开发 18 18/如果开启成功,将点亮LED1call Leds.led0On();/call Timer0.startPeriodic(TIMER_PERIOD_MILLI);else/否则重新启动无线call AMControl.start();实践4 TinyOS应用开发 19 19/定时事件event void SensorTimer.fired()/开启传感器采集任务post sensorTask();/*ADC读取完毕之后将会触发readDone事件*/event void ADSensorRead.readDone(error_t result,int16_t val)Bl
11、inkToRadioMsg*btrpkt;实践4 TinyOS应用开发 2020/获得要发送的信息包btrpkt=(BlinkToRadioMsg*)call Packet.getPayload(&pkt,sizeof(BlinkToRadioMsg);/*要发送的数据,TOS_NODE_ID为节点号,val为采集的光照信息*/btrpkt-nodeid=TOS_NODE_ID;btrpkt-counter=val;/*将数据发送出去,如果发送成功LED2将闪烁*/if(call AMSend.send(AM_BROADCAST_ADDR,&pkt,sizeof(BlinkToRadioMsg
12、)=SUCCESS)call Leds.led1Toggle();/busy=TRUE;实践4 TinyOS应用开发 21 21async event void UartStream.sendDone(uint8_t*buf,uint16_t len,error_t error)async event void UartStream.receivedByte(uint8_t byte);/*在接收完receive命令欲接收的长度后会调用此事件*/async event void UartStream.receiveDone(uint8_t*buf,uint16_t len,error_t er
13、ror)实践4 TinyOS应用开发 2222/*如果发送成功,接收者将发送确认帧给发送者*/event void AMSend.sendDone(message_t*msg,error_t error)if(&pkt=msg)call PacketAcknowledgements.requestAck(msg);event void AMControl.stopDone(error_t err)实践4 TinyOS应用开发 2323(3)创建BlinkToRadio.h文件。使用EditPlus程序在ADRadioSend目录下新建BlinkToRadio.h文件,并输入如下代码:#ifnd
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 【精品】tinyos操作系统开发技术及实践西电版实践4 tinyos应用开发可编辑 tinyos 操作系统 开发 技术 实践 西电版 应用 编辑
限制150内