日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zigbee 协议栈网络管理

發(fā)布時間:2024/8/1 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zigbee 协议栈网络管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ZigBee 協(xié)議棧網(wǎng)絡(luò)管理? 主要是對新加入的設(shè)備節(jié)點的設(shè)備管理。每個 CC2530 芯片出廠時候都有一個全球唯一的 32 MAC地址。當(dāng)時當(dāng)設(shè)備連入網(wǎng)絡(luò)中的時候,每個設(shè)備都能獲得由協(xié)調(diào)器分配的16 位短地址,協(xié)調(diào)器默認地址(0x0000)。很多時候網(wǎng)絡(luò)就是通過短地址進行管理。

?修改點播信息發(fā)送函數(shù)

void SampleApp_SendPointToPointMessage( void ) {uint8 device; //設(shè)備類型變量if ( SampleApp_NwkState == DEV_ROUTER )device=0x01; //編號1表示路由器 else if (SampleApp_NwkState == DEV_END_DEVICE)device=0x02; //編號2表示終端 elsedevice=0x03; //編號3表示出錯if ( AF_DataRequest( &Point_To_Point_DstAddr, //發(fā)送設(shè)備類型編號&SampleApp_epDesc,SAMPLEAPP_POINT_TO_POINT_CLUSTERID,1,&device,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){}else{// Error occurred in request to send. }}

修改完成后系統(tǒng)設(shè)備自動檢測自己燒寫的類型,然后發(fā)送對應(yīng)的編號。路由器編號為 1,終端編號為 2
數(shù)據(jù)接收方面,我們對接收到的數(shù)據(jù)進行判斷,區(qū)分路由器和終端設(shè)備。然后在數(shù)據(jù)包中取出 16 位短地址。通過串口打印出來 。短地址在數(shù)據(jù)包里的存放位置。依次是 pkt--- srcAddr---shortAddr
接收函數(shù)

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) {uint16 flashTime,temp; //16進制轉(zhuǎn)ASCII碼表uint8 asc_16[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};switch ( pkt->clusterId ){case SAMPLEAPP_POINT_TO_POINT_CLUSTERID: temp=pkt->srcAddr.addr.shortAddr; //讀出數(shù)據(jù)包的16位短地址if( pkt->cmd.Data[0]==1 ) //路由器 HalUARTWrite(0,"ROUTER ShortAddr:0x",19); //提示接收到數(shù)據(jù)if( pkt->cmd.Data[0]==2 ) //終端HalUARTWrite(0,"ENDDEVICE ShortAddr:0x",22); //提示接收到數(shù)據(jù)/****將短地址分解,ASC碼打印*****/HalUARTWrite(0,&asc_16[temp/4096],1);HalUARTWrite(0,&asc_16[temp%4096/256],1);HalUARTWrite(0,&asc_16[temp%256/16],1);HalUARTWrite(0,&asc_16[temp%16],1); HalUARTWrite(0,"\n",1); // 回車換行break;case SAMPLEAPP_FLASH_CLUSTERID:flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );break;} }

將修改后的程序分別以協(xié)調(diào)器、路由器、終端的方式下載到 3 個 或以上設(shè)備,協(xié)調(diào)器連接到 PC 機。上電后每個設(shè)備往協(xié)調(diào)器發(fā)送自身編號,協(xié)調(diào)器通過串口打印出來。

可以利用同樣的方法可以將 MAC 地址、 PANID 等讀取出來?;蛘咦孕性O(shè)定預(yù)定義節(jié)點編號進行網(wǎng)絡(luò)管理

轉(zhuǎn)載于:https://www.cnblogs.com/tianxxl/p/10244785.html

總結(jié)

以上是生活随笔為你收集整理的Zigbee 协议栈网络管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。