在 SDK 5.40中,有一个问题(ZigBee-1515)被告知已解决,但我认为不是这样。
在 ZigBee R22中,当父节点的子列表表中没有此终端设备的信息时,父节点将向终端设备发送 NWk-leave-request-command。 并且启用了此 Nwk-leave-request-command 的“重新加入”标志,并且它没有 IEEE 地址。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在 SDK 5.40中,有一个问题(ZigBee-1515)被告知已解决,但我认为不是这样。
在 ZigBee R22中,当父节点的子列表表中没有此终端设备的信息时,父节点将向终端设备发送 NWk-leave-request-command。 并且启用了此 Nwk-leave-request-command 的“重新加入”标志,并且它没有 IEEE 地址。
您好,Aries,
这是我们之前 的 E2E 线程。
Zigbee PRO 规范以3.6.1.10.3.1的形式声明:“如果设备是 ZigBee 协调器 ,或者消息已发送到广播地址,则应删除该消息,不应执行进一步的处理。” ZDO_ProcessMgmtLeaveReq 现在以静默方式丢弃任何广播的数据包来解决这一问题:
if (inMsg->wasBroadcast)
{
// 3.6.1.10.1 R22 - silently discards leave frame if broadcast
return;
}
您的设置是否没有观察到这一点? 另一项更改是,如果不是目标节点,终端设备将不会停止轮询:
if ( ZG_BUILD_ENDDEVICE_TYPE )
{
// Stop polling if not rejoining network and the Leave is destined for this device
if ( (req.rejoin == FALSE) && (req.extAddr == NULL) )
{
// Stop polling and get ready to reset
nwk_SetCurrentPollRateType(POLL_RATE_DISABLED,TRUE);
}
}
此致,
瑞安
许多其他信任中心很难知道父节点的地址。 在 SDK 5.40中,我发现终端设备可以接受 由其父节点中继的管理离开请求。
if ( ( ZG_BUILD_ENDDEVICE_TYPE ) && ( ZG_DEVICE_ENDDEVICE_TYPE ) )
{
// 3.6.1.10.3 R22 - silently discard leave frame not delivered by parent device
if(inMsg->macSrcAddr != _NIB.nwkCoordAddress)
{
return;
}
}
这些代码表示,无论由谁生成,终端设备都只接受由其父节点中继的命令。
我 没有在设备上运行新的 SDK。 但是,该代码可以证明这一点。
if ( ( ZG_BUILD_ENDDEVICE_TYPE ) && ( ZG_DEVICE_ENDDEVICE_TYPE ) )
{
// 3.6.1.10.3 R22 - silently discard leave frame not delivered by parent device
if(inMsg->macSrcAddr != _NIB.nwkCoordAddress)
{
return;
}
}