如果设备是路由节点,全部正常,修改后都可以正常入网和通信。
终端设备Enddevice正常入网后,AT命令修改信道和PANID后,将协调器也改到对应的信道和PANID后,终端设备无法再次入网?请大侠们帮忙。谢谢。
其中NetworkPanid,NetworkChannel为AT命令传入的修改参数,修改信道和PAN ID程序如下:
_NIB.nwkLogicalChannel=NetworkPanid;
osal_nv_write(ZCD_NV_CHANLIST, 0,sizeof(uint16),&_NIB.nwkPanId);
ZMacSetReq(ZMacChannel,(byte*)&_NIB.nwkLogicalChannel); //申请修改macPib结构体中的变量值
_NIB.nwkPanId =NetworkChannel; osal_nv_write(ZCD_NV_PANID, 0,sizeof(uint16),&_NIB.nwkPanId);
ZMacSetReq(ZMacPanId,(byte*)&_NIB.nwkPanId); //申请修改macPib结构体中的变量值
NLME_UpdateNV(0x01);
ZDP_DeviceAnnce( NLME_GetShortAddr(), NLME_GetExtAddr(),
ZDO_Config_Node_Descriptor.CapabilityFlags, 0 ); //设备通告 Device Announce
SystemResetSoft();
Yue TANG:
抓包看,AT这种不是stack里面的东西。
user3715324:
回复 Yue TANG:
AT其实就是串口发个指令下去改参数。和MT一样。
Yue TANG:
回复 user3715324:
一个协调器,一个ED,抓抓包应该很容易看出来的。
user3715324:
回复 Yue TANG:
请教下,我现在都是理由短地址来通信。如何勇IEEE的长地址来通信? 这个发送函数AF_DataRequest()只有短地址参数。
AF_DataRequest( & Sample_GrpDstAddr, &SampleApp_epDesc,
SAMPLEAPP_FLASH_CLUSTERID,
3,
buffer,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )