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.

CCS/LPSTK-CC1352R: ZStack Question about variable reportableChange

Part Number: LPSTK-CC1352R


Tool/software: Code Composer Studio

Hi TI Support Team,

I just want to ask about the use of the reportableChange variable that is used for BDB_REPORTING

Below is two example of the variable for reportableChange

uint8_t reportableChange[] = { 0x1, 0x00, 0x00, 0x00 }; // for on/off cluser
uint8_t reportableChange_temp[] = { 0x2C, 0x01, 0x00, 0x00 }; // for temperature monitoring cluster

My question is:

1.) Where can I see the default values for these for different type of cluster?

2.) How can I identify if how much length should I define in BDBREPORTING_MAX_ANALOG_ATTR_SIZE? by default it is set to 4.

Regards,

Jonathan

  • Hi Jonathan,

    1. There is no "default value" but the range and units are defined in the ZCL Specification provided by the Zigbee Alliance.
    2. This value is dependent on the needs of your application and represents the maximum size in bytes used by reportable analog attributes registered in any endpoint.  Sizes of 2, 4, or 8 are recommended.

    Regards,
    Ryan

  • Hi Ryan,

    Thank you for your response, this leads to my next question:

    1.) The values for example for the reportableChange for temperature : { 0x2C, 0x01, 0x00, 0x00 }, what does it mean? Is there any reference I could get to have an idea why it comes to have a value like this?

     

    2.) Does the sizes means the amount of changes before it can get reported? For example if I have size of 4, does it mean it will report value change only if the value changes 4 times?

    Regards,

    Jonathan

    { 0x2C, 0x01, 0x00, 0x00 };

  • Using the following lines as example,

    #if BDBREPORTING_MAX_ANALOG_ATTR_SIZE == 4
      uint8_t reportableChange[] = {0x2C, 0x01, 0x00, 0x00}; // 0x2C01 is 300 in int16_t
    #endif

    it stands for if the attribute size is 4 bytes, the array size is 4 in Little-Endian.

  • Hi Jonathan,

    0x012C is equivalent to 300 decimal which represents 3 degrees according to the ZCL Spec for ATTRID_MS_TEMPERATURE_MEASURED_VALUE.  Therefore if the temperature changes by 3 degrees then this attribute will be immediately reported (so long as the minReportingInterval time has already passed) even though the maxReportingInterval has not been reached.  The reported value will be four bytes in length.

    Regards,
    Ryan