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:报警群集

Guru**** 2619575 points

Other Parts Discussed in Thread: CC2530

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/663720/cc2530-alarms-cluster

部件号:CC2530

您好,

我正在尝试使用警报群集,并尝试读取协调员发送的警报计数属性。 我想知道如何读取协调员发送的此属性? 是否有任何功能已经执行此操作? 我非常感谢您的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    糟糕! 立即查看。 你似乎已经做了一切。 我建议您跟踪读取属性回调,以了解它为什么响应而不是支持。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否100 % 确定我已经完成了所有工作? 因为,在之前的帖子中,我设置了模拟值群集,警报群集等,并且日志中都显示"不支持的属性"。 我不知道为什么会发生这种情况。 您是否能够在没有任何问题的情况下测试电源配置群集?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我们的产品中使用电源配置群集没有问题。 我在您的步骤中没有发现任何问题,因此建议您跟踪和调试它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否解释一下设置电源配置属性的步骤?

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

    1.将ZCL_CLUSTER_ID_GEN_POWER_CFG放入zclXXX_InClusterList

    2.将ATTRID_POWER_CFG_BAT_ALARM_MASM/ZCL_CLONG_ID_GEN_POWER_CFG放入zclXXX_Attr中。

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

    我在下面附上了一份日志。 第15行中的"读取"属性消息是否可能存在任何错误,这可能解释Zed为什么返回"不支持的属性"?

    e2e.ti.com/.../6332.log.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的设备似乎不支持电源配置群集中的电池剩余电量百分比属性。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我知道我们花了很长时间讨论这个问题,你已经看到我已经正确设置了这个问题,你还会提出其他什么解决方案?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您对其进行调试,对吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您建议我从哪里开始调试?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我记得我曾告诉过您这是读取属性回调。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那在哪里?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    zclParseInReadCmd.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在下图中,我发现"pBuf"与"开/关"读取属性和"电池百分比"读取属性不同。 对于开/关,"pBuf"为 0xDC4 ""。 对于电池百分比,"pBuf"为 0xDC4 "!"。 对于其余的调试,两个读取属性之间的所有本地属性都相同。 这是什么意思?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该检查十六进制值而不是ASCII代码,并继续跟踪到下一步以查看发生的情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用hex进行了检查,但现在pBuf (0x0C93)对两者都是相同的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    zclParseInReadCmd只是要读取的条目命令。 您应该跟踪zclProcessInReadCmd旁边的,以了解它为什么回复ZCL_STATUS_UNSUPPORTED_ATTRIBUTE
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我注意到batt percentage read属性不能通过下面的if语句。 为什么会这样?

    如果(( attrofound == true )&&
    ((attr Rec.attr.accessControl & access_global)||
    (Get_bit(&attRec.attr.accessControl, access_control_mask )== pInMsg->HDR.fc.direction ))
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否应该检查哪种情况不正确?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我该怎么做?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想您应该检查attalFound,attRec.attr.accessControl和Get_bit(&attRec.attr.accessControl, access_control_mask )的值是什么。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    但我无法进入attrofound。 始终显示<不可用>。

    我无法访问 Get_bit(&attRec.ATtr.accessControl, access_control_mask )。 它在监视1视图中为我提供未知错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试将这些变量设置为全局变量,您应该能够对它们进行检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试过,但这就是我得到的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何将attroFound和attroRec作为全局变量?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在将下面的设置放在功能之外,将它们设置为全局。 但是我仍然无法访问Get_bit(&attRec.ATtr.accessControl, access_control_mask )。 我该怎么做?

    UINT8 attrofound;
    zclAttrRec_t attr记录;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在函数中声明全局变量“bool getbit;”并调用“getbit= get_bit(&attRec.attr.accessControl, access_control_mask );”以检查getbit。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此,attr Rec.attr.accessControl和getbit是开/关和电池百分比读取属性的相同值。 它们分别具有值0x05和0x00。 但是,打开/关闭读取属性的attalFound为0x01,而batt percent Read属性的attalFound为0x00。 为什么会这样?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该跟踪zclFindAttrRec,看看它为什么返回0到attrofound。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    所以我发现我的变量test和test2 (如下所示)与clusterID和attributeID不匹配。 第一个图像是开/关读取属性,它可以正常工作。 第二个图像是batt percentage read属性,它不起作用。 为什么会发生这种情况?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当zclProcessInReadCmd中读取电池剩余电量百分比属性时,pInMsg->msg->endpoint, pInMsg->msg->clusterid, readCmd->attID[i]的值是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些是本地变量上的EndPoint,clusterid和atterId。 您可以在图像中查看。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我知道它们是局部变量,但您需要检查这些值。 尝试使用全局变量检查这些值,因为它们对您的问题至关重要。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    pInMsg->msg->endpoint是0x0008
    pInMsg->msg->clusterid为0x0001
    readCmd->attID[i]为0x0021

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些值看起来正确。 接下来是在zclFindAttrRec()中检查精密量的内部。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我得到精度为0x0BA9。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这就是地址。 我的意思是,您将在精密系统中查看内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当地人就在下面。

    端点为0x08
    pLoop为0x0BA9

    该函数执行“return ( pLoop )”

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果正确,zclFindAttrRec返回TRUE或FALSE。 我看不到它返回pLoop。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何"检查精密内的内容"?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    将其作为全局变量并在监视窗口中检查。

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

    我做了,但我得到的只是下面的内容。 我还应该做什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在手表窗口中单击"精密"前的+号以查看内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应检查精密中的电源配置群集是否存在电池剩余百分比属性。 如果不是,则是问题所在。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何检查? 我应该查找什么"表达式"?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在"监视"窗口中检查每个精密->atts[x].clusterID和精密->atts[x].attr.attalId。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过执行以下操作进行了检查。 测试从未达到0x0001,测试2从未达到0x0021。 这是个问题吗?

    测试=精密->atts[x].clusterID;
    test2 =精度->atts[x].attr.attalId;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。 如果是,则zclFindAttrRec中的EndPoint值是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    0x0008