ZigBee學(xué)習(xí)之15—ZStackAPI解讀3分析_第1頁
ZigBee學(xué)習(xí)之15—ZStackAPI解讀3分析_第2頁
ZigBee學(xué)習(xí)之15—ZStackAPI解讀3分析_第3頁
ZigBee學(xué)習(xí)之15—ZStackAPI解讀3分析_第4頁
ZigBee學(xué)習(xí)之15—ZStackAPI解讀3分析_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、#1樓主:ZigBee學(xué)習(xí)之15ZStack API解讀3文章發(fā)表于:2010-02-07 02:19應(yīng)用框架(AF)應(yīng)用框架層是應(yīng)用道APS層的OTA數(shù)據(jù)接口。此層也接收數(shù)據(jù)消息的終端多路復(fù)用器。AF為應(yīng)用提供以下功能:· 終端(Endpoint)管理· 發(fā)送和接收數(shù)據(jù)哈哈,這里的函數(shù)應(yīng)該就是我們經(jīng)常要用到的函數(shù)了。終端管理每個設(shè)備都是Zigbee中的節(jié)點,每個節(jié)點有長地址和短地址,短地址被其他設(shè)備用來發(fā)送數(shù)據(jù)。每個節(jié)點又241個終端(0保留,1-240 可分配給應(yīng)用)。每個終端可以獨立設(shè)置地址;當(dāng)設(shè)備發(fā)送數(shù)據(jù)時必須指定目標(biāo)設(shè)備的短地址和接收終端。一個應(yīng)用必須注冊一個或多

2、個終端用來接收或者發(fā)送數(shù)據(jù)。簡單描述符-SimpleDescriptionFormat_t每個終端都必須有一個Zigbee簡單描述。這些描述對Zigbee網(wǎng)絡(luò)刻畫了這個終端,其他設(shè)備可以詢問這個終端以知道這個設(shè)備的類型。typedef struct byte EndPoint; uint16 AppProfId; uint16 AppDeviceId; byte AppDevVer:4; byte Reserved:4; / AF_V1_SUPPORT uses for AppFlags:4. byte AppNumInClusters; cId_t *pAppInClusterList; b

3、yte AppNumOutClusters; cId_t *pAppOutClusterList; SimpleDescriptionFormat_t;EndPoint 終端號:1-240 這是節(jié)點的子地址,用來接收數(shù)據(jù)AppProfId 定義了這個終端上支持的Profile ID(剖面ID), ID最好遵循由ZigBee聯(lián)盟的分配。AppDeviceId 終端支持的設(shè)備ID,ID最好遵循ZigBee聯(lián)盟的分配。AppDevVer 此終端上設(shè)備執(zhí)行的設(shè)備描述的版本:0x00為Version 1.0. Reserved 保留 AppNumInClusters 終端支持的輸入簇數(shù)目 pAppInC

4、lusterList 指向輸入Cluster ID列表的指針 AppNumOutClusters 終端支持的輸出簇數(shù)目 pAppOutClusterList 指向輸出Cluster ID列表的指針終端描述符-endPointDesc_t 節(jié)點中的每一個終端都必須有一個終端描述符typedef struct byte endPoint; byte *task_id; / Pointer to location of the Application task ID. SimpleDescriptionFormat_t *simpleDesc; afNetworkLatencyReq_t laten

5、cyReq; endPointDesc_t; task_id -任務(wù)ID指針,當(dāng)接收到消息時,此任務(wù)ID將指示消息傳遞目的。接收到的消息是以O(shè)SAL消息形式包裝的,將發(fā)送到一個任務(wù)simpleDesc -指向這個終端的ZigBee簡單描述latencyReq -必須用noLatencyReqs來填充afStatus_t afRegister( endPointDesc_t *epDesc );為設(shè)備注冊一個新的終端epDesc -指向終端描述符返回值:afStatus_t -若成功則返回ZSuccess,否則返回ZComDef.h中定義的錯誤epList_t *afRegisterExtend

6、ed( endPointDesc_t *epDesc, pDescCB descFn );在上面函數(shù)功能的基礎(chǔ)上增加了回調(diào)函數(shù),當(dāng)終端的簡單描述符被查詢時將調(diào)用此回調(diào)函數(shù)。這樣應(yīng)有就可以動態(tài)改變簡單描述符而不用RAM/ROM來儲存描述符了。descFn -回調(diào)函數(shù)指針。相關(guān)函數(shù)必須為簡單描述符分配足夠的空間,填充簡單描述符,然后返回指向簡單描述符的指針,調(diào)用者將釋放為描述符分配空間。epList -指向終端列表元件的指針,如果失敗則為NULLendPointDesc_t *afFindEndPointDesc( byte endPoint );從一個終端找到終端描述符endPoint -要尋找

7、的終端描述符的終端號endPointDesc_t -指向終端描述符的指針,若失敗則為NULLbyte afFindSimpleDesc( SimpleDescriptionFormat_t *ppDesc, byte EP );從一個終端找到終端描述符。若返回值非零則必須調(diào)用osal_mem_free()來釋放描述符的內(nèi)存占用。ppDesc -指向指向簡單描述符的指針。EP 終端簡單描述符需要uint8 afGetMatch( uint8 ep );默認(rèn)情況下,設(shè)備將響應(yīng)ZDO匹配描述符請求。用這個函數(shù)來獲得ZDO匹配描述符應(yīng)答的設(shè)置。ep -用來獲得ZDO匹配描述符響應(yīng)行為的終端返回值:TR

8、UE-允許響應(yīng),F(xiàn)ALSE-不允許或者終端未找到uint8 afSetMatch( uint8 ep, uint8 action );默認(rèn)情況下,設(shè)備將響應(yīng)ZDO匹配描述符??梢杂眠@個函數(shù)來改變這個行為,比如ep為1,action為FALSE,ZDO將不響應(yīng)終端1的ZDO匹配面述符請求。ep -用來獲得ZDO匹配描述符響應(yīng)行為的終端action -TRUE-允許響應(yīng),F(xiàn)ALSE-不允許或者終端未找到返回值:TRUE-成功,F(xiàn)ALSE-失敗或者終端未找到byte afNumEndPoints( void );查找已注冊的終端數(shù)目,返回此設(shè)備上已注冊的終端數(shù)目,包括終端0void afEndPoi

9、nts( byte *epBuf, byte skipZDO );返回包含已注冊的終端的一個數(shù)組。epBuf 指向存放終端的數(shù)組,每個終端占一個字節(jié) skipZDO -設(shè)置為TRUE,則不包含ZDO終端(終端0)發(fā)送數(shù)據(jù)afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP, uint16 cID, uint16 len, uint8 *buf, uint8 *transID, uint8 options, uint8 radius );dstAddr -目標(biāo)地址指針。 afAddrNotPresent 由

10、反射器(邦定源,也即路由器或者協(xié)調(diào)器)指定 afAddrGroup 發(fā)送到組 afAddrBroADCast 發(fā)送廣播消息 afAddr16Bit 直接發(fā)送到節(jié)點(單播)srcEP -發(fā)送終端的終端描述符指針cID -簇ID,cluster ID如同消息ID,并且在剖面(profile)中各不相同len -要發(fā)送的字節(jié)數(shù)buf -指向要發(fā)送的數(shù)據(jù)緩存的指針transID -事務(wù)序列號指針。如果消息緩存發(fā)送,這個函數(shù)將增加這個數(shù)字options -發(fā)送選項,可以由下面一項,或幾項相或得到 AF_ACK_REQUEST 0x10 要求APS應(yīng)答,這是應(yīng)用層的應(yīng)答,支在直接發(fā)送(單播)時使用。 AF

11、_DISCV_ROUTE 0x20 總要包含這個選項 AF_SKIP_ROUTING 0x80 設(shè)置這個選項將導(dǎo)致設(shè)備跳過路由而直接發(fā)送消息。終點設(shè)備將不向其父親發(fā)送消息。在直接發(fā)送(單播)和廣播消息時很好用。radius 最大的跳數(shù),用默認(rèn)值A(chǔ)F_DEFAULT_RADIUSafStatus_t 成功則為ZSuccess(defined in ZComDef.h). 否則 Errors(defined in ZComDef.h)uint8 afDataReqMTU( afDataReqMTU_t* fields ); 找出基于輸入?yún)?shù)的最大可發(fā)送字節(jié)數(shù),返回能發(fā)送的最大字節(jié)數(shù)fields -要發(fā)送

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論