微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > zigbee 怎么通过mac地址获得网络中节点的短地址

zigbee 怎么通过mac地址获得网络中节点的短地址

时间:10-02 整理:3721RD 点击:

各位大神:

            新年好,请问zigbee 怎么通过mac地址获得网络中挂在路由下的节点的短地址,用APSME_LookupNwkAddr得到短地址时,只能查找协调器儿子节点,对孙子节点不可访问,

afStatus_t ZDP_NwkAddrReq( byte *IEEEAddress, byte ReqType,

                           byte StartIndex, byte SecurityEnable )

根据已知网络地址查询远程设备物理地址,作为一个广播信息发送给网络中的所有设备:这个函数也是知道IEEE地址,对短地址进行寻找,这个不存在上面所说的限制,但是这个短地址放在那里呢,我怎么获得这个短地址呢?

@bo fu,

请使用 

afStatus_t ZDP_NwkAddrReq( uint8 *IEEEAddress, byte ReqType,
byte StartIndex, byte SecurityEnable )

谢谢vv:

请问调用这个函数获得的地址放在那里呢?

会有callback函数上来的,对应的处理事件是

#define NWK_addr_rsp            (NWK_addr_req | ZDO_RESPONSE_BIT)

void ZDApp_ProcessMsgCBs( zdoIncomingMsg_t *inMsg )

的switch case下面做添加就可以,然后去处理获得的地址


 

谢谢VV,真的很感谢

VV大神 我尝试了ZDP_NwkAddrReq()查询终端的短地址,可是没效果啊。

 uint8 pDestination[] ={0x00,0x12,0x4B,0x00,0x04,0x3E,0xCB,0x41};

ZDP_NwkAddrReq(pDestination,ZDP_ADDR_REQTYPE_SINGLE,0,0);

void ZDApp_ProcessMsgCBs( zdoIncomingMsg_t *inMsg )

{

switch ( inMsg->clusterID )
{
#if defined ( ZDO_NWKADDR_REQUEST ) || defined ( ZDO_IEEEADDR_REQUEST ) || defined ( REFLECTOR )
case NWK_addr_rsp:
{
     printf("inMsg = %s\n",inMsg);
    ZDO_NwkIEEEAddrResp_t *My_pAddrRsp;
    My_pAddrRsp = ZDO_ParseAddrRsp( inMsg );
    Sure_nwkAddr = My_pAddrRsp->nwkAddr;
    break;
}

}

1. Do you add the following?

ZDO_RegisterForZDOMsg( zclGateway_TaskID, NWK_addr_rsp );

2. byte order, little endian?

uint8 pDestination[] ={0x00,0x12,0x4B,0x00,0x04,0x3E,0xCB,0x41};

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top