《【精品】tinyos操作系统开发技术及实践(西电版实践2nesc语言基础精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】tinyos操作系统开发技术及实践(西电版实践2nesc语言基础精品ppt课件.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、TinyOS操作系统开发技术及实践(西电版)实践2 nesC语言基础实践2 nesC语言基础 2 2实践指导实践指导 实践实践2.G.1用随机数模拟数据定时采集,并点亮LED。【分析】(1)随机数生成,需要用到Random接口以及提供该接口的RandomC组件。(2)定时功能,需要用到Timer接口以及提供该接口的TimerMilliC组件。(3)LED控制使用Leds接口以及提供该接口的LedsC组件。实践2 nesC语言基础 3 3【参考解决方案】【参考解决方案】1程序目录建立程序目录建立在cygwin的“opt/mytinos/apps/”目录下建立“RandomToLed”目录。2程序
2、设计程序设计在“opt/mytinos/apps/RandomToLed/”目录下建立3个文件:RandomToLedC.nc:程序核心应用模块。RandomToLedAppC.nc:程序顶层配件。Makefile:make脚本文件。实践2 nesC语言基础 4 4(1)编写RandomToLedC.nc文件,代码如下:module RandomToLedC uses interface Boot;interface Leds;interface Random;interface Timer as Timer;implementation /采集数据的任务实践2 nesC语言基础 5 5实践2
3、 nesC语言基础 6 6实践2 nesC语言基础 7 7实践2 nesC语言基础 8 8(3)编写Makefile文件,代码如下:COMPONENT=RandomToLedAppCinclude$(MAKERULES)实践2 nesC语言基础 9 93编译、下载至设备中,观察实验结果编译、下载至设备中,观察实验结果(1)连接好硬件设备,在打开Cygwin后,进入“opt/mytinos/apps/RandomToLed/”目录,在命令行上运行“make cc2530 install”命令。执行结果如图S2-1所示,表示程序已经编译成功,并下载至设备内。实践2 nesC语言基础 10 10图S
4、2-1 编译下载程序 实践2 nesC语言基础 11 11(2)观察执行结果,将看到LED0、LED1和LED2在闪速。实践2 nesC语言基础 12 12知识拓展知识拓展 nesC编程约定编程约定(1)命名约定。nesC源文件的扩展名是“.nc”。文件名与文件内定义的接口名或组件名一致。应当使用公共组件而不是直接使用私有组件。公共组件应当带有后缀“C”,私有组件应带有后缀“P”。接口名不能以“C”或“P”结尾。如果接口和组件名相关(组件提供接口),除了后缀(“C”或“P”)之外,两者应当采用相同的命名。实践2 nesC语言基础 13 13接口中的命令应当以“动词”命名,事件以“动词的过去式”命名(如booted、fired)。分阶段接口中的命令和相关的事件应该分别以“动词”和“动词+Done”命名。模块内部变量以名词命名。(2)编程约定。耗时的程序和密集计算的程序应该使用分阶段操作和任务来实现。被多个nc文件使用的宏定义应该在头文件中用#define定义,并且使用#include包含该头文件。对参数化接口进行连接时应当使用unique()或uniqueCount()函数实例化接口,而不是使用自定义的常数。