zigbee學(xué)習(xí)自我總結(jié)_第1頁
zigbee學(xué)習(xí)自我總結(jié)_第2頁
zigbee學(xué)習(xí)自我總結(jié)_第3頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1. Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)類型Zigbee網(wǎng)絡(luò)有三類節(jié)點(diǎn)類型:即協(xié)調(diào)器Coordinator、路由器Router與終端設(shè)備EndDevice,其中協(xié)調(diào)器與路由器均為全功能設(shè)備, 而終端設(shè)備選用精簡功能設(shè)備。2. Zigbee協(xié)議棧各層主要功能模塊(更一用戶自定義應(yīng)用時(shí)APOL牧壩T *臨如旅恃幡肌耕節(jié)疋1同路it立/iShi分配 節(jié)點(diǎn)入阿,節(jié)恵廨同JPW收 SMSG KW掃虜機(jī)斟:MACflT巫數(shù)據(jù)恃輸機(jī)制ED M;nVEPHYS沖血收發(fā)T揍牧包的UH檢測惜道選揮pfiifiED/ccAtta«3. Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)地址Zigbee網(wǎng)絡(luò)協(xié)議的每一個(gè)節(jié)點(diǎn)皆有兩個(gè)地址:6 4位的IE

2、EE MAC地址及16位網(wǎng)絡(luò)地址.EUI-64 (64-bit extended unique identifier)1) 64-bit地址,又稱為 MAC地址或IEEE地址。每個(gè)ZigBee節(jié)點(diǎn)都應(yīng)該有全球唯一的 64位IEEE地址。這個(gè)地址需要向IEEE 組織申請才能使用。通信時(shí),將待發(fā)送的數(shù)據(jù)包的目的地址設(shè)為此 64位IEEE 地址,從而實(shí)現(xiàn)數(shù)據(jù)包的正確投遞。2) 16-bit地址,即網(wǎng)絡(luò)地址,或稱為短地址。當(dāng)一個(gè)ZigBee網(wǎng)絡(luò)形成后,ZigBee 網(wǎng)絡(luò)內(nèi)的每個(gè)節(jié)點(diǎn),都會(huì)分配到一個(gè) 16位的網(wǎng)絡(luò)地址。通信時(shí),將待發(fā)送的數(shù) 據(jù)包的目的地址設(shè)為此16位網(wǎng)絡(luò)地址。4. Zigbee 協(xié)議術(shù)語

3、配置文件 (profile) :Zigbee 協(xié)議的配置文件是對(duì)邏輯組件及其相關(guān)接口的 描述,是面向某個(gè)應(yīng)用類別的公約、 準(zhǔn)則通常沒有程序代碼與配置文件相關(guān)聯(lián)屬性 (attribute ):設(shè)備之間通信的每一種數(shù)據(jù)像開關(guān)的狀態(tài)或溫度計(jì)值 等皆可稱為屬性每個(gè)屬性可得到唯一的 ID 值簇(cluster ):多個(gè)屬性的匯集形成了簇,每個(gè)簇也擁有一個(gè)唯一的ID。雖然個(gè)體之間傳輸?shù)耐ǔJ菍傩孕畔ⅲ?但所謂的邏輯組件的接口指的卻是簇一級(jí) 的操作,而非屬性一級(jí)終端( endpoint ):每個(gè)支持一個(gè)或多個(gè)簇的代碼功能塊稱為終端。不同的 設(shè)備通過它們的終端及所支持的簇來進(jìn)行通信。PAN IDs: PAN

4、IDs是用來在邏輯上分離在同一領(lǐng)域內(nèi)的多個(gè)節(jié)點(diǎn)組。這樣 不同組之間節(jié)點(diǎn)通信就不會(huì)干擾,且可以在同一通道 channel 上( zigbee2007 不行,因?yàn)樗ㄐ艜r(shí)可以改變頻率的) Pan id 是16位,范圍是 0x000003fff 。 當(dāng)建立或加入網(wǎng)絡(luò)時(shí)沒有指定 PAN ID的話,就會(huì)根據(jù)default PAN ID確定。它 是個(gè)常量。Extended PAN ID : zigbee增加了一個(gè)8字節(jié)的擴(kuò)展PAN ID,便于提供服 務(wù)與PAN ID沖突檢測。5. 乙gbee協(xié)議結(jié)構(gòu)1阿皓畑CMK)消思屮轉(zhuǎn)MI HF SAP加咔介冠訪問址)服務(wù) 償應(yīng)商禰心肚1APSHF-SAF !-HE陽

5、覆33& 張桂 (tnAPS«*S臣用支擰子繪(APS)NIDE-SAF疇克】 Df.-SAP時(shí)點(diǎn)0APS HE 'SAP航W5T面扳州SAP輸膛層F*HT)佈中丹理mm SAr物理層(PHY)物理層定義了物理無線信道與 MAC子層之間的接口,提供物理層數(shù)據(jù)服務(wù) 與物理層管理服務(wù)。物理層內(nèi)容:1) ZigBee的激活;2)當(dāng)前信道的能量檢測;3)接收鏈路服務(wù)質(zhì)量信息;4 )ZigBee 信道接入方式;5)信道頻率選擇;6)數(shù)據(jù)傳輸與接收。介質(zhì)接入控制子層(MAC)MAC層負(fù)責(zé)處理所有的物理無線信道訪問,并產(chǎn)生網(wǎng)絡(luò)信號(hào)、同步信號(hào);支持PAN連接與分離,提供兩個(gè)對(duì)等 MA

6、C實(shí)體之間可靠的鏈路。MAC 層功能:1)網(wǎng)絡(luò)協(xié)調(diào)器產(chǎn)生信標(biāo);2 )與信標(biāo)同步;3)支持 PAN (個(gè)域網(wǎng))鏈路的建立與斷開;4)為設(shè)備的安全性提供支持;5 )信道接入方式采用免沖突載波檢測多址接入 (CSMA-CA) 機(jī)制;6)處理與維護(hù)保護(hù)時(shí)隙(GTS)機(jī)制;7)在兩個(gè)對(duì)等的 M AC 實(shí)體之間提供一個(gè)可靠的通信鏈路。網(wǎng)絡(luò)層( NWK )ZigBee 協(xié)議棧的核心部分在網(wǎng)絡(luò)層。 網(wǎng)絡(luò)層主要實(shí)現(xiàn)節(jié)點(diǎn)加入或離開網(wǎng)絡(luò)、 接收或拋棄其他節(jié)點(diǎn)、路由查找及傳送數(shù)據(jù)等功能。網(wǎng)絡(luò)層功能: 1)網(wǎng)絡(luò)發(fā)現(xiàn); 2)網(wǎng)絡(luò)形成; 3)允許設(shè)備連接; 4)路由器初始化; 5)設(shè)備同網(wǎng)絡(luò) 連接; 6)直接將設(shè)備同網(wǎng)絡(luò)連

7、接; 7)斷開網(wǎng)絡(luò)連接; 8)重新復(fù)位設(shè)備; 9)接收機(jī) 同步; 10) 信息庫維護(hù)。應(yīng)用層( APL)ZigBee應(yīng)用層框架包括應(yīng)用支持層(APS)、ZigBee設(shè)備對(duì)象(ZDO)與制造 商所定義的應(yīng)用對(duì)象。應(yīng)用支持層的功能包括: 維持綁定表、 在綁定的設(shè)備之間 傳送消息。一個(gè)重要的功能ZigBee 設(shè)備對(duì)象的功能包括:定義設(shè)備在網(wǎng)絡(luò)中的角色 (如 ZigBee 協(xié)調(diào)器與終 端設(shè)備 ),發(fā)起與響應(yīng)綁定請求, 在網(wǎng)絡(luò)設(shè)備之間建立安全機(jī)制。 ZigBee 設(shè)備對(duì) 象還負(fù)責(zé)發(fā)現(xiàn)網(wǎng)絡(luò)中的設(shè)備,并且決定向他們提供何種應(yīng)用服務(wù)。 ZigBee 應(yīng)用 層除了提供一些必要函數(shù)以及為網(wǎng)絡(luò)層提供合適的服務(wù)接口外

8、,是應(yīng)用者可在這層定義自己的應(yīng)用對(duì)象。應(yīng)用程序框架(AF )運(yùn)行在ZigBee協(xié)議棧上的應(yīng)用程序?qū)嶋H上就是廠商自定義的應(yīng)用對(duì)象, 并 且遵循規(guī)范(profile )運(yùn)行在端點(diǎn)1-240上。在ZigBee應(yīng)用中,提供2種標(biāo) 準(zhǔn)服務(wù)類型:鍵值對(duì)(KVP)或報(bào)文(MSG)。Zigbee設(shè)備對(duì)象(ZDO)遠(yuǎn)程設(shè)備通過ZDO請求描述符信息,接收到這些請求時(shí),ZDO會(huì)調(diào)用配 置對(duì)象獲取相應(yīng)描述符值。另外,ZDO提供綁定服務(wù)?;谧h棧體乖分層架構(gòu)埒協(xié)議找代碼丈件夾苛應(yīng)衣如下:協(xié)儀找體系分層衆(zhòng)構(gòu)協(xié)議找代碼文件夾物理層CPHY)城件 159 (HAL)介嵐接入控制了層 MAC )鏈路層目錄(MAC和Zmac網(wǎng)絡(luò)層

9、NWK】網(wǎng)賂層目錄(NWK)應(yīng)用支持層“嚇)網(wǎng)絡(luò)層H錄(NWK)應(yīng)用程序框架 AF)配賢文H H錄(Profile)和陋H程序(sapi)ZigBee K備時(shí)象(疋DC)設(shè)備對(duì)象冃錄(2DCH6. Z-Stack軟件構(gòu)架Z-Stack由mai n ()函數(shù)開始執(zhí)行,ma in ()函數(shù)共做了 2件事:一是系統(tǒng)初始化,另外一件是開始執(zhí)行輪轉(zhuǎn)查詢式操作系統(tǒng),如下圖所示:7. Z-Stack系統(tǒng)運(yùn)行流程圖OSD關(guān)沖斷氏地址itWiV ITEMS附始化Stack RAM盂bcarMIQ門WftttNVFALSHWHt MACb-MtWNVITEMSA幵中斷幵中斷vatTIMERSTcoEShrT設(shè)OS

10、AL任務(wù) 輪禍環(huán)uuy *ftt心低J、*對(duì)高8. Z-Stack在項(xiàng)目中的目錄結(jié)構(gòu)(1) App :應(yīng)用層目錄,這個(gè)目錄下的文件就是創(chuàng)建一個(gè)新項(xiàng)目時(shí)自己要添加的文件, (2)HAL :硬件層目錄, Common 目錄下的文件是公用文件,基本上與硬件 無關(guān),其中 hal_assert.c 是斷言文件,用于調(diào)用, hal_drivers.c 是驅(qū)動(dòng)文件,抽 象出與硬件無關(guān)的驅(qū)動(dòng)函數(shù),包含有與硬件相關(guān)的配置與驅(qū)動(dòng)及操作函數(shù)。Include 目錄下主要包含各個(gè)硬件模塊的頭文件,而 Target 目錄下的文件是跟 硬件平臺(tái)相關(guān)的,可能看到有兩個(gè)平臺(tái),分別是 Cc2430DB 平臺(tái)與一個(gè)CC2430EB

11、平臺(tái)。后面的DB與EB表示的是TI公司開發(fā)板的型號(hào),其實(shí)還有一種類型是 BB 的, BB: Battery BoardDB: Development BoardEB: Evaluation Board分別對(duì)應(yīng) TI 公司開發(fā)的三種板型, 其功能按上順序依次變強(qiáng)。 可以參看 "Z-Stack User's Guide for CC2430" 的圖片,可以獲得更直觀的認(rèn)識(shí)。(3)MAC :MAC 層目錄, High Level 與 Low Level 兩個(gè)目錄表示 MAC 層分為了高層與底層兩層, Include 目錄下則包含了 MAC 層的參數(shù)配置文件及 基 MAC

12、的 LIB 庫函數(shù)接口文件,這里的 MAC 層的協(xié)議是不開源的,以庫的形 式給出(4)MT:監(jiān)制調(diào)試層目錄,該目錄下的文件主要用于調(diào)試目的,即實(shí)現(xiàn)通過 串口調(diào)試各層,與各層進(jìn)行直接交互。( 5) NWK :網(wǎng)絡(luò)層目錄, 含有網(wǎng)絡(luò)層配置參數(shù)文件及網(wǎng)絡(luò)層庫的函數(shù)接口文件,及 APS 層庫的函數(shù)接口(6)OSAL :協(xié)議棧的操作系統(tǒng)抽象層目錄( 7) Profile : AF 層目錄, Application Farmework 應(yīng)用框架,包含 AF 層處 理函數(shù)接口文件8)Security :安全層目錄,包含安全層處理函數(shù)接口文件 ( 9) Services :ZigBee 與 802.15.4

13、設(shè)備地址處理函數(shù)目錄,包括地址模式的 定義及地址處理函數(shù)( 10 )Tools :工作配置目錄,包括空間劃分及 Z-Stack 相關(guān)配置信息( 11 )ZDO :指 ZigBee 設(shè)備對(duì)象,可認(rèn)為是一種公共的功能集,文件用戶用 自定義的對(duì)象調(diào)用 APS 子層的服務(wù)與 NWK 層的服務(wù)(12 )ZMAC :其中 Zmac.c 是 Z-StackMAC 導(dǎo)出層接口文件, zmac_cb.c 是 ZMAC 需要調(diào)用的網(wǎng)絡(luò)層函數(shù)(13 )Zmain:Zmain.c 主要包含了整個(gè)項(xiàng)目的入口函數(shù) main(), 在 OnBoard.c 包含硬件開始平臺(tái)類外設(shè)進(jìn)行控制的接口函數(shù)( 14 )Output:

14、輸出文件目錄,這個(gè)是 EW8051 IDE 自動(dòng)生成的9. Z-stack 中實(shí)現(xiàn)自己的任務(wù)在 Zstack(TI 的 Zigbee 協(xié)議棧 )中 ,對(duì)于每個(gè)用戶自己新建立的任務(wù)通常需要 兩個(gè)相關(guān)的處理函數(shù) ,包括 :用于初始化的函數(shù)如 :SampleApp_Init(), 這個(gè)函數(shù)是在 osalInitTasks( )這個(gè) osal(Zstack 中自帶的小操作系統(tǒng) )中去調(diào)用的 ,其目的就是把一些用戶自己寫的任務(wù)中的 一些變量,網(wǎng)絡(luò)模式 ,網(wǎng)絡(luò)終端類型等進(jìn)行初始化 ;用于引起該任務(wù)狀態(tài)變化的事件發(fā)生后所需要執(zhí)行的事件處理函數(shù)如 :SampleApp_ProcessEvent(), 這 個(gè)

15、函 數(shù) 是 首 先 constpTaskEventHandlerFntasksArr 中進(jìn)行設(shè)置 (綁定 ),然后在 osalInitTasks() 中如果發(fā)生事件進(jìn)行調(diào) 用綁定的事件處理函數(shù)。1 )用戶自己設(shè)計(jì)的任務(wù)代碼在 Zstack 中的調(diào)用過程main()執(zhí)行(在 Zmain 目錄中 ZMain.c )- osal_init_system()(在 OSAL 目 錄 中 的 OSAL.c 中 )- 調(diào) 用 osalInitTasks( )( 在 APP 目 錄 中 的 OSAL_SerialApp.c )- 調(diào)用 SerialApp_Init( ),(在 APP 目錄中的 SerialA

16、pp.c 中 )。在 osalInitTasks() 中 實(shí) 現(xiàn) 了 多 個(gè) 任 務(wù) 初 始 化 的 設(shè) 置 , 其 中 macTaskInit(taskID+) 到 ZDApp_Init(taskID+ ) 的幾行代碼表示對(duì)于幾個(gè)系 統(tǒng)運(yùn)行初始化任務(wù)的調(diào)用,而用戶自己實(shí)現(xiàn)的SampleApp_Init() 在最后 ,這里taskID 隨著任務(wù)的增加也隨之遞增 .所以用戶自己實(shí)現(xiàn)的任務(wù)的初始化操作應(yīng)該 在 osallnitTasks()中增加。(在 APP 目錄中的 OSAL_SerialApp.c 中增加)。2 )任務(wù)處理調(diào)用的重要數(shù)據(jù)結(jié)構(gòu)在 Zstack 里,對(duì)于同一個(gè)任務(wù)可能有多種事件發(fā)

17、生 ,那么需要執(zhí)行不同的事 件處理 ,為了方便,對(duì)于每個(gè)任務(wù)的事件處理函數(shù)都統(tǒng)一在一個(gè)事件處理函數(shù)中實(shí) 現(xiàn),然后根據(jù)任務(wù)的ID號(hào)(task_id)與該任務(wù)的具體事件(events)調(diào)用某個(gè)任務(wù)的 事件處理函數(shù) ,進(jìn)入了該任務(wù)的事件處理函數(shù)之后 ,再根據(jù) events 再來判別是該 任務(wù)的哪一種事件發(fā)生 ,進(jìn)而執(zhí)行相應(yīng)的事件處理。所以這里如果我們pTaskEventHandlerFn 是一個(gè)指向函數(shù) (事件處理函數(shù) )的指針 ,這里實(shí)現(xiàn) 的 每 一個(gè)數(shù)組 元素各對(duì)應(yīng) 于一 個(gè) 任務(wù)的 事 件 處理 函數(shù) ,比如 SampleApp_ProcessEvent 對(duì) 于 用 戶 自 行 實(shí) 現(xiàn) 的 事

18、 件 處 理 函 數(shù) uint16 SampleApp_ProcessEvent( uint8 task_id,uint16 events ),實(shí)現(xiàn)了一個(gè)任務(wù) ,還需要把實(shí)現(xiàn)的該任務(wù)的事件處理函數(shù)在這里添加注意 ,tasksEvents (在 APP 目錄中的 OSAL_SerialApp.c 的 osalInitTasks (void )函數(shù)中 )與 tasksArr (在 APP 中的 OSAL_SerialApp.c 中) 里的順序 是一一對(duì)應(yīng)的 ,tasksArr 中的第 i 個(gè)事件處理函數(shù)對(duì)應(yīng)于 tasksEvents 中的第 i 個(gè)任務(wù)的事件。3 )對(duì)于不同事件發(fā)生后的任務(wù)處理函數(shù)

19、的調(diào)用osal_start_system() 很重要,決定了當(dāng)某個(gè)任務(wù)的事件發(fā)生后調(diào)用對(duì)應(yīng)的事 件處理函數(shù) (在 Zmain 目錄中 ZMain.c) 。10. Z-stack 添加一個(gè)新的任務(wù)在 osalInitTasks ()與 tasksArr 添加相應(yīng)的項(xiàng)就可以了。 osalInitTasks ()為初始化系統(tǒng)的任務(wù), tasksArr 為任務(wù)處理事件矩陣。在 osalInitTasks ()與 tasksArr 添加相應(yīng)的項(xiàng)就可以。1 )修改 osalInitTasks ()void osalInitTasks( void )OuhsApp_Init(taskID+ );PhotoA

20、pp_Init(taskID);2 )修改 tasksArrconst pTaskEventHandlerFn tasksArr = OuhsApp_ProcessEventPhotoApp_ProcessEvent;3 )添加 _Init( ) 與 _ProcessEvent( )void PhotoApp_Init(uint8 task_id)PhotoApp_TaskID=task_id;PhotoInit();RegisterForPhoto(PhotoApp_TaskID );uint16 PhotoApp_ProcessEvent( uint8 task_id uint16 eve

21、nts )afIncomingMSGPacket_t *MSGpkt;if ( events &SYS_EVENT_MSG )MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( PhotoApp_TaskID );while ( MSGpkt )switch ( MSGpkt->hdr.event )case PHOTO_CHANGE:HalLedblink( HAL_LED_1 3 30 300 );/P0IE=1;break;/ Release the memoryosal_msg_deallocate( (uint8 *)

22、MSGpkt );/ Next - if one is availableMSGpkt =(afIncomingMSGPacket_t *)osal_msg_receive( PhotoApp_TaskID );/ return unprocessed eventsreturn (eve nts A SYS_EVENT_MSG);/ Discard unknown eventsreturn 0;TI 節(jié)點(diǎn)地址的獲得:NLME_GetShortAddr(); 調(diào)用 NLME_GetShortAddr()函數(shù),獲得 16 位短地址。 (void) NLME_GetExtAddr(); / Load

23、 the saveExtAddr pointer/ 獲得 64 位的IEEE地址。實(shí)例分析一:Sample Application 工程:遠(yuǎn)程按鍵無線控制燈實(shí)例分析二: 按鍵處理硬件層對(duì)按鍵的處理 : InitBoard( HalKeyConfig(OnboardKeyIntEnable,OnBoard_KeyCallback);/ 按鍵配置,設(shè)置回 調(diào) 函 數(shù) 對(duì) 按 鍵 進(jìn) 行 處 理 HalDriverInit();/ 初 始 化 外 設(shè) HalKeyInit( ) HalKeyConfig( ) /* Register the callback fucntion/ 注冊回調(diào)函數(shù) */p

24、HalKeyProcessFunction = cback;/ 設(shè)置回調(diào)函數(shù) OnBoard_KeyCallback()或如 沒有使用中斷 , osal_start_timerEx (Hal_TaskID, HAL_KEY_EVENT , HAL_KEY_POLLING_V ALUE);/*Kickoffpolling uint16Hal_ProcessEvent( uint8 task_id, uint16 events )對(duì)按鍵進(jìn)行掃描 - HalKeyPoll();/ 檢查按鍵 OnBoard_KeyCallback(uint8keys,uint8state) >OnBoard_S

25、endKeys( keys, shift )- osal_msg_send(registeredKeysTaskID, (uint8 *)msgPtr ); / 發(fā)送消息 KEY_CHANGE 應(yīng)用層對(duì)按鍵的處理: GenericApp_ProcessEvent( byte task_id, UINT16 events ) 在 應(yīng) 用 層 是 通 過 消 息 來 處 理 按 鍵 的 。 通 過 標(biāo) 識(shí)KEY_CHANGE 來 識(shí) 別 GenericApp_HandleKeys( (keyChange_t*)MSGpkt)->state, (keyChange_t *)MSGpkt)-&g

26、t;keys )實(shí)例分析三: 串口處理過程: SerialAPP 工程Main ( ) - HalDriverInit ( )HAL: hal_drivers.cHalDriverInit-HalUARTInit ()-HAL:Target:hal_uart.c-HalUARTInit()- HalUARTInitDMA() 或 HalUARTInitISR ()ZStack-cc2530-2.2.2-1.3.0componentshaltarget_hal_uart_isr.c:HalUARTInitISR(void) 或 ZStack-cc2530-2.2.2-1.3.0 componen

27、tshaltargetCC2530EB_hal_uart_dma.:c HalUARTInitDMA(void)osal_init_system()- osalInitTasks()- SerialApp_Init( taskID )- APPSerialApp.c: SerialApp_Init( taskID ) HalUARTOpen()- HalUARTOpenISR(config)初始化及配置完成之后剩下的就是如何使用 :SerialApp_ProcessEvent( uint8 task_id, UINT16 events ):收:case AF_INCOMING_MSG_CMD:

28、SerialApp_ProcessMSGCmd( MSGpkt );break;發(fā):if ( events & SERIALAPP_SEND_EVT )SerialApp_Send();return ( eve nts A SERIALAPP_SEND_EVT );SerialApp_Send();/ 發(fā)送數(shù)據(jù) -AF_DataRequest(&SerialApp_TxAddr, (endPointDesc_t*)&SerialApp_epDesc, SERIALAPP_CLUSTERID1, SerialApp_TxLen+1, SerialApp_TxBuf, &a

29、mp;SerialApp_MsgID, 0, AF_DEFAULT_RADIUS)實(shí)例分析四: SimpleAPP 測溫分析SimpleSe nsor:采集溫度值并發(fā)送:Mian( )- 初始化 HAL, 在 HAL 目錄下的 hal_board_cfg.h 的 HAL_BOARD_INIT()- Initialize board I/O ,在 ZMain 目錄下的 OnBoard.c 里 InitBoard( )-在 HAL 目錄下的 hal_drivers.c 里 HalDriverInit()-在 OSAL 目錄下的 OSAL.C 里osal_init_system() 在 APP 目錄

30、下的 sapi.c 里 osalInitTasks() 在 APP 目錄下 的 sapi.c 里 SAPI_Init ( ), 同 時(shí) 設(shè) 置 了 應(yīng) 用 開 始 事 件 ZB_ENTRY_EVENT 用 osal_set_event(task_id, ZB_ENTRY_EVENT) 實(shí)現(xiàn) 在 APP 目錄下的 sapi.c 里SAPI_ProcessEvent ( ) 事 件 處 理 在 APP 目 錄 下 的 SimpleSensor.c 里zb_HandleOsalEvent ( ) 讀 取 溫 度 值 在 APP 目 錄 下 的 sapi.c 里 通 過zb_SendDataReque

31、st ( )調(diào)用 AF_DataRequest ()把溫度發(fā)出去 注 : zb_SendDataRequest( 0xFFFE, SENSOR_REPORT_CMD_ID , 2, pData, 0, AF_ACK_REQUEST, 0 ) ;參數(shù) pData 就是采集到的溫度值。SimpleCollector :溫度值接收并上報(bào):Mian( )- osal_init_system() 在 APP 目錄下的 sapi.c 里 osalInitTasks() 在 APP 目錄下的 sapi.c 里 SAPI_Init () tasksArr SAPI_ProcessEvent case AF_INCOMING_MSG_CMD:SAPI_ReceiveDataIndication () zb_ReceiveDataIndication( source, command , len, pData ) 該函數(shù)在 APP 目錄的 SimpleCollector.c 里 if (command = SENSOR_REPORT_CMD_ID

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論