APS_DataReq_t struct
C
typedef struct
{
/** \cond SERVICE_FIELDS **/
struct
{
void *next; /*!< Used 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_ */
ZDO_ResolveAddrReq_t resolveAddrReq; /*!< Used for address resolving */
} service;
/** \endcond **/
/** The addressing mode for identifying the destination of a data request.
* 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 address of the individual device or group address
* of the entity to which the ASDU is being transferred.
**/
APS_Address_t dstAddress;
/** This parameter shall be present if and only if the DstAddrMode parameter
* value is 0x02 or 0x03 and, if present, shall contain either the number of
* individual endpoints of the entity to which the ASDU is being transferred,
* or the broadcast endpoint (0xff). */
Endpoint_t dstEndpoint;
/** Endian "[LE]" The identifier of the profile for which
* this frame is intended. */
ProfileId_t profileId;
/** Endian "[LE]" The identifier of the cluster for which
* this frame is intended. */
ClusterId_t clusterId;
/** The endpoint on the request originator node from
* which the data frame is being transferred. */
Endpoint_t srcEndpoint;
/** The number of octets comprising the ASDU to be transferred.
* The maximum length of an individual APS frame payload is given
* as NsduLength-apscMinHeaderOverhead. Assuming the possibility
* of fragmentation, a maximum-sized single ASDU consists of 256 such blocks.
**/
uint16_t asduLength;
/** The set of octets comprising the ASDU to be transferred. */
uint8_t *asdu;
/** The transmission options for the ASDU to be transferred.
* See structure definition for details.
*/
APS_TxOptions_t txOptions;
#if defined _GREENPOWER_SUPPORT_
/* Alias usage by for the current frame */
bool useAlias;
/* The source address to be used for this NSDU. If the UseAlias parameter
has a value of FALSE, the AliasSrcAddr parameter is ignored.*/
ShortAddr_t aliasSrcAddr;
/* The sequence number to be used for this NSDU. If the UseAlias parameter
has a value of FALSE, the AliasSeqNumb parameter is ignored.*/
uint8_t aliasSeqNumber;
#endif /*_GREENPOWER_SUPPORT_*/
/** The distance, in hops, that a transmitted frame will be allowed to
* travel via the network*/
uint8_t radius;
/** A pointer to a callback function called upon request
* completion. Must not be set to NULL. */
void (*APS_DataConf)(APS_DataConf_t *conf);
/** Confirm primitive passed to the callback and containing the results of request execution*/
APS_DataConf_t confirm;
} APS_DataReq_t;
Description
The structure represents parameters of data request, i.e. the request for sending data across the network. A pointer to an instance of the structure should to be passed as an argument to APS_DataReq() function The structure definition follows APSDE-DATA request primitive described in Zigbee Specification r18, 2.2.4.1.1 APSDE-DATA.request, page 23.
