TI中文支持网
TI专业的中文技术问题搜集分享网站

AddrMgrNwkAddrLookup 返回的 ShortAdderss 疑問

我使用的是zstack home 1.2.2a協議,網路裡有1個協調器.數個路由器和終端節點,其中一個終端節點 d 入網時紀錄了父節點路由器 r 的ieee位址,透過AddrMgrNwkAddrLookup 可取得父節點路由器 r 的ShortAdderss(舉例0x4058),但是測試一段時間後,從 sniffer 觀察父節點路由器 r 的 ShortAdderss 以變成0x3AB4,此時從終端節點 d 透過AddrMgrNwkAddrLookup查詢父節點路由器 r 還是返回0x4058,為何會如此?

YiKai Chen:

可以用NLME_GetCoordShortAddr取得父節點short address

Benson Chen1:

回复 YiKai Chen:

謝謝,使用NLME_GetCoordShortAddr 後可以正確取得父節點路由器 r ShortAdderss :0x3AB4,但是為何使用 AddrMgrNwkAddrLookup 查詢卻不同?

Alvin Chen:

回复 Benson Chen1:

/******************************************************************************* @fnAddrMgrNwkAddrLookup** @briefLookup NWK address using the EXT address.** @paramextAddr – [in] EXT address*nwkAddr – [out] NWK address** @returnuint8_t – success(TRUE:FALSE)*/
extern uint8_t AddrMgrNwkAddrLookup( uint8_t* extAddr, uint16_t* nwkAddr );
这是通过extaddr 获取nwkaddr ,并不是查询父节点api

Benson Chen1:

回复 Alvin Chen:

好的,但我意思是我透過 AddrMgrNwkAddrLookup 查詢路由器 r 返回的 ShortAddress 和 sniffer 看到的路由器 r 的ShortAdderss會不同?

YiKai Chen:

回复 Benson Chen1:

AddrMgrNwkAddrLookup不是用來查詢父節點的,你為什麼會用他來查詢父節點?

Benson Chen1:

回复 YiKai Chen:

抱歉,我更新一下我的敘述,應該是說我終端節點透過路由器 r 入網時取得了 路由器 r 的 ieee,然後使用 AddrMgrNwkAddrLookup 查詢該shortAddress返回 0x4058,但是放一段時間後, 從sniffer 看路由器 r 的shortAddress 以變成0x3AB4, 此時再從終端節點使用 AddrMgrNwkAddrLookup (路由器 r 的ieee) 還是返回 0x4058

YiKai Chen:

回复 Benson Chen1:

路由器 r 的shortAddress 以變成0x3AB4–>這個很奇怪吧?你路由有沒有使能NV_RESTORE?

Benson Chen1:

回复 YiKai Chen:

有使能NV_RESTORE,只是ShortAddress發生變化時 sniffer 當時沒紀錄到,是後來終端節點傳輸資料時發生問題才發現這狀況,所以上來發問是否會有 AddrMgrNwkAddrLookup 查詢到的shortAddress會和 sniffer 上看到的不同狀況?

YiKai Chen:

回复 Benson Chen1:

只根據你這樣的描述我沒辦法判定,建議你持續抓包,要是有發現同樣的問題,請附上抓包檔分析

赞(0)
未经允许不得转载:TI中文支持网 » AddrMgrNwkAddrLookup 返回的 ShortAdderss 疑問
分享到: 更多 (0)