summaryrefslogtreecommitdiffhomepage
path: root/digital/zigbit/bitcloud/stack/Components/APS/include/apsmeUpdateDevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'digital/zigbit/bitcloud/stack/Components/APS/include/apsmeUpdateDevice.h')
-rw-r--r--digital/zigbit/bitcloud/stack/Components/APS/include/apsmeUpdateDevice.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/digital/zigbit/bitcloud/stack/Components/APS/include/apsmeUpdateDevice.h b/digital/zigbit/bitcloud/stack/Components/APS/include/apsmeUpdateDevice.h
new file mode 100644
index 00000000..748fc80f
--- /dev/null
+++ b/digital/zigbit/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 <apsCommon.h>
+
+#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 */
+