pvAttributeData

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

pvAttributeData

Jump to solution
713 Views
kevin-zhu
Contributor I

Hi NXP Wireless Support Team,

The code below is copy from JN-SW-4270 Zigbee 3.0 SDK.

What does (uint8 *data)'s first 10 bytes mean?

PRIVATE void APP_ZCL_cbEndpointCallback(tsZCL_CallBackEvent *psEvent)
{
    //    bool_t bUpdateBulb = FALSE;
    DBG_vPrintf(TRACE_ZCL, "\n APP_ZCL_cbEndpointCallback to psEvent->eEventType %02x", psEvent->eEventType);

    switch (psEvent->eEventType)
    {
        case E_ZCL_CBET_WRITE_ATTRIBUTES:     // parke 2017.01.07
        {
            uint8 *data = psEvent->uMessage.sIndividualAttributeResponse.pvAttributeData;
        }
    }
}

Thanks,

Kevin Zhu

Labels (1)
0 Kudos
1 Solution
548 Views
ovidiu_usturoi
NXP Employee
NXP Employee

Hi kevin zhu

pvAttributeData is a pointer to the attribute value. Based on the attribute data type, the value should be taken properly:

e.g:

if(psEvent->uMessage.sIndividualAttributeResponse.eAttributeDataType ==  E_ZCL_OSTRING)

{

       tsZCL_OctetString data = *( ( tsZCL_OctetString* ) psEvent->uMessage.sIndividualAttributeResponse.pvAttributeData );

}

else if (psEvent->uMessage.sIndividualAttributeResponse.eAttributeDataType ==  E_ZCL_UINT8)

{

      uint8_t data = *((uint8_t *) psEvent->uMessage.sIndividualAttributeResponse.pvAttributeData );

}

...

Please consider uAttribData (union defined in zcl_internal.h - sdk files) in order to do the right cast for the value.

Regards,

Ovidiu

View solution in original post

0 Kudos
1 Reply
549 Views
ovidiu_usturoi
NXP Employee
NXP Employee

Hi kevin zhu

pvAttributeData is a pointer to the attribute value. Based on the attribute data type, the value should be taken properly:

e.g:

if(psEvent->uMessage.sIndividualAttributeResponse.eAttributeDataType ==  E_ZCL_OSTRING)

{

       tsZCL_OctetString data = *( ( tsZCL_OctetString* ) psEvent->uMessage.sIndividualAttributeResponse.pvAttributeData );

}

else if (psEvent->uMessage.sIndividualAttributeResponse.eAttributeDataType ==  E_ZCL_UINT8)

{

      uint8_t data = *((uint8_t *) psEvent->uMessage.sIndividualAttributeResponse.pvAttributeData );

}

...

Please consider uAttribData (union defined in zcl_internal.h - sdk files) in order to do the right cast for the value.

Regards,

Ovidiu

0 Kudos