


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)?zāi)康?/p>
基于GenericApp掌握基于GenericApp無線收實(shí)驗(yàn)設(shè)備硬件:PC 一EB2530(底板、板、USB線 兩仿真 一軟件:2000/XP/win7,IAR8.10實(shí)驗(yàn)?zāi)P徒o終端,終端收到后Led1也閃爍。實(shí)驗(yàn)詳解:一 分析#include#includehal_drivers.h"http://硬件驅(qū)#include //操作系統(tǒng)頭文件#include //操作系統(tǒng)任務(wù)頭文件#ifdefinedMT_TASK //串口應(yīng)用頭文件#include#include8.9.//網(wǎng)絡(luò)層頭文件10.//應(yīng)用支持層頭文件11.//設(shè)備對象頭文件#ifdefined(ZIGBEE_FREQ_AGILITY)||defined(ZIGBEE_PANID_#include#ifdefined(ZIGBEE_FRAGMENTATION#include#includeconstpTaskEventHandlerFntasksArr[]= //MAC任務(wù)循 //網(wǎng)絡(luò)層任務(wù)函數(shù) //硬件層函數(shù)#ifdefined(MT_TASK //串口支持層定義 //應(yīng)用支持層任務(wù)事件函數(shù)#ifdefined(ZIGBEE_FRAGMENTATION //設(shè)備對象層函數(shù)#ifdefined(ZIGBEE_FREQ_AGILITY)||defined(ZIGBEE_PANID_ //自己定義的任務(wù)處理函數(shù)36.const t=sizeof(tasksArr)/sizeof(tasksArr[0]uint16voidosalInitTasks(void完成了任務(wù)ID的分配,以及所有任務(wù)的初{uint8taskID=//分配內(nèi)存空間tasksEvents=(uint16*)osal_mem_alloc(sizeof(uint16) osal_memset(tasksEvents,0,(sizeof(uint16) makInit(taskID++);//MAC層的任務(wù)IDnwk_init(taskID //網(wǎng)絡(luò)ID分配Hal_Init(taskID //硬件ID分配#ifdefined(MT_TASKMT_TaskInit(taskID++APS_Init(taskID++#ifdefined(ZIGBEE_FRAGMENTATIONAPSF_Init(taskID++ZDApp_Init(taskID++#ifdefined(ZIGBEE_FREQ_AGILITY)||defined(ZIGBEE_PANID_ZDNwkMgr_Init(taskID++GenericApp_Init(taskID);//自己任務(wù)初始化函59.第1-18第19-36行tasksArr數(shù)組里面存放所有任務(wù)的任務(wù)處理函數(shù),如果操作系查詢到了該任務(wù)第37行t第38tasksEvent第39-59行完成了任務(wù)ID的分配,以及所有任務(wù)的初始化。GenericApp_Init(taskID二 協(xié)調(diào)器源碼分#include#include#include#include#include#include#include#if!defined(WIN32#include/*HAL#include#include#include#include#includeconstcId_tGenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS]{20.constSimpleDescriptionFormat_tGenericApp_SimpleDesc{ //int //uint16 //uint16 // // //byte(cId_t*)GenericApp_ClusterList,//byte //byte(cId_t //byte32.endPointDesc_tbytebytevoid ingMSGPacket_t*pcktvoidvoidGenericApp_Init(bytetask_id{GenericApp_TaskID=task_id;//osal分配的任務(wù)ID隨著用戶添加任務(wù)的增多而改變GenericApp_TransID=0;//消息發(fā)送ID(多消息時有順序之分//定義本設(shè)備用來通信的APS層端點(diǎn)描述符 GENERICAPP_ENDPOINT;//應(yīng)用程序的端GenericApp_epDesc.task_id&GenericApp_TaskID;//描述符的任務(wù) //簡單描述符 =(SimpleDescriptionFormat_tGenericApp_epDesc.latencyReq //延時策afRegister(&GenericApp_epDesc //向AF層登記描述符49.UINT16GenericApp_ProcessEvent(bytetask_id,UINT16events{ingMSGPacket_tif(events&SYS_EVENT_MSG{MSGpkt= ingMSGPacket_t*)osal_msg_receive(GenericApp_TaskIDwhile(MSGpkt{switch(MSGpkt->hdr.event{ osal_msg_deallocate((uint8*)MSGpktMSGpkt= ingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID}return(events^}return72.void ingMSGPacket_t{unsignedcharswitch(pkt->clusterId{caseosal_memset(buf,0,osal_memcpy(buf,pkt->cmd.Data,if(buf[0]=='D'&&{HalLedBlink(HAL_LED_1,0,50, {HalLedSet(HAL_LED_1, }92.void{byteafAddrType_t}constcId_tGenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS]{#defineGENERICAPP_MAX_CLUSTERS 1//在頭文件的宏定義#defineGENERICAPP_CLUSTERID 第33endPointDesc_tGenericApp_epDesc;//簡單描述第34byteGenericApp_TaskID/osal分配的任務(wù)ID隨著用戶添加任務(wù)的增多而改變第35行byteGenericApp_TransID;//消息發(fā)送ID(多消息時有順序之分)第38-49行GenericApp_Init函數(shù),程序初始化部分都可寫在此函voidGenericApp_Init(bytetask_id{GenericApp_TaskID=task_id;//osal分配的任務(wù)ID隨著用戶添加任務(wù)的增多改GenericApp_TransID=0;//消息發(fā)送ID(多消息時有順序之分//定義本設(shè)備用來通信的APS層端點(diǎn)描述符 GENERICAPP_ENDPOINT;//應(yīng)用程序的端GenericApp_epDesc.task_id&GenericApp_TaskID;//描述符的任務(wù) //簡單描述符 =(SimpleDescriptionFormat_tGenericApp_epDesc.latencyReq //延時策afRegister(&GenericApp_epDesc //向AF層登記描述符49.第50-72UINT16GenericApp_ProcessEvent(bytetask_id,UINT16events{ingMSGPacket_tifevents&SYS_EVENT_MSG判斷是否是系統(tǒng)消{MSGpkt= ingMSGPacket_t*)osal_msg_receive(GenericApp_TaskIDwhile(MSGpkt{switch(MSGpkt->hdr.event{ osal_msg_deallocate((uint8*)MSGpktMSGpkt= ingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID}return(events^}return72.第73-92接收數(shù)void ingMSGPacket_t{unsignedcharswitch(pkt->clusterId{caseosal_memset(buf0 //數(shù)組初始化osal_memcpy(bufpkt->cmd.Data2);//拷貝數(shù)據(jù)到數(shù)組if(buf[0]=='D'&&//比較數(shù)據(jù){ HalLedBlink(HAL_LED_10,50500);//Led1閃//發(fā)送數(shù)據(jù)}{ HalLedSet(HAL_LED_1, }92.第73-92發(fā)送數(shù)void{byteafAddrType_tdevDstAddr;//設(shè)置發(fā)送模式、端點(diǎn)號、//無線發(fā)送數(shù)據(jù) 以上代碼是在TIGenericApp例程過來的,我們對GenericApp.c中的代碼進(jìn)行了裁剪,幫三、終端源碼分析devStates_tGenericApp_NwkState
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年事業(yè)單位教師招聘考試教育心理學(xué)真題模擬精練
- 2025年黑龍江省事業(yè)單位招聘考試教師招聘生物學(xué)科專業(yè)知識試卷真題模擬
- 武漢事業(yè)單位招聘考試綜合類職業(yè)能力傾向測驗(yàn)真題模擬試卷
- 衡陽生地會考試卷及答案2024
- 新解讀《GB-T 39315.3-2020軍民通 用資源 數(shù)據(jù)模型 第3部分:器材類 航材》
- 網(wǎng)紅影響者品牌塑造-洞察與解讀
- 水泥基材料改性研究-洞察與解讀
- 2025國考山西統(tǒng)計局申論易錯點(diǎn)
- 2025國考保定市行政管理崗位行測高頻考點(diǎn)及答案
- 2025國考福建稅務(wù)局行測易錯點(diǎn)
- 調(diào)試、試運(yùn)行與移交管理方案
- GB/T 26655-2011蠕墨鑄鐵件
- 熱鍍鋅鋼管技術(shù)標(biāo)準(zhǔn)
- 周三多管理學(xué)第03章管理的基本原理
- 基礎(chǔ)生態(tài)學(xué)第4章種群及其基本特征課件
- 虛擬現(xiàn)實(shí)與增強(qiáng)現(xiàn)實(shí)頭戴顯示關(guān)鍵技術(shù)及應(yīng)用項(xiàng)目
- (完整)公共衛(wèi)生基本知識考試題題庫及答案
- 《電力工業(yè)企業(yè)檔案分類規(guī)則0大類》(1992年修訂版)
- GB∕T 26520-2021 工業(yè)氯化鈣-行業(yè)標(biāo)準(zhǔn)
- 溫州醫(yī)科大學(xué)《兒科學(xué)》支氣管肺炎
- 常見傳染病預(yù)防知識ppt-共47頁課件
評論
0/150
提交評論