2009年7月2日 星期四

Source Code 分析筆記-4

ZigBee Home Sensor Demonstration(end device code)

AppColdStart()
這個函數是最主要的應用進入位置,在開機載入完畢之後將會呼叫它,此函數找尋網路連結(channel以及Pan ID)之後呼叫起始 function: vInitDemoSystem()

AppWarmStart()
當cpu暖開機或重啟時(ram的資料還保存)會呼叫此函數,在這個範例中這個模式並沒有被使用,所以這個函數只是呼叫AppColdStart() 於非安全機制下

JZA_boAppStart()
此函數在初始化後會呼叫ZigBee的堆疊,並設置對profile的資訊以及敘述之後呼叫ZigBee堆疊中的函數開始以End device加入網路位置

JZA_vAppDefineTasks()
這個函數可用來增加應用項目,在這個應用示範中並沒有使用到這個函數

JZA_eAfKvpObject()
當接收到KVP協定訊息時此函數將會被呼叫,其中的資訊將被用來控制 LED 0

JZA_vAfKvpResponse()
當KVP協定先前的請求被確認時,此函數將會被呼叫並且接收回應,這個應用範例並沒有使用到這個函數

JZA_pu8AfMsgObject()
當接受MSG協定時此函數將被呼叫,這個應用範例並沒有使用到這個函數

JZA_vZdpResponse()
當接受到ZDP響應時此函數將被呼叫,這個應用範例並沒有使用到這個函數

JZA_vAppEventHandler()
ZigBee堆疊將會定期的呼叫此函數,是用來處理硬體的中斷序列

wake timer 是用來開始讀取simple state machine的sensor DIO pin 的中斷可發展state machine,溼度溫度sensor完成讀取操將控制它

DIO pin的中斷連結到sensor板子上的按鈕,是用來設置通過用來控制Coordinator上LED的值

JZA_vPeripheralEvent()
當硬體周邊產生中斷,處理器處理中斷程序內容時,此函數將會被呼叫
此外為了讓動作量達到最小值,關於中斷的資訊將會被置於FIFO queue,JZA_vAppEventHandler() 函數之後將會讀取這些資訊

vInitDemoSystem()
此函數將會呼叫ZigBee堆疊的初始化函數,並且初始化將會用到的硬體使其可作用

20-Hz脈波的Wake-up timer在這裡將會被校準並且啟用,但是並不會開始動作

函數的最後動作是啟動BOS,在這個函數並不會有回傳的動作

vSendData()
此函數製造協定KVP的傳輸請求,用來傳送sensor的資訊以及控制Coordinator的LED

vStartReadSensors()
此函數開始讀取溫度sensor並且在下一秒啟動wake timer,它設置了溫度sensor的DIO pin的中斷

vReadSensor2()
此函數開始讀取溫度數值並且開始讀取溼度sensor,它設置了溫度sensor的DIO pin的中斷

vReadSensor3()
此函數開始讀取溼度數值並且開始讀取光感sensor,讀取光感時並不會有延遲產生,在稍後會呼叫函數vSendData() 並且傳送一個包含讀取sensor的frame

vInitEndpoint()
此函數設置了內部的變量

u8FindMin()
此函數回傳了兩個量值中最小的




上述的資料說明請參閱JN-UG-3033-ZigBee-HomeSensorDemo-1v3.pdf

沒有留言:

張貼留言