From a54ad9edce697133a024aff096e50f7e4f389d5b Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Sun, 18 Mar 2012 12:22:02 +0100 Subject: digital/beacon: import Zigbit stack (bitcloud) & avr sources --- .../Components/APS/include/apsmeUpdateDevice.h | 165 +++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 digital/beacon/src/Bitcloud_stack/Components/APS/include/apsmeUpdateDevice.h (limited to 'digital/beacon/src/Bitcloud_stack/Components/APS/include/apsmeUpdateDevice.h') diff --git a/digital/beacon/src/Bitcloud_stack/Components/APS/include/apsmeUpdateDevice.h b/digital/beacon/src/Bitcloud_stack/Components/APS/include/apsmeUpdateDevice.h new file mode 100644 index 00000000..748fc80f --- /dev/null +++ b/digital/beacon/src/Bitcloud_stack/Components/APS/include/apsmeUpdateDevice.h @@ -0,0 +1,165 @@ +/**************************************************************************//** + \file apsmeUpdateDevice.h + + \brief Interface of APS Update Device Service. + + \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-11-24 Max Gekk - Created. + Last change: + $Id: apsmeUpdateDevice.h 17448 2011-06-09 13:53:59Z ataradov $ + ******************************************************************************/ +#if !defined _APSME_UPDATE_DEVICE_H +#define _APSME_UPDATE_DEVICE_H +/**//** + * + * The APS-layer provides services that allow a device (for example, a router) + * to inform another device (for example, a Trust Center) that a third device + * has changed its status (for example, joined or left the network). See ZigBee + * Specification r19, 4.4.4, page 459. + * + **/ +/****************************************************************************** + Includes section + ******************************************************************************/ +#include + +#if defined _SECURITY_ +/****************************************************************************** + Types section + ******************************************************************************/ +/** Status of creating and sending a update device command frame. */ +typedef enum +{ + APS_UPDATE_SUCCESS_STATUS = 0x00, + APS_UPDATE_NO_SHORT_ADDRESS_STATUS = 0x01, + APS_UPDATE_SECURITY_FAIL_STATUS = 0x02, + APS_UPDATE_NOT_SENT_STATUS = 0x03, + /* These names are deprecated and will be removed. */ + APS_UDR_SUCCESS_STATUS = APS_UPDATE_SUCCESS_STATUS, + APS_UDR_NO_SHORT_ADDRESS_STATUS = APS_UPDATE_NO_SHORT_ADDRESS_STATUS, + APS_UDR_SECURITY_FAIL_STATUS = APS_UPDATE_SECURITY_FAIL_STATUS, + APS_UDR_NOT_SENT_STATUS = APS_UPDATE_NOT_SENT_STATUS +} APS_UpdateStatus_t; + +/** This type is deprecated and will be removed. */ +typedef APS_UpdateStatus_t APS_UdrStatus_t; + +/**//** + * \struct APS_UpdateDeviceConf_t apsmeUpdateDevice.h "aps.h" + * + * \brief Type of confirmation parameters of APSME-UPDATE-DEVICE.confirm. + **/ +typedef struct +{ + APS_UpdateStatus_t status; +} APS_UpdateDeviceConf_t; + +/** Type is used to indicate the updated status of the device + * given by the DeviceAddress parameter. See ZigBee Spec. r19, Table 4.20. */ +typedef enum +{ + APS_UPDATE_DEVICE_STATUS_STANDARD_SECURED_REJOIN = 0x00, + APS_UPDATE_DEVICE_STATUS_STANDARD_UNSECURED_JOIN = 0x01, + APS_UPDATE_DEVICE_STATUS_LEFT = 0x02, + APS_UPDATE_DEVICE_STATUS_STANDARD_UNSECURED_REJOIN = 0x03, + APS_UPDATE_DEVICE_STATUS_HIGH_SECURITY_SECURED_REJOIN = 0x04, + APS_UPDATE_DEVICE_STATUS_HIGH_SECURITY_UNSECURED_JOIN = 0x05, + APS_UPDATE_DEVICE_STATUS_RESERVED = 0x06, + APS_UPDATE_DEVICE_STATUS_HIGH_SECURITY_UNSECURED_REJOIN = 0x07 +} APS_UpdateDeviceStatus_t; + +/**//** + * \struct APS_UpdateDeviceReq_t apsmeUpdateDevice.h "aps.h" + * + * \brief Parameters of APSME-UPDATE-DEVICE.request primitive. + * See ZigBee Specification r19, 4.4.4.1, page 459. + **/ +typedef struct +{ + /** \cond SERVICE_FIELDS **/ + struct + { + /** Request to send APS Update Device command. */ + ApsCommandReq_t commandReq; + } service; + /** \endcond **/ + + /** \ref Endian "[LE]" The extended 64-bit address of the device that shall + * be sent the update information. */ + ExtAddr_t destAddress; + /** \ref Endian "[LE]" + * The extended 64-bit address of the device whose status is being updated. */ + ExtAddr_t deviceAddress; + /** This parameter Indicates the updated status of the device given + * by the deviceAddress parameter. */ + APS_UpdateDeviceStatus_t status; + /** \ref Endian "[LE]" + * The 16-bit network address of the device whose status is being updated. */ + ShortAddr_t deviceShortAddress; + /** Confirm primitive as a parameter of the callback function. */ + APS_UpdateDeviceConf_t confirm; + /** Callback function pointer as a handler of corresponding + * confirm primitive. */ + void (*APS_UpdateDeviceConf)(APS_UpdateDeviceConf_t *conf); +} APS_UpdateDeviceReq_t; + +/**//** + * \struct APS_UpdateDeviceInd_t apsmeUpdateDevice.h "aps.h" + * + * \brief Parameters of APSME-UPDATE-DEVICE.indication primitive. + * See ZigBee Specification r19, 4.4.4.2, page 461. + **/ +typedef struct +{ + /** \ref Endian "[LE]" The extended 64-bit address of the device originating + * the update-device command. */ + ExtAddr_t srcAddress; + /** \ref Endian "[LE]" + * The extended 64-bit address of the device whose status is being updated. */ + ExtAddr_t deviceAddress; + /** This parameter Indicates the updated status of the device given + * by the deviceAddress parameter. */ + APS_UpdateDeviceStatus_t status; + /** \ref Endian "[LE]" + * The 16-bit network address of the device whose status is being updated. */ + ShortAddr_t deviceShortAddress; +} APS_UpdateDeviceInd_t; + +/****************************************************************************** + Prototypes section + ******************************************************************************/ +/**************************************************************************//** + \brief Request to inform a device that another device has new status. + + The ZDO (for example, on a router or ZigBee coordinator) shall initiate + the APSME-UPDATE-DEVICE.request primitive when it wants to send updated + device information to another device (for example, the Trust Center). + See ZigBee Specification r15, 4.4.1, page 459. + + \param[in] req - pointer to APSME-UPDATE-DEVICE.request's parameters. + + \return None. + ******************************************************************************/ +void APS_UpdateDeviceReq(APS_UpdateDeviceReq_t *req); + +/**************************************************************************//** + \brief Inform the upper-layer that it received an update-device command frame. + + \param[in] ind - pointer to APSME-UPDATE-DEVICE.indication's parameters. + + \return None. + ******************************************************************************/ +void APS_UpdateDeviceInd(APS_UpdateDeviceInd_t *ind); + +#endif /* _SECURITY_ */ +#endif /* _APSME_UPDATE_DEVICE_H */ +/** eof apsmeUpdateDevice.h */ + -- cgit v1.2.3