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.

[参考译文] CC1312PSIP:将一个传感器连接到两个收集器

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1426638/cc1312psip-linking-one-sensor-to-two-collectors

器件型号:CC1312PSIP
主题中讨论的其他器件:SysConfig

工具与软件:

似乎我们遇到的情况是、单个传感器能够连接到两个不同的收集器。  我不认为这是可能的、因为 sensor.c 文件中只允许一个地址与收集器进行通信。  这是否可能在 MAC 级别实现?如果可能、如何阻止这种情况的发生?

Kevin

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

    尊敬的 Kevin:

    默认行为是传感器一次仅连接到一个收集器。

    如果您希望将多个收集器与一个传感器配合使用、我会引导您查看该应用手册、其中介绍了一种方法:

    https://www.ti.com/lit/swra734

    但是、如果我正确理解您的意思、您希望传感器与一个收集器配对和连接。 如果传感器断开连接、它仍然应该仅尝试连接到配对的收集器。 传感器寻找不同收集器的唯一情况是由用户启动。 是这样吗?

    谢谢、

    Marie H.

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

    Marie H

    是的、我们只想将集电极与传感器配对、而不允许其他集电极配对。  当通过同时打开多个收集器上的网络来启动配对时、我们可以看到这一点。  这就是当我们注意到这个问题时、收集器最多可以将四个(或更多)传感器配对到一个传感器。  每个收集器都将看到相同的传感器、并将传感器信息的更新提供给它们。

    我们消除这种行为非常重要。  你知道什么原因可能导致这种情况吗?  我们可以看看什么才能理解为什么会发生这种情况并制止这种情况?

    Kevin

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

    尊敬的 Kevin:

    请确保所有收集器具有不同的 PAN ID、然后重试。

    要进行更改、请在 SysConfig -> TI 15.4-Stack -Z Network -> Pan ID 中设置。

    谢谢、

    Marie H.

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

    Marie H

    我们是否可以分配除 syscfg 之外的 PAN ID、以便在生产期间可以分配它?  是否可以 在收集器启动后设置 PAN ID、以便我们分配 可能与芯片某个序列号相关的 PAN ID?

    谢谢!

    Kevin

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

    Marie H

    为什么此代码不能在 cllc.c 中用于自动选择不同的 PAN ID?

    静态 void configureStartParam (uint8_t 通道)

    /*解析传入信标以搜索其他信标
    *使用此 PAN ID 存在协调器*/
    while (coordInfoBlock.panID ==(findChannel (coordInfoBlock.panID、channel)))

    /*存在另一个具有此 PAN ID 的协调器、
    *所以我们改变了我们的 PAN ID*/
    coordInfoBlock.panID = coordInfoBlock.panID + 1;
    }
    }

    Kevin

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

    嗨、Marie、

    只想在这里友好地 ping 一下;您能帮助为 Kevin 提供这篇帖子的状态更新吗? 我们完全理解、完成这些细节需要时间、因此我们非常感谢任何反馈时间表的更新。

    谢谢!

    -Matt

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

    您好!

    以下是收集器扫描其他收集器的 PAN ID 并选择一个新收集器的建议。

    请注意、这仅适用于非信标模式。

    1. 打开应用程序->收集器->链接控制器中的文件 cllc.c
    2. 定义希望在同一区域中处于活动状态的收集器的最大数量(例如、设置为50):

    #define MAX_NUM_PEDESD_COLLECTOR 50

    3.更改函数 sendScanReq ()以期望 MAX_NUM_Expectors 定义的最大结果数

    scanREQ.maxResults = MAX_NUM_Expected_collectors;

    4.修改 scanCnfCb()函数以循环遍历活动扫描结果、并将找到的 PAN ID 添加到 PAN ID 列表。

    //将所有找到的 PAN ID 添加到列表中

    对于(uint8_t i = 0;i < pData->resultListSize;i++)

    addToPANList (&(pData->Result.pPanDescriptor[i]));

    }

    5. 收集器通常只关心所选信道上的 PAN ID。 为了确保 PAN ID 在各个通道之间是唯一的、添加以下函数。

    /*!

    *@简短      查找 PAN 描述符列表中的 PAN 描述符

    *

    *@param      panID -要搜索的 PAN ID

    *

    *@     如果已获取则返回 PAN ID、否则为0

    */

    静态 uint16_t findPanID (uint16_t panID)

       /*在 PAN 描述符列表中搜索该 panID */

       panDescList_t* pItem = pPANDesclist;

     

       while (pItem!= NULL)

       {

           if (pItem->panDescList.coordPanId == panID)

           {

               返回(pItem->panDescList.coordPanId);

           }

     

           pItem = pItem->pNext;

       }

       return (CLLC_PAN_NOT_FOUND);

    }

    6. 在 configureStartParam()期间调用函数。 它会跳过通道检查、因此无论哪个通道、它都不会使用与任何扫描通道相同的 PAN ID。

    while (coordInfoBlock.panID =(findPanID (coordInfoBlock.panID)))

    谢谢、

    Marie H.