嗨、团队!
我将在 FH 模式下使用具有32个通道的收集器和传感器的 SimpleLink SDK 示例。
https://dev.ti.com/tirex/explore/node?a=BSEc4rl__6.40.00.13&devtools=LAUNCHXL-CC1352R1&node=A__ADh8veUDmQ809L8z0l6GtQ__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__6.40.00.13&r=BSEc4rl__7.10.00.98
在下面的这个 线程的问题中 、我想它也与这个 和这个相关 。 在我运行了一些测试并挖掘了搜索问题原因的代码后、我发现当收集器关闭时、一些传感器会继续接收状态 ApiMac_STATUS_noData 或0xEB。
某些传感器会接收状态 ApiMac_STATUS_noAck 或0xE9、因此进入孤立模式、有些传感器会接收状态0XEB。 然后继续重新设置 devInfoBlock.dataFailures、因此 if (devInfoBlock.dataFailures == CONFIG_MAX_DATA_FAULTS)绝不会验证为 true。
下面是代码:
static void pollCnfCb(ApiMac_mlmePollCnf_t *pData)
{
Csf_print("POLLCNFCB",pData->status);
if((pData->status == ApiMac_status_noData) ||
(pData->status == ApiMac_status_success))
{
if(!CONFIG_FH_ENABLE)
{
if(devInfoBlock.currentJdllcState == Jdllc_states_initRestoring)
{
ApiMac_deviceDescriptor_t devInfo;
Llc_netInfo_t parentNetInfo;
populateInfo(&devInfo,&parentNetInfo);
ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle,
CONFIG_RX_ON_IDLE);
/* device joined */
if(pJdllcCallbacksCopy && pJdllcCallbacksCopy->pJoinedCb)
{
pJdllcCallbacksCopy->pJoinedCb(&devInfo, &parentNetInfo);
}
updateState(Jdllc_states_rejoined);
if((!CONFIG_RX_ON_IDLE))
{
/* set event for polling if sleepy device*/
Util_setEvent(&Jdllc_events, JDLLC_POLL_EVT);
}
}
}
devInfoBlock.dataFailures = 0;
}
else if(pData->status == ApiMac_status_noAck)
{
/* track the number of failures */
devInfoBlock.dataFailures++;
if((devInfoBlock.currentJdllcState == Jdllc_states_joined)
|| (devInfoBlock.currentJdllcState == Jdllc_states_rejoined))
{
if(!CONFIG_FH_ENABLE)
{
/* retry poll with shorter interval in busy network */
Ssf_setPollClock(JDLLC_RETRY_POLL);
}
}
if(devInfoBlock.dataFailures == CONFIG_MAX_DATA_FAILURES)
{
Csf_print("NOACK MAX FAILURES", pData->status);
if(CONFIG_MAC_BEACON_ORDER == JDLLC_BEACON_ORDER_NON_BEACON)
{
handleMaxDataFail();
}
}
else
{
if(devInfoBlock.currentJdllcState == Jdllc_states_initRestoring)
{
if((!CONFIG_RX_ON_IDLE) && (!CONFIG_FH_ENABLE))
{
/* set event for polling if sleepy device*/
Util_setEvent(&Jdllc_events, JDLLC_POLL_EVT);
}
}
}
}
else if(pData->status == ApiMac_status_channelAccessFailure)
{
if(!CONFIG_FH_ENABLE)
{
/* retry poll with shorter interval in busy network */
Ssf_setPollClock(JDLLC_RETRY_POLL);
}
}
if(macCallbacksCopy.pPollCnfCb != NULL)
{
macCallbacksCopy.pPollCnfCb(pData);
}
}
以下是我在由10个传感器组成的网络中使用的调试终端:

我们可以看到、当收集器关闭时、有些传感器会进入孤立模式、然后进入复位模式。 有些仍在接收0xEB (235)。
在频谱方面噪声较低的环境中 I m。
问题可能是什么、有人能帮我解决这个问题吗?