版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)教程綁定實(shí)驗(yàn)主講教師:柯宗武2012年12月Copyright:柯宗武本章內(nèi)容n綁定的基本概念n綁定的方法n實(shí)例講解Copyright:柯宗武實(shí)驗(yàn)內(nèi)容n協(xié)調(diào)器通過廣播方式綁定終端節(jié)點(diǎn),在液晶屏上顯示綁定過程。n終端節(jié)點(diǎn)綁定到協(xié)調(diào)器。綁定成功后發(fā)送“Hello World”給協(xié)調(diào)器并顯示。n綁定完成后,按協(xié)調(diào)器中鍵(center)時(shí)點(diǎn)亮對(duì)方的指示燈。Copyright:柯宗武預(yù)備知識(shí)-傳感器網(wǎng)絡(luò)數(shù)據(jù)通信Copyright:柯宗武預(yù)備知識(shí)- ZigBee網(wǎng)絡(luò)地址n網(wǎng)絡(luò)地址q在一個(gè)新設(shè)備加入網(wǎng)絡(luò)之后協(xié)調(diào)器會(huì)主動(dòng)為它分配一個(gè)網(wǎng)絡(luò)地址,以方便在網(wǎng)絡(luò)中的身分確認(rèn)q理論地址范圍:0-655
2、35n某些專用的地址不會(huì)分配給設(shè)備q如:0 xFFFF是廣播地址(所有設(shè)備),0 xFFFE是廣播到FFD設(shè)備(全功能設(shè)備:路由器)Copyright:柯宗武預(yù)備知識(shí)-ZStack中網(wǎng)絡(luò)地址定義ntypedef structnn unionn n uint16 shortAddr;n ZLongAddr_t extAddr;n addr;n byte addrMode;n zAddrType_t;枚舉類型enum AddrNotPresent = 0, AddrGroup = 1, Addr16Bit = 2, Addr64Bit = 3, AddrBroadcast = 15;Copyrig
3、ht:柯宗武預(yù)備知識(shí)-應(yīng)用框架(Application Framework)nAF層為各個(gè)用戶自定義的應(yīng)用對(duì)象提供了模板式的活動(dòng)空間,為每個(gè)應(yīng)用對(duì)象提供了鍵值對(duì)KVP服務(wù)和報(bào)文MSG服務(wù)兩種服務(wù)供數(shù)據(jù)傳輸使用。n每個(gè)節(jié)點(diǎn)除了64位的IEEE地址,16位的網(wǎng)絡(luò)地址,每個(gè)節(jié)點(diǎn)還提供了8位的應(yīng)用層入口地址,對(duì)應(yīng)于用戶應(yīng)用對(duì)象。端點(diǎn)0為ZDO接口,端點(diǎn)1至240供用戶自定義用于對(duì)象使用,端點(diǎn)255為廣播地址,端點(diǎn)241 -254保留將來使用。Copyright:柯宗武預(yù)備知識(shí)-應(yīng)用框架(Application Framework)n每一個(gè)應(yīng)用都對(duì)應(yīng)一個(gè)配置文件(Profile)。配置文件包括:設(shè)備ID
4、(Device ID),事務(wù)集群ID(cluster ID),屬性ID(Attribute ID)等。AF可以通過這些信息來決定服務(wù)類型。Copyright:柯宗武預(yù)備知識(shí)-profilesn應(yīng)用profiles是一組統(tǒng)一的消息,消息格式和處理方法,允許開發(fā)者建立一個(gè)可以共同使用的分布式應(yīng)用程序,這些應(yīng)用是利用駐扎在獨(dú)立設(shè)備中的應(yīng)用實(shí)體來實(shí)現(xiàn)的。這些應(yīng)用profiles允許應(yīng)用程序發(fā)送命令、請(qǐng)求數(shù)據(jù)和處理命令的請(qǐng)求。n總之,配置文件使得ZigBee 設(shè)備可以互操作。ZigBee 聯(lián)盟已經(jīng)定義了很多標(biāo)準(zhǔn)的配置文件,比如遠(yuǎn)程控制開關(guān)配置文件和智能家居等。任何遵循某一標(biāo)準(zhǔn)配置文件的節(jié)點(diǎn)都可以與其他實(shí)
5、現(xiàn)相同配置文件的節(jié)點(diǎn)進(jìn)行互操作。n一個(gè)public profile也規(guī)定了profile 的ID,比如智能家居就規(guī)定是0 x104。Copyright:柯宗武預(yù)備知識(shí)-簇(cluster)n簇標(biāo)識(shí)符可用來區(qū)分不同的簇,簇標(biāo)識(shí)符聯(lián)系著從設(shè)備流出和向設(shè)備流入的數(shù)據(jù)。在特殊的應(yīng)用profiles范圍內(nèi),簇標(biāo)識(shí)符是唯一的。ncluster要理解成一個(gè)大方向下的一個(gè)特定對(duì)象,比如智能家居下的一個(gè)調(diào)光器,操作這個(gè)調(diào)光器就需要一些命令,比如變亮,變暗,關(guān)燈,開燈這些,另外,這個(gè)調(diào)光器也會(huì)有一個(gè)attribute,也就屬性,比如當(dāng)前的亮度,由亮變暗的過程經(jīng)歷多長時(shí)間。Copyright:柯宗武預(yù)備知識(shí)-簇(c
6、luster)n總結(jié)說來,Profile規(guī)范了應(yīng)該包括哪些cluster,一個(gè)cluster會(huì)有一個(gè)ID,在一個(gè)cluster下又會(huì)有很多command,也會(huì)有很多attibute,在一個(gè)cluster下面command 和attribute的ID要唯一,不同的cluster下可以重復(fù),不同的profile下clusterID也可以重復(fù)。Copyright:柯宗武預(yù)備知識(shí)- ZigBee設(shè)備對(duì)象(ZDO)nZigBee設(shè)備對(duì)象(ZDO),描述了一個(gè)基本的功能函數(shù),這個(gè)功能在應(yīng)用對(duì)象、設(shè)備profile和APS之間提供了一個(gè)接口。ZDO位于應(yīng)用框架和應(yīng)用支持子層之間。它滿足所有在ZigBee協(xié)議
7、棧中應(yīng)用操作的一般需要。此外ZDO還有以下作用:q初始化應(yīng)用支持子層(APS),網(wǎng)絡(luò)層(NWK),安全服務(wù)規(guī)范(SSS)。q從終端應(yīng)用集合中配置的信息來確定和執(zhí)行安全管理、發(fā)現(xiàn)、網(wǎng)絡(luò)管理、以及綁定管理。Copyright:柯宗武預(yù)備知識(shí)- ZigBee設(shè)備對(duì)象(ZDO)nZDO描述了應(yīng)用框架層中應(yīng)用對(duì)象的公用接口以及控制設(shè)備和應(yīng)用對(duì)象的網(wǎng)絡(luò)功能。在終端節(jié)點(diǎn)0, ZDO提供了與協(xié)議棧中與低一層連接的接口,如果是數(shù)據(jù)則通過APSDE-SAP,如果是控制信息則通過APSME-SAP。qAPS數(shù)據(jù)實(shí)體(APSDE)提供在同一個(gè)網(wǎng)絡(luò)中的兩個(gè)或者更多的應(yīng)用實(shí)體之間的數(shù)據(jù)通信。通過APSDE服務(wù)接入點(diǎn)(AP
8、SDE-SAP);qAPS管理實(shí)體(APSME)提供多種服務(wù)給應(yīng)用對(duì)象,這些服務(wù)包含安全服務(wù)和綁定設(shè)備,并維護(hù)管理對(duì)象的數(shù)據(jù)庫,也就是我們常說的AIB。Copyright:柯宗武預(yù)備知識(shí)- ZDO與Profile的關(guān)系nZDO是ZigBee設(shè)備對(duì)象,屬于特殊的Endpoint(特制自己);Profile面向某個(gè)應(yīng)用的公約或準(zhǔn)則,包括5種描述項(xiàng);AF是應(yīng)用層。nProfile是法律條款, ZDO是邏輯工作實(shí)體(自己); Profile中的多種描述項(xiàng)是條例、是圖紙, ZDO是具體實(shí)現(xiàn)。以上內(nèi)容詳見ZigBee2007協(xié)議規(guī)范Copyright:柯宗武綁定 (Binding)的基本概念n綁定是一種兩
9、個(gè) ( 或者多個(gè) ) 應(yīng)用設(shè)備之間信息流的控制機(jī)制 。n綁定允許應(yīng)用程序發(fā)送一個(gè)數(shù)據(jù)包而不需要知道目標(biāo)地址。 APS 層從它的綁定表中確定目標(biāo)地址 ,然后將數(shù)據(jù)繼續(xù)向目標(biāo)應(yīng)用或者目標(biāo)組發(fā)送n當(dāng)兩個(gè)設(shè)備已經(jīng)在他們的簡單描述符結(jié)構(gòu)中登記為一樣的簇ID,并且一個(gè)作為輸入另一個(gè)作為輸出時(shí),綁定才能成功。n綁定服務(wù)是針對(duì)設(shè)備端點(diǎn)上的簇,用戶程序只需要提供端點(diǎn)號(hào)和簇ID,就可以通過綁定表找到對(duì)應(yīng)的被綁定的節(jié)點(diǎn)的網(wǎng)絡(luò)地址和端點(diǎn)號(hào),從而實(shí)現(xiàn)無線數(shù)據(jù)的發(fā)送 Copyright:柯宗武建立綁定表n有四種方法可以建立一個(gè)綁定表:qZigBee Device Object Bind Request(Match方式)n
10、一個(gè)啟動(dòng)工具可以告訴設(shè)備創(chuàng)建一個(gè)綁定記錄qZigBee Device Object End Device Bind Requestn兩個(gè)設(shè)備可以告訴協(xié)調(diào)器它們想要建立一個(gè)綁定表記錄。協(xié)調(diào)器來協(xié)調(diào)并在兩個(gè)設(shè)備中創(chuàng)建綁定表記錄。qDevice Applicationn一個(gè)設(shè)備上的應(yīng)用程序建立或者管理一個(gè)綁定表q由管理員手工綁定n通過pc機(jī)串口發(fā)送綁定命令,集中管理。Copyright:柯宗武ZigBee Device Object Bind Requestn任何一個(gè)設(shè)備都可以發(fā)送一個(gè) ZDO 信息給網(wǎng)絡(luò)中的另一個(gè)設(shè)備,用來建立綁定表。稱之為援助綁定,它可以為一個(gè)發(fā)送設(shè)備創(chuàng)建一個(gè)綁定記錄。nMatc
11、h方式q一個(gè)節(jié)點(diǎn)可以通過調(diào)用afSetMatch函數(shù)允許或禁止本節(jié)點(diǎn)被Match(協(xié)議棧默認(rèn)允許,可以手工關(guān)閉),然后另外一個(gè)節(jié)點(diǎn)在一定的時(shí)間內(nèi)發(fā)起ZDP_MatchDescReq請(qǐng)求,允許被Match的節(jié)點(diǎn)會(huì)響應(yīng)這個(gè)Req,發(fā)起的節(jié)點(diǎn)在接收到RSP的時(shí)候就會(huì)自動(dòng)處理綁定。Copyright:柯宗武Match方式n網(wǎng)絡(luò)中不一定有協(xié)調(diào)器存在,但是有A、B、C、D等多個(gè)節(jié)點(diǎn),A性質(zhì)是Outcluster,B、C、D的性質(zhì)是Incluster,你可以通過按鍵策略來在一定時(shí)間內(nèi)允許B、C、D中的任何一個(gè)開啟被Match的功能,同時(shí)A發(fā)起Match請(qǐng)求(廣播的),那么被允許Match的節(jié)點(diǎn)就會(huì)在收到請(qǐng)求
12、后將自己的信息返給A,A在得到rsp的時(shí)候來處理綁定,Copyright:柯宗武Match方式綁定流程Copyright:柯宗武Match方式綁定流程Copyright:柯宗武ZigBee Device Object End Device Bind Requestn這個(gè)機(jī)制是在指定的時(shí)間周期 (timeout period) 內(nèi) , 通過按下選定設(shè)備上的按鈕或者類似的動(dòng)作來綁定。協(xié)調(diào)器在指定的時(shí)間周期內(nèi),搜集終端設(shè)備的綁定請(qǐng)求信息,然后以配置 ID(Profile ID) 和簇ID(Cluster ID) 協(xié)議為基礎(chǔ),創(chuàng)建一個(gè)綁定表記錄作為結(jié)果。默認(rèn)的設(shè)備綁 定時(shí)間周期(APS_DEFAULT
13、_MAXBINDING_TIME) 是 16 秒鐘 ( 在 nwk_globals.h 中定義 ) 。但是將它添加到f8wConfig.cfg 中,則可以更改。 Copyright:柯宗武ZigBee Device Object End Device Bind Request綁定程序流程n在 GenericApp.c 中的GenericApp_HandleKeys 函數(shù)中首先確定目的地址類型及目的地址,然后調(diào)用 ZDApp_SendEndDeviceBindReq()n函數(shù)ZDApp_SendEndDeviceBindReq搜集所有終端節(jié)點(diǎn)的請(qǐng)求信息,然后調(diào)用 ZDP_EndDeviceBin
14、dReq() 【userApp.c】函數(shù)將這些信息通過fillAndSend()【ZDProfile.c】函數(shù)調(diào)用AF_DataRequest() 【ZDProfile.c】函數(shù)發(fā)送給協(xié)調(diào)器。Copyright:柯宗武ZigBee Device Object End Device Bind Request綁定程序流程n協(xié)調(diào)器調(diào)用函數(shù)ZDApp_ProcessOSALMsg()【ZDApp.c】nZDApp_ProcessOSALMsg調(diào)用函數(shù) ZDP_IncomingData() 【 ZDProfile.c 】函數(shù)接收這些信息。nZDApp_ProcessMsgCBs函數(shù)處理響應(yīng)信息,調(diào)用ZD
15、O_MatchEndDeviceBind()【 ZDObject.c 中】函數(shù)來處理這個(gè)請(qǐng)求。Copyright:柯宗武ZigBee Device Object End Device Bind Request綁定程序流程n當(dāng)收到兩個(gè)匹配的終端設(shè)備綁定請(qǐng)求,協(xié)調(diào)器在請(qǐng)求設(shè)備中啟動(dòng)創(chuàng)建源綁定記錄的進(jìn)程。假設(shè)在ZDO 終端設(shè)備中發(fā)現(xiàn)了匹配的請(qǐng)求,協(xié)調(diào)器將執(zhí)行下面的步驟:q發(fā)送一個(gè)解除綁定請(qǐng)求給第一個(gè)設(shè)備。這個(gè)終端設(shè)備鎖定進(jìn)程,這樣解除綁定被首先發(fā)送來去掉一個(gè)已經(jīng)存在的綁定記錄。q等待 ZDO 解除綁定的響應(yīng),如果響應(yīng)的狀態(tài)是 ZDP_NO_ENTRY ,則發(fā) 送一個(gè) ZDO 綁定請(qǐng)求Copyrigh
16、t:柯宗武ZigBee Device Object End Device Bind Request綁定程序流程q在源設(shè)備中創(chuàng)建一個(gè)綁定記錄。如果狀態(tài)是 ZDP_SUCCESS ,則繼續(xù)前進(jìn)到第一個(gè)設(shè)備的簇ID 。q等待 ZDO 綁定響應(yīng),如果收到了,則繼續(xù)前進(jìn)到第一個(gè)設(shè)備的下一個(gè)簇ID 。q當(dāng)?shù)匾粋€(gè)設(shè)備完成后,用同樣的方法處理第二個(gè)設(shè)備。q當(dāng)?shù)诙€(gè)設(shè)備也完成之后,發(fā)送 ZDO 終端設(shè)備綁定請(qǐng)求消息給兩個(gè)設(shè)備。Copyright:柯宗武Device Applicationn另一種進(jìn)入設(shè)備綁定記錄的方式是應(yīng)用自己管理綁定表 。 這就意味著應(yīng)用程序需要通過調(diào)用下面的綁定管理函數(shù)在本地進(jìn)入并且刪除綁定
17、記錄:qbindAddEntry() 在綁定表中增加一個(gè)記錄qbindRemoveEntry() 從綁定表中刪除一個(gè)記錄qbindRomoveClusterIdFromList() 從一個(gè)存在的綁定表記錄中刪除一個(gè)群 IDqbindAddClusterIdToList() 向一個(gè)已經(jīng)存在的綁定記錄中增加一個(gè)群 IDqbindRemoveDev() 刪除所有地址引用的記錄Copyright:柯宗武Device ApplicationqbindRemoveSrcDev() 刪除所有源地址引用的記錄qbindUpdateAddr() 將記錄更新為另一個(gè)地址qbindFindExisting() 查找
18、一個(gè)綁定表記錄qbindIsClusterIdInList() 在表記錄中檢查一個(gè)已經(jīng)存在的群 IDqbindNumBoundTo() 擁有相同地址 ( 源或者目的 ) 的記錄的個(gè)數(shù)qbindNumEntries() 表中記錄的個(gè)數(shù)qbindCapacity() 最多允許的記錄個(gè)數(shù)qbindWriteNV() 在 NV 中更新表Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(ENDPOINT 一般描述符)n每個(gè)ENDPOINT都必須有一個(gè)Zigbee簡單描述。這些描述對(duì)Zigbee網(wǎng)絡(luò)刻畫了這個(gè)ENDPOINT ,其他設(shè)備可以詢問這個(gè)終端以知道這個(gè)設(shè)備的類型。Copyright:柯宗武實(shí)例講解-
19、預(yù)備知識(shí)(ENDPOINT 一般描述符)n/ Simple Description Format Structurentypedef structnn byte EndPoint;n uint16 AppProfId;n uint16 AppDeviceId;n byte AppDevVer:4;n byte Reserved:4; / AF_V1_SUPPORT uses for AppFlags:4.n byte AppNumInClusters;n cId_t *pAppInClusterList;n byte AppNumOutClusters;n cId_t *pAppOutClus
20、terList;n SimpleDescriptionFormat_t;Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(ENDPOINT 一般描述符)nEndPoint 端口號(hào):1-240 這是節(jié)點(diǎn)的子地址,用來接收數(shù)據(jù)nAppProfId 定義了這個(gè)終端上支持的Profile ID), ID最好遵循由ZigBee聯(lián)盟的分配。nAppDeviceId 終端支持的設(shè)備ID,ID最好遵循ZigBee聯(lián)盟的分配。nAppDevVer 此終端上設(shè)備執(zhí)行的設(shè)備描述的版本:0 x00為Version 1.0. nReserved 保留 nAppNumInClusters 終端支持的輸入簇?cái)?shù)目 npAppIn
21、ClusterList 指向輸入Cluster ID列表的指針nAppNumOutClusters 終端支持的輸出簇?cái)?shù)目 npAppOutClusterList 指向輸出Cluster ID列表的指針Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(ENDPOINT 描述符)n節(jié)點(diǎn)中的每一個(gè)ENDPOINT都必須有一個(gè)設(shè)備描述符ntypedef structnn byte endPoint;n byte *task_id; / Pointer to location of the Application task ID.n SimpleDescriptionFormat_t *simpleDesc
22、;n afNetworkLatencyReq_t latencyReq;n endPointDesc_t;task_id -任務(wù)ID指針,當(dāng)接收到消息時(shí),此任務(wù)ID將指示消息傳遞目的。接收到的消息是以O(shè)SAL消息形式包裝的,將發(fā)送到一個(gè)任務(wù)。simpleDesc -指向這個(gè)終端的ZigBee簡單描述。 。必須用noLatencyReqs來填充。Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(設(shè)備注冊函數(shù))nafStatus_t afRegister( endPointDesc_t *epDesc );n為設(shè)備注冊一個(gè)新的終端nepDesc -指向終端描述符n返回值:afStatus_t -若成功
23、則返回ZSuccess,否則返回ZComDef.h中定義的錯(cuò)誤Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(發(fā)送數(shù)據(jù)的函數(shù))nafStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP, uint16 cID, uint16 len, uint8 *buf, uint8 *transID, uint8 options, uint8 radius );ndstAddr -目標(biāo)地址指針。nsrcEP -發(fā)送終端的終端描述符指針ncID -簇IDnlen -要發(fā)送的字節(jié)數(shù)nbuf -指向要發(fā)送的數(shù)據(jù)緩存的指針ntra
24、nsID -事務(wù)序列號(hào)指針。如果消息緩存發(fā)送,這個(gè)函數(shù)將增加這個(gè)數(shù)字Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(發(fā)送數(shù)據(jù)的函數(shù))noptions -發(fā)送選項(xiàng),可以由下面一項(xiàng),或幾項(xiàng)相或得到qAF_ACK_REQUEST 0 x10 要求APS應(yīng)答,這是應(yīng)用層的應(yīng)答,只在直接發(fā)送(單播)時(shí)使用。qAF_DISCV_ROUTE 0 x20 總要包含這個(gè)選項(xiàng)qAF_SKIP_ROUTING 0 x80 設(shè)置這個(gè)選項(xiàng)將導(dǎo)致設(shè)備跳過路由而直接發(fā)送消息。終點(diǎn)設(shè)備將不向其父親發(fā)送消息。在直接發(fā)送(單播)和廣播消息時(shí)很好用。nradius 最大的跳數(shù),用默認(rèn)值A(chǔ)F_DEFAULT_RADIUSnafStat
25、us_t 成功則為ZSuccess(defined in ZComDef.h). 否則 Errors(defined in ZComDef.h)Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(綁定請(qǐng)求)nZDP_EndDeviceBindReq參數(shù)說明qafStatus_t ZDP_EndDeviceBindReq(q zAddrType_t *dstAddr,q uint16 LocalCoordinator,q byte endPoint,q uint16 ProfileID,q byte NumInClusters, cId_t *InClusterList,q byte NumOutCl
26、usters, cId_t *OutClusterList,n byte SecurityEnable )dstAddr:協(xié)調(diào)器地址,有協(xié)調(diào)器協(xié)助進(jìn)行綁定;LocalCoordinator:需要綁定的節(jié)點(diǎn)網(wǎng)絡(luò)地址(本節(jié)點(diǎn)地址);endPoint:需要綁定的端點(diǎn)號(hào);ProfileID:協(xié)議ID;NumInClusters:輸入簇個(gè)數(shù);InClusterList:輸入簇列表;NumOutClusters:輸出簇個(gè)數(shù);OutClusterList:輸出簇列表;Copyright:柯宗武實(shí)例講解-預(yù)備知識(shí)(綁定匹配應(yīng)答)nafStatus_t ZDP_MatchDescReq( zAddrType_t
27、 *dstAddr, uint16 nwkAddr,n uint16 ProfileID,n byte NumInClusters, cId_t *InClusterList,n byte NumOutClusters, cId_t *OutClusterList,n byte SecurityEnable )Copyright:柯宗武實(shí)例講解n定義輸入、輸出簇n定義兩個(gè)設(shè)備描述n用戶任務(wù)初始化n用戶任務(wù)處理函數(shù)q按鍵處理q上鍵-ENDDEVICE 發(fā)起綁定請(qǐng)求q右鍵-CORDINATER發(fā)起綁定請(qǐng)求q左鍵-啟動(dòng)Match方式q中鍵-要求添加一個(gè)程序,按下CORDINATER中鍵控制ENDDE
28、VICE一個(gè)燈Copyright:柯宗武綁定表演程序簡介Copyright:柯宗武綁定表演-1n重新依次啟動(dòng)協(xié)調(diào)器、路由節(jié)點(diǎn)及終端節(jié)點(diǎn)。n等待節(jié)點(diǎn)都加入網(wǎng)絡(luò)后。n把路由節(jié)點(diǎn)或終端節(jié)點(diǎn)的搖桿按鍵向右拔,OLED顯示:Copyright:柯宗武綁定表演-2n然后把另一個(gè)節(jié)點(diǎn)的搖桿按鍵也向右拔,OLED顯示:如果綁定成功,兩個(gè)節(jié)點(diǎn)同時(shí)顯示:Copyright:柯宗武綁定表演-3n如果兩個(gè)節(jié)點(diǎn)綁定成功后,這兩個(gè)節(jié)點(diǎn)會(huì)啟動(dòng)超時(shí)定時(shí)器,每隔3秒向?qū)Ψ桨l(fā)送一次數(shù)據(jù),另一個(gè)節(jié)點(diǎn)接收到數(shù)據(jù)后顯示出來,并顯示接收到數(shù)據(jù)的次數(shù),如圖:Copyright:柯宗武實(shí)例講解2n自動(dòng)匹配q使用IAR7.51打開“Proje
29、ctszstackSamples GenericApp CC2530DB”中工程文件“GenericApp.eww”。q查看物理地址,兩個(gè)節(jié)點(diǎn)物理地址不能相同q修改PANID,每個(gè)同學(xué)不一樣。Copyright:柯宗武代碼講解nGenericApp.cqGenericApp_HandleKey()nZDP_MatchDescReq ();發(fā)送綁定請(qǐng)求qfillAndSend ();AF_DataRequest ();將打包好的數(shù)據(jù)通過無線的形式發(fā)送出去 ,注意是發(fā)給ZDO層地址nZDO層接收到無線數(shù)據(jù)包后,會(huì)產(chǎn)生一個(gè)AF_INCOMING_MSG_CMD消息 Copyright:柯宗武代碼講解
30、nZDApp.cqZDP_IncomingData ();/將消息按指定格式提取出來,并將消息路由到不同函數(shù)進(jìn)行處理:將在ZDO注冊過的回調(diào)消息,轉(zhuǎn)交到回調(diào)消息響應(yīng)部分處理;將指定的簇交由對(duì)應(yīng)函數(shù)處理。 n handled = ZDO_SendMsgCBs( &inMsg ); /處理ZDO回調(diào)消息 nzdpMsgProcs ();/ 在文件ZDProfile.c中注冊綁定消息處理函數(shù)ZDO_ProcessMatchDescReq() Copyright:柯宗武代碼講解nZDO_ProcessMatchDescReq ();/遍歷本設(shè)備中注冊過的端點(diǎn)描述符,使每個(gè)端點(diǎn)描述符的簇列表與無
31、線收到簇列表進(jìn)行匹配。 qZDP_MatchDescRsp ();/成功匹配,發(fā)送Match_Desc_rsp 消息n在應(yīng)用層注冊有匹配描述符響應(yīng)消息,當(dāng)無線接收到響應(yīng)數(shù)據(jù)包,在應(yīng)用層回產(chǎn)生一個(gè)ZDO_CB_MSG消息。并調(diào)用GenericApp_ProcessZDOMsgs函數(shù)進(jìn)行處理 Copyright:柯宗武代碼講解nGenericApp_ProcessZDOMsgs()qcase Match_Desc_rsp: nZDO_ParseEPListRsp ();/對(duì)接收到的信息包進(jìn)行解析,并將解析得到地址信號(hào)保存起來,作為通信的依據(jù)。 n在應(yīng)用層注冊匹配描述符響應(yīng): qZDO_RegisterForZDOMsg( GenericApp_TaskID
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年甘肅會(huì)展中心有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2025版智慧城市運(yùn)營項(xiàng)目融資協(xié)議合同范本3篇
- 2025年度個(gè)人小戶型房產(chǎn)買賣及裝修改造合同4篇
- 2025年個(gè)人森林撫育與更新承包合同4篇
- 2025年全球及中國醫(yī)用協(xié)作機(jī)器人行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球鄰氯苯腈(氯化法)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球觸控?zé)粜袠I(yè)調(diào)研及趨勢分析報(bào)告
- 2025版拖拉機(jī)銷售與保險(xiǎn)服務(wù)合同范本6篇
- 2025年度房產(chǎn)租賃合同(含租金調(diào)整及違約責(zé)任)3篇
- 2025年度個(gè)人設(shè)備租賃貸款合同范本7篇
- 2024年全國職業(yè)院校技能大賽高職組(研學(xué)旅行賽項(xiàng))考試題庫(含答案)
- 2025年溫州市城發(fā)集團(tuán)招聘筆試參考題庫含答案解析
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 2025版高考物理復(fù)習(xí)知識(shí)清單
- 除數(shù)是兩位數(shù)的除法練習(xí)題(84道)
- 2025年度安全檢查計(jì)劃
- 2024年度工作總結(jié)與計(jì)劃標(biāo)準(zhǔn)版本(2篇)
- 全球半導(dǎo)體測試探針行業(yè)市場研究報(bào)告2024
- 反走私課件完整版本
- 2024年注冊計(jì)量師-一級(jí)注冊計(jì)量師考試近5年真題附答案
- 四年級(jí)下冊數(shù)學(xué)知識(shí)點(diǎn)總結(jié)
評(píng)論
0/150
提交評(píng)論