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.

[参考译文] CC1312R:TI15.4 stack -使用相同的 PANID 替代收集器

Guru**** 2482225 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1218758/cc1312r-ti15-4-stack---replacing-a-collector-with-same-panid

器件型号:CC1312R

如果客户希望使用相同的 PANID 关闭收集器后更换收集器,他们应遵循应用手册 将一个 TI 15.4-Stack 传感器连接到多个网关 以创建一个功能 放弃 Network ()来实现该目的。

当等待足够长的时间让传感器成为孤儿并执行 abandonNetwork()功能时,它工作正常,但在某种情况下遇到了问题。

当替换收集器步骤太早时、此时传感器仍在发送数据请求、并且尚未成为孤立节点、即使传感器不属于其网络、新收集器也会向数据请求发送 ACK。 这可以防止传感器成为孤立传感器、并完成 PANID 切换的其余部分。

我知道应用手册要求旧收集器和新收集器使用不同的 PANID、但在客户的应用中不能做到这一点、因为在生产中使用相同的 PANID 对收集器进行编程。 我的问题:

1.这是预期行为吗? 新收集器是否应向尚未加入其 PANID 的传感器发送 ACK? 并且传感器是否应该在从新收集器接收某些 ACK 时确定不会处于孤立状态?

2.当收集器的 PANID 必须相同时,是否有办法避免这种情况?

此致、

沭阳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好,沭阳,

    如我们的 TI 15.4-Stack 迁移指南 中所示(在 非信标模式部分中)。 当看"解离"。),这是一个角的追逐。

    建议    在收集器应用程序收到 来自未知设备的轮询时,在收集器应用程序上实施取消关联请求(ApiMac_mlmeDiassociateReq ())。

    此致、
    Alex

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的沭阳:

    我尝试重现您的错误。 在下面找到我的分析。  

    您能否确认这是否解决了您的问题:  

    收集器复位后、它将丢失其在连接的器件上的信息。 传感器则不会。 因此、传感器能够向收集器发送消息。 但是、传感器仍可以知道网络的 PAN-ID 和短地址。 因此,它将能够向收集器发送消息。 收集器将接收这些消息并予以确认。 但是、由于传感器不在连接设备列表中、因此不会向应用层提供信息。 因此、传感器会认为它仍然连接、但收集器不会接收到 传感器的信息

    如何处理:

    当接收到不在其连接列表中的器件包时、连接器应执行断开关联请求。 ()

    在收集器项目更改中:

    静态空 pollIndCB (ApiMac_mlmePollind_t * pPollInd)

    至:

    静态空 pollIndCB (ApiMac_mlmePollind_t * pPollInd)

    {   ApiMac_sAddr_t addr;

           addr.addrMode = ApiMac_addrType_short;

           if (pPollInd->srcAddr.addrMode == ApiMac_addrType_short)

           {

               addr.addr.shortAddr = pPollInd->srcAddr.addr.shortAddr;

           }

           方案

           {

               addr.addr.shortAddr = Csf_getDeviceShort (

                               &pPollInd->srcAddr.addr.extAddr);

           }

     

           if (findDevice (&pPollInd->srcAddr)== NULL &&

              pPollInd->srcAddr.addrMode == ApiMac_addrType_short)

           {

               Cllc_sendDisassociationRequest (addr.addr.shortAddr、false);

           }

           方案

           {

               processDataRetry (&addr);

           }

    }

    这将使您的收集器在收到来自未知设备的消息时立即进行解离

    在传感器项目中添加 到 jdlc.c 函数: disassocIndCb()

    Util_setEvent (&Sensor_Events、SENSOR_START_EVT);

    这将导致传感器重新启动网络。

    希望这对您有所帮助、

    此致、

    亚历山大

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alexander:

    谢谢详细的解释和解决方案、我会将其传达给客户、并告诉您他们是否有进一步的问题、谢谢!

    此致、

    沭阳