Part Number: CC2652R
Tool/software: WEBENCH® Design Tools
In function "zclParseInConfigReportCmd" in ZCL .c, in the first loop that count Attr number, if the data-type is not analog-type, the reportable change field is 0-byte length, so the "pBuf++" should be removed.
void *zclParseInConfigReportCmd( zclParseCmd_t *pCmd )
{
.....
// Calculate the length of the Request command
while ( pBuf < ( pCmd->pData + pCmd->dataLen ) )
{
uint8 direction;
numAttr++;
direction = *pBuf++;
pBuf += 2; // move pass the attribute ID
// Is there a Reportable Change field?
if ( direction == ZCL_SEND_ATTR_REPORTS )
{
dataType = *pBuf++;
pBuf += 4; // move pass the Min and Max Reporting Intervals
// For attributes of 'discrete' data types this field is omitted
if ( zclAnalogDataType( dataType ) )
{
reportChangeLen = zclGetDataTypeLength( dataType );
pBuf += reportChangeLen;
// add padding if needed
if ( PADDING_NEEDED( reportChangeLen ) )
{
reportChangeLen++;
}
dataLen += reportChangeLen;
}
/* remove this code
else
{
pBuf++; // move past reportable change field
}
*/
}
else
{
pBuf += 2; // move pass the Timeout Period
}
} // while loop
......
}