標題: Zstack協議棧---地址查找功能--便于單播查詢目的地址 [打印本頁]
作者: shaonv 時間: 2015-1-1 18:41
標題: Zstack協議棧---地址查找功能--便于單播查詢目的地址
APS層提供了一系列快速轉換地址(查詢)的功能。如果查詢已經完成并保存在地
址管理器(參見網絡層)中,或者它是你自己的地址,這些函數能使你把短地址轉換為IEEE
地址(或把IEEE地址轉換為短地址)。
APSME_LookupExtAddr() API函數
如果網絡(短)地址已經存儲在地址管理器中,這個函數根據它查詢擴展(IEEE)
地址。它沒有啟動一個網絡(無線)IEEE 查詢,只是從內存記錄中查找
函數原型
uint8APSME_LookupExtAddr(uint16nwkAddr,uint8*extAddr);
參數描述
nwkAddr—這是你現有的地址,希望這個函數使用它來查詢擴展地址。
extAddr—這是你想要找到的地址。這是一個指向內存的指針,找到IEEE地址時
這個函數將把它復制到該內存中。
返回值
找到返回true,找不到返回false。
3.3.4.2APSME_LookupNwkAddr()
如果擴展(IEEE)地址已經存儲在地址管理器中,這個函數根據它查詢網絡(短)
地址。它沒有啟動一個網絡(無線)IEEE查詢。
函數原型
uint8APSME_LookupNwkAddr(uint8*extAddr,uint16*nwkAddr);
參數描述
nwkAddr—這是你想要找的地址。這是一個指向內存的指針,找到短地址時這個
函數將把它復制該內存中。
extAddr—這是你現有的地址,希望這個函數使用它來查詢擴展地址。這是一個
指向內存的指針,找到IEEE 地址時這個函數將把它復制到該內存中。
返回值
找到返回true,找不到返回false。
舉例:
通過登記的IEEE地址,查詢到設備入網的短地址,從而單播點對點發送數據。
廣播盡量少用。
afAddrType_t dstAddr;
switch (clusterID) //串口命令
{
case 0x0055:
if(APSME_LookupNwkAddr(Pwk,&Sadd)) //Pwk是IEEE地址的數組,通過IEEE查詢到短地址,用于確定單播發送的目的短地址
{
dstAddr.addrMode = afAddr16Bit; //單播
dstAddr.addr.shortAddr = Sadd; //短地址
dstAddr.endPoint = LOCATION_BLINDNODE_ENDPOINT; //目的設備類型
ShortAdd[0]=Sadd&0x00ff;
ShortAdd[1]=Sadd>>8;
HalUARTWrite( SPI_MGR_DEFAULT_PORT, ShortAdd, 2 ); //短地址發到串口
HalUARTWrite( SPI_MGR_DEFAULT_PORT, "888888", 6 );
}
break;
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |