Tinyos tutorial learning tips -- lesson 2

 

# return rcombine(call ADCControl.init(), call Leds.init());

返回两个函数返回值的与值。

 

# 略写(Shorthand)

SenseM.ADC -> Sensor              等价于 SenseM.ADC -> Sensor.ADC  //没有疑问

SenseM.ADControl -> Sensor       等价于 SenseM.ADControl -> Sensor.StdControl

//这是因为Sensor没有ADControl接口,但是有同类型的StdControl接口,nesC编译器能够判断出来这种略写的意思,当然,如果Sensor有两个StdControl类型的接口,就会报错。

 

# 参数化接口

允许一个组件提供一个接口的多个实例,它们以一个编译时刻或运行时刻的参数来索引(其实相当于定义一个数组)。

 

# 参数化接口的索引

本来直接用数字就可以索引,如

provides interface Timer[uint8_t id];

可直接以Timer[1],Timer[2],…来使用这256个接口,nesC为了避免使用不慎导致两个地方用到了相同的一个实例,引入了unique(“Timer”),即nesC编译器保证所有由字符串“Timer”标识的一组实例的索引号互不相同,以避免冲突(当然,与其他字符串的组可能会有冲突)。

 

# 读代码SenseM.nctip

为什么要另外给一个StdControl接口,命名为ADCControl

很简单,为了单独控制ADC的启动、工作和停止。

你可能感兴趣的:(timer,工作,interface,编译器)