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的啓動、工作和停止。

發佈了110 篇原創文章 · 獲贊 8 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章