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.

[参考译文] CC2630:无法向网关发送报告

Guru**** 2551110 points


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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/602959/cc2630-cannot-send-report-to-gateway

器件型号:CC2630

您好!

我们正在尝试将报告从 SampleSwitch 发送到网关。

我们可以发送 ON_OFF 报告(群集 ID 6)、并且可以在 HA 网关上看到消息、但是、如果我们选择的群集 ID 不是6、则不会发送报告。

 zcl_SendReportCmd 的状态为0 (成功)、但我们在空中看不到任何消息。

您是否有任何有关如何进行报告的有效示例?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您使用 Ubiqua 协议分析器来检查消息是否通过无线方式发送。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们使用 Ubiqua 来查看没有无线报告、我们使用 IAR 来查看 Send report 函数的返回状态为0x00

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否向我展示如何在您的应用程序中使用 zcl_SendReportCmd?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    以下是发送不起作用的占用报告的代码。 我们在 Ubiqua 中看不到该报告:

    静态 Zstack_AFAddr_t zswDstAddr;
    
    zswDstAddr.addrMode = Zstack_AFAddrMode_none;
    zswDstAddr.adortAddr = 0;zswDstAddr.addr
    = 0;
    zswDstAddr.panID = 0;
    
    afAddrType_t dstAddr;
    
    dstAddr.addrMode =(afAddrMode_t) zswDstAddr.addrMode;
    dstAddr.addr.shortAddr = zswDstAddr.addr.addr.shortAddr;
    dstAddr.addr=zswDstAddr.adpoint.endpoint.endpoint; dstAddr.zstAddr.adr.shortAddr.adr.adId=zstAddr.adr.adr.
    
    
    zclReportCmd_t *pReportCmd;
    pReportCmd = iCall_malloc (sizeof (zclReportCmd_t)+ sizeof (zclReport_t)));
    if (pReportCmd!= NULL)
    {
    pReportCmd->numAttr = 1;
    pReportCmd->attrList[0].attrID = ATTRID_MS_LOAD_sensing_config_LOAD;
    pReportCmd->atList[0].datatype = ZCL_datatype_BITMAP8;
    pReportCmd->attrList[0].attrData =(void *)(&zoc_Occupied);
    zcl_SendReportCmd (switch_ep、&dstAddr、
    ZCL_CLUSTER_ID_MS_LOAD_sensing、
    pReportCmd、
    ZCL_FRAME_SERVER_CLIENT_DIR、
    错误、
    1);
    } 

     我们在 zcl_SendReportCmd 的返回状态中有断点、状态为0x00。 我们在 Ubiqua 中看不到该消息。

    如果我们将  ZCL_CLUSTER_ID_MS_LOAD_Sensing 更改为  ZCL_CL_CLUSTER_ID_GEN_ON_OFF、我们可以在 Ubiqua 中以及网关上看到报告(尽管值是关闭的、因为 ON_OFF 集群没有此属性)。 您知道什么会阻止数据包被发送吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该使用 ZStack_AFAddrMode_short 作为目标地址模式而不是 ZStack_AFAddrMode_none、并且还应设置正确的目标端点而不是0。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们做到了这一点:

    dstAddr.addrMode =(afAddrMode_t) ZStack_AFAddrMode_Short;
    dstAddr.addr.shortAddr = 0x0000;
    dstAddr.endpoint = 0x08;
    dstAddr.panId = 0x185F;
    
    zclReportCmd_t *pReportCmd;
    
    pReportCmd = iCall_malloc (sizeof (zclReportCmd_t)+ sizeof (zclReport_t));
    
    if (pReportCmd!=空)
    {
    pReportCmd->numAttr = 1;
    pReportCmd->attrList[0].attrID = ATTRID_MS_LOAD_sensing_config_LOAD;
    pReportCmd->atList[0].datatype = ZCL_datatype_uint8;
    pReportCmd->attrList[0].attrData =(void *)(&zoc占用);
    zcl_SendReportCmd (switch_ep、&dstAddr、
    ZCL_CLUSTER_ID_MS_LOAD_sensing、
    pReportCmd、
    ZCL_FRAME_SERVER_CLIENT_DIR、
    错误、
    1);
    

    现在我们可以在 Ubiqua 和网关中看到报告。 但是、我们需要准确指定目标地址、但我们需要发送绑定到的端点。

    我们如何将报告发送到绑定的端点?

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的意思是"我们如何将报告发送到我们绑定的端点?" 您是否意味着您已经绑定到您的职业传感器并希望在中使用绑定地址。 绑定表以发送报告?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。

    我们连接占用传感器、然后将其与另一个端点绑定(使用网关)。

    我们希望将报告发送到绑定表中的设备。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果使用绑定、则正确的做法是使用 ZStack_AFAddrMode_none 作为地址模式。 是否使用监听器确保成功绑定?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。 绑定成功。

    我们可以在 Ubiqua 中看到绑定、我们可以看到导通关闭命令、 如果使用 ZCL_cluster_ID_GEN_ON_OFF、我们可以使用 ZStack_AFAddrMode_none 发送报告。  

    但是、如果我们将调用 中的第3个参数 zcl_SendReportCmd 更改为   ZCL_cluster_ID_MS_en占据 栅格感应、函数返回成功(0x00)、但不会发送任何内容(Ubiqua 不会看到任何内容)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果更改了群集 ID,则必须再次执行绑定到此群集 ID。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们现在看到、Linux 家庭自动化网关应用程序绑定了 ON_OFF_clusterid

    我们更改为仪表组(占位、电气测量等)、它起作用。

    是否有任何方法使绑定请求使用所有群集?

    谢谢你。

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