APS_DataInd_t struct
C
typedef struct
{
/** \cond SERVICE_FIELDS **/
struct
{
void *next; /*!< Service field for queue support */
#ifdef _ZAPPSI_
/* to be compatible with MAC service. */
uint8_t requestId;
/* Sequence number to identify request-response pair. */
uint8_t sequenceNumber;
union
{
/* Callback wrapper routine pointer */
void (*callback)(void*);
/* Processing routine pointer to call after required memory will become free */
void (*process)(void*);
} zsi;
#endif /* # _ZAPPSI_ */
} service;
/** \endcond **/
/** The addressing mode used to identify the destination
* in the data frame that has been received.
* May take any non-reserved value from the following list:
APS_NO_ADDRESS (0x00) - used for binding; set dstAddress and dstEndpoint
APS_GROUP_ADDRESS (0x01) - used for group transmission; 16-bit group address should be specified in dstAddress; dstEndpoint is not set
APS_SHORT_ADDRESS (0x02) - identifying the destination (unicast or broadcast) with a 16-bit short address specified
* in dstAddress and the endpoint set in dstEndpoint
APS_EXT_ADDRESS (0x03) - identifying the destination with a 64-bit extended address specified in dstAddress and the endpoint set in dstEndpoint
0x04..0xff - reserved values, must not be used by the application*/
APS_AddrMode_t dstAddrMode;
/** Endian "[LE]" The individual device address or group addressto which
* the ASDU is directed. Value size depends on the dstAddrMode parameter. */
APS_Address_t dstAddress;
/** The target endpoint on the local entity to which the ASDU is directed. */
Endpoint_t dstEndpoint;
/** The addressing mode for the source address used in this primitive
* and of the APDU that has been received. May possess any non-reserved value
* from the following list:
APS_SHORT_ADDRESS (0x02) - short address is used in srcAddress and srcEndpoint is specified
APS_EXT_ADDRESS (0x03) - extended address is used in srcAddress and srcEndpoint is specified
* */
APS_AddrMode_t srcAddrMode;
/** Endian "[LE]" The individual device address of the entity from which
* the ASDU has been received.
* Value type and size is depend of the srcAddrMode parameter. */
APS_Address_t srcAddress;
/** Endian "[LE]" Network address of previous hop from which the packet
* received. */
ShortAddr_t prevHopAddr;
/** The number of the individual endpoint of the entity from
* which the ASDU has been received. */
Endpoint_t srcEndpoint;
/** Endian "[LE]" The identifier of the profile from
* which this frame originates. */
ProfileId_t profileId;
/** Endian "[LE]" The identifier of the received object. */
ClusterId_t clusterId;
/** The number of octets comprising the ASDU being indicated by the APSDE. */
uint16_t asduLength;
/** The set of octets comprising the ASDU being indicated by the APSDE. */
uint8_t *asdu;
/** The status of the incoming frame processing. */
APS_Status_t status;
/**
APS_UNSECURED_STATUS=0xaf if the ASDU was received without any security.
APS_SECURED_NWK_KEY_STATUS=0xac if the received ASDU was secured
with the NWK key,
APS_SECURED_LINK_KEY_STATUS=0xab if the ASDU was secured with a link key,
APS_SECURED_TRUST_CENTER_LINK_KEY_STATUS=0xb1 if the ASDU was secured
with the trust center link key,
APS_SECURED_HASH_OF_TRUST_CENTER_LINK_KEY_STATUS=0xb2 if secured
with hash of the trust center link key.
*/
APS_Status_t securityStatus;
/** The status of whether the NSDU is using security: TRUE = use,
* FALSE = doesn't use. */
bool nwkSecurityStatus;
/** The link quality indication delivered by the NLDE. */
uint8_t linkQuality;
/** Timestamp for the received packet based on the local clock,
* as provided by the NWK layer. */
uint32_t rxTime;
int8_t rssi;
} APS_DataInd_t;
Description
struct APS_DataInd_t apsdeData.h "aps.h"
The structure for indication of data reception
A pointer to an instance of this type is passed to a data indication callback registered for a given
endpoint when the data is received destined to the endpoint.
The structure definition follows APSDE-DATA indication primitive described in
Zigbee Specification r18, 2.2.4.1.3 APSDE-DATA.indication, page 29.
