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.

[参考译文] CC2530:有关 TIMAC BeaconPayload 的一些问题。

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1187421/cc2530-some-issues-about-timac-beaconpayload

器件型号:CC2530
主题中讨论的其他器件:TIMACSIMPLELINK-CC13XX-CC26XX-SDK

大家好、

以下是客户的请求:

uint8 msa_BeaconPayload[]={0x22、0x33、0x44};
uint8 msa_BeaconPayloadLen = 3;

能否在网络运行时修改信标帧的有效载荷? 如果是、应如何修改它? 修改后、客户是否需要重新启动器件?

您可以帮助检查此案例吗? 谢谢。

此致、                                                         

Nick

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

    您好、Nick、

    客户是否在 运行时尝试使用 MAC_MlmeSetReq (MAC_BEAST_PAYLOADY、&MSA_BeaconPayload)修改信标有效载荷?  由于示例仅在 初始化、MAC_CoordinatorStart/MAC_DeviceStart 内部建立此值、因此客户在应用此更改之前重新启动器件可能非常重要。

    此致、
    Ryan

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

    您好、Ryan、

    是的、   使用了 MAC_MlmeSetReq (MAC_beacon 有效载荷、&MSA_BeaconPayload)、但在修改完成后、发现信标有效载荷会随机变化、而不是修改后的信标有效载荷。  

    uint8 msa_BeaconPayloadLen = 6;
    
    uint8 msa_BeaconPayload = {0x22,0x33,0x44,0xaa,0xbb,0xcc};
    
    
    /* Setup MAC_BEACON_PAYLOAD_LENGTH */
    MAC_MlmeSetReq(MAC_BEACON_PAYLOAD_LENGTH, &msa_BeaconPayloadLen);
    
    
    /* Setup MAC_BEACON_PAYLOAD */
    MAC_MlmeSetReq(MAC_BEACON_PAYLOAD, &msa_BeaconPayload);

    此致、

    Nick

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

    您好、Ryan、

    我是否可以知道此问题是否有任何更新?

    此致、

    Nick

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

    您好、Nick、

    在启动对讲机之前、客户是否尝试重新启动设备并进行此更改?  随机信标有效载荷的内容是什么?它是否正确更改了长度? 每次填充相同的值或 使用 每个 MAC_MlmeSetReq 进行更改?  他们能否提供指示此行为的调试日志?

    此致、
    Ryan

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

    您好、Ryan、

    1. 客户的目的是在操作过程中更改信标负载、因为这需要协调器重新建立网络、终端重新进入网络、所以他无法主动重新启动设备。
    2. 随机信标加载的内容是随机填充的、这 与0x22、0x33、0x44、0xAA、0xbb、 0xcc 上述设置、但长度已正确更改、每次填充的值也是随机的。 它只被修改一次、但信标负载会随机变化、并且每次都不同、如下图所示:
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果保留 NV 内存、协调器和节点不必重新建立网络连接。  如果保留长度或在有效载荷本身之后更改长度、则信标有效载荷会发生变化吗?  他们使用的是什么版本的 TIMAC?  他们是否能够从 mac_PIB.c 调试 MAC_MlmeSetReq 以进一步确定 pMacPib->pBeaconPayload 是否设置为 pValue?  此外、他们是否尝试递增第一个信标有效载荷值或整个数据包内容?

    此致、
    Ryan

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

    您好、Ryan、

    以下是客户的回复:

    1. 如果长度保持不变且仅更改有效载荷、则有效载荷将发生变化、但也会随机变化。
    2. 使用的版本为1.5.2
    3. 通过调试、可以确定  pMacPib->pBeaconPayload 设置为 pValue
    4. 如果修改第一个信标有效载荷、则信标帧的有效载荷为预设值。

    此致、
    Ryan

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

    我从 SIMPLELINK-CC13XX-CC26XX-SDK 中的 TI 15.4-Stack 获取了一个过程。  请客户按如下方式修改 mac_PIB.c:

    #define MAC_PIB_MAX_BEACON_PAYLOAD_LEN  16
    uint8 MAC_MlmeSetReq(uint8 pibAttribute, void *pValue)
    {
      uint8         i;
      halIntState_t intState;
      uint8 macBeaconPayload[MAC_PIB_MAX_BEACON_PAYLOAD_LEN] = {0};
    
      if (pibAttribute == MAC_BEACON_PAYLOAD)
      {
        osal_memcpy((void *)macBeaconPayload, pValue, MAC_PIB_MAX_BEACON_PAYLOAD_LEN);
        pMacPib->pBeaconPayload = (uint8 *)macBeaconPayload;;
        return MAC_SUCCESS;
      }
      //...

    然后报告这是如何改变行为的。  在调试器中、它们还可以在"Memory"或"Watch Expressions"视图中进一步评估 macPib 更改。

    此致、
    Ryan