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.

[参考译文] LP-CC2652RB:如何在运行时将设备添加到组中?

Guru**** 2551150 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1067792/lp-cc2652rb-how-can-i-add-devices-into-groups-at-runtime

部件号:LP-CC2652RB
“线程:Z 堆栈SIMPLELINK-CC13XX-CC26XX-SDK测试”中讨论的其它部件

大家好,我希望这听起来不会太愚蠢。 我想练习 ZigBee 的开发,并寻找一种方法,在运行时从协调器器器件中将一组设备添加到不同大小的组中。 我认为这与家庭自动化应用程序的工作方式类似,您可以通过其 Web 应用程序创建设备组。

但是,我不清楚的是,有几件事:

  1. 我如何知道哪台设备是哪台设备? 如果我有数十台设备,这意味着我必须在协调员内部存放数十个短地址的容器,这样我就可以始终将设备 X 与其地址关联起来?
  2. 我只需要将协调员的“添加组”命令发送到所需的设备吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    在没有太多细节的情况下,您是否第一次完成 了 Zigbee ZCL SimpleLink Academy 实验?  第二部分包含有关使用 zclGeneral SendGroupAdd 添加组的信息。  我还建议您进一步查看 《用户指南》的“Z-Stack 概述”部分。  您可以跟踪 Zigbee 应用程序中的短地址。

    此致,
    瑞安

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

    1.是的,我们通常会在协调员的应用程序中保留设备列表。

    2.您可以从协调员发送 ZCL add group 命令,也可以在设备上添加 group 命令。 但是,我们很少在设备上添加组,因为设备通常不知道自己加入哪个组。

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

    非常感谢,我不知道您给我发送的那个特定项目。 将仔细查看所有这些样本。

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

    你(们)好 不想再提出一个新话题,但在加入小组时遇到了一个非常奇怪的问题。 正计划按照 Ryan 在本例中的建议,与小组和小组讨论 。 但是,每当我尝试发送组请求时,我都会收到两条奇怪的错误消息: 符号|$O1$||已定义。  这些消息位于看似随机的 LOM (其中一个实际上是注释),仅在使用  zclGeneral SendGroupAdd 时出现。  我从教程中选择了复制粘贴代码,但同样的错误仍然存在。

        case zstackmsg_CmdIDs_ZDO_MATCH_DESC_RSP:
        {
            zstackmsg_zdoMatchDescRspInd_t  *pInd = (zstackmsg_zdoMatchDescRspInd_t *) pMsg;
    
            afAddrType_t dstAddr;
            zclGeneral_Scene_t *scene;
            memset(&dstAddr, 0x00, sizeof(afAddrType_t));
            dstAddr.addrMode = afAddr16Bit;
            dstAddr.addr.shortAddr = pInd->rsp.nwkAddrOfInterest;
            uint8_t i;
            for (i = 0; i < pInd->rsp.n_matchList; i++)
            {
                dstAddr.endPoint = pInd->rsp.pMatchList[i];
    
                zstack_getZCLFrameCounterRsp_t Rsp;
                Zstackapi_getZCLFrameCounterReq(sampleApp_serviceTaskId, &Rsp);
    
                zclGeneral_SendGroupAdd(SAMPLEAPP_ENDPOINT, &dstAddr, GROUP_ID, groupName, false, Rsp.zclFrameCounter);
    //            zclGeneral_SendGroupView(SAMPLEAPP_ENDPOINT, &dstAddr, GROUP_ID, false, Rsp.zclFrameCounter); // no error
    //            zclGeneral_SendAddScene(SAMPLEAPP_ENDPOINT, &dstAddr, scene, false, Rsp.zclFrameCounter); // mock-up to try scenes cluster as well; no error
            }
        }
        break;

    有什么想法可能会发生这种情况?

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

     我直接复制了您的 zstackmsg_Cmdids_ZDO_MATCH_DESC_RSP 代码,并在更改 groupName,SampleApp_EndPoint 和 SampleApp_serviceTaskId 以匹配我的示例命名约定后,成功地在 CCS v11.0中构建了 SIMPLINK-CC13XX-CC26XX-SDK v5.30 zc_SW 项目。  确保按照所有步骤操作并检查您的 SDK 版本。  您还可以尝试清洁然后重建代码,或者列出您所做的可能导致此问题的任何其他更改。

    此致,
    瑞安

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

    尝试执行大量擦除芯片并构建/下载应用程序以再次测试