From b24866225a6301d3a663f874725e83c012dc25d3 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Wed, 26 Dec 2012 17:36:00 +0100 Subject: digital/beacon: add bitcloud stack into common directory digital/zigbit --- .../stack/Components/APS/include/intrpData.h | 194 +++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 digital/zigbit/bitcloud/stack/Components/APS/include/intrpData.h (limited to 'digital/zigbit/bitcloud/stack/Components/APS/include/intrpData.h') diff --git a/digital/zigbit/bitcloud/stack/Components/APS/include/intrpData.h b/digital/zigbit/bitcloud/stack/Components/APS/include/intrpData.h new file mode 100644 index 00000000..4f46d490 --- /dev/null +++ b/digital/zigbit/bitcloud/stack/Components/APS/include/intrpData.h @@ -0,0 +1,194 @@ +/**************************************************************************//** + \file intrpData.h + + \brief Interface of inter-PAN transmission. + + \author + Atmel Corporation: http://www.atmel.com \n + Support email: avr@atmel.com + + Copyright (c) 2008-2011, Atmel Corporation. All rights reserved. + Licensed under Atmel's Limited License Agreement (BitCloudTM). + + \internal + History: + 2010-02-18 A. Kostyukov - Created. + 2010-11-20 Max Gekk - Refactoring. + Last change: + $Id: intrpData.h 18271 2011-08-18 12:07:56Z nfomin $ + ******************************************************************************/ +#if !defined _INTRP_DATA_H +#define _INTRP_DATA_H +/**//** + * + * Inter-PAN is a transmission mechanism whereby ZigBee devices can perform + * limited, insecure, and possibly anonymous exchanges of information with + * devices in their local neighborhood without having to form or join the same + * ZigBee network. See ZigBee SE Profile Spec r15, page 81. + * + **/ + +/****************************************************************************** + Includes section + ******************************************************************************/ +#include + +#if defined _INTERPAN_ + +/****************************************************************************** + Definitions section +******************************************************************************/ +#define INTRP_NO_PANID_COMPRESSION_TXOPTION 1u + +/****************************************************************************** + Types section + ******************************************************************************/ +/** Type of handle associated with the inter-PAN ASDU to be transmitted. */ +typedef uint8_t IntrpAsduHandle_t; +/** Type of inter-PAN frame length. */ +typedef uint8_t IntrpLength_t; + +/**//** + * \struct INTRP_DataConf_t intrpData.h "aps.h" + * + * \brief INTRP-DATA confirm primitive's parameters structure declaration. + * + * ZigBee Smart Energy profile specification r15, B.3.2. + * The INTRP-DATA.confirm Primitive, page 85. + **/ +typedef struct +{ + /** An integer handle associated with the transmitted frame. */ + IntrpAsduHandle_t asduHandle; + /** The status of the ASDU transmission corresponding to ASDUHandle as + * returned by the MAC.*/ + MAC_Status_t status; +} INTRP_DataConf_t; + +typedef uint8_t INTRP_TxOptions_t; + +/**//** + * \struct INTRP_DataReq_t intrpData.h "aps.h" + * + * \brief INTRP-DATA.request primitive's parameters structure declaration. + * + * ZigBee Smart Energy profile specification r15, B.3.1 + * The INTRP-DATA.request Primitive, page 83. + **/ +typedef struct +{ + /** \cond SERVICE_FIELDS **/ + struct + { + /** MCPS-DATA request primitive's parameters structure. */ + MAC_DataReq_t macDataReq; + } service; + /** \endcond **/ + + /** The addressing mode for the destination address used in this primitive. + * This parameter can take one of the values from the following list: + * \li 0x01 = 16-bit group address + * \li 0x02 = 16-bit NWK address, normally the broadcast address 0xffff + * \li 0x03 = 64-bit extended address + **/ + APS_AddrMode_t dstAddrMode; + /** \ref Endian "[LE]" The 16-bit PAN identifier of the entity or entities + * to which the ASDU is being transferred or the broadcast PANId 0xffff. */ + PanId_t dstPANID; + /** \ref Endian "[LE]" The address of the entity or entities to which + * the ASDU is being transferred. */ + MAC_Addr_t dstAddress; + /** \ref Endian "[LE]" The identifier of the profile for which this frame is + * intended. */ + ProfileId_t profileId; + /** \ref Endian "[LE]" The identifier of the cluster, within the profile + * specified by the ProfileId parameter, which defines the application + * semantics of the ASDU. **/ + ClusterId_t clusterId; + /** The number of octets in the ASDU to be transmitted. */ + IntrpLength_t asduLength; + /** The set of octets comprising the ASDU to be transferred. */ + uint8_t *asdu; + /** An integer handle associated with the ASDU to be transmitted. */ + IntrpAsduHandle_t asduHandle; + /** Callback function pointer as a handler of corresponding + * confirm primitive. + **/ + void (*INTRP_DataConf)(INTRP_DataConf_t *conf); + /** Confirm primitive as a parameter of the callback function. */ + INTRP_DataConf_t confirm; + /** Transmission options for this request **/ + INTRP_TxOptions_t txOptions; +} INTRP_DataReq_t; + +/**//** + * \struct INTRP_DataInd_t intrpData.h "aps.h" + * + * \brief INTRP-DATA indication primitive's parameters structure declaration. + * + * ZigBee Smart Energy profile specification r15, B.3.3. + * The INTRP-DATA.indication Primitive, page 86. + **/ +typedef struct +{ + /** \ref Endian "[LE]" The 16-bit PAN identifier of the entity from which + * the ASDU is being transferred. */ + PanId_t srcPANID; + /** \ref Endian "[LE]" The device address of the entity from which + * the ASDU is being transferred. */ + MAC_Addr_t srcAddress; + /** The addressing mode for the destination address used in this primitive. + * This parameter can take one of the values from the following list: + * \li 0x01 = 16-bit group address + * \li 0x02 = 16-bit NWK address, normally the broadcast address 0xffff + * \li 0x03 = 64-bit extended address. + **/ + APS_AddrMode_t dstAddrMode; + /** \ref Endian "[LE]" The 16-bit PAN identifier of the entity or entities + * to which the ASDU is being transferred or the broadcast PANId 0xffff. */ + PanId_t dstPANID; + /** \ref Endian "[LE]" The address of the entity or entities to which + * the ASDU is being transferred. */ + MAC_Addr_t dstAddress; + /** \ref Endian "[LE]" + * The identifier of the profile for which this frame is intended. */ + ProfileId_t profileId; + /** \ref Endian "[LE]" The identifier of the cluster, within the profile + * specified by the ProfileId parameter, which defines the application + * semantics of the ASDU. */ + ClusterId_t clusterId; + /** The number of octets in the ASDU to be transmitted. */ + IntrpLength_t asduLength; + /** The set of octets comprising the ASDU to be transferred. */ + uint8_t *asdu; + /** The link quality observed during the reception of the ASDU. */ + Lqi_t lqi; + /** RSSI observed during the reception of the ASDU. */ + Lqi_t rssi; +} INTRP_DataInd_t; + +/****************************************************************************** + Prototypes section + ******************************************************************************/ +/**************************************************************************//** + \brief INTRP-DATA request primitive's prototype. + + \param[in] req - INTRP-DATA request parameters' structure pointer. + + \return None. + ******************************************************************************/ +void INTRP_DataReq(INTRP_DataReq_t *const req); + +/**************************************************************************//** + \brief INTRP-DATA indication primitive's prototype. + + \param[in] ind - INTRP-DATA indication parameters' structure pointer. + + \return None. + ******************************************************************************/ +void INTRP_DataInd(INTRP_DataInd_t *ind); + +#endif /* _INTERPAN_ */ +#endif /* _INTRP_DATA_H */ +/** eof intrpData.h */ + -- cgit v1.2.3