AnsweredAssumed Answered

Receiving IEEE Address in Read Attribute Response

Question asked by Jaykumar Patel on Jul 31, 2017
Latest reply on Sep 10, 2017 by David Ashraf

I am using the JN516 chip set and am trying to use IEEE addressing when sending Read Attribute Requests on the JN-AN-1216 Application Note. Despite being able to successfully send the Read Attribute Request using the IEEE Address, I get back a Short Address in the Read Attribute Response. I dug into the source code, and managed to trace the workflow of receiving a Read Attribute Request to a method called "eZCL_BuildTransmitAddressStructure" in the SDK (JN-SW-4170). Within the method, there is a switch case that determines which type of address to populate. I have attached the code snippet below. Is IEEE addressing not supported by the SDK? How can I implement it so that the Read Attribute Response returns the IEEE address instead of the Short Address?

 

Thanks!

 

PUBLIC teZCL_Status eZCL_BuildTransmitAddressStructure(
                        ZPS_tsAfEvent       *pZPSevent,
                        tsZCL_Address       *psZCL_Address)
{
    #ifdef STRICT_PARAM_CHECK
        if((pZPSevent == NULL) || (psZCL_Address == NULL))
        {
            return(E_ZCL_FAIL);
        }
    #endif
    psZCL_Address->eAddressMode = pZPSevent->uEvent.sApsDataIndEvent.u8SrcAddrMode;

    switch(psZCL_Address->eAddressMode)
    {
        case(E_ZCL_AM_SHORT):
        case(E_ZCL_AM_SHORT_NO_ACK):
        {
            psZCL_Address->uAddress.u16DestinationAddress = pZPSevent->uEvent.sApsDataIndEvent.uSrcAddress.u16Addr;
            break;
        }

        // not supported yet
        case(E_ZCL_AM_IEEE):
        case(E_ZCL_AM_BOUND):
        case(E_ZCL_AM_GROUP):
        case(E_ZCL_AM_BROADCAST):
        case(E_ZCL_AM_IEEE_NO_ACK):
        case(E_ZCL_AM_BOUND_NO_ACK):
        default:
        {
            return(E_ZCL_FAIL);
            break;
        }
    }

Outcomes