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.