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**** 2461110 points


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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1242369/lp-cc2652rb-reportable-change-attribute-implementation-issues

器件型号:LP-CC2652RB

编程 ZED 以用作温度传感器、我们在报告机制方面遇到了几个问题、即最小可报告变化。 问题是,似乎可报告的更改属性不起作用,并且对设备的行为没有影响。

假设我们将 温度仪表组的 最小报告时间的 measuredValue 配置为10秒、最大报告时间配置为20、可报告变化设置为4度。 如果在 uC 上、我只轮询传感器并更新属性列表中包含测量值的变量、而不显式发出  Zstackapi_BdbRepChangedAttrValueReq (appServiceTaskId、 zReq) , 在最大报告间隔到期前不会发出报告(案例1)。 但是、在相同的报告设置下、如果我明确调用  Zstackapi_BdbRepChangedAttrValueReq (appServiceTaskId、  zReq) 在每个轮询循环之后、即使增量小于 配置为可报告的变化值(情形2)、measuredValue 属性也会更新。

我的问题如下:

  1. 对于(情形1)、当最大报告时间到期时、除了响应可报告属性请求之外、ZStack 是否不自行处理报告?
  2. 同样对于(案例1)、我是否必须自行专门处理可报告更改配置并提供自己的实现来处理此特定配置? 例如:始终检查最后报告的值和当前值是否因可报告的更改而不同、并手动触发  Zstackapi_BdbRepChangedAttrValueReq (appServiceTaskId、  zReq)
  3. 如果问题2不正确、那么对于(案例2)、如果我可以发送不同且小于该值的值、可报告更改的意义是什么?

我对这种报告机制还有什么其他误解吗?

此外、另一方面、是否有一些用于开发休眠式终端器件的指南或资源?

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

    您好、V:

    下面是一些类似的 E2E 主题:

    https://e2e.ti.com/f/1/t/1169911 
    https://e2e.ti.com/f/1/t/1228134 

    您可以计算一个默认 zed_temperaturesensor 示例、并发现其能够完全按照预期工作( 报告不小于 delta 的显式 Zstackapi_BdbRepChangedAttrValueReq 调用)。   您需要查看您的 reportableChange 值、如何 修改 ZCL_cluster_ID_MS_temperature_measure_value 属性、并 在 被 Zstackapi_BueRepChangedAttrValue 调用后对它们进行调试 bdb_isAttrValueChangedSurpassDelta  

      if( zclAnalogDataType(attrRec.dataType) )
      {
        //Checking if   | lastvaluereported - currentvalue | >=  | changevalue |
        if( bdb_isAttrValueChangedSurpassDelta(attrRec.dataType, attrNodeFound->data->reportableChange, attrRec.dataPtr, attrNodeFound->data->lastValueReported ) == BDBREPORTING_FALSE )
        {
          //current value does not excced the delta, dont report
          return ZSuccess;
        }
      }

    此致、
    瑞安