您好!
网络达到 PAN 容量后、我必须立即关闭网络。 在信标和非信标模式下、您可以将"允许加入"设置为关闭、这就足够了。 但在 FH 模式下、此选项不存在。 因此、节点进入"拒绝访问"模式、不再离开。 如果我打开另一个集电极、注意会发生。 有什么提示吗?
提前感谢
安德烈斯
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.
您好!
网络达到 PAN 容量后、我必须立即关闭网络。 在信标和非信标模式下、您可以将"允许加入"设置为关闭、这就足够了。 但在 FH 模式下、此选项不存在。 因此、节点进入"拒绝访问"模式、不再离开。 如果我打开另一个集电极、注意会发生。 有什么提示吗?
提前感谢
安德烈斯
安德烈斯、您好!
这可能需要对应用层进行一些修改。 遗憾的是、传感器示例并未完全涵盖整个 PAN 场景。
执行关联确认回调(assocCnfCb)时,如果 PAN 处于满容量状态,则会看到设备状态和设备启动状态均已设置。 然而、对于这些特定状态、除了更新 CUI 之外什么也不会发生(没有时钟被复位、没有发送新的异步请求、等等)。
else if((pData->status == ApiMac_assocStatus_panAtCapacity) ||
(pData->status == ApiMac_assocStatus_panAccessDenied))
{
/* Stop Attempting to Join as PAN has reached Capacity or Access denied*/
switchState(Jdllc_deviceStates_accessDenied);
updateState(Jdllc_states_accessDenied);
/* Update stats */
Sensor_msgStats.joinFails++;
/* Enter sleep state based on configuration */
ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, CONFIG_RX_ON_IDLE);
}
一个很好的起点是查看 switchState (Jdlc_deviceStates_ACCESSDENIED)执行时会发生什么情况。 这将简单地设置 JDLC_State_change_EVT 事件,这将导致 processState()执行。
在 processState()中,您必须为 Jdllc_deviceStates_ACCESSDENIED 添加一个特定的情况。 我猜您需要清除设备状态、将 parentFound 设置为 false、并且最有可能重新启动用于异步消息的涓流计时器。
现在,完成此操作后,您可能需要注意一些其他事项。 主要原因是、即使您到达再次扫描其他收集器的位置、传感器也可能再次尝试加入具有全容量的收集器。
因此、您可能需要进行某种类型的簿记、以便传感器了解哪些托盘已满。 大多数 Lilley 需要修改异步指示回调(wInds0b)、以便忽略这些 PAN 并为另一个收集器进行传输。
BR、
安德烈斯