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.
测试发现report长度好像受 BDBREPORTING_MAX_ANALOG_ATTR_SIZE 的限制,ZCL中限制了只能是2、4或8。我想将一个ZCL_DATATYPE_CHAR_STR类型的Attribute通过Report发出去。如果长度没有超过BDBREPORTING_MAX_ANALOG_ATTR_SIZE的话,可以正确发送。如果长度超了,数据能发出去,但是超出部分的内容是错的。
我需要的Reportable Attribute长度达到255,改BDBREPORTING_MAX_ANALOG_ATTR_SIZE = 255。那么问题来了,改了之后BDBREPORTING_DEFAULTCHANGEVALUE[]要手工重定义,bdb_reporting.c里面有一堆东西要改。我的思路是不是错了,要怎么长能发长度超过8的report
ZCL_DATATYPE_CHAR_STR的第一个字节表示长度的,后面跟着用01 02 03 04....填充。如果长度是02,那么抓包数据就是02 01 02,是正确的,如果发的是09 01 02 03 04 05 06 07 08 09,那么抓包的数据就是09 01 02 03 x1 x2 x3 x4 x5 x6。就是抓到的数据长度是对的,但是超出BDBREPORTING_MAX_ANALOG_ATTR_SIZE 部分就不对了。
版本是4.40.04。我看了一下,5.10的代码,这部分也一样