- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
nesc语言
如何保证send和receive函数的参数是一样的,如果使用unique函数 * * * 当一个开发者写下一个复杂的大型系统,跟踪所有的初始化过程是困难的,当其中一个初始化没有被调用时就调试它是非常困难的。 * 配件:继续 BlinkC模块使用LedsC提供的接口 声明要使用的接口Leds; 在实现区域内,调用函数Leds.led0Toggle()将0号LED灯转换 同样需要一个配件进行连接:BlinkAppC配件 在实现区域内声明BlinkC和LedsC组件 对Leds接口进行连接 BlinkC. Leds.led0Toggle实际上调用了LedsC.Leds.led0Toggle 而后者又调用LedsP.Leds.led0Toggle() * module BlinkC { uses interface TimerTMilli as Timer0; uses interface TimerTMilli as Timer1; uses interface TimerTMilli as Timer2; uses interface Leds; uses interface Boot; }implementation { Call Leds.led0Toggle()/*此语句在某个函数内*/ } configuration BlinkAppC {} implementation { components MainC, BlinkC, LedsC; // Some code elided BlinkC.Leds - LedsC; } 配件:接口连接 as关键字:提供别名,作用: 简化接口名:如: provides interface HplAtm128SpiC as HplSpi 提供或使用多个相同的接口,如 configuration ActiveMessageC { provides interface Receive; provides interface Receive as Snoop; } 实际上没有用as的是省略了as关键字 uses interface StdControl 等同于 uses interface StdControl as StdControl; * 配件:接口连接 连接的省略:在不产生混淆的情况下,连接时一方的接口名可以省略 MainC.SoftwareInit - RandomMlcgC; 等同于 MainC.SoftwareInit - RandomMlcgC.SoftwareInit; 但如果一方有两个相同的接口,则必须指明 * configuration ActiveMessageC { provides { interface Init; interface Receive; interface Receive as Snoop; } } implementation { components CC2420ActiveMessageC as AM; Init = AM; ... Receive = AM.Receive; Snoop = AM.Snoop; ... } 配件:接口连接 多重连接fan-out 一个接口可以同时连接多个组件 当执行这个接口的某个函数时,如CC2420TransmitC.Init.init() ,Alarm.Init.init() 和CC2420TransmitP.Init.init()同时被执行(顺序?) 多重连接fan-in 多个组件的相同接口可以连接同一接口 当C触发事件SplitControl.startDone() 时,A和B都会被触发 * configuration CC2420TransmitC { provides interface Init; } implementation { components CC2420TransmitP; components AlarmMultiplexC as Alarm; Init = Alarm; Init = CC2420TransmitP; // further wirings elided } components A, B, C; A.SplitControl - C; B.SplitControl - C; 参数化接口 通用接口:回顾一下为什么需要通用接口? 为什么需要参数化接口 有时候使用者(组件)会使用多个同一个接口(或多个使用者使用同一个接口),所以就需要能够实现这个接口的多个实例 如定时
您可能关注的文档
- GBT11022-2011《高压开关设备和控制设备标准的共用技术要求》.ppt.ppt
- GTIN条码印制规则-GS1Taiwan.ppt
- IEL使用说明.ppt
- IEEEIETElectronicLibrary.ppt
- image14562015-05-07-14-08-53.ppt.ppt
- IGMP协议与实现IGMP协议的作用.ppt
- HongKongTravel2008AccommodationRamadaHongKongHotel.doc
- InnoCentiveucmscentive201209272302498e1d.ppt.ppt
- IEEE802与TCPIP体系结构-网络技术精品课程-首页.ppt
- INMARSAT-B.ppt.ppt
文档评论(0)