版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026山東事業(yè)單位統(tǒng)考濰坊諸城市招聘40人備考題庫帶答案詳解
- 跨境電商獨立站2025年帶貨合作合同協(xié)議
- 初級測量考試題庫及答案
- 2025-2026人教版小學(xué)三年級科學(xué)上學(xué)期測試卷
- 高三歷史a卷試題及答案
- 2025-2026人教版三年級語文期末測試卷
- 校衛(wèi)生室職責(zé)及管理制度
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院超市管理制度
- 衛(wèi)生院出納管理制度
- 學(xué)校衛(wèi)生室診室管理制度
- 八年級地理上冊《中國的氣候》探究式教學(xué)設(shè)計
- 重慶市2026年高一(上)期末聯(lián)合檢測(康德卷)化學(xué)+答案
- 2026年湖南郴州市百??毓杉瘓F(tuán)有限公司招聘9人備考考試題庫及答案解析
- 2026貴州黔東南州公安局面向社會招聘警務(wù)輔助人員37人考試備考題庫及答案解析
- 鐵路除草作業(yè)方案范本
- 2026屆江蘇省常州市生物高一第一學(xué)期期末檢測試題含解析
- 2026年及未來5年市場數(shù)據(jù)中國高溫工業(yè)熱泵行業(yè)市場運行態(tài)勢與投資戰(zhàn)略咨詢報告
- 教培機構(gòu)排課制度規(guī)范
- 2026年檢視問題清單與整改措施(2篇)
- 國家開放大學(xué)《基礎(chǔ)教育課程改革專題》形考任務(wù)(1-3)試題及答案解析
- 車載HUD產(chǎn)業(yè)發(fā)展趨勢報告(2025)-CAICV智能車載光顯示任務(wù)組
評論
0/150
提交評論