From 22abd06132445a55a1a0266897920f26634825c1 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Wed, 26 Dec 2012 17:38:10 +0100 Subject: digital/beacon: remove obsolete bitcloud stack --- .../Bitcloud_stack/Components/ZCL/include/caps.h | 90 -- .../Components/ZCL/include/clusters.h | 186 ---- .../Bitcloud_stack/Components/ZCL/include/eccAux.h | 11 - .../Components/ZCL/include/genericEcc.h | 90 -- .../Components/ZCL/include/private/zclDbg.h | 137 --- .../Bitcloud_stack/Components/ZCL/include/zcl.h | 1120 -------------------- .../ZCL/include/zclBACnetProtocolTunnelCluster.h | 105 -- .../Components/ZCL/include/zclBasicCluster.h | 259 ----- .../ZCL/include/zclDemandResponseCluster.h | 351 ------ .../ZCL/include/zclGenericTunnelCluster.h | 176 --- .../Components/ZCL/include/zclGroupsCluster.h | 361 ------- .../ZCL/include/zclHumidityMeasurementCluster.h | 122 --- .../Components/ZCL/include/zclIdentifyCluster.h | 178 ---- .../Bitcloud_stack/Components/ZCL/include/zclInt.h | 46 - .../ZCL/include/zclKeyEstablishmentCluster.h | 529 --------- .../ZCL/include/zclLevelControlCluster.h | 286 ----- .../Bitcloud_stack/Components/ZCL/include/zclMem.h | 62 -- .../Components/ZCL/include/zclMemoryManager.h | 90 -- .../Components/ZCL/include/zclMessagingCluster.h | 185 ---- .../Components/ZCL/include/zclOTAUCluster.h | 564 ---------- .../ZCL/include/zclOccupancySensingCluster.h | 155 --- .../Components/ZCL/include/zclOnOffCluster.h | 200 ---- .../include/zclOnOffSwitchConfigurationCluster.h | 150 --- .../Components/ZCL/include/zclOtauDiscovery.h | 100 -- .../Components/ZCL/include/zclOtauManager.h | 180 ---- .../Components/ZCL/include/zclParser.h | 445 -------- .../ZCL/include/zclPowerConfigurationCluster.h | 107 -- .../Components/ZCL/include/zclPriceCluster.h | 267 ----- .../Components/ZCL/include/zclScenesCluster.h | 487 --------- .../Components/ZCL/include/zclSecurityManager.h | 190 ---- .../ZCL/include/zclSimpleMeteringCluster.h | 175 --- .../Components/ZCL/include/zclTaskManager.h | 71 -- .../ZCL/include/zclTemperatureMeasurementCluster.h | 121 --- .../Components/ZCL/include/zclThermostatCluster.h | 214 ---- .../Components/ZCL/include/zclTimeCluster.h | 220 ---- .../Bitcloud_stack/Components/ZCL/include/zclZll.h | 155 --- .../Components/ZCL/include/zclZllBasicCluster.h | 308 ------ .../ZCL/include/zclZllColorControlCluster.h | 1004 ------------------ .../ZCL/include/zclZllCommissioningCluster.h | 228 ---- .../Components/ZCL/include/zclZllFrameFormat.h | 265 ----- .../Components/ZCL/include/zclZllGroupsCluster.h | 363 ------- .../Components/ZCL/include/zclZllIB.h | 171 --- .../Components/ZCL/include/zclZllIdentifyCluster.h | 215 ---- .../Components/ZCL/include/zclZllInterPan.h | 71 -- .../ZCL/include/zclZllLevelControlCluster.h | 297 ------ .../Components/ZCL/include/zclZllMisc.h | 95 -- .../Components/ZCL/include/zclZllNetwork.h | 114 -- .../Components/ZCL/include/zclZllOnOffCluster.h | 281 ----- .../Components/ZCL/include/zclZllScan.h | 109 -- .../Components/ZCL/include/zclZllScenesCluster.h | 648 ----------- .../Components/ZCL/include/zclZllSecurity.h | 63 -- 51 files changed, 12417 deletions(-) delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/caps.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/clusters.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/eccAux.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/genericEcc.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/private/zclDbg.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zcl.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclBACnetProtocolTunnelCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclBasicCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclDemandResponseCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclGenericTunnelCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclGroupsCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclHumidityMeasurementCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclIdentifyCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclInt.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclKeyEstablishmentCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclLevelControlCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMem.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMemoryManager.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMessagingCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOTAUCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOccupancySensingCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOnOffCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOnOffSwitchConfigurationCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauDiscovery.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauManager.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclParser.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPowerConfigurationCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPriceCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclScenesCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclSecurityManager.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclSimpleMeteringCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclTaskManager.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclTemperatureMeasurementCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclThermostatCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclTimeCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZll.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllBasicCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllColorControlCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllCommissioningCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllFrameFormat.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllGroupsCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIB.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIdentifyCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllInterPan.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllLevelControlCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllMisc.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllNetwork.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllOnOffCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllScan.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllScenesCluster.h delete mode 100644 digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllSecurity.h (limited to 'digital/beacon/src/Bitcloud_stack/Components/ZCL/include') diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/caps.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/caps.h deleted file mode 100644 index a37b19ff..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/caps.h +++ /dev/null @@ -1,90 +0,0 @@ -/************************************************************************//** - \file caps.h - - \brief - The header file describes the CAPS interface - - The file describes the interface and types of CAPS - - \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: - 27.11.08 A. Potashov - Created. -******************************************************************************/ - -#ifndef _CAPS_H -#define _CAPS_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include -#include -#include -//#include - -/****************************************************************************** - Define(s) section -******************************************************************************/ -#define CAPS_SERIAL_CHANNEL UART_CHANNEL_1 -#ifdef _ZCL_SECURITY_ - #define CAPS_DO_NOT_USE_APS_SECURITY false -#else /* _ZCL_SECURITY_ */ - #define CAPS_DO_NOT_USE_APS_SECURITY true -#endif /* _ZCL_SECURITY_ */ - -/****************************************************************************** - Types section -******************************************************************************/ - - -/***************************************************************************** - Special CAPS data types definition -*****************************************************************************/ -typedef enum -{ - CAPS_SERIAL_NONE = 0x00, - CAPS_SERIAL_UART = 0x01 -} CAPS_Serial_t; - - -/****************************************************************************** - Constants section -******************************************************************************/ - -/****************************************************************************** - External variables section -******************************************************************************/ - -/****************************************************************************** - Prototypes section -******************************************************************************/ - - -/***************************************************************************** - CAPS API Prototypes -*****************************************************************************/ - -/**************************************************************************//** - \brief CAPS Data Request interface. - - APS_DataConf field in APS_DataReq must be an actual confirm handler pointer. - - \param[in] req The APS_DataReq_t primitive pointer. - \param[in] serial The serial flag for redirection to the serial interface. CAPS_Serial_t must be used. - \param[in] noApsSecurity If true APS security is switched off. - \return None. -*****************************************************************************/ -extern void CAPS_DataReq(APS_DataReq_t *req, uint8_t serial, bool noApsSecurity); - -#endif //#ifndef _CAPS_H - - -//eof caps.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/clusters.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/clusters.h deleted file mode 100644 index 42bcd00c..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/clusters.h +++ /dev/null @@ -1,186 +0,0 @@ -/************************************************************************//** - \file clusters.h - - \brief - The header file describes the ZCLclusters - - The file describes the ZCL clusters - - \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: - 01.12.08 I. Fedina & A. Potashov - Created. -******************************************************************************/ - -#ifndef _CLUSTERS_H -#define _CLUSTERS_H - -#include -#include - -/****************************************************************************** - Define(s) section -******************************************************************************/ -#define DEFINE_ATTRIBUTE(name, props, aid, atype) \ - .name = {.id = aid, .type = atype, .properties = props} - -#define DEFINE_REPORTABLE_ATTRIBUTE(name, props, aid, atype, min, max) \ - .name = {.id = aid, .type = atype, .properties = ZCL_REPORTABLE_ATTRIBUTE | (props), .minReportInterval = min, .maxReportInterval = max} - -#define COMMAND_OPTIONS(cldirection, clwaitingResponse, clackRequest) \ - {.direction = ZCL_FRAME_CONTROL_DIRECTION_##cldirection, .waitingResponse = clwaitingResponse, \ - .ackRequest = clackRequest} - -#define DEFINE_COMMAND(cname, cid, coptions, cind) \ - .cname = {.id = cid, .options = coptions, cind} - -/***************************************************************************//** -\brief The type describes possible parts of a ZCL cluster. - -A cluster is a related collection of commands and attributes, which together define -an interface to specific functionality. Typically, the entity that stores the attributes -of a cluster is referred to as the server of that cluster and an entity that affects or -manipulates those attributes is referred to as the client of that cluster. However, if -required, attributes may also be present on the client of a cluster. -Commands that allow devices to manipulate attributes, e.g. the read attribute or -write attribute commands, are (typically) sent from a client device and received -by the server device. Any response to those commands, e.g. the read attribute response -or the write attribute response commands, are sent from the server device and -received by the client device. -*******************************************************************************/ -/*ZCL command ack request field*/ -#define ZCL_COMMAND_NO_ACK 0 -#define ZCL_COMMAND_ACK 1 - -#define ZCL_SERVER_CLUSTER_TYPE 0 //!< server part of a cluster -#define ZCL_CLIENT_CLUSTER_TYPE 1 //!< client part of a cluster - -/*ZCL Header Direction sub-field value*/ -#define ZCL_FRAME_CONTROL_DIRECTION_CLIENT_TO_SERVER 0x00 -#define ZCL_FRAME_CONTROL_DIRECTION_SERVER_TO_CLIENT 0x01 - -/*ZCL cluster side possible values*/ -#define ZCL_CLUSTER_SIDE_SERVER ZCL_FRAME_CONTROL_DIRECTION_CLIENT_TO_SERVER -#define ZCL_CLUSTER_SIDE_CLIENT ZCL_FRAME_CONTROL_DIRECTION_SERVER_TO_CLIENT - -/*! A value to disable default response for a cluster's command*/ -#define ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE 0x01 -/*! A value to enable default response for a cluster's command*/ -#define ZCL_FRAME_CONTROL_ENABLE_DEFAULT_RESPONSE 0x00 - -/* There is other relevant response specified for the command or not */ -#define ZCL_THERE_IS_RELEVANT_RESPONSE 0x01 -#define ZCL_THERE_IS_NO_RELEVANT_RESPONSE 0x00 - -#define ZCL_NETWORK_KEY_CLUSTER_SECURITY 0 -#define ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY 1 - - -/* Bits for declaring properties bitmask of attribute */ -#define ZCL_READWRITE_ATTRIBUTE 0U -#define ZCL_REPORTABLE_ATTRIBUTE 1U -#define ZCL_READONLY_ATTRIBUTE 2U - -#ifdef _ZCL_SECURITY_ - #define ZCL_DEFAULT_CLUSTER_SECURITY ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY -#else - #define ZCL_DEFAULT_CLUSTER_SECURITY ZCL_NETWORK_KEY_CLUSTER_SECURITY -#endif - -/*************************************************************************//** - \brief Clusters Id definition -*****************************************************************************/ -enum -{ - /* General clusters defined by ZCL Specification */ - BASIC_CLUSTER_ID = CCPU_TO_LE16(0x0000), //! - -/****************************************************************************** - Define(s) section -******************************************************************************/ -#if defined _SYS_ASSERT_ON_ - -#define ZCL_SET_STATE(state, newState) (state) = (newState) -#define ZCL_CHECK_STATE(state, checkState, nameOfAssert) \ - assert((checkState) == (state), nameOfAssert) - -#else /* _SYS_ASSERT_ON_ */ - -#define ZCL_SET_STATE(state, newState) -#define ZCL_CHECK_STATE(state, waitState, nameOfAssert) -#if defined assert -#undef assert -#endif /* assert */ -#define assert(condition, dbgCode) (void)0 - -#endif /* _SYS_ASSERT_ON_ */ - -/****************************************************************************** - Types section -******************************************************************************/ - -/****************************************************************************** - Constants section -******************************************************************************/ -typedef enum -{ - /*********************************** - ZCL section. Range 0x8000 - 0x8fff - ************************************/ - - //ZCL Task Manager Id (0x8000 - 0x80ff) - ZCLTASKMANAGER_TASKHANDLER_0 = 0x8000, - //ZCL CAPS Id (0x8100 - 0x81ff) - - //ZCL ZCL Id (0x8200 - 0x82ff) - ZCLGETCLUSTER_0 = 0x8200, - PARSEDATAIND_0 = 0x8201, - ZCLREPORTIND_0 = 0x8202, - DBG_ZCL_GET_TRUST_CENTER_ADDRESS = 0x8203, - ZCL_UNDEFINED_CLUSTER_IN_REQUEST = 0x8204, - ZCL_UNEXPECTED_ASDU_LENGTH = 0x8205, - UNKNOWN_DAT_TYPE_DESCR = 0x8206, - //ZCL Memory Manager (0x8300 - 0x83ff) - ZCL_DATAIND_0 = 0x8300, - ZCL_THERE_ARE_NO_BUFFERS = 0x8301, - //OTAU (0x8400 - 0x84ff) - ZCL_OTAU_NULL_POINTER_TO_INIT_STRUCTURE = 0x8400, - ZCL_OTAU_DOUBLE_START = 0x8401, - ZCL_OTAU_UNEXPECTED_SERVER_DISCOVERY = 0x8402, - ZCL_UNKNOWN_CUSTOM_MESSAGE = 0x8403, - ZCL_OTAU_UNKNOWN_SERVER_TRANSACTUION_ID = 0x8404, - ZCL_UNKNOWN_ISD_MESSAGE = 0x8405, - // KE - KE_WRONG_STATE_0 = 0x8500, - KE_WRONG_STATE_1 = 0x8501, - KE_WRONG_STATE_2 = 0x8502, - KE_WRONG_STATE_3 = 0x8503, - KE_WRONG_STATE_4 = 0x8504, - KE_WRONG_STATE_5 = 0x8505, - - ZCL_MEMORY_CORRUPTION_0 = 0x8600, - ZCL_MEMORY_CORRUPTION_1 = 0x8601, - ZCL_MEMORY_CORRUPTION_2 = 0x8602, - ZCL_MEMORY_CORRUPTION_3 = 0x8603 -} ZclDbgCodeId_t; - -typedef enum -{ - OTAU_STOPPED_STATE, - OTAU_STARTED_STATE, - OTAU_OFD_INITIALIZATION_STATE, - OTAU_BROADCAST_MATCH_DESC_REQ, - OTAU_UNICAST_MATCH_DESC_REQ, - OTAU_SHORT_ADDR_REQ, - OTAU_EXT_ADDR_REQ, - OTAU_GET_TRUST_CENTRE_ADDR, - OTAU_GET_LINK_KEY, - OTAU_QUERY_NEXT_IMAGE_TRANSAC, - OTAU_WAITING_FOR_SERVER_DISCOVERY, - OTAU_ERASE_IMAGE, - OTAU_IMAGE_BLOCK_TRANSAC, - OTAU_IMAGE_PAGE_TRANSAC, - OTAU_WRITE_DATA_TO_FLASH, - OTAU_FLUSH_DATA_TO_FLASH, - OTAU_UPGRADE_END_TRANSAC, - OTAU_WAITING_FOR_UPGRADE_TIMEOUT, - OTAU_WAITING_FOR_UPGRADE_UNLIMITED, - OTAU_SWITCH_IMAGE -} ZclOtauStateMachine_t; - -/****************************************************************************** - External variables section -******************************************************************************/ - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/****************************************************************************** - Inline static functions section -******************************************************************************/ - - -#endif //#ifndef _ZCLDBG_H - -//eof zclDbg.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zcl.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zcl.h deleted file mode 100644 index 0731a417..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zcl.h +++ /dev/null @@ -1,1120 +0,0 @@ -/************************************************************************//** - \file zcl.h - - \brief - The header file describes the public ZCL interface - - The file describes the public interface and types of ZCL - - \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: - 01.12.08 I. Fedina & A. Potashov - Created. -******************************************************************************/ - -#ifndef _ZCL_H -#define _ZCL_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ -#define PROFILE_ID_SMART_ENERGY CCPU_TO_LE16(0x0109) -#define PROFILE_ID_CBA CCPU_TO_LE16(0x0105) -#define PROFILE_ID_HOME_AUTOMATION CCPU_TO_LE16(0x0104) -#define PROFILE_ID_SMART_LIGHTING CCPU_TO_LE16(0xc05e) - -#define ZCL_MAX_ASDU_SIZE 75 //it is temporary hack to prevent fragmentation for ZCL packets. It should be fixed with correct calculation of payload size. - -// Macros defines the maximum size allocated for a value of type OCTET_STRING -#define OCTET_STRING_MAX_SIZE 255 -/****************************************************************************** - Types section -******************************************************************************/ -typedef uint8_t ZCL_ClusterType_t; -typedef uint16_t ZCL_AttributeId_t; //ZCL_Response field is called. - - Common uses of the function include sending the following commands (the command's - ID listed below should be assigned to the \c req->id field): - \li ::ZCL_READ_ATTRIBUTES_COMMAND_ID - reading remote attributes (obtaining values) - \li ::ZCL_WRITE_ATTRIBUTES_COMMAND_ID - writing remote attributes (assigning new values) - \li ::ZCL_REPORT_ATTRIBUTES_COMMAND_ID - reporting local attributes to remote devices - (sending current attributes' values) - \li ::ZCL_DISCOVER_ATTRIBUTES_COMMAND_ID - discovering attributes of a remote device (obtaining - data types and IDs of attributes supported by a particular cluster) - - \param[in] req - command parameters -*****************************************************************************/ -void ZCL_AttributeReq(ZCL_Request_t *req); - -/*********************************************************************************//** - \brief Sends a cluster command - - The function sends a general cluster specific command. The command's type is - recognized according to the \c req->id field. Commands' IDs are defined in clusters' - definition files, which also contain all definition related to a particular cluster. - - In addition to addressing information and command's ID, eesential fields of - the request parameters include the payload and the payload length. The payload - for each command is defined as a structure in the cluster's definition file. - The pointer to a properly configured instance of the command's payload shall be \ - assigned to the \c req->requestPayload field. - - The callback function specified in the \c req->ZCL_Response field is called to - indicate the status of the command's delivery (not a specific response for the - command). If acknowledgment of the command's delivery is received the success - status is reported in the callback. - - A specific response to the command is processed by a special indication function - registered for the command. If a command does not imply a specific response - the default response may be requested (to indicate that the command has been - executed). To request the default response set the \c req->defaultResponse field - to ::ZCL_FRAME_CONTROL_ENABLE_DEFAULT_RESPONSE and assign the callback function - that should be called upon default response reception to the \c req->ZCL_DefaultResponse - field. To disable default response set \c req->defaultResponse to - ::ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE and \c req->ZCL_DefaultResponse to \c NULL. - - \param[in] req - contains request descriptor -************************************************************************************/ -void ZCL_CommandReq(ZCL_Request_t *req); - -/*********************************************************************************//** -\brief Specific command indication handler - -\param[in] ind - contains indication descriptor -************************************************************************************/ -//void ZCL_CommandInd(ZCL_CommandInd_t *ind); - -/*************************************************************************//** - \brief ZCL event notification handler - - \param[in] event - contains event descriptor -*****************************************************************************/ -void ZCL_EventNtfy(ZCL_EventNtfy_t *event); - -/*************************************************************************//** - \brief This function returns bytes amount of a type by type id. - - \param[in] typeId - type id - \param[in] value - pointer to variable of typeId, NULL means maximum possible - size. -*****************************************************************************/ -uint16_t ZCL_GetAttributeLength(uint8_t typeId, const uint8_t *value); - -/*************************************************************************//** - \brief Adds an element to the outgoing command payload - - This function is used to simplify forming a correst payload for general - commands (read/write attributes etc.). A single command may involve actions on - several attributes, and so the overall payload should contain pieces - corresponding to each attribute. - - The general idea is to provide a buffer for the payload and some content. The - function writes the content in a correct way to the buffer and calculate the - overall payload length. The buffer and the payload length are then passed as - parameters to the ZCL_AttributeReq() function. - - See the following example: - -\code -ZCL_NextElement_t element; -ZCL_ReadAttributeReq_t readAttrReqElement; -ZCL_Request_t readAttrReq; -uint8_t buffer[BUFFER_SIZE]; - -element.payloadLength = 0; -element.payload = buffer; -element.id = ZCL_READ_ATTRIBUTES_COMMAND_ID; -element.content = &readAttrReqElement; - -readAttrReqElement = ATTRIBUTE_ID1; //Set to the ID of the first attribute -ZCL_PutNextElement(&element); - -readAttrReqElement = ATTRIBUTE_ID2; //Set to the ID of the second attribute -ZCL_PutNextElement(&element); - -readAttrReq.requestLength = element.payloadLength; -readAttrReq.requestPayload = element.payload; -... -\endcode - - Note, however, that the usage may differ depending on a command's type. - - \param[in] element - information about payload and element - \param[out] status of the operation -*****************************************************************************/ -ZCL_Status_t ZCL_PutNextElement(ZCL_NextElement_t *element); - -/*************************************************************************//** - \brief Gets an element from the incoming command's payload - - The function is used to simplify processing of responses fo general - attributes related commands. Such command may return information concerning - several attributes in a single frame. This function reads the next portion - of information from the response payload. - - To use the function configure an instance of ZCL_NextElement type. - The \c element->payload field should be set to the response payload, - the \c element->payloadLength to the reponse payload's length, and - the \c element->id field to the ID of the response. After calling this - function, the \c element->content field may be casted to the appropriate - response type (depending on the command's type); for example, for - read attributes response it is ZCL_ReadAttributeResp_t. - - \param[in] element - information about payload and element - \param[out] status of the operation -*****************************************************************************/ -ZCL_Status_t ZCL_GetNextElement(ZCL_NextElement_t *element); - -/***************************************************************************//** -\brief Checks whether ZCL is busy or not. - -\return true - if ZCL is busy, false - otherwise. -******************************************************************************/ -bool ZCL_IsBusy(void); - -/*************************************************************************//** - \brief ZCL Data Type Descriptor get by Type Id function. - Fills the ZCL Data Type Descriptor dased on ZCL Data Type Id - \param Id - ZCL Data Type Id (unsigned 8-bit integer) - \param value - pointer to variable of typeId, NULL means maximum possible - size. - \param descriptor - ZCL Data Type Descriptor being filled. - \return None. - \sa ZCL_DataTypeDescriptor_t - \sa ZCL_GetAttributeLength() -*****************************************************************************/ -void ZCL_GetDataTypeDescriptor(uint8_t typeId, const uint8_t *value, ZCL_DataTypeDescriptor_t *descriptor); - -#endif //_ZCL_H - diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclBACnetProtocolTunnelCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclBACnetProtocolTunnelCluster.h deleted file mode 100644 index da679d3e..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclBACnetProtocolTunnelCluster.h +++ /dev/null @@ -1,105 +0,0 @@ -/***************************************************************************//** - \file zclBACnetProtocolTunnelCluster.h - - \brief - The header file describes the ZCL BACnet Protocol Tunnel Cluster and its interface - - The file describes the types and interface of the ZCL BACnet Protocol Tunnel Cluster - - \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: - 20.10.09 D. Kasyanov - Created. -*******************************************************************************/ - -#ifndef _ZCLBACNETPROTOCOLTUNNELCLUSTER_H -#define _ZCLBACNETPROTOCOLTUNNELCLUSTER_H - -/*! -Attributes and commands for determining basic information about a device, -setting user device information such as location, enabling a device and resetting it -to factory defaults. -*/ -/******************************************************************************* - Includes section -*******************************************************************************/ -#include -#include -/******************************************************************************* - Define(s) section -*******************************************************************************/ -/***************************************************************************//** - \brief ZCL BACnet Protocol Tunnel Cluster server side attributes amount -*******************************************************************************/ -#define ZCL_BACNET_PRTOCOL_TUNNEL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 0 -/***************************************************************************//** - \brief ZCL BACnet Protocol Tunnel client side attributes amount -*******************************************************************************/ -#define ZCL_BACNET_PRTOCOL_TUNNEL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 -//There are no any attributes at the client side -/***************************************************************************//** - \brief ZCL BACnet Protocol Tunnel Cluster derver side commands amount -*******************************************************************************/ -#define ZCL_BACNET_PROTOCOL_TUNNEL_COMMANDS_AMOUNT 1 -/** - * \brief Generic tunnel client side commands identifiers. -*/ -#define ZCL_BACNET_PROTOCOL_TRANSFER_NPDU_COMMAND_ID 0x00 - -#define ZCL_DEFINE_BACNET_PROTOCOL_CLUSTER_TUNNEL_CLUSTER_COMMANDS(transferNPDUCommandInd) \ - DEFINE_COMMAND(transferNPDUCommand, ZCL_BACNET_PROTOCOL_TRANSFER_NPDU_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), transferNPDUCommandInd) - -#define BACNET_PROTOCOL_TUNNEL_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_BACNET_PRTOCOL_TUNNEL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_BACNET_PROTOCOL_TUNNEL_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define BACNET_PROTOCOL_TUNNEL_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = BACNET_PROTOCOL_TUNNEL_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_BACNET_PRTOCOL_TUNNEL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_BACNET_PROTOCOL_TUNNEL_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_BACNET_PROTOCOL_TUNNEL_CLUSTER(cltype, clattributes, clcommands) BACNET_PROTOCOL_TUNNEL_CLUSTER##cltype(clattributes, clcommands) -/******************************************************************************* - Types section -*******************************************************************************/ -BEGIN_PACK -/** - * \brief Transfer NPDU Command Payload format. -*/ -typedef struct PACK -{ - uint8_t npdu[1]; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/***************************************************************************//** - \brief ZCL Basic Cluster server side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 2 -//The ZCLVersion and PowerSource attributes - -/***************************************************************************//** - \brief ZCL Basic Cluster derver side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_SERVER_COMMANDS_AMOUNT 0 -//There are no any commands at the server side - -/***************************************************************************//** - \brief ZCL Basic Cluster client side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 -//There are no any attributes at the client side - -/***************************************************************************//** - \brief ZCL Basic Cluster derver side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_CLIENT_COMMANDS_AMOUNT 0 -//There are no any commands at the client side - - -//Atribute Ids of Basic Device Information Attribute Set at the server side -//!ZCL Basic Cluster server side ZCLVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_ZCL_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -//!ZCL Basic Cluster server side ApplicationVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_APPLICATION_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -//!ZCL Basic Cluster server side StackVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_STACK_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) -//!ZCL Basic Cluster server side HWVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_HW_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0003) -//!ZCL Basic Cluster server side ManufacturerName attribute id -#define ZCL_BASIC_CLUSTER_SERVER_MANUFACTURER_NAME_ATTRIBUTE_ID CCPU_TO_LE16(0x0004) -//!ZCL Basic Cluster server side ModelIdentifier attribute id -#define ZCL_BASIC_CLUSTER_SERVER_MODEL_IDENTIFIER_ATTRIBUTE_ID CCPU_TO_LE16(0x0005) -//!ZCL Basic Cluster server side DateCode attribute id -#define ZCL_BASIC_CLUSTER_SERVER_DATE_CODE_ATTRIBUTE_ID CCPU_TO_LE16(0x0006) -//!ZCL Basic Cluster server side PowerSource attribute id -#define ZCL_BASIC_CLUSTER_SERVER_POWER_SOURCE_ATTRIBUTE_ID CCPU_TO_LE16(0x0007) - -//Atribute Ids of Basic Device Settings Attribute Set at the server side -//!ZCL Basic Cluster server side LocationDescription attribute id -#define ZCL_BASIC_CLUSTER_SERVER_LOCATION_DESCRIPTION_ATTRIBUTE_ID CCPU_TO_LE16(0x0010) -//!ZCL Basic Cluster server side PhysicalEnvironment attribute id -#define ZCL_BASIC_CLUSTER_SERVER_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID CCPU_TO_LE16(0x0011) -//!ZCL Basic Cluster server side DeviceEnabled attribute id -#define ZCL_BASIC_CLUSTER_SERVER_DEVICE_ENABLED_ATTRIBUTE_ID CCPU_TO_LE16(0x0012) -//!ZCL Basic Cluster server side AlarmMask attribute id -#define ZCL_BASIC_CLUSTER_SERVER_ALARM_MASK_ATTRIBUTE_ID CCPU_TO_LE16(0x0013) - -//!ZCL Basic Cluster server side ResetToFactoryDeafaults commabd id -#define ZCL_BASIC_CLUSTER_SERVER_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 - -/******************************************************************************* - Types section -*******************************************************************************/ - -/***************************************************************************//** - \brief ZCL Basic Cluster server side attributes defining macros - - This macros should be used for ZCL Basic Cluster server side attributes defining. - - \return None - - \internal - //The typical usage is: - //Basic Cluster server side related attributes - ZCL_BasicClusterServerAttributes_t basicClusterAttributes = ZCL_DEFINE_BASIC_CLUSTER_SERVER_ATTRIBUTES(); -*******************************************************************************/ -#define ZCL_DEFINE_BASIC_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(zclVersion, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_ZCL_VERSION_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(powerSource, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_POWER_SOURCE_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID) - - -/***************************************************************************//** - \brief ZCL Basic Cluster server side defining macros - - This macros should be used with #ZCL_DEFINE_BASIC_CLUSTER_SERVER_ATTRIBUTES for - ZCL Basic Cluster server side defining in application. - - \param attributes - pointer to cluster server attributes (ZCL_BasicClusterServerAttributes_t) - - \return None - - \internal - //The typical code is: - //Basic Cluster server side related attributes - ZCL_BasicClusterServerAttributes_t basicClusterServerAttributes = DEFINE_ZCL_BASIC_CLUSTER_SERVER_ATTRIBUTES(); - ZCL_Cluster_t myClusters[] = - { - ZCL_DEFINE_BASIC_CLUSTER_SERVER(&basicClusterServerAttributes), - //... Any other cluster defining ... - } -*******************************************************************************/ -#define ZCL_DEFINE_BASIC_CLUSTER_SERVER(clattributes) \ - { \ - .id = BASIC_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_BASIC_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_BASIC_CLUSTER_SERVER_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -/***************************************************************************//** - \brief ZCL Basic Cluster client side defining macros - - This macros should be used for ZCL Basic Cluster client side defining in application. - - \return None - - \internal - //The typical code is: - ZCL_Cluster_t myClusters[] = - { - ZCL_DEFINE_BASIC_CLUSTER_CLIENT(), - //... Any other cluster defining ... - } -*******************************************************************************/ -#define ZCL_DEFINE_BASIC_CLUSTER_CLIENT() \ - { \ - .id = BASIC_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_BASIC_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = NULL, \ - .commandsAmount = ZCL_BASIC_CLUSTER_CLIENT_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - - -BEGIN_PACK -/***************************************************************************//** - \brief - ZCL Basic Cluster server side attributes -*******************************************************************************/ -typedef struct PACK -{ - //!Basic Device Information attribute set (Id == 0x00) - - /*!ZCL Version attribute (Read only, M) - The ZCLVersion attribute is 8-bits in length and specifies the version number of - the ZigBee Cluster Library that all clusters on this endpoint conform to. For the - initial version of the ZCL, this attribute shall be set to 0x01. - */ - struct PACK - { - ZCL_AttributeId_t id; //! -#include - -/****************************************************************************** - Defines section -******************************************************************************/ -/** - * \brief Demand Response Server Cluster attributes amount. -*/ -#define DRLC_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Demand Response Client Cluster attributes amount. -*/ -#define DRLC_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 4 - -/** - * \brief Demand Response Cluster commands amount. -*/ -#define DRLC_CLUSTER_COMMANDS_AMOUNT 5 - -/** - * \brief Demand Response Server Cluster commands identifiers. -*/ -#define LOAD_CONTROL_EVENT_COMMAND_ID 0x00 -#define CANCEL_LOAD_CONTROL_EVENT_COMMAND_ID 0x01 -#define CANCEL_ALL_LOAD_CONTROL_EVENTS_COMMAND_ID 0x02 - -/** - * \brief Demand Response Client Cluster commands identifiers. -*/ -#define REPORT_EVENT_STATUS_COMMAND_ID 0x00 -#define GET_SCHEDULED_EVENTS_COMMAND_ID 0x01 - -/** - * \brief Report event status identifiers - */ -#define REPORT_EVENT_STATUS_COMMAND_RECEIVED 0x01 -#define REPORT_EVENT_STATUS_EVENT_STARTED 0x02 -#define REPORT_EVENT_STATUS_EVENT_COMPLETED 0x03 -#define REPORT_EVENT_STATUS_EVENT_CANCELED 0x06 -#define REPORT_EVENT_STATUS_INVALID_CANCEL_COMMAND_DEFAULT 0xF8 - -#define DEFINE_DRLC_CLUSTER_COMMANDS(clLoadControlEventInd, \ - clCancelLoadControlEventInd, \ - clCancelAllLoadControlEventsInd, \ - clReportEventStatusInd, \ - clGetScheduledEventsInd) \ - DEFINE_COMMAND(loadControlEventCommand, 0x00, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clLoadControlEventInd), \ - DEFINE_COMMAND(cancelLoadControlEventCommand, 0x01, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clCancelLoadControlEventInd), \ - DEFINE_COMMAND(cancelAllLoadControlEventsCommand, 0x02, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clCancelAllLoadControlEventsInd), \ - DEFINE_COMMAND(reportEventStatusCommand, 0x00, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clReportEventStatusInd), \ - DEFINE_COMMAND(getScheduledEventsCommand, 0x01, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clGetScheduledEventsInd) - - - - -#define DEFINE_DRLC_CLUSTER_CLIENT_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(utilityEnrolmentGroupAttr, ZCL_READWRITE_ATTRIBUTE, CCPU_TO_LE16(0x0000), ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(startRandomizeMinutesAttr, ZCL_READWRITE_ATTRIBUTE, CCPU_TO_LE16(0x0001), ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(endRandomizeMinutesAttr, ZCL_READWRITE_ATTRIBUTE, CCPU_TO_LE16(0x0002), ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(deviceClassValueAttr, ZCL_READONLY_ATTRIBUTE, CCPU_TO_LE16(0x0003), ZCL_16BIT_BITMAP_DATA_TYPE_ID) - -#define DRLC_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = DEMAND_RESPONSE_AND_LOAD_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = DRLC_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = NULL, \ - .commandsAmount = DRLC_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - -#define DRLC_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = DEMAND_RESPONSE_AND_LOAD_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = DRLC_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = DRLC_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - -#define DEFINE_DRLC_CLUSTER(cltype, clattributes, clcommands) \ - DRLC_CLUSTER_##cltype(clattributes, clcommands) - -//! Signature type. AMI r15 profile spec., D.2.3.3.1.1. -#define ZCL_ECDSA_SIGNATURE_TYPE 0x01 -//! Signature length. AMI r15 profile spec., D.2.3.3.1.1. -#define REPORT_EVENT_STATUS_SIGNATURE_LENGTH 42 - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK - -/** - * \brief Device Class type. -*/ -typedef struct PACK -{ - LITTLE_ENDIAN_OCTET(8,( - uint16_t hvacCompressor : 1, - uint16_t stripHeaters : 1, - uint16_t waterHeater : 1, - uint16_t poolPump : 1, - uint16_t smartAppliances : 1, - uint16_t irrigationPump : 1, - uint16_t managedCommercAndIndustrLoads : 1, - uint16_t simpleMiscLoads : 1 - )) - LITTLE_ENDIAN_OCTET(5,( - uint16_t exteriorLighting : 1, - uint16_t interiorLighting : 1, - uint16_t electricalVehicle : 1, - uint16_t generationSystem : 1, - uint16_t reserved : 4 - )) -} ZCL_DeviceClass_t; - -/** - * \brief Device Class type. -*/ -typedef struct PACK -{ - LITTLE_ENDIAN_OCTET(3,( - uint8_t randStartTime : 1, - uint8_t randEndTime : 1, - uint8_t reserved : 6 - )) -} ZCL_EventControl_t; - -/** - * \brief The Load Control Event Command Payload. -*/ -typedef struct PACK -{ - uint32_t issuerEventId; - ZCL_DeviceClass_t deviceClass; - uint8_t utilityEnrolmentGroup; - uint32_t startTime; - uint16_t durationInMinutes; - uint8_t criticalityLevel; - uint8_t coolingTemperatureOffset; - uint8_t heatingTemperatureOffset; - uint16_t coolingTemperatureSetPoint; - uint16_t heatingTemperatureSetPoint; - int8_t avrgLoadAdjstPercentage; - uint8_t dutyCycle; - ZCL_EventControl_t eventControl; -} ZCL_LoadControlEvent_t; - -/** - * \brief The Cancel Control type. -*/ -typedef struct PACK -{ - LITTLE_ENDIAN_OCTET(2,( - uint8_t randomizeEnd : 1, - uint8_t reserved : 7 - )) -} ZCL_CancelControl_t; - -/** - * \brief The Cancel Load Control Event Command Payload. -*/ -typedef struct PACK -{ - uint32_t issuerEventId; - ZCL_DeviceClass_t deviceClass; - uint8_t utilityEnrolmentGroup; - ZCL_CancelControl_t cancelControl; - ZCL_UTCTime_t effectiveTime; -} ZCL_CancelLoadControlEvent_t; - -typedef struct PACK -{ - ZCL_CancelControl_t cancelControl; // ZCL_U8BIT_BITMAP_TYPE_ID -} ZCL_CancelAllLoadControlEvents_t; - -typedef struct PACK -{ - //! Utility Enrolment Group Attribute descriptor - struct PACK - { - ZCL_AttributeId_t id; //! -#include -/******************************************************************************* - Define(s) section -*******************************************************************************/ -/***************************************************************************//** - \brief ZCL Generic Tunnel Cluster server side attributes amount -*******************************************************************************/ -#define ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 3 -/***************************************************************************//** - \brief ZCL Generic Tunnel Cluster client side attributes amount -*******************************************************************************/ -#define ZCL_GENERIC_TUNNEL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 -//There are no any attributes at the client side -/***************************************************************************//** - \brief ZCL Generic Tunnel Cluster derver side commands amount -*******************************************************************************/ -#define ZCL_GENERIC_TUNNEL_COMMANDS_AMOUNT 3 -/** - * \brief Generic tunnel server side attributes identifiers. -*/ -//!ZCL Generic tunnel server side MaximumIncomingTransferSize attribute id -#define ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_MITS_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -//!ZCL Generic tunnel server side MaximumOutgoingTransferSize attribute id -#define ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_MOTS_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) -//!ZCL Generic tunnel server side ProtocolAddress attribute id -#define ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_PROTOCOL_ADDR_ATTRIBUTE_ID CCPU_TO_LE16(0x0003) -/** - * \brief Generic tunnel server side commands identifiers. -*/ -#define ZCL_GENERIC_TUNNEL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID 0x00 -#define ZCL_GENERIC_TUNNEL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID 0x01 -/** - * \brief Generic tunnel client side commands identifiers. -*/ -#define ZCL_GENERIC_TUNNEL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID 0x00 - -#define ZCL_DEFINE_GENERIC_TUNNEL_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(maximumIncomingTransferSize, ZCL_READONLY_ATTRIBUTE, ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_MITS_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(maximumOutgoingTransferSize, ZCL_READONLY_ATTRIBUTE, ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_MOTS_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(protocolAddress, ZCL_READWRITE_ATTRIBUTE, ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_PROTOCOL_ADDR_ATTRIBUTE_ID, ZCL_OCTET_STRING_DATA_TYPE_ID) - -#define ZCL_DEFINE_GENERIC_TUNNEL_CLUSTER_COMMANDS(matchProtocolAddressCommandInd, matchProtocolAddressResponseCommandInd, advertiseProtocolAddressInd) \ - DEFINE_COMMAND(matchProtocolAddressCommand, ZCL_GENERIC_TUNNEL_MATCH_PROTOCOL_ADDRESS_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), matchProtocolAddressCommandInd), \ - DEFINE_COMMAND(matchProtocolAddressResponseCommand, ZCL_GENERIC_TUNNEL_MATCH_PROTOCOL_ADDRESS_RESPONSE_COMMAND_ID, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), matchProtocolAddressResponseCommandInd), \ - DEFINE_COMMAND(advertiseProtocolAddress, ZCL_GENERIC_TUNNEL_ADVERTISE_PROTOCOL_ADDRESS_COMMAND_ID, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), advertiseProtocolAddressInd) - -#define GENERIC_TUNNEL_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = GENERIC_TUNNEL_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_GENERIC_TUNNEL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_GENERIC_TUNNEL_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define GENERIC_TUNNEL_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = GENERIC_TUNNEL_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_GENERIC_TUNNEL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_GENERIC_TUNNEL_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_GENERIC_TUNNEL_CLUSTER(cltype, clattributes, clcommands) GENERIC_TUNNEL_CLUSTER##cltype(clattributes, clcommands) -/******************************************************************************* - Types section -*******************************************************************************/ -BEGIN_PACK -/** - * \brief Match Protocol Address Command Payload format. -*/ -typedef struct PACK -{ - uint8_t address[1]; //!
-#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief Groups Cluster group name support bit -*/ - -#define GROUP_NAME_SUPPORT_FLAG 0x80 - -/** - * \brief Groups Cluster server attributes amount -*/ - -#define ZCL_GROUPS_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/** - * \brief Groups Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_GROUPS_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Groups Cluster commands amount -*/ - -#define ZCL_GROUPS_CLUSTER_COMMANDS_AMOUNT 10 - -/** - * \brief Groups Cluster server's attributes identifiers -*/ - -#define ZCL_GROUPS_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) - -/** - * \brief Groups Cluster client's command identifiers -*/ - -#define ZCL_GROUPS_CLUSTER_ADD_GROUP_COMMAND_ID 0x00 -#define ZCL_GROUPS_CLUSTER_VIEW_GROUP_COMMAND_ID 0x01 -#define ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 -#define ZCL_GROUPS_CLUSTER_REMOVE_GROUP_COMMAND_ID 0x03 -#define ZCL_GROUPS_CLUSTER_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 -#define ZCL_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 - -/** - * \brief Groups Cluster servers's command identifiers -*/ - -#define ZCL_GROUPS_CLUSTER_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 -#define ZCL_GROUPS_CLUSTER_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 -#define ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 -#define ZCL_GROUPS_CLUSTER_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 - -/** - * \brief Groups Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_GROUPS_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(nameSupport, ZCL_READONLY_ATTRIBUTE, ZCL_GROUPS_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID, ZCL_8BIT_BITMAP_DATA_TYPE_ID) - -/** - * \brief On/Off Cluster define commands macros -*/ - -#define ZCL_DEFINE_GROUPS_CLUSTER_COMMANDS(addGroupCommandInd, viewGroupCommandInd, getGroupMembershipCommandInd, \ - removeGroupCommandInd, removeAllGroupsCommandInd, addGroupIfIdentifyingCommandInd, \ - addGroupResponseCommandInd, viewGroupResponseCommandInd, getGroupMembershipResponseCommandInd, \ - removeGroupResponseCommandInd) \ - DEFINE_COMMAND(addGroupCommand, ZCL_GROUPS_CLUSTER_ADD_GROUP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addGroupCommandInd), \ - DEFINE_COMMAND(viewGroupCommand, ZCL_GROUPS_CLUSTER_VIEW_GROUP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewGroupCommandInd), \ - DEFINE_COMMAND(getGroupMembershipCommand, ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getGroupMembershipCommandInd), \ - DEFINE_COMMAND(removeGroupCommand, ZCL_GROUPS_CLUSTER_REMOVE_GROUP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeGroupCommandInd), \ - DEFINE_COMMAND(removeAllGroupsCommand, ZCL_GROUPS_CLUSTER_REMOVE_ALL_GROUPS_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeAllGroupsCommandInd), \ - DEFINE_COMMAND(addGroupIfIdentifyingCommand, ZCL_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addGroupIfIdentifyingCommandInd), \ - DEFINE_COMMAND(addGroupResponseCommand, ZCL_GROUPS_CLUSTER_ADD_GROUP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addGroupResponseCommandInd), \ - DEFINE_COMMAND(viewGroupResponseCommand, ZCL_GROUPS_CLUSTER_VIEW_GROUP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewGroupResponseCommandInd), \ - DEFINE_COMMAND(getGroupMembershipResponseCommand, ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getGroupMembershipResponseCommandInd), \ - DEFINE_COMMAND(removeGroupResponseCommand, ZCL_GROUPS_CLUSTER_REMOVE_GROUP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeGroupResponseCommandInd) - -/** - * \brief On/Off Cluster definition macros -*/ - -#define GROUPS_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = GROUPS_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_GROUPS_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_GROUPS_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define GROUPS_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = GROUPS_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_GROUPS_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_GROUPS_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_GROUPS_CLUSTER(cltype, clattributes, clcommands) \ - GROUPS_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section - ******************************************************************************/ -BEGIN_PACK - -/** - * \brief Add Group Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t groupName[2]; -} ZCL_AddGroup_t; - -/** - * \brief View Group Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_ViewGroup_t; - -/** - * \brief Get Group Membership Command Payload format. - */ - -typedef struct PACK -{ - uint8_t groupCount; - uint16_t groupList[1]; -} ZCL_GetGroupMembership_t; - -/** - * \brief Remove Group Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_RemoveGroup_t; - -/** - * \brief Add Group if identifying Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t groupName[2]; -} ZCL_AddGroupIfIdentifying_t; - -/** - * \brief Add Group Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; -} ZCL_AddGroupResponse_t; - -/** - * \brief View Group Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t groupName[2]; -} ZCL_ViewGroupResponse_t; - -/** - * \brief Get Group Membership Response Payload format. - */ - -typedef struct PACK -{ - uint8_t capacity; - uint8_t groupCount; - uint16_t groupList[1]; -} ZCL_GetGroupMembershipResponse_t; - -/** - * \brief Remove Group Command Response Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; -} ZCL_RemoveGroupResponse_t; - -/** - * \brief Groups Cluster server's attributes - */ - -typedef struct PACK -{ - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } nameSupport; -} ZCL_GroupsClusterServerAttributes_t; - -END_PACK - -/** - * \brief Groups Cluster commands. - */ - -typedef struct -{ - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addGroupCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddGroup_t * payload); - } addGroupCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewGroupCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewGroup_t * payload); - } viewGroupCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getGroupMembershipCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetGroupMembership_t * payload); - } getGroupMembershipCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeGroupCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveGroup_t * payload); - } removeGroupCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeAllGroupsCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, void * payload); - } removeAllGroupsCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addGroupIfIdentifyingCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddGroupIfIdentifying_t * payload); - } addGroupIfIdentifyingCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addGroupResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddGroupResponse_t * payload); - } addGroupResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewGroupResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewGroupResponse_t * payload); - } viewGroupResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getGroupMembershipResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetGroupMembershipResponse_t * payload); - } getGroupMembershipResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeGroupResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveGroupResponse_t * payload); - } removeGroupResponseCommand; -} ZCL_GroupsClusterCommands_t; - -#endif /* _ZCLGROUPSCLUSTER_H */ - diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclHumidityMeasurementCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclHumidityMeasurementCluster.h deleted file mode 100644 index afcc9f94..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclHumidityMeasurementCluster.h +++ /dev/null @@ -1,122 +0,0 @@ -/***************************************************************************** - \file zclHumidityMeasurement.h - - \brief - The file describes the types and interface of the - Relative Humidity Measurement cluster. - - \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: - 18.01.2010 I.Vagulin - Created -******************************************************************************/ - - -#ifndef _ZCLHUMIDITYMEASUREMENT_H_ -#define _ZCLHUMIDITYMEASUREMENT_H_ - -/******************************************************************************* - Includes section -*******************************************************************************/ -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ -/** -* \brief server attributes amount -*/ -#define ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 3 - -/** -* \brief server commands amount -*/ -#define ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_COMMANDS_AMOUNT 0 - -/** -* \brief client attributes amount -*/ -#define ZCL_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** -* \brief client commands amount -*/ -#define ZCL_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT_COMMANDS_AMOUNT 0 - -/** -* \brief Supported attribue id -*/ -#define ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_MEASURED_VALUE_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_MIN_MEASURED_VALUE_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -#define ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_MAX_MEASURED_VALUE_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) - -/** - * \brief server define attributes macros -*/ -#define ZCL_DEFINE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_ATTRIBUTES(reportMin, reportMax) \ - DEFINE_REPORTABLE_ATTRIBUTE(measuredValue, ZCL_READONLY_ATTRIBUTE, ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_MEASURED_VALUE_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID, reportMin, reportMax), \ - DEFINE_ATTRIBUTE(minMeasuredValue, ZCL_READONLY_ATTRIBUTE, ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_MIN_MEASURED_VALUE_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(maxMeasuredValue, ZCL_READONLY_ATTRIBUTE, ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_MAX_MEASURED_VALUE_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID) - -#define ZCL_DEFINE_HUMIDITY_MEASUREMENT_CLUSTER_SERVER(clattributes) \ - { \ - .id = HUMIDITY_MEASUREMENT_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) (clattributes), \ - .commandsAmount = ZCL_HUMIDITY_MEASUREMENT_CLUSTER_SERVER_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -#define ZCL_DEFINE_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT() \ - { \ - .id = HUMIDITY_MEASUREMENT_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = NULL, \ - .commandsAmount = ZCL_HUMIDITY_MEASUREMENT_CLUSTER_CLIENT_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK -typedef struct PACK { - struct PACK { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - ZCL_ReportTime_t reportCounter; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief Identify Server Cluster attributes amount. -*/ - -#define ZCL_IDENTIFY_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/** - * \brief Identify Client Cluster attributes amount. -*/ - -#define ZCL_IDENTIFY_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Identify Client Cluster commands amount. -*/ - -#define ZCL_IDENTIFY_CLUSTER_COMMANDS_AMOUNT 3 - -/** - * \brief Identify Server Cluster attributes identifiers. -*/ - -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) - -/** - * \brief Identify Server Cluster commands identifiers. -*/ - -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 - -/** - * \brief Identify Client Cluster commands identifiers. -*/ - -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_COMMAND_ID 0x00 -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_QUERY_COMMAND_ID 0x01 - -/* - *\brief ZCL Idetify Cluster server side attributes defining macros - */ - -#define ZCL_DEFINE_IDENTIFY_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(identifyTime, ZCL_READWRITE_ATTRIBUTE, ZCL_IDENTIFY_CLUSTER_IDENTIFY_TIME_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID) - -/* - * \brief ZCL Identify Cluster commands defining macros - */ - -#define IDENTIFY_CLUSTER_COMMANDS(identifyCommandInd, identifyQueryCommandInd, identifyQueryResponseCommandInd) \ - DEFINE_COMMAND(identifyCommand, 0x00, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), identifyCommandInd), \ - DEFINE_COMMAND(identifyQueryCommand, 0x01, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), identifyQueryCommandInd), \ - DEFINE_COMMAND(identifyQueryResponseCommand, 0x00, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), identifyQueryResponseCommandInd) - -#define IDENTIFY_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = IDENTIFY_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_IDENTIFY_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_IDENTIFY_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define IDENTIFY_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = IDENTIFY_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_IDENTIFY_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_IDENTIFY_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define DEFINE_IDENTIFY_CLUSTER(cltype, clattributes, clcommands) IDENTIFY_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK - -/** - * \brief Identify Command Payload format. -*/ -typedef struct PACK -{ - uint16_t identifyTime; -} ZCL_Identify_t; - -/** - * \brief Identify Query Response Payload format. -*/ - -typedef struct PACK -{ - uint16_t timeout; -} ZCL_IdentifyQueryResponse_t; - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } identifyTime; -} ZCL_IdentifyClusterAttributes_t; - -END_PACK - -typedef struct -{ - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*identifyCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_Identify_t *payload); - } identifyCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*identifyQueryCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, uint8_t *payload); - } identifyQueryCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*identifyQueryResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_IdentifyQueryResponse_t *payload); - } identifyQueryResponseCommand; -} ZCL_IdentifyClusterCommands_t; - - -#endif - diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclInt.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclInt.h deleted file mode 100644 index d984f38f..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclInt.h +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************//** - \file zcl.h - - \brief - The header file describes internal ZCL interface - - The header file describes internal ZCL interface and types - - \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: - 09.12.08 I. Fedina - Created. -******************************************************************************/ - -#ifndef _ZCLINT_H -#define _ZCLINT_H - -#include -#include - -BEGIN_PACK -typedef struct PACK -{ - uint8_t status; - ZCL_AttributeId_t id; - uint8_t type; - uint8_t value[1]; -} ZclReadAttributeResp_t; - -typedef struct PACK -{ - uint8_t status; - ZCL_AttributeId_t id; -} ZclWriteAttributeResp_t; -END_PACK - -uint8_t zclGetSequenceNumber(Endpoint_t endpointId); -ZclAttribute_t *zclGetNextAttribute(Endpoint_t endpoint, ClusterId_t clusterId, uint8_t direction, ZclAttribute_t *currentAttribute); - -#endif // _ZCL_INT_H diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclKeyEstablishmentCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclKeyEstablishmentCluster.h deleted file mode 100644 index 4c9f843f..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclKeyEstablishmentCluster.h +++ /dev/null @@ -1,529 +0,0 @@ -/***************************************************************************//** - \file zclKeyEstablishmentCluster.h - - \brief - The header file describes the ZCL Key Establishment Cluster and its interface - - The file describes the types and interface of the ZCL Key Establishment Cluster - - \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: - 10.03.09 A. Potashov - Created. -*******************************************************************************/ - -#ifndef _ZCLKEYESTABLISHMENTCLUSTER_H -#define _ZCLKEYESTABLISHMENTCLUSTER_H - -/*! -Attributes and commands necessary for managing secure communication between -ZigBee devices. -*/ - -#ifdef _ZCL_SECURITY_ -#ifdef _CERTICOM_SECURITY_ - -/******************************************************************************* - Includes section -*******************************************************************************/ - -#include -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -#define ZCL_KE_INVALID_ENDPOINT APS_ZDO_ENDPOINT -#define ZCL_KE_INVALID_SHORT_ADDRESS 0xffff -#define ZCL_KE_INVALID_EXT_ADDRESS 0xffffffffffffffffLL - - -//KE Cluster timeout settings -#ifndef ZCL_KE_EPHEMERAL_DATA_GENERATE_TIME -#define ZCL_KE_EPHEMERAL_DATA_GENERATE_TIME 0x10 -#endif - -#ifndef ZCL_KE_CONFIRM_KEY_GENERATE_TIME -#define ZCL_KE_CONFIRM_KEY_GENERATE_TIME 0x10 -#endif - -//!This timeout (seconds) will be sent in Terminate KE Command -#ifndef ZCL_KE_TERMINATE_KE_TIMEOUT -#define ZCL_KE_TERMINATE_KE_TIMEOUT 50 -#endif - -//!This timeout (seconds) will be applied for commands receive wating with unspecified timeouts -#ifndef ZCL_KE_TIMEOUT -#define ZCL_KE_TIMEOUT 50 -#endif - - - - - - -/***************************************************************************//** - \brief ZCL Key Establishment Cluster server side attributes amount -*******************************************************************************/ -#define ZCL_KE_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/***************************************************************************//** - \brief ZCL Key Establishment Cluster client side attributes amount -*******************************************************************************/ -#define ZCL_KE_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 1 - -/***************************************************************************//** - \brief ZCL Key Establishment Cluster commands amount -*******************************************************************************/ -#define ZCL_KE_CLUSTER_COMMANDS_AMOUNT 8 - -//!Key Establishment Suite Attribute -#define ZCL_KE_CLUSTER_SERVER_KEY_ESTABLISHMENT_SUITE_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) - -//!Key Establishment Suite Attribute -#define ZCL_KE_CLUSTER_CLIENT_KEY_ESTABLISHMENT_SUITE_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) - - -#define ZCL_KE_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID 0x00 -#define ZCL_KE_EPHEMERAL_DATA_REQUEST_COMMAND_ID 0x01 -#define ZCL_KE_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID 0x02 -#define ZCL_KE_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID 0x03 - -#define ZCL_KE_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID 0x00 -#define ZCL_KE_EPHEMERAL_DATA_RESPONSE_COMMAND_ID 0x01 -#define ZCL_KE_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID 0x02 - - -#define ZCL_KE_CBKE_ECMQV_KEY_ESTABLISHMENT_SUITE_ID 0x0001 - - -/******************************************************************************* - Types section -*******************************************************************************/ - -/***************************************************************************//** - \brief ZCL Key Establishment Cluster server side attributes defining macros - - This macros should be used for ZCL Key Establishment Cluster server side attributes defining. - - \return None - - \internal - //The typical usage is: - //Key Establishment Cluster server side related attributes - ZCL_EKClusterServerAttributes_t ekClusterServerAttributes = ZCL_DEFINE_EK_CLUSTER_SERVER_ATTRIBUTES(); -*******************************************************************************/ -#define ZCL_DEFINE_EK_CLUSTER_SERVER_ATTRIBUTES() \ - {DEFINE_ATTRIBUTE(keyEstablishmentSuite, ZCL_READONLY_ATTRIBUTE, ZCL_KE_CLUSTER_SERVER_KEY_ESTABLISHMENT_SUITE_ATTRIBUTE_ID, ZCL_16BIT_ENUM_DATA_TYPE_ID)} - - -/***************************************************************************//** - \brief ZCL Key Establishment Cluster client side attributes defining macros - - This macros should be used for ZCL Key Establishment Cluster client side attributes defining. - - \return None - - \internal - //The typical usage is: - //Key Establishment Cluster client side related attributes - ZCL_EKClusterClientAttributes_t ekClusterClientAttributes = ZCL_DEFINE_EK_CLUSTER_CLIENT_ATTRIBUTES(); -*******************************************************************************/ -#define ZCL_DEFINE_EK_CLUSTER_CLIENT_ATTRIBUTES() \ - {DEFINE_ATTRIBUTE(keyEstablishmentSuite, ZCL_READONLY_ATTRIBUTE, ZCL_KE_CLUSTER_CLIENT_KEY_ESTABLISHMENT_SUITE_ATTRIBUTE_ID, ZCL_16BIT_ENUM_DATA_TYPE_ID)} - -#define DEFINE_INITIATE_KEY_ESTABLISHMENT_REQUEST(initiateKeyEstablishmentReqInd) \ - DEFINE_COMMAND(initiateKeyEstablishmentReq, ZCL_KE_INITIATE_KEY_ESTABLISHMENT_REQUEST_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - initiateKeyEstablishmentReqInd) - -#define DEFINE_INITIATE_KEY_ESTABLISHMENT_RESPONSE(initiateKeyEstablishmentRespInd) \ - DEFINE_COMMAND(initiateKeyEstablishmentResp, ZCL_KE_INITIATE_KEY_ESTABLISHMENT_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - initiateKeyEstablishmentRespInd) - -#define DEFINE_EPHEMERAL_DATA_REQUEST(ephemeralDataReqInd) \ - DEFINE_COMMAND(ephemeralDataReq, ZCL_KE_EPHEMERAL_DATA_REQUEST_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - ephemeralDataReqInd) - -#define DEFINE_EPHEMERAL_DATA_RESPONSE(ephemeralDataRespInd) \ - DEFINE_COMMAND(ephemeralDataResp, ZCL_KE_EPHEMERAL_DATA_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - ephemeralDataRespInd) - -#define DEFINE_CONFIRM_KEY_DATA_REQUEST(confirmKeyDataReqInd) \ - DEFINE_COMMAND(confirmKeyDataReq, ZCL_KE_CONFIRM_KEY_DATA_REQUEST_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - confirmKeyDataReqInd) - -#define DEFINE_CONFIRM_KEY_DATA_RESPONSE(confirmKeyDataRespInd) \ - DEFINE_COMMAND(confirmKeyDataResp, ZCL_KE_CONFIRM_KEY_DATA_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - confirmKeyDataRespInd) - -#define DEFINE_TERMINATE_KEY_ESTABLISHMENT_SERVER_PART(terminateKeyEstablishmentReqIndServerPart) \ - DEFINE_COMMAND(terminateKeyEstablishmentReqServerPart, ZCL_KE_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - terminateKeyEstablishmentReqIndServerPart) - -#define DEFINE_TERMINATE_KEY_ESTABLISHMENT_CLIENT_PART(terminateKeyEstablishmentReqIndClientPart) \ - DEFINE_COMMAND(terminateKeyEstablishmentReqClientPart, ZCL_KE_TERMINATE_KEY_ESTABLISHMENT_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - terminateKeyEstablishmentReqIndClientPart) - -#define KE_CLUSTER_COMMANDS(initiateKeyEstablishmentReqInd, initiateKeyEstablishmentRespInd, \ - ephemeralDataReqInd, ephemeralDataRespInd, confirmKeyDataReqInd, confirmKeyDataRespInd, \ - terminateKeyEstablishmentReqIndServerPart, terminateKeyEstablishmentReqIndClientPart) \ - DEFINE_INITIATE_KEY_ESTABLISHMENT_REQUEST(initiateKeyEstablishmentReqInd), \ - DEFINE_INITIATE_KEY_ESTABLISHMENT_RESPONSE(initiateKeyEstablishmentRespInd), \ - DEFINE_EPHEMERAL_DATA_REQUEST(ephemeralDataReqInd), \ - DEFINE_EPHEMERAL_DATA_RESPONSE(ephemeralDataRespInd), \ - DEFINE_CONFIRM_KEY_DATA_REQUEST(confirmKeyDataReqInd), \ - DEFINE_CONFIRM_KEY_DATA_RESPONSE(confirmKeyDataRespInd), \ - DEFINE_TERMINATE_KEY_ESTABLISHMENT_SERVER_PART(terminateKeyEstablishmentReqIndServerPart), \ - DEFINE_TERMINATE_KEY_ESTABLISHMENT_CLIENT_PART(terminateKeyEstablishmentReqIndClientPart) \ - -/***************************************************************************//** - \brief ZCL Key Establishment Cluster server side defining macros - - This macros should be used with #ZCL_DEFINE_EK_CLUSTER_SERVER_ATTRIBUTES and - #ZCL_DEFINE_EK_CLUSTER_SERVER_COMMANDS for ZCL Key Establishment Cluster server - side defining. - - \param attributes - pointer to cluster server attributes (ZCL_KEClusterServerAttributes_t) - \param commands - pointer to cluster server commands (ZCL_KEServerCommands_t) - - \return None - - \internal - //The typical code is: - //Key Establishment Cluster server side related attributes and commands - ZCL_KEClusterServerAttributes_t keClusterServerAttributes = ZCL_DEFINE_EK_CLUSTER_SERVER_ATTRIBUTES(); - ZCL_KEClusterServerCommands_t keClusterServerCommands = ZCL_DEFINE_EK_CLUSTER_SERVER_COMMANDS(handler1, handler2, handler3, handlerv); - ZCL_Cluster_t ekClusterServer = ZCL_DEFINE_KE_CLUSTER_SERVER(&keClusterServerAttributes, &keClusterServerCommands); -*******************************************************************************/ -#define ZCL_DEFINE_KE_CLUSTER_SERVER(clattributes, clcommands) \ - { \ - .id = ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, \ - .options = \ - { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY, \ - .reserved = 0, \ - }, \ - .attributesAmount = ZCL_KE_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_KE_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - - - -/***************************************************************************//** - \brief ZCL Key Establishment Cluster client side defining macros - - This macros should be used with #ZCL_DEFINE_EK_CLUSTER_CLIENT_ATTRIBUTES and - #ZCL_DEFINE_EK_CLUSTER_CLIENT_COMMANDS for ZCL Key Establishment Cluster client - side defining. - - \param attributes - pointer to cluster client attributes (ZCL_KEClusterClientAttributes_t) - \param commands - pointer to cluster client commands (ZCL_KEClientCommands_t) - - \return None - - \internal - //The typical code is: - //Key Establishment Cluster client side related attributes and commands - ZCL_KEClusterClientAttributes_t keClusterClientAttributes = ZCL_DEFINE_EK_CLUSTER_CLIENT_ATTRIBUTES(); - ZCL_KEClusterClientCommands_t keClusterClientCommands = ZCL_DEFINE_EK_CLUSTER_CLIENT_COMMANDS(handler1, handler2, handler3, handlerv); - ZCL_Cluster_t ekClusterClient = ZCL_DEFINE_KE_CLUSTER_Client(&keClusterClientAttributes, &keClusterClientCommands); -*******************************************************************************/ -#define ZCL_DEFINE_KE_CLUSTER_CLIENT(clattributes, clcommands) \ - { \ - .id = ZCL_KEY_ESTABLISHMENT_CLUSTER_ID, \ - .options = \ - { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY, \ - .reserved = 0, \ - }, \ - .attributesAmount = ZCL_KE_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_KE_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - -BEGIN_PACK -/***************************************************************************//** - \brief - ZCL Key Establishment Cluster server side attributes -*******************************************************************************/ -typedef struct PACK -{ - //!Information attribute set (Id == 0x00) - - /*!KeyEstablishmentSuite attribute (Read only, M) - The KeyEstablishmentSuite attribute is 16-bits in length and specifies all the - cryptographic schemes for key establishment on the device. A device shall set the - corresponding bit to 1 for every cryptographic scheme that is supports. All other - cryptographic schemes and reserved bits shall be set to 0. - - */ - struct PACK - { - ZCL_AttributeId_t id; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief Amount of Level Control cluster server's attributes -*/ -#define ZCL_LEVEL_CONTROL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/** - * \brief Client doesn't have attributes. -*/ -#define ZCL_LEVEL_CONTROL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Level Control Cluster commands amount -*/ - -#define ZCL_LEVEL_CONTROL_CLUSTER_COMMANDS_AMOUNT 8 - -/** - * \brief Level Control Cluster server's attributes identifiers -*/ - -#define ZCL_LEVEL_CONTROL_CLUSTER_CURRENT_LEVEL_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_LEVEL_CONTROL_CLUSTER_REMAINING_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -#define ZCL_LEVEL_CONTROL_CLUSTER_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0010) -#define ZCL_LEVEL_CONTROL_CLUSTER_ON_LEVEL_ATTRIBUTE_ID CCPU_TO_LE16(0x0011) - -/** - * \brief On/Off Cluster client's command identifiers -*/ - -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_COMMAND_ID 0x00 -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_COMMAND_ID 0x01 -#define ZCL_LEVEL_CONTROL_CLUSTER_STEP_COMMAND_ID 0x02 -#define ZCL_LEVEL_CONTROL_CLUSTER_STOP_COMMAND_ID 0x03 -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_W_ONOFF_COMMAND_ID 0x04 -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_W_ONOFF_COMMAND_ID 0x05 -#define ZCL_LEVEL_CONTROL_CLUSTER_STEP_W_ONOFF_COMMAND_ID 0x06 -#define ZCL_LEVEL_CONTROL_CLUSTER_STOP_W_ONOFF_COMMAND_ID 0x07 - -/** - * \brief Level Control Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_LEVEL_CONTROL_CLUSTER_SERVER_MANDATORY_ATTRIBUTES(min, max) \ - DEFINE_REPORTABLE_ATTRIBUTE(currentLevel, ZCL_READONLY_ATTRIBUTE, ZCL_LEVEL_CONTROL_CLUSTER_CURRENT_LEVEL_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID, min, max) - -#define ZCL_DEFINE_LEVEL_CONTROL_CLUSTER_SERVER_OPTIONAL_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(remainingTime, ZCL_READONLY_ATTRIBUTE, ZCL_LEVEL_CONTROL_CLUSTER_REMAINING_TIME_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(onOffTransitionTime, ZCL_READWRITE_ATTRIBUTE, ZCL_LEVEL_CONTROL_CLUSTER_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(onLevel, ZCL_READWRITE_ATTRIBUTE, ZCL_LEVEL_CONTROL_CLUSTER_ON_LEVEL_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID) - - -/** - * \brief Level Control Cluster define commands macros -*/ - -#define ZCL_DEFINE_LEVEL_CONTROL_CLUSTER_COMMANDS(moveToLevelCommandInd,\ - moveCommandInd,\ - stepCommandInd,\ - stopCommandInd,\ - moveToLevelWOnOffCommandInd,\ - moveWOnOffCommandInd,\ - stepWOnOffCommandInd,\ - stopWOnOffCommandInd)\ - DEFINE_COMMAND(moveToLevelCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveToLevelCommandInd), \ - DEFINE_COMMAND(moveCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveCommandInd), \ - DEFINE_COMMAND(stepCommand, ZCL_LEVEL_CONTROL_CLUSTER_STEP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stepCommandInd), \ - DEFINE_COMMAND(stopCommand, ZCL_LEVEL_CONTROL_CLUSTER_STOP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stopCommandInd), \ - DEFINE_COMMAND(moveToLevelWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveToLevelWOnOffCommandInd), \ - DEFINE_COMMAND(moveWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveWOnOffCommandInd), \ - DEFINE_COMMAND(stepWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_STEP_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stepWOnOffCommandInd), \ - DEFINE_COMMAND(stopWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_STOP_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stopWOnOffCommandInd) - -/** - * \brief Level Control Cluster definition macros -*/ - -#define LEVEL_CONTROL_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = LEVEL_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_LEVEL_CONTROL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_LEVEL_CONTROL_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define LEVEL_CONTROL_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = LEVEL_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_LEVEL_CONTROL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_LEVEL_CONTROL_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_LEVEL_CONTROL_CLUSTER(cltype, clattributes, clcommands) \ - LEVEL_CONTROL_CLUSTER_##cltype(clattributes, clcommands) - -#define DEFINE_LEVEL_CONTROL_CLUSTER_EXTENSION_FIELD_SET(value) \ - .clusterId = LEVEL_CONTROL_CLUSTER_ID, \ - .length = sizeof(uint8_t), \ - .currentLevel = value - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK - -/** - * \brief Move To Level Command Payload format. - */ -typedef struct PACK -{ - uint8_t level; - uint16_t transitionTime; -} ZCL_MoveToLevel_t; - -/** - * \brief Move Command Payload format. - */ -typedef struct PACK -{ - uint8_t moveMode; - uint8_t rate; -} ZCL_Move_t; - -/** - * \brief Step Command Payload format. - */ -typedef struct PACK -{ - uint8_t stepMode; - uint8_t stepSize; - uint16_t transitionTime; -} ZCL_Step_t; - -/** - * \brief Level Control Cluster server's attributes -*/ -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - ZCL_ReportTime_t reportCounter; //! -#include - -typedef enum -{ - ZCL_IDLE_STATE, - ZCL_REQUEST_STATE, - ZCL_WAITING_FOR_CONFIRM_STATE, - ZCL_WAITING_FOR_RESPONSE_STATE, - ZCL_CONFIRM_STATE, -} ZclState_t; - - -/* - * Describes ZCL memory structure - * */ -typedef struct -{ - ZclState_t state; - QueueDescriptor_t requestQueue; - uint8_t *request; - HAL_AppTimer_t waitTimer; - HAL_AppTimer_t reportTimer; -} ZclMem_t; - -/* - * ZCL memory global object - * */ -extern ZclMem_t zclMem; - -/* - * Function returns point to ZCL memory object - * */ -static inline ZclMem_t * zclMemReq() -{ - return ((ZclMem_t *)&zclMem); -} - -#endif // _ZCLMEM_H diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMemoryManager.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMemoryManager.h deleted file mode 100644 index 46017dc4..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMemoryManager.h +++ /dev/null @@ -1,90 +0,0 @@ -/************************************************************************//** - \file zclMemoryManager.h - - \brief - The header file describes the ZCL Memory Manager interface - - \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: - 27.11.08 A. Potashov - Created. -******************************************************************************/ - -#ifndef _ZCLMEMORYMANAGER_H -#define _ZCLMEMORYMANAGER_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include -#include -#include -#include -#include - -/****************************************************************************** - Types section -******************************************************************************/ -typedef union -{ - APS_DataReq_t apsDataReq; - APS_DataInd_t apsDataInd; -} ZclMmPrimitive_t; - -typedef struct -{ - TOP_GUARD - uint8_t header[APS_ASDU_OFFSET]; // Auxiliary header (required by stack) - uint8_t asdu[ZCL_MAX_ASDU_SIZE]; // ASDU content -#if (APS_AFFIX_LENGTH - APS_ASDU_OFFSET) - uint8_t footer[APS_AFFIX_LENGTH - APS_ASDU_OFFSET]; //Auxiliary footer (required by stack) -#endif - BOTTOM_GUARD -} ZclMmFrame_t; - -typedef enum -{ - ZCL_MM_BUFFER_FREE = 0x00, - ZCL_MM_BUFFER_BUSY = 0x01 -} ZclMmBufferBusy_t; - -typedef struct -{ - ZclMmPrimitive_t primitive; - ZclMmFrame_t frame; -} ZclMmBuffer_t; - -typedef struct -{ - uint8_t busy; //ZclMmBufferBusy_t should be used - ZclMmBuffer_t buf; -} ZclMmBufferDescriptor_t; - -/****************************************************************************** - Prototypes section -******************************************************************************/ -/*************************************************************************//** -\brief Looks for and return free zcl memory buffer - -\return pointer to memory buffer or NULL if there is no free buffer. -*****************************************************************************/ -ZclMmBuffer_t *zclMmGetMem(void); - -/*************************************************************************//** -\brief Makes free zcl busy buffer - -\param[in] mem - pointer to used zcl buffer -*****************************************************************************/ -void zclMmFreeMem(ZclMmBuffer_t *mem); - -#endif //#ifndef _ZCLMEMORYMANAGER_H - - -//eof zclMemoryManager.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMessagingCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMessagingCluster.h deleted file mode 100644 index 4e0e11cb..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclMessagingCluster.h +++ /dev/null @@ -1,185 +0,0 @@ -/************************************************************************//** - \file zclMessageingCluster.h - - \brief - The header file describes the ZCL Message Cluster - - The header file describes the ZCL Message Cluster - - \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: - 27.11.08 A. Potashov - Created. -******************************************************************************/ - -#ifndef _MESSAGINGCLUSTER_H -#define _MESSAGINGCLUSTER_H - -#include -#include -/******************************************************************************* - Defines section - ******************************************************************************/ -/***************************************************************************//** -\brief Macros defines duration value of Display Message command, - * which means 'until change'. - * According to ZB AMI Spec r15, D.5.2.3.1.1.1, page 203. -*******************************************************************************/ -#define DISPLAY_MESSAGE_DURATION_UNTIL_CHANGED 0xFFFF - -/*************************************************************************//** - \brief Message Cluster attributes amount -*****************************************************************************/ -#define MESSAGE_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 -#define MESSAGE_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 0 - -/*************************************************************************//** - \brief Message Cluster commands amount -*****************************************************************************/ -#define MESSAGE_CLUSTER_COMMANDS_AMOUNT 4 - -#define DISPLAY_MESSAGE_COMMAND_ID 0x00 -#define CANCEL_MESSAGE_COMMAND_ID 0x01 -#define GET_LAST_MESSAGE_COMMAND_ID 0x00 -#define CONFIRM_MESSAGE_COMMAND_ID 0x01 - -#define DEFINE_MESSAGING_CLUSTER_COMMANDS(clDisplayMessageInd, clCancelMessageInd, clGetLastMessageInd, clMessageConfirmationInd) \ - DEFINE_COMMAND(displayMessageCommand, 0x00, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clDisplayMessageInd), \ - DEFINE_COMMAND(cancelMessageCommand, 0x01, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clCancelMessageInd), \ - DEFINE_COMMAND(getLastMessageCommand, 0x00, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clGetLastMessageInd), \ - DEFINE_COMMAND(messageConfirmationCommand, 0x01, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), clMessageConfirmationInd) - -#define MESSAGING_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = MESSAGE_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = MESSAGE_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = MESSAGE_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define MESSAGING_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = MESSAGE_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = MESSAGE_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = MESSAGE_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } -#define DEFINE_MESSAGING_CLUSTER(cltype, clattributes, clcommands) MESSAGING_CLUSTER_##cltype(clattributes, clcommands) - -BEGIN_PACK - -typedef struct PACK -{ - LITTLE_ENDIAN_OCTET(4,( - uint8_t transmissionType : 2, - uint8_t importanceLevel : 2, - uint8_t reserved : 3, - uint8_t messageConfirmation : 1 - )) -} MessageControl_t; - -/***************************************************************************//** - \brief - ZCL Messaging Cluster Display Message Command payload format -*******************************************************************************/ -typedef struct PACK -{ - uint32_t messageId; //! -#include -#include - -/****************************************************************************** - Defines section -******************************************************************************/ -//#define _OTAU_DEBUG_ - -/***************************************************************************//** - \brief ZCL OTAU Cluster atrebutes -*******************************************************************************/ -#define ZCL_OTAU_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 0 -#define ZCL_OTAU_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 2 - -/***************************************************************************//** - \brief ZCL OTAU Cluster commands amount -*******************************************************************************/ -#define ZCL_OTAU_CLUSTER_COMMANDS_AMOUNT 7 - -//!ZCL OTAU Cluster client side attributes id -#define ZCL_OTAU_CLUSTER_CLIENT_UPGRADE_SERVER_ID 0x0000 -#define ZCL_OTAU_CLUSTER_CLIENT_IMAGE_UPGRADE_STATUS_ID 0x0006 - -#define DEFINE_OTAU_CLIENT_ATTRIBUTES \ - DEFINE_ATTRIBUTE(upgradeServerIEEEAddr, ZCL_READONLY_ATTRIBUTE, ZCL_OTAU_CLUSTER_CLIENT_UPGRADE_SERVER_ID, ZCL_IEEE_ADDRESS_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(imageUpgradeStatus, ZCL_READONLY_ATTRIBUTE, ZCL_OTAU_CLUSTER_CLIENT_IMAGE_UPGRADE_STATUS_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID) - -#define OTAU_HEADER_STRING_SIZE 32 - -// OTAU commands -// list of commands id -#define QUERY_NEXT_IMAGE_REQUEST_ID 0x01 -#define QUERY_NEXT_IMAGE_RESPONSE_ID 0x02 -#define IMAGE_BLOCK_REQUEST_ID 0x03 -#define IMAGE_PAGE_REQUEST_ID 0x04 -#define IMAGE_BLOCK_RESPONSE_ID 0x05 -#define UPGRADE_END_REQUEST_ID 0x06 -#define UPGRADE_END_RESPONSE_ID 0x07 - -#define DEFINE_QUERY_NEXT_IMAGE_REQUEST(queryNextImageReqInd) \ - DEFINE_COMMAND(queryNextImageReq, QUERY_NEXT_IMAGE_REQUEST_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - queryNextImageReqInd) - -#define DEFINE_QUERY_NEXT_IMAGE_RESPONSE(queryNextImageRespInd) \ - DEFINE_COMMAND(queryNextImageResp, QUERY_NEXT_IMAGE_RESPONSE_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - queryNextImageRespInd) - -#define DEFINE_IMAGE_BLOCK_REQUEST(imageBlockReqInd) \ - DEFINE_COMMAND(imageBlockReq, IMAGE_BLOCK_REQUEST_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - imageBlockReqInd) - -#define DEFINE_IMAGE_PAGE_REQUEST(imagePageReqInd) \ - DEFINE_COMMAND(imagePageReq, IMAGE_PAGE_REQUEST_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - imagePageReqInd) - -#define DEFINE_IMAGE_BLOCK_RESPONSE(imageBlockRespInd) \ - DEFINE_COMMAND(imageBlockResp, IMAGE_BLOCK_RESPONSE_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - imageBlockRespInd) - -#define DEFINE_UPGRADE_END_REQUEST(upgradeEndReqInd) \ - DEFINE_COMMAND(upgradeEndReq, UPGRADE_END_REQUEST_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - upgradeEndReqInd) - -#define DEFINE_UPGRADE_END_RESPONSE(upgradeEndRespInd) \ - DEFINE_COMMAND(upgradeEndResp, UPGRADE_END_RESPONSE_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - upgradeEndRespInd) - -#define OTAU_COMMANDS(queryNextImageReqInd, queryNextImageRespInd, imageBlockReqInd, imagePageReqInd, \ - imageBlockRespInd, upgradeEndReqInd, upgradeEndRespInd) \ - DEFINE_QUERY_NEXT_IMAGE_REQUEST(queryNextImageReqInd), \ - DEFINE_QUERY_NEXT_IMAGE_RESPONSE(queryNextImageRespInd), \ - DEFINE_IMAGE_BLOCK_REQUEST(imageBlockReqInd), \ - DEFINE_IMAGE_PAGE_REQUEST(imagePageReqInd), \ - DEFINE_IMAGE_BLOCK_RESPONSE(imageBlockRespInd), \ - DEFINE_UPGRADE_END_REQUEST(upgradeEndReqInd), \ - DEFINE_UPGRADE_END_RESPONSE(upgradeEndRespInd) - -/***************************************************************************//** - \brief ZCL OTAU Cluster server side defining macros - - \param attributes - pointer to cluster server attributes (ZCL_OtauClusterClientAttributes_t) - or NULL if there are no attributes - \param clcommands - pointer to cluster server commands - or NULL if there are no commands - - \return None -*******************************************************************************/ -#define OTAU_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = OTAU_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_DEFAULT_CLUSTER_SECURITY, \ - .reserved = 0}, \ - .attributesAmount = ZCL_OTAU_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_OTAU_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - -/***************************************************************************//** - \brief ZCL OTAU Cluster client side defining macros - - \param attributes - pointer to cluster client attributes (ZCL_OtauClusterClientAttributes_t) - or NULL if there are no attributes - \param clcommands - pointer to cluster client commands - or NULL if there are no commands - - \return None -*******************************************************************************/ -#define OTAU_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = OTAU_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_DEFAULT_CLUSTER_SECURITY, \ - .reserved = 0}, \ - .attributesAmount = ZCL_OTAU_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_OTAU_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - -#define DEFINE_OTAU_CLUSTER(cltype, clattributes, clcommands) OTAU_CLUSTER_##cltype(clattributes, clcommands) -/******************************************************************************* - Types section -*******************************************************************************/ -typedef uint8_t OtauHeaderString_t[OTAU_HEADER_STRING_SIZE]; - -typedef enum PACK -{ - OTAU_SERVER_HAS_BEEN_FOUND, - OTAU_SERVER_HAS_NOT_BEEN_FOUND, - OTAU_SERVER_HAS_BEEN_LOST, - OTAU_OFD_DRIVER_ERROR, - OTAU_SERVER_RECEIVED_MALFORMED_COMMAND, - OTAU_SERVER_NO_IMAGE_AVAILABLE, - OTAU_SERVER_RECEIVED_UNSUPPORTED_COMMAND, - OTAU_SERVER_RECEIVED_UNKNOWN_STATUS, - OTAU_SERVER_IS_NOT_AUTHORIZED_TO_UPDATE, - OTAU_DOWNLOAD_STARTED, - OTAU_DOWNLOAD_ABORTED, - OTAU_DOWNLOAD_FINISHED, - OTAU_DEVICE_SHALL_CHANGE_IMAGE, - OTAU_ISD_IMAGE_CACHE_IS_FOUND, - OTAU_ISD_HARDWARE_FAULT, - OTAU_ISD_COMMUNICATION_LOST, - OTAU_MAX_MESSAGE_NUMBER -} ZCL_OtauAction_t; - -typedef void (* ZCL_OtauStatInd_t)(ZCL_OtauAction_t action); - -typedef enum -{ - OTAU_ZB_STACK_VERSION_2006 = 0x0000, - OTAU_ZB_STACK_VERSION_2007 = 0x0001, - OTAU_ZB_STACK_VERSION_PRO = 0x0002, - OTAU_ZB_STACK_VERSION_IP = 0x0003, - OTAU_FAKE_VERSION = 0xFFFF -} ZCL_OtauZigbeeStackVersion_t; - -typedef enum -{ - OTAU_SPECIFIC_IMAGE_TYPE = 0x0000, - OTAU_SECURITY_CREDENTIAL_TYPE = 0xFFC0, - OTAU_CONFIGURATION_TYPE = 0xFFC1, - OTAU_LOG_TYPE = 0xFFC2, - OTAU_WILD_CARD_TYPE = 0xFFFF -} ZCL_OtauImageType_t; - -typedef enum -{ - OTAU_UPGRADE_IMAGE = 0x0000, - OTAU_ECDSA_SIGNATURE = 0x0001, - OTAU_ECDSA_SIGNING_CERTIFICATE = 0x0002, - OTAU_FAKE_NUMBER = 0xFFFF -} ZCL_OtauTagID_t; - -BEGIN_PACK -typedef enum PACK -{ - OTAU_NORMAL, - OTAU_DOWNLOAD_IN_PROGRESS, - OTAU_DOWNLOAD_COMPLETE, - OTAU_WAITING_TO_UPGRADE, - OTAU_COUNT_DOWN, - OTAU_WAIT_FOR_MORE -} ZCL_ImageUpdateStatus_t; - -typedef union PACK -{ - uint16_t memAlloc; - struct PACK - { - uint16_t securityCredentialVersionPresent : 1; - uint16_t deviceSpecificFile : 1; - uint16_t hardwareVersionPresent : 1; - uint16_t reserved : 13; - }; -} ZCL_OtauHeaderFieldControl_t; - -typedef struct PACK -{ - ZCL_OtauTagID_t tagID; - uint32_t lengthField; -} ZCL_OtauSubElementHeader_t; - -typedef union PACK -{ - uint32_t memAlloc; - struct PACK - { - uint8_t appRelease; - uint8_t appBuild; - uint8_t stackRelease; - uint8_t stackBuild; - }; -} ZCL_OtauFirmwareVersion_t; - -/***************************************************************************//** - \brief - ZCL OTAU upgrade image header -*******************************************************************************/ -typedef struct PACK -{ - uint32_t magicNumber; - uint16_t headerVersion; - uint16_t headerLength; - ZCL_OtauHeaderFieldControl_t fieldControl; - uint16_t manufacturerId; - uint16_t imageType; - ZCL_OtauFirmwareVersion_t firmwareVersion; - ZCL_OtauZigbeeStackVersion_t zigbeeStackVersion; - OtauHeaderString_t headerString; - uint32_t totalImageSize; -} ZCL_OtauUpgradeImageHeader_t; - -/***************************************************************************//** - \brief - ZCL OTAU Cluster attributes. - Currently, all attributes are client side attributes (only stored on the client). -*******************************************************************************/ -typedef struct PACK -{ - /*! - \brief The attribute is used to store the IEEE address of the upgrade server - resulted from the discovery of the upgrade server's identity. If the value is set - to a non-zero value and corresponds to an IEEE address of a device that is no longer - accessible, a device may choose to discover a new Upgrade Server depending on its own - security policies. The attribute is mandatory because it serves as a placeholder in a case - where the client is programmed, during manufacturing time, its upgrade server ID. - In addition, the attribute is used to identify the current upgrade server the client is using - in a case where there are multiple upgrade servers in the network. The attribute is also helpful - in a case when a client has temporarily lost connection to the network (for example, via a reset - or a rejoin), it shall try to rediscover the upgrade server via network address discovery using - the IEEE address stored in the attribute. By default the value is 0xffffffffffffffff, which is - an invalid IEEE address. The attribute is a client-side attribute and stored on the client. - */ - struct PACK - { - ZCL_AttributeId_t id; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ -/** - * \brief Occupancy Sensing cluster attributes values -*/ - -#define OCCUPANCY_ATTRIBUTE_VALUE_OCCUPIED 1 -#define OCCUPANCY_ATTRIBUTE_VALUE_UNOCCUPIED 0 - -#define OCCUPANYC_SENSOR_TYPE_ATTRIBUTE_VALUE_PIR 0x00 -#define OCCUPANYC_SENSOR_TYPE_ATTRIBUTE_VALUE_ULTRASONIC 0x01 -#define OCCUPANYC_SENSOR_TYPE__ATTRIBITE_VALUE_PIR_AND_ULTRASONIC 0x02 - -/** - * \brief Occupancy Sensing Cluster server attributes amount -*/ - -#define ZCL_OCCUPANCY_SENSING_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 2 - -/** - * \brief Occupancy Sensing Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_OCCUPANCY_SENSING_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT 0 - -/** - * \brief On/Off Switch Configuration Cluster commands amount -*/ - -#define ZCL_OCCUPANCY_SENSING_CLUSTER_COMMANDS_AMOUNT 0 - -/** - * \brief Occupancy Sensing Cluster server's attributes identifiers -*/ - -#define ZCL_OCCUPANCY_SENSING_CLUSTER_OCCUPANCY_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_OCCUPANCY_SENSING_CLUSTER_OCCUPANCY_SENSOR_TYPE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) - -/** - * \brief Occupancy Sensing Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_OCCUPANCY_SENSING_CLUSTER_SERVER_ATTRIBUTES(min, max) \ - DEFINE_REPORTABLE_ATTRIBUTE(occupancy, ZCL_READONLY_ATTRIBUTE, ZCL_OCCUPANCY_SENSING_CLUSTER_OCCUPANCY_SERVER_ATTRIBUTE_ID, ZCL_8BIT_BITMAP_DATA_TYPE_ID, min, max), \ - DEFINE_ATTRIBUTE(occupancySensorType, ZCL_READONLY_ATTRIBUTE, ZCL_OCCUPANCY_SENSING_CLUSTER_OCCUPANCY_SENSOR_TYPE_SERVER_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID) - -/** - * \brief Occupancy Sensing Cluster definition macros -*/ - -#define OCCUPANCY_SENSING_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = OCCUPANCY_SENSING_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_OCCUPANCY_SENSING_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_OCCUPANCY_SENSING_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define OCCUPANCY_SENSING_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = OCCUPANCY_SENSING_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_OCCUPANCY_SENSING_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_OCCUPANCY_SENSING_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_OCCUPANCY_SENSING_CLUSTER(cltype, clattributes, clcommands) \ - OCCUPANCY_SENSING_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK - -/** - * \brief On/Off Switch Configuration Cluster server's attributes -*/ - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - ZCL_ReportTime_t reportCounter; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief On/Off Cluster server attributes amount -*/ - -#define ZCL_ONOFF_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/** - * \brief On/Off Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_ONOFF_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT 0 - -/** - * \brief On/Off Cluster commands amount -*/ - -#define ZCL_ONOFF_CLUSTER_COMMANDS_AMOUNT 3 - -/** - * \brief On/Off Cluster server's attributes identifiers -*/ - -#define ZCL_ONOFF_CLUSTER_ONOFF_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) - -/** - * \brief On/Off Cluster client's command identifiers -*/ - -#define ZCL_ONOFF_CLUSTER_OFF_COMMAND_ID 0x00 -#define ZCL_ONOFF_CLUSTER_ON_COMMAND_ID 0x01 -#define ZCL_ONOFF_CLUSTER_TOGGLE_COMMAND_ID 0x02 - -/** - * \brief On/Off Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_ONOFF_CLUSTER_SERVER_ATTRIBUTES(min, max) \ - DEFINE_REPORTABLE_ATTRIBUTE(onOff, ZCL_READONLY_ATTRIBUTE, ZCL_ONOFF_CLUSTER_ONOFF_SERVER_ATTRIBUTE_ID, ZCL_BOOLEAN_DATA_TYPE_ID, min, max) - -/** - * \brief On/Off Cluster define commands macros -*/ - -#define ZCL_DEFINE_ONOFF_CLUSTER_COMMANDS(onCommandInd, offCommandInd, toggleCommandInd) \ - DEFINE_COMMAND(onCommand, ZCL_ONOFF_CLUSTER_ON_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - onCommandInd), \ - DEFINE_COMMAND(offCommand, ZCL_ONOFF_CLUSTER_OFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - offCommandInd), \ - DEFINE_COMMAND(toggleCommand, ZCL_ONOFF_CLUSTER_TOGGLE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - toggleCommandInd) - -/** - * \brief On/Off Cluster definition macros -*/ - -#define ONOFF_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = ONOFF_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_ONOFF_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_ONOFF_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define ONOFF_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = ONOFF_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_ONOFF_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_ONOFF_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_ONOFF_CLUSTER(cltype, clattributes, clcommands) \ - ONOFF_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK - -/** - * \brief On/Off Cluster server's attributes -*/ - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - bool value; - ZCL_ReportTime_t reportCounter; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ -/** - * \brief On/Off Switch Configuration attributes values -*/ - -#define SWITCH_TYPE_ATTRIBUTE_VALUE_TOGGLE 0x00 -#define SWITCH_TYPE_ATTRIBUTE_VALUE_MOMENTARY 0x01 - -#define SWITCH_ACTIONS_ATTRIBUTE_VALUE_ON_OFF 0x00 -#define SWITCH_ACTIONS_ATTRIBUTE_VALUE_OFF_ON 0x01 -#define SWITCH_ACTIONS_ATTRIBITE_VALUE_TOGGLE_TOGGLE 0x02 - -/** - * \brief On/Off Switch Configuration Cluster server attributes amount -*/ - -#define ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 2 - -/** - * \brief On/Off Switch Configuration Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT 0 - -/** - * \brief On/Off Switch Configuration Cluster commands amount -*/ - -#define ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_COMMANDS_AMOUNT 0 - -/** - * \brief On/Off Switch Configuration Cluster server's attributes identifiers -*/ - -#define ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_SWITCH_TYPE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_SWITCH_ACTIONS_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0010) - -/** - * \brief On/Off Switch Configuration Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_ONOFF_SWITCH_CONFIGURATION_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(switchType, ZCL_READONLY_ATTRIBUTE, ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_SWITCH_TYPE_SERVER_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(switchActions, ZCL_READWRITE_ATTRIBUTE, ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_SWITCH_ACTIONS_SERVER_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID) - - -/** - * \brief On/Off Switch Configuration Cluster definition macros -*/ - -#define ONOFF_SWITCH_CONFIGURATION_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = ONOFF_SWITCH_CONFIGURATION_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define ONOFF_SWITCH_CONFIGURATION_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = ONOFF_SWITCH_CONFIGURATION_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_ONOFF_SWITCH_CONFIGURATION_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_ONOFF_SWITCH_CONFIGURATION_CLUSTER(cltype, clattributes, clcommands) \ - ONOFF_SWITCH_CONFIGURATION_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK - -/** - * \brief On/Off Switch Configuration Cluster server's attributes - */ - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } switchType; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } switchActions; -} ZCL_OnOffSwitchConfigurationClusterServerAttributes_t; - -END_PACK - -#endif /* _ZCLONOFFSWITCHCONFIGURATIONCLUSTER_H */ - diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauDiscovery.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauDiscovery.h deleted file mode 100644 index 54365690..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauDiscovery.h +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************//** - \file zclOTAUCluster.h - - \brief Declaration of the private OTAU interface - - \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: - 13.05.10 A. Khromykh - Created. -*******************************************************************************/ -#ifndef _ZCLOTAUDISCOVERY_H -#define _ZCLOTAUDISCOVERY_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include -#include - -/****************************************************************************** - Types section -******************************************************************************/ -typedef union -{ - ZDO_ZdpReq_t zdpOtauReq; -#ifdef _ZCL_SECURITY_ - APS_RequestKeyReq_t apsKeyReq; -#endif // _ZCL_SECURITY_ - ZCL_Request_t zclCommandReq; -} OtauReqMemory_t; - -typedef union -{ - ZCL_OtauQueryNextImageReq_t uQueryNextImageReq; - ZCL_OtauImageBlockReq_t uImageBlockReq; - ZCL_OtauImagePageReq_t uImagePageReq; - ZCL_OtauUpgradeEndReq_t uUpgradeEndReq; -} OtauZclReqMemory_t; - -typedef struct -{ - uint32_t imageInternalLength; - uint8_t internalAddressStatus; - uint32_t currentFileOffset; - uint8_t currentDataSize; - uint32_t imageRemainder; - uint32_t imagePageOffset; -} OtauImageAuxVar_t; - -/***************************************************************************//** - \brief - ZCL OTAU Cluster parametres. -*******************************************************************************/ -typedef struct -{ - uint32_t imageSize; - uint8_t imageBlockData[OFD_BLOCK_SIZE]; - uint8_t *imagePageData; - -} ZclOtauClientImageBuffer_t; - -/****************************************************************************** - Prototypes section -******************************************************************************/ -/***************************************************************************//** -\brief Restart poll timer - -\param[in] period - timer fired time -\param[in] cb - pointer to fired method -******************************************************************************/ -void otauStartGenericTimer(uint32_t period, void (* cb)(void)); - -/***************************************************************************//** -\brief Restart discovery service with context gap -******************************************************************************/ -void otauStartPollDiscovery(void); - -/***************************************************************************//** -\brief Entry point to client process -******************************************************************************/ -void otauClientEntryPoint(void); - -/***************************************************************************//** -\brief Start discovery of upgrade server -******************************************************************************/ -void ZCL_OtauUpgradeServerDiscovery(void); - -/***************************************************************************//** -\brief Server IEEE addresses request -******************************************************************************/ -void otauServerExtAddrReq(void); - -#endif /* _ZCLOTAUDISCOVERY_H */ diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauManager.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauManager.h deleted file mode 100644 index ad091491..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclOtauManager.h +++ /dev/null @@ -1,180 +0,0 @@ -/**************************************************************************//** - \file zclOTAUManager.h - - \brief Declaration of the OTAU manager interface - - \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: - 16.05.11 A. Khromykh - Created. -*******************************************************************************/ -#ifndef _ZCLOTAUMANAGER_H -#define _ZCLOTAUMANAGER_H - -/****************************************************************************** - Types section -******************************************************************************/ -typedef struct -{ /* memory for storage of server discovery result */ - struct - { - void *next; - } service; - - bool busy; - Endpoint_t serverEndpoint; - ShortAddr_t serverShortAddress; - ExtAddr_t serverExtAddress; -} ZclOtauDiscoveryResult_t; - -typedef struct -{ - struct - { - void *next; - } service; - - bool busy; - uint8_t id; - ZCL_Addressing_t addressing; - ZCL_Request_t zclCommandReq; - - union - { - ZCL_OtauQueryNextImageReq_t queryNextImageReq; - ZCL_OtauQueryNextImageResp_t queryNextImageResp; - ZCL_OtauImageBlockReq_t imageBlockReq; - ZCL_OtauImageBlockResp_t imageBlockResp; - ZCL_OtauUpgradeEndReq_t upgradeEndReq; - ZCL_OtauUpgradeEndResp_t upgradeEndResp; - }; - ZCL_OtauImagePageReq_t imagePageReq; -} ZclOtauServerTransac_t; - -typedef struct -{ - uint32_t fileOffset; - uint16_t size; -} ZclOtauMissedBlockResponses_t; - -typedef struct -{ - uint8_t quantity; - uint8_t internalBlockOffset; - bool blockGetting; - ZclOtauMissedBlockResponses_t *missedBlockResponses; -} otauMissedBlocksBuffer_t; - -typedef struct -{ - OtauReqMemory_t reqMem; - OtauZclReqMemory_t zclReqMem; - HAL_AppTimer_t genericTimer; - HAL_AppTimer_t pageRequestTimer; - ZclOtauClientImageBuffer_t otauParam; - OtauImageAuxVar_t imageAuxParam; - OFD_MemoryAccessParam_t memParam; - ZCL_OtauFirmwareVersion_t newFirmwareVersion; - - uint8_t discoveredServerAmount; - ZclOtauDiscoveryResult_t *discoveredServerMem; - - uint16_t pageReminderSize; - otauMissedBlocksBuffer_t missedBlocks; -} ZCL_OtauClientMem_t; - -typedef struct -{ - ZCL_Request_t unsolicitedReq; - ZCL_OtauUpgradeEndResp_t unsolicitedUpgradeEndResp; - - uint8_t transacAmount; - ZclOtauServerTransac_t *serverTransac; - uint16_t pageReminderSize; -} ZCL_OtauServerMem_t; - -typedef struct -{ - ZCL_OtauStatInd_t otauInd; - ZCL_OtauInitParams_t initParam; - union - { - ZCL_OtauClientMem_t clientMem; - ZCL_OtauServerMem_t serverMem; - }; -} ZclOtauMem_t; - -/****************************************************************************** - External variables section -******************************************************************************/ -/** zclOtauMem is defined in zclOtauManager.c */ -extern ZclOtauMem_t zclOtauMem; -extern bool isOtauBusy; - -/****************************************************************************** - Inline functions section -******************************************************************************/ -INLINE ZclOtauMem_t* zclGetOtauMem(void) -{ - return &zclOtauMem; -} - -INLINE ZCL_OtauClientMem_t* zclGetOtauClientMem(void) -{ - return &zclOtauMem.clientMem; -} - -INLINE ZCL_OtauServerMem_t* zclGetOtauServerMem(void) -{ - return &zclOtauMem.serverMem; -} - -/****************************************************************************** - Prototypes section -******************************************************************************/ -/***************************************************************************//** -\brief Lift otau cluster action for customer. - -\param[in] action - the OTAU action for a customer. -******************************************************************************/ -void zclRaiseCustomMessage (const ZCL_OtauAction_t action); - -/***************************************************************************//** -\brief Start otau client service -******************************************************************************/ -void zclStartOtauClient(void); - -/***************************************************************************//** -\brief Start otau server service -******************************************************************************/ -void zclStartOtauServer(void); - -/***************************************************************************//** -\brief Stop otau server service -******************************************************************************/ -void zclStopOtauServer(void); - -/***************************************************************************//** -\brief Clear otau server memory. -******************************************************************************/ -void zclClearOtauServerMemory(void); - -/***************************************************************************//** -\brief Clear otau client memory. -******************************************************************************/ -void zclClearOtauClientMemory(void); - -/***************************************************************************//** -\brief Find empty cell in memory pool. - -\return pointer to empty cell. -******************************************************************************/ -ZclOtauServerTransac_t * zclFindEmptyCell(void); - -#endif /* _ZCLOTAUMANAGER_H */ diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclParser.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclParser.h deleted file mode 100644 index 141d5b1f..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclParser.h +++ /dev/null @@ -1,445 +0,0 @@ -/************************************************************************//** - \file zclParser.h - - \brief - The header file describes the ZCL Parser interface - - The file describes the interface and types of ZCL Parser - - \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: - 02.12.08 A. Potashov - Created. -******************************************************************************/ - -#ifndef _ZCLPARSER_H -#define _ZCLPARSER_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -//#include -#include -#include -#include - -/****************************************************************************** - Define(s) section -******************************************************************************/ -/*ZCL Header Frame Type sub-field value*/ -#define ZCL_FRAME_CONTROL_FRAME_TYPE_UNIVERSAL_COMMAND 0x00 -#define ZCL_FRAME_CONTROL_FRAME_TYPE_SPECIFIC_COMMAND 0x01 - -/*ZCL Header Manufacturer Specific sub-field value*/ -#define ZCL_FRAME_CONTROL_MANUFACTURER_NONSPECIFIC 0x00 -#define ZCL_FRAME_CONTROL_MANUFACTURER_SPECIFIC 0x01 - -#define ZCL_FRAME_SIMPLE_HEADER_LENGTH 3 -#define ZCL_FRAME_HEADER_MANUFACTURER_CODE_LENGTH 2 -#define ZCL_FRAME_HEADER_WITH_MANUFACTURER_CODE_LENGTH \ - (ZCL_FRAME_SIMPLE_HEADER_LENGTH + ZCL_FRAME_HEADER_MANUFACTURER_CODE_LENGTH) - -#ifndef ZCL_STANDARD_REQ_TYPE -#define ZCL_STANDARD_REQ_TYPE ZCL_FRAME_CONTROL_FRAME_TYPE_UNIVERSAL_COMMAND -#endif -#ifndef ZCL_SPECIAL_REQ_TYPE -#define ZCL_SPECIAL_REQ_TYPE ZCL_FRAME_CONTROL_FRAME_TYPE_SPECIFIC_COMMAND -#endif - -#ifndef ZCL_MAX_STANDARD_DATA_TYPE_SIZE -#define ZCL_MAX_STANDARD_DATA_TYPE_SIZE 8 -#endif - -/*************************************************************************//** - \brief Defines the Descrete Kind of ZCL Data Type (used in #ZCL_DataTypeDescriptor_t) -*****************************************************************************/ -#ifndef ZCL_DATA_TYPE_DESCRETE_KIND -#define ZCL_DATA_TYPE_DESCRETE_KIND 0x00 -#endif - -/*************************************************************************//** - \brief Defines the Analog Kind of ZCL Data Type (used in #ZCL_DataTypeDescriptor_t) -*****************************************************************************/ -#ifndef ZCL_DATA_TYPE_ANALOG_KIND -#define ZCL_DATA_TYPE_ANALOG_KIND 0x01 -#endif - -/****************************************************************************** - Types section -******************************************************************************/ - -typedef enum -{ - ZCL_PARSER_IDLE_STATE, - ZCL_PARSER_RECEIVED_PACKET_STATE, - ZCL_PARSER_SENDING_RESPONSE_STATE, -} ZclParserState_t; - -typedef struct -{ - //ZclParserState_t state; - uint8_t dataIndAmount; - QueueDescriptor_t dataIndQueue; -} ZclParserMem_t; - -BEGIN_PACK -typedef struct PACK -{ - union PACK - { - struct PACK - { - LITTLE_ENDIAN_OCTET(5,( - uint8_t frameType :2, //Frame type sub-field - uint8_t manufacturerSpecific :1, //Manufacturer specific sub-field - uint8_t direction :1, //Direction sub-field - uint8_t defaultResponse :1, //Disable default response sub-field - uint8_t reserved :3 //Reserved bits. Must have a zero value - )) - }; - uint8_t uint8; - }; -} ZclFrameControlField_t; - -typedef struct PACK -{ - ZclFrameControlField_t frameControl; - uint16_t manufacturerCode; - uint8_t sequenceNumber; - uint8_t commandId; -} ZclFrameHeader_t; - -typedef struct PACK -{ - ZclFrameHeader_t header; - uint8_t payload[1]; -} ZclFrame_t; - -/****************************************************************************** - Read Attributes commands -******************************************************************************/ -/** \brief ZCL read attributes command record */ -typedef struct PACK -{ - uint16_t attributeId; -} ZclReadAttributesRecord_t; - -/** \brief ZCL Read attributes command payload */ -typedef struct PACK -{ - ZclReadAttributesRecord_t records[1]; -} ZclReadAttributesCommand_t; - -typedef struct PACK -{ - uint8_t elementType; - uint16_t elementsAmount; - struct PACK - { - uint8_t value[1]; - } elements[1]; -} ZclReadAttributesResponseArraySetBagValue_t; - -typedef struct PACK -{ - uint16_t elementsAmount; - struct PACK - { - uint8_t elementType; - uint8_t value[1]; - } elements [1]; -} ZclReadAttributesResponseStructValue_t; - -/** \brief ZCL read attributes response command record */ -typedef struct PACK -{ - ZCL_AttributeId_t attributeId; - uint8_t status; - uint8_t type; - union PACK - { - uint8_t simpleValue[1]; - ZclReadAttributesResponseArraySetBagValue_t arraySetBagValue; - ZclReadAttributesResponseStructValue_t structValue; - }; -} ZclReadAttributesResponseRecord_t; - -/** \brief ZCL read attributes response command payload */ -typedef struct PACK -{ - ZclReadAttributesResponseRecord_t records[1]; -} ZclReadAttributesResponseCommand_t; - -/****************************************************************************** - Write Attributes commands -******************************************************************************/ -/** \brief ZCL write attributes command record */ -typedef struct PACK -{ - ZCL_AttributeId_t attributeId; - uint8_t type; - uint8_t value[1]; -} ZclWriteAttributesRecord_t; - -/** \brief ZCL Wrire attributes command payload */ -typedef struct PACK -{ - ZclWriteAttributesRecord_t records[1]; -} ZclWriteAttributesCommand_t; - -/** \brief ZCL Wrire attributes undivided command payload */ -typedef ZclWriteAttributesCommand_t ZclWriteAttributesUndividedCommand_t; - -/** \brief ZCL Wrire attributes no response command payload */ -typedef ZclWriteAttributesCommand_t ZclWriteAttributesNoResponseCommand_t; - -/** \brief ZCL write attributes response command record */ -typedef struct PACK -{ - uint8_t status; - uint16_t attributeId; -} ZclWriteAttributesResponseRecord_t; - -/** \brief ZCL Wrire attributes response command payload */ -typedef struct PACK -{ - ZclWriteAttributesResponseRecord_t records[1]; -} ZclWriteAttributesResponseCommand_t; - -/****************************************************************************** - Configure reporting command -******************************************************************************/ -/** \brief ZCL configure reporting command record */ -typedef struct PACK -{ - uint8_t direction; - uint16_t attributeId; - uint16_t minimumReportingInterval; - uint16_t maximumReportingInterval; - uint8_t reportableChange[1]; - uint16_t timeoutPeriod; -} ZclConfigureReportingRecord_t; - -/** \brief ZCL configure reporting command payload */ -typedef struct PACK -{ - ZclConfigureReportingRecord_t records[1]; -} ZclConfigureReportingCommand_t; - -/** \brief ZCL configure reporting response command record */ -typedef struct PACK -{ - uint8_t status; - uint8_t direction; - uint16_t attributeId; -} ZclConfigureReportingResponseRecord_t; - -/** \brief ZCL configure reporting response command payload */ -typedef struct PACK -{ - ZclConfigureReportingResponseRecord_t records[1]; -} ZclConfigureReportingResponseCommand_t; - -END_PACK - -typedef struct -{ - ZCL_GeneralCommandId_t commandId; - void *primitive; -} ZclBuffer_t; - -typedef enum -{ - ZCL_PARSER_SUCCESS_STATUS = 0, - ZCL_PARSER_UNKNOWN_COMMAND_STATUS = 1, - ZCL_PARSER_BAD_FORMAT_STATUS = 2, - ZCL_PARSER_INVALID_PARAMETER_STATUS = 3 -} ZclParserStatus_t; - -typedef enum -{ - ZCL_REQUEST_TYPE, - ZCL_RESPONSE_TYPE, - ZCL_EVENT_TYPE, - ZCL_UNSPECIFIED_COMMAND_TYPE -} ZCL_CommandType_t; - -typedef struct -{ - uint8_t headerLength; - uint8_t payloadLength; - uint8_t frameType; - uint8_t direction; - uint8_t defaultResponse; - uint8_t manufacturerSpecific; - uint16_t manufacturerCode; - uint8_t sequenceNumber; - uint8_t commandId; - uint8_t *header; - uint8_t *payload; -} ZclFrameDescriptor_t; - -typedef struct -{ - ZclFrameDescriptor_t *frameDescriptor; - APS_DataInd_t *ind; - ZCL_Status_t commandStatus; - bool noApsSecurity; - bool relevantResponse; -} ZclAuxParseData_t; - -/****************************************************************************** - Constants section -******************************************************************************/ - -/****************************************************************************** - External variables section -******************************************************************************/ -/**************************************************************************//** -\brief ZCL memory global object -******************************************************************************/ -extern ZclParserMem_t zclParserMem; - -/****************************************************************************** - Prototypes section -******************************************************************************/ -/*************************************************************************//** - \brief Reset parser queue and clear memory. -*****************************************************************************/ -void zclParserInit(void); - -/**************************************************************************//** -\brief Form zcl header. - -\param[in] - dataReq - pointer to data request; -\param[in] - reqType - type of the request; -\param[in] - direction - cluster\server side; -\param[in] - commandId - zcl command identification; -\param[in] - defaultResponse - presence or absence of the default responde; -\param[in] - manufacSpecCode - manufacturer specific code; -\return header length -******************************************************************************/ -uint8_t zclFormRequest(APS_DataReq_t *dataReq, uint8_t reqType, uint8_t direction, uint8_t commandId, uint8_t defaultResponse, uint16_t manufacSpecCode); - -/*************************************************************************//** - \brief Response has been received. - - \param[in] auxData - pointer to structure with command payload and - descriptor of received command frame. -*****************************************************************************/ -void zclResponseInd(ZclAuxParseData_t *auxData); - -/*************************************************************************//** -\brief Routine of Read Reporting Configuration Command. - -\param[in] apsDataInd - pointer to aps payload -\param[in] frameDescriptor - pointer to parsed data structure from payload -*****************************************************************************/ -void zclReadReportingConfigurationHandler(APS_DataInd_t *apsDataInd, ZclFrameDescriptor_t *frameDescriptor); - -/*************************************************************************//** -\brief Routine of Configure Reporting Command. - -\param[in] apsDataInd - pointer to aps payload -\param[in] frameDescriptor - pointer to parsed data structure from payload -*****************************************************************************/ -void zclConfigureReportingHandler(APS_DataInd_t *apsDataInd, ZclFrameDescriptor_t *frameDescriptor); - -/*************************************************************************//** - \brief Report has been received. - - \param[in] apsData - report payload - \param[in] frameDesc - descriptor of received report frame -*****************************************************************************/ -void zclReportInd(APS_DataInd_t *apsData, ZclFrameDescriptor_t *frameDescriptor); - -/*************************************************************************//** - \brief Special cluster command has been received. - - \param[in] auxData - pointer to structure with command payload and - descriptor of received command frame. -*****************************************************************************/ -void zclCommandInd(ZclAuxParseData_t *auxData); - -/*************************************************************************//** - \brief The attribute has been read or written. - - \param[in] apsDataInd - attribute payload - \param[in] direction - direction - \param[in] event - event type - \param[in] attributeId - attribute identifier -*****************************************************************************/ -void zclAttributeEventInd(APS_DataInd_t *apsDataInd, uint8_t direction, ZCL_AttributeEvent_t event, ZCL_AttributeId_t attributeId); - -/*************************************************************************//** - \brief Configuration has been received. - - \param[in] apsData - configuration payload - \param[in] frameDesc - descriptor of received report frame -*****************************************************************************/ -void zclConfigurationInd(APS_DataInd_t *apsData, ZclFrameDescriptor_t *frameDesc); - -/*************************************************************************//** - \brief Indication from CAPS. - - \param[in] ind - buffer for data indication. -*****************************************************************************/ -void zclDataInd(APS_DataInd_t *ind); - -/*************************************************************************//** - \brief Security Type get by Cluster Id function and by endpointId, on which - was registered cluster. - Returns Security Type should be used with ClusterId specified - \param[in] clusterId - cluster identifier - \param[in] endpointId - end point identifier - \return ZCL_NETWORK_KEY_CLUSTER_SECURITY - NWK Key Security should be used - ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY - APS Link Key Security - shoud be used. - If cluster is unknown, security key will be determined by security mode, - i.e. ZCL_NETWORK_KEY_CLUSTER_SECURITY for Standard Security, - ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY for High Security. -*****************************************************************************/ -uint8_t zclGetSecurityTypeByClusterId(ClusterId_t clusterId, Endpoint_t endpointId); - -/**************************************************************************//** - \brief Get next registered ZCL endpoint descriptor by previous. - - \param[in] prev - previous ZCL endpoint descriptor pointer.It is must be non NULL - sequential access required if. And it is must be NULL the - first descriptor as registered endpoints queue head element - access required if. - - \return Valid ZCL endpoint descriptor pointer descriptor found if, - NULL - other case. - ******************************************************************************/ -ZCL_DeviceEndpoint_t* zclNextEndpoint(ZCL_DeviceEndpoint_t *prev); - -/*************************************************************************//** - \brief Find endpoint descriptor by endpoint id. - - \param[in] endpointId - endpoint unique identifier. - \return endpoint descriptor if found, NULL otherwise. -*****************************************************************************/ -ZCL_DeviceEndpoint_t *zclGetEndpoint(Endpoint_t endpointId); - -/****************************************************************************** - Inline static functions section -******************************************************************************/ -/****************************************************************************** -\brief Function returns point to ZCL memory object -******************************************************************************/ -static inline ZclParserMem_t *zclParserMemReq(void) -{ - return ((ZclParserMem_t *)&zclParserMem); -} - -#endif //#ifndef _ZCLPARSER_H - -//eof zclParser.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPowerConfigurationCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPowerConfigurationCluster.h deleted file mode 100644 index eccbb372..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPowerConfigurationCluster.h +++ /dev/null @@ -1,107 +0,0 @@ -/***************************************************************************** - \file zclPowerConfigurationCluster.h - - \brief - The file describes the types and interface of the Power Configuration cluster - - \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: - 18.01.2010 I.Vagulin - Created -******************************************************************************/ - - -#ifndef _ZCLPOWERCONFIGURATIONCLUSTER_H_ -#define _ZCLPOWERCONFIGURATIONCLUSTER_H_ - -/******************************************************************************* - Includes section -*******************************************************************************/ -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ -/** -* \brief server attributes amount -*/ -#define ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 2 - -/** -* \brief server commands amount -*/ -#define ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_COMMANDS_AMOUNT 0 - -/** -* \brief client attributes amount -*/ -#define ZCL_POWER_CONFIGURATION_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** -* \brief client commands amount -*/ -#define ZCL_POWER_CONFIGURATION_CLUSTER_CLIENT_COMMANDS_AMOUNT 0 - - -/** -* \brief Supported attribue id -*/ -#define ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_MAINS_VOLTAGE_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_MAINS_FREQUENCY_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) - -/** - * \brief server define attributes macros -*/ -#define ZCL_DEFINE_POWER_CONFIGURATION_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(mainsVoltage, ZCL_READONLY_ATTRIBUTE, ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_MAINS_VOLTAGE_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(mainsFrequency, ZCL_READONLY_ATTRIBUTE, ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_MAINS_FREQUENCY_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID) - -#define ZCL_DEFINE_POWER_CONFIGURATION_CLUSTER_SERVER(clattributes) \ - { \ - .id = POWER_CONFIGURATION_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) (clattributes), \ - .commandsAmount = ZCL_POWER_CONFIGURATION_CLUSTER_SERVER_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -#define ZCL_DEFINE_POWER_CONFIGURATION_CLUSTER_CLIENT() \ - { \ - .id = POWER_CONFIGURATION_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_POWER_CONFIGURATION_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = NULL, \ - .commandsAmount = ZCL_POWER_CONFIGURATION_CLUSTER_CLIENT_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK -typedef struct PACK { - struct PACK { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } mainsVoltage ; - - struct PACK { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } mainsFrequency ; -} ZCL_PowerConfigurationClusterAttributes_t ; -END_PACK - -#endif /* _ZCLPOWERCONFIGURATIONCLUSTER_H_ */ diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPriceCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPriceCluster.h deleted file mode 100644 index 0769596b..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclPriceCluster.h +++ /dev/null @@ -1,267 +0,0 @@ -/************************************************************************//** - \file zclPriceCluster.h - - \brief - The header file describes the Price Cluster. - - \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: - 05.02.09 A. Mandychev - Changed. -******************************************************************************/ - -#ifndef _ZCLPRICECLUSTER_H -#define _ZCLPRICECLUSTER_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include - -/****************************************************************************** - Defines section -******************************************************************************/ -/** -\brief Macros defines duration of Publish Price command, - * which means 'until change'. - * According to ZB AMI Spec r15, D.4.2.4.1.1, page 197. -*/ -#define PUBLISH_PRICE_DURATION_UNTIL_CHANGED (0xFFFF) - -/** -\brief Macros defines start time of Publish Price command, - * which means 'now'. - * According to ZB AMI Spec r15, D.4.2.4.1.1, page 197. -*/ -#define PUBLISH_PRICE_START_TIME_NOW (0x0000) - -/** -\brief Macros defines Price Ratio field special value, - * which means 'not used'. - * According to ZB AMI Spec r15, D.4.2.4.1.1, page 198. -*/ -#define PUBLISH_PRICE_PRICE_RATIO_IS_NOT_USED (0xFF) - -/** -\brief Macros defines Generation Price Ratio field special value, - * which means 'not used'. - * According to ZB AMI Spec r15, D.4.2.4.1.1, page 198. -*/ -#define PUBLISH_PRICE_GENERATION_PRICE_RATIO_IS_NOT_USED (0xFF) - -/** -\brief Macros defines Generation Price field special value, - * which means 'not used'. - * According to ZB AMI Spec r15, D.4.2.4.1.1, page 198. -*/ -#define PUBLISH_PRICE_GENERATION_PRICE_IS_NOT_USED (0xFFFFFFFF) - -/** -\brief Macros defines Number Of Block Thresholds field special value, - * which means 'not used'. - * According to ZigBee-095310r23ZB, page 65. -*/ -#define PUBLISH_NUMBER_OF_BLOCK_THRESHOLDS_IS_NOT_USED (0xFF) - -/** -\brief Macros defines Price Control field special value, - * which means 'not used'. - * According to ZigBee-095310r23ZB, page 65. -*/ -#define PUBLISH_PRICE_CONTROL_IS_NOT_USED (0x00) - -/** -\brief Macros defines Standing Charge field special value, - * which means 'not used'. - * According to ZigBee-095310r23ZB, page 65. -*/ -#define PUBLISH_STANDING_CHARGE_IS_NOT_USED (0xFFFFFFFF) - -/** - * \brief Price Server Cluster attributes amount. -*/ -#define PRICE_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Price Client Cluster attributes amount. -*/ -#define PRICE_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Price Client Cluster commands amount. -*/ -#define PRICE_CLUSTER_COMMANDS_AMOUNT 3 - -/** - * \brief Price Server Cluster commands identifiers. -*/ -#define PUBLISH_PRICE_COMMAND_ID 0x00 - -/** - * \brief Price Client Cluster commands identifiers. -*/ -#define GET_CURRENT_PRICE_COMMAND_ID 0x00 -#define GET_SCHEDULED_PRICES_COMMAND_ID 0x01 - -#define RATE_LABEL_MAX_LEN 12 - -/* -#define DEMAND_RESPONSE_CLUSTER_SERVER_COMMANDS(publishPriceInd) \ - DEFINE_COMMAND(publishPriceCommand, 0x00, COMMAND_OPTIONS(SERVER_TO_CLIENT), publishPriceInd) - - -#define DEMAND_RESPONSE_CLUSTER_CLIENT_COMMANDS(getCurrentPriceInd) \ - DEFINE_COMMAND(getCurrentPriceCommand, 0x00, COMMAND_OPTIONS(CLIENT_TO_SERVER), getCurrentPriceInd) -*/ - -#define PRICE_CLUSTER_COMMANDS(getCurrentPriceInd, publishPriceInd, getScheduledPricesInd) \ - DEFINE_COMMAND(getCurrentPriceCommand, 0x00, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), getCurrentPriceInd), \ - DEFINE_COMMAND(publishPriceCommand, 0x00, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), publishPriceInd), \ - DEFINE_COMMAND(getScheduledPricesCommand, GET_SCHEDULED_PRICES_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), getScheduledPricesInd) - -#define PRICE_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = PRICE_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = PRICE_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = PRICE_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define PRICE_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = PRICE_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = PRICE_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = PRICE_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } -#define DEFINE_PRICE_CLUSTER(cltype, clattributes, clcommands) PRICE_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK -/** - * \brief Publish Price Command Payload format. -*/ -typedef struct PACK -{ - uint32_t providerId; - uint8_t rateLabelLength; - uint8_t rateLabel[RATE_LABEL_MAX_LEN]; - uint32_t issuerEventId; - ZCL_UTCTime_t currentTime; - uint8_t unitOfMeasure; - uint16_t currency; - struct PACK - { - LITTLE_ENDIAN_OCTET(2,( - uint8_t priceTrailDigit : 4, - uint8_t priceTier : 4 - )) - } priceTrailDigitPriceTier; - struct PACK - { - LITTLE_ENDIAN_OCTET(2,( - uint8_t numberOfPriceTiers : 4, - uint8_t registerTier : 4 - )) - } numberOfPriceTiersRegisterTier; - ZCL_UTCTime_t startTime; - uint16_t durationInMinutes; - uint32_t price; - uint8_t priceRatio; - uint32_t generationPrice; - uint8_t generationPriceRatio; - uint32_t alternateCostDelivered; - uint8_t alternateCostUnit; - uint8_t alternateCostTrailingDigit; - uint8_t numberOfBlockThresholds; - uint8_t priceControl; - uint32_t standingCharge; -} ZCL_PublishPrice_t; - -/** - * \brief Get Current Price Command Payload format. -*/ -typedef struct PACK -{ - LITTLE_ENDIAN_OCTET(2,( - uint8_t requestorRxOnWhenIdle :1, //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief Scenes Cluster scene name support bit -*/ - -#define SCENE_NAME_SUPPORT_FLAG 0x80 - -/** - * \brief Scenes Cluster server attributes amount -*/ - -#define ZCL_SCENES_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 5 - -/** - * \brief Scenes Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_SCENES_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT 0 - -/** - * \brief Scenes Cluster commands amount -*/ - -#define ZCL_SCENES_CLUSTER_COMMANDS_AMOUNT 13 - -/** - * \brief Scenes Cluster server's attributes identifiers -*/ - -#define ZCL_SCENES_CLUSTER_SCENE_COUNT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_SCENES_CLUSTER_CURRENT_SCENE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -#define ZCL_SCENES_CLUSTER_CURRENT_GROUP_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) -#define ZCL_SCENES_CLUSTER_SCENE_VALID_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0003) -#define ZCL_SCENES_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0004) - -/** - * \brief Scenes Cluster client's command identifiers -*/ - -#define ZCL_SCENES_CLUSTER_ADD_SCENE_COMMAND_ID 0x00 -#define ZCL_SCENES_CLUSTER_VIEW_SCENE_COMMAND_ID 0x01 -#define ZCL_SCENES_CLUSTER_REMOVE_SCENE_COMMAND_ID 0x02 -#define ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_COMMAND_ID 0x03 -#define ZCL_SCENES_CLUSTER_STORE_SCENE_COMMAND_ID 0x04 -#define ZCL_SCENES_CLUSTER_RECALL_SCENE_COMMAND_ID 0x05 -#define ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 - -/** - * \brief Scenes Cluster servers's command identifiers -*/ - -#define ZCL_SCENES_CLUSTER_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 -#define ZCL_SCENES_CLUSTER_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 -#define ZCL_SCENES_CLUSTER_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 -#define ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 -#define ZCL_SCENES_CLUSTER_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 -#define ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 - - -/** - * \brief Scenes Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_SCENES_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(sceneCount, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_SCENE_COUNT_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(currentScene, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_CURRENT_SCENE_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(currentGroup, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_CURRENT_GROUP_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(sceneValid, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_SCENE_VALID_SERVER_ATTRIBUTE_ID, ZCL_BOOLEAN_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(nameSupport, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID, ZCL_8BIT_BITMAP_DATA_TYPE_ID) - - -/** - * \brief On/Off Cluster define commands macros -*/ - -#define ZCL_DEFINE_SCENES_CLUSTER_COMMANDS(addSceneCommandInd, viewSceneCommandInd, removeSceneCommandInd, \ - removeAllScenesCommandInd, storeSceneCommandInd, recallSceneCommandInd, \ - getSceneMembershipCommandInd, addSceneResponseCommandInd, viewSceneResponseCommandInd, \ - removeSceneResponseCommandInd, removeAllScenesResponseCommandInd, storeSceneResponseCommandInd, \ - getSceneMembershipResponseInd) \ - DEFINE_COMMAND(addSceneCommand, ZCL_SCENES_CLUSTER_ADD_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addSceneCommandInd), \ - DEFINE_COMMAND(viewSceneCommand, ZCL_SCENES_CLUSTER_VIEW_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewSceneCommandInd), \ - DEFINE_COMMAND(removeSceneCommand, ZCL_SCENES_CLUSTER_REMOVE_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeSceneCommandInd), \ - DEFINE_COMMAND(removeAllScenesCommand, ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeAllScenesCommandInd), \ - DEFINE_COMMAND(storeSceneCommand, ZCL_SCENES_CLUSTER_STORE_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - storeSceneCommandInd), \ - DEFINE_COMMAND(recallSceneCommand, ZCL_SCENES_CLUSTER_RECALL_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - recallSceneCommandInd), \ - DEFINE_COMMAND(getSceneMembershipCommand, ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getSceneMembershipCommandInd), \ - DEFINE_COMMAND(addSceneResponseCommand, ZCL_SCENES_CLUSTER_ADD_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addSceneResponseCommandInd), \ - DEFINE_COMMAND(viewSceneResponseCommand, ZCL_SCENES_CLUSTER_VIEW_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewSceneResponseCommandInd), \ - DEFINE_COMMAND(removeSceneResponseCommand, ZCL_SCENES_CLUSTER_REMOVE_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeSceneResponseCommandInd), \ - DEFINE_COMMAND(removeAllScenesResponseCommand, ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeAllScenesResponseCommandInd), \ - DEFINE_COMMAND(storeSceneResponseCommand, ZCL_SCENES_CLUSTER_STORE_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - storeSceneResponseCommandInd), \ - DEFINE_COMMAND(getSceneMembershipResponse, ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getSceneMembershipResponseInd) - - -/** - * \brief Scene Cluster definition macros -*/ - -#define SCENES_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = SCENES_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_SCENES_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_SCENES_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define SCENES_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = SCENES_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_SCENES_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_SCENES_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_SCENES_CLUSTER(cltype, clattributes, clcommands) \ - SCENES_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK - -/** - * \brief Add Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; - uint16_t transitionTime; - uint8_t sceneNameAndExtField[1]; -} ZCL_AddScene_t; - -/** - * \brief View Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_ViewScene_t; - -/** - * \brief Remove Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_RemoveScene_t; - -/** - * \brief Remove All Scenes Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_RemoveAllScenes_t; - -/** - * \brief Store Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_StoreScene_t; - -/** - * \brief Recall Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_RecallScene_t; - -/** - * \brief Get Scene Membership Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_GetSceneMembership_t; - -/** - * \brief Add Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; -} ZCL_AddSceneResponse_t; - -/** - * \brief View Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; - uint16_t transitionTime; - uint8_t nameAndExtField[1]; // string sceneName, extension field. -} ZCL_ViewSceneResponse_t; - -/** - * \brief Remove Scene Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; -} ZCL_RemoveSceneResponse_t; - -/** - * \brief Remove All Scenes Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; -} ZCL_RemoveAllScenesResponse_t; - -/** - * \brief Store Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; -} ZCL_StoreSceneResponse_t; - -/** - * \brief Get Scene Membership Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint8_t capacity; - uint16_t groupId; - uint8_t sceneCount; - uint8_t sceneList[1]; -} ZCL_GetSceneMembershipResponse_t; - -/** - * \brief Scene Cluster server's attributes - */ - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } sceneCount; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } currentScene; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } currentGroup; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - bool value; - } sceneValid; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } nameSupport; -} ZCL_SceneClusterServerAttributes_t; - -END_PACK - -/** - * \brief Scene Cluster commands. - */ - -typedef struct -{ - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddScene_t * payload); - } addSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewScene_t * payload); - } viewSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveScene_t * payload); - } removeSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeAllScenesCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveAllScenes_t * payload); - } removeAllScenesCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*storeSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_StoreScene_t * payload); - } storeSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*recallSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RecallScene_t * payload); - } recallSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getSceneMembershipCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetSceneMembership_t * payload); - } getSceneMembershipCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddSceneResponse_t * payload); - } addSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewSceneResponse_t * payload); - } viewSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveSceneResponse_t * payload); - } removeSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeAllScenesResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveAllScenesResponse_t * payload); - } removeAllScenesResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*storeSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_StoreSceneResponse_t * payload); - } storeSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getSceneMembershipResponse)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetSceneMembershipResponse_t * payload); - } getSceneMembershipResponse; -} ZCL_ScenesClusterCommands_t; - - -#endif /* _ZCLSCENESCLUSTER_H */ - diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclSecurityManager.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclSecurityManager.h deleted file mode 100644 index e91cd669..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclSecurityManager.h +++ /dev/null @@ -1,190 +0,0 @@ -/***************************************************************************//** - \file zclSecurityManager.h - - \brief - The header file describes the ZCL Security Manager and its interface - - The file describes the types and interface of the ZCL Security Manager - - \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: - 17.03.09 A. Potashov - Created. -*******************************************************************************/ - -#ifndef _ZCLSECURITYMANAGER_H -#define _ZCLSECURITYMANAGER_H - -#ifdef _ZCL_SECURITY_ -#include -#include -#include - -typedef enum -{ - ZCL_SECURITY_STATUS_SUCCESS = 0x00, -#ifdef _CERTICOM_SECURITY_ - ZCL_SECURITY_STATUS_DISCOVERY_FAIL = 0x01, - ZCL_SECURITY_STATUS_APS_BINDING_FAIL = 0x02, - ZCL_SECURITY_STATUS_TIMEOUT = 0x03, - ZCL_SECURITY_STATUS_TERMINATED = 0x04, - ZCL_SECURITY_STATUS_SEND_COMMAND_FAIL = 0x05, - ZCL_SECURITY_STATUS_INVALID_SETTINGS = 0x06, -#endif //#ifdef _CERTICOM_SECURITY_ -} ZCL_SecurityStatus_t; - - -/*************************************************************************//** - Status of ZCL operation - \brief - Used to return status of ZCL operation. -*****************************************************************************/ -/* -typedef enum -{ - ZCL_SUCCESS_STATUS = 0x00, - ZCL_UNSUPPORTED_ATTRIBUTE_STATUS = 0x01, - ZCL_INVALID_ATTRIBUTE_VALUE_STATUS = 0x02, - ZCL_TC_PERMISSION_TABLE_ERROR_STATUS = 0x03, - ZCL_APS_LINK_KEY_ERROR_STATUS = 0x04 -} ZCL_Status_t; -*/ - -BEGIN_PACK - -typedef struct PACK -{ - ExtAddr_t addr; //! -#include - -#define CURRENT_SUMMATION_DELIVERED_ATTRIBUTE_ID 0x00 - -/*************************************************************************//** - \brief Simple Metering Cluster attributes amount -*****************************************************************************/ -#define SIMPLE_METERING_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 -#define SIMPLE_METERING_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 5 - -/*************************************************************************//** - \brief Simple Metering Cluster commands amount -*****************************************************************************/ -#define SIMPLE_METERING_CLUSTER_CLIENT_COMMANDS_AMOUNT 0 -#define SIMPLE_METERING_CLUSTER_SERVER_COMMANDS_AMOUNT 0 - -#define DEFINE_SIMPLE_METERING_SERVER_ATTRIBUTES(min, max) \ - DEFINE_REPORTABLE_ATTRIBUTE(currentSummationDelivered, ZCL_READONLY_ATTRIBUTE, CCPU_TO_LE16(0x0000), ZCL_U48BIT_DATA_TYPE_ID, min, max), \ - DEFINE_ATTRIBUTE(meterStatus, ZCL_READONLY_ATTRIBUTE, CCPU_TO_LE16(0x0200), ZCL_8BIT_BITMAP_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(unitofMeasure, ZCL_READONLY_ATTRIBUTE, CCPU_TO_LE16(0x0300), ZCL_8BIT_ENUM_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(summationFormatting, ZCL_READONLY_ATTRIBUTE, CCPU_TO_LE16(0x0303), ZCL_8BIT_BITMAP_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(meteringDeviceType, ZCL_READONLY_ATTRIBUTE, CCPU_TO_LE16(0x0306), ZCL_8BIT_ENUM_DATA_TYPE_ID) - -#define SIMPLE_METERING_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = SIMPLE_METERING_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = SIMPLE_METERING_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = SIMPLE_METERING_CLUSTER_CLIENT_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -#define SIMPLE_METERING_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = SIMPLE_METERING_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = SIMPLE_METERING_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = SIMPLE_METERING_CLUSTER_SERVER_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -#define DEFINE_SIMPLE_METERING_CLUSTER(cltype, clattributes, clcommands) SIMPLE_METERING_CLUSTER_##cltype(clattributes, clcommands) - -BEGIN_PACK - -/*************************************************************************//** - \brief ZCL Simple Metering Cluster Descriptor - - For internal use -*****************************************************************************/ -typedef struct PACK -{ - //!Reading information attribute set (Id = 0x00) - //!Current Summation Delivered Attribute descriptor - struct PACK - { - ZCL_AttributeId_t id; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ -/** -* \brief server attributes amount -*/ -#define ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 3 - -/** -* \brief server commands amount -*/ -#define ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_COMMANDS_AMOUNT 0 - -/** -* \brief client attributes amount -*/ -#define ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** -* \brief client commands amount -*/ -#define ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_CLIENT_COMMANDS_AMOUNT 0 - -/** -* \brief Supported attribue id -*/ -#define ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_MEASURED_VALUE_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_MIN_MEASURED_VALUE_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -#define ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_MAX_MEASURED_VALUE_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) - -/** - * \brief server define attributes macros -*/ -#define ZCL_DEFINE_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_ATTRIBUTES(reportMin, reportMax) \ - DEFINE_REPORTABLE_ATTRIBUTE(measuredValue, ZCL_READONLY_ATTRIBUTE, ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_MEASURED_VALUE_ATTRIBUTE_ID, ZCL_S16BIT_DATA_TYPE_ID, reportMin, reportMax), \ - DEFINE_ATTRIBUTE(minMeasuredValue, ZCL_READONLY_ATTRIBUTE, ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_MIN_MEASURED_VALUE_ATTRIBUTE_ID, ZCL_S16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(maxMeasuredValue, ZCL_READONLY_ATTRIBUTE, ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_MAX_MEASURED_VALUE_ATTRIBUTE_ID, ZCL_S16BIT_DATA_TYPE_ID) - -#define ZCL_DEFINE_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER(clattributes) \ - { \ - .id = TEMPERATURE_MEASUREMENT_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) (clattributes), \ - .commandsAmount = ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -#define ZCL_DEFINE_TEMPERATURE_MEASUREMENT_CLUSTER_CLIENT() \ - { \ - .id = TEMPERATURE_MEASUREMENT_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = NULL, \ - .commandsAmount = ZCL_TEMPERATURE_MEASUREMENT_CLUSTER_CLIENT_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK -typedef struct PACK { - struct PACK { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - int16_t value; - ZCL_ReportTime_t reportCounter; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/***************************************************************************//** -\brief Thermostat Cluster server attributes amount -*******************************************************************************/ - -#define ZCL_THERMOSTAT_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 5 - -/***************************************************************************//** -\brief Thermostat Cluster client attributes amount. Clinet doesn't have attributes -*******************************************************************************/ - -#define ZCL_THERMOSTAT_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT 0 - -/***************************************************************************//** -\brief Thermostat Cluster commands amount -*******************************************************************************/ - -#define ZCL_THERMOSTAT_CLUSTER_COMMANDS_AMOUNT 1 - -/***************************************************************************//** -\brief Thermostat Cluster server's attributes identifiers -*******************************************************************************/ - -#define ZCL_THERMOSTAT_CLUSTER_LOCAL_TEMPERATURE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_THERMOSTAT_CLUSTER_OCCUPIED_COOLING_SETPOINT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0011) -#define ZCL_THERMOSTAT_CLUSTER_OCCUPIED_HEATING_SETPOINT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0012) -#define ZCL_THERMOSTAT_CLUSTER_CONTROL_SEQUENCE_OF_OPERATION_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x001b) -#define ZCL_THERMOSTAT_CLUSTER_SYSTEM_MODE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x001c) - -/***************************************************************************//** -\brief Thermostat Cluster client's command identifiers -*******************************************************************************/ - -#define ZCL_THERMOSTAT_CLUSTER_SETPOINT_RAISE_LOWER_COMMAND_ID 0x00 - -/***************************************************************************//** -\brief Thermostat Cluster server define attributes macros -*******************************************************************************/ - -#define ZCL_DEFINE_THERMOSTAT_CLUSTER_SERVER_ATTRIBUTES(min, max) \ - DEFINE_REPORTABLE_ATTRIBUTE(localTemperature, ZCL_READONLY_ATTRIBUTE, ZCL_THERMOSTAT_CLUSTER_LOCAL_TEMPERATURE_SERVER_ATTRIBUTE_ID, ZCL_S16BIT_DATA_TYPE_ID, min, max),\ - DEFINE_ATTRIBUTE(occupiedCoolingSetpoint, ZCL_READWRITE_ATTRIBUTE, ZCL_THERMOSTAT_CLUSTER_OCCUPIED_COOLING_SETPOINT_SERVER_ATTRIBUTE_ID, ZCL_S16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(occupiedHeatingSetpoint, ZCL_READWRITE_ATTRIBUTE, ZCL_THERMOSTAT_CLUSTER_OCCUPIED_HEATING_SETPOINT_SERVER_ATTRIBUTE_ID, ZCL_S16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(controlSequenceofOperation, ZCL_READWRITE_ATTRIBUTE, ZCL_THERMOSTAT_CLUSTER_CONTROL_SEQUENCE_OF_OPERATION_SERVER_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(systemMode, ZCL_READWRITE_ATTRIBUTE, ZCL_THERMOSTAT_CLUSTER_SYSTEM_MODE_SERVER_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID) - - -/***************************************************************************//** -\brief Thermostat Cluster define commands macros -*******************************************************************************/ - -#define ZCL_DEFINE_THERMOSTAT_CLUSTER_COMMANDS(setpointCommandInd) \ - DEFINE_COMMAND(setpointCommand, ZCL_THERMOSTAT_CLUSTER_SETPOINT_RAISE_LOWER_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - setpointCommandInd) - - -/***************************************************************************//** -\brief Thermostat Cluster definition macros -*******************************************************************************/ - -#define THERMOSTAT_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = THERMOSTAT_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_THERMOSTAT_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_THERMOSTAT_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define THERMOSTAT_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = THERMOSTAT_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_THERMOSTAT_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_THERMOSTAT_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_THERMOSTAT_CLUSTER(cltype, clattributes, clcommands) \ - THERMOSTAT_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK - -/***************************************************************************//** -\brief Setpoint Raise/Lower Command Payload format -*******************************************************************************/ -typedef struct PACK -{ - int8_t mode; - int8_t amount; -} ZCL_SetpointRaiseLower_t; - -/***************************************************************************//** -\brief Thermostat Cluster server's attributes -*******************************************************************************/ - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - int16_t value; - ZCL_ReportTime_t reportCounter; //! -#include - - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/***************************************************************************//** - \brief ZCL Time Cluster server side commands amount -*******************************************************************************/ -#define ZCL_TIME_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 2 -//The Time and TimeStatus attributes - -/***************************************************************************//** - \brief ZCL Time Cluster client side commands amount -*******************************************************************************/ -#define ZCL_TIME_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 -//There is no any attributes at client cluster side - -/***************************************************************************//** - \brief ZCL Time Cluster commands amount -*******************************************************************************/ -#define ZCL_TIME_CLUSTER_COMMANDS_AMOUNT 0 -//There is no any commands at client cluster side - - -//!ZCL Time Cluster server side Time attribute id -#define ZCL_TIME_CLUSTER_SERVER_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -//!ZCL Time Cluster server side TimeStatus attribute id -#define ZCL_TIME_CLUSTER_SERVER_TIME_STATUS_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -//!ZCL Time Cluster server side TimeZone attribute id -#define ZCL_TIME_CLUSTER_SERVER_TIME_ZONE_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) -//!ZCL Time Cluster server side DstStart attribute id -#define ZCL_TIME_CLUSTER_SERVER_DST_START_ATTRIBUTE_ID CCPU_TO_LE16(0x0003) -//!ZCL Time Cluster server side DstEnd attribute id -#define ZCL_TIME_CLUSTER_SERVER_DST_END_ATRIBUTE_ID CCPU_TO_LE16(0x0004) -//!ZCL Time Cluster server side DstShift attribute id -#define ZCL_TIME_CLUSTER_SERVER_DST_SHIFT_ATTRIBUTE_ID CCPU_TO_LE16(0x0005) -//!ZCL Time Cluster server side StandardTime attribute id -#define ZCL_TIME_CLUSTER_SERVER_STANDARD_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0006) -//!ZCL Time Cluster server side LocalTime attribute id -#define ZCL__TIME_CLUSTER_SERVER_LOCAL_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0007) - - -/***************************************************************************//** - \brief ZCL Time Cluster server side attributes defining macros - - This macros should be used for ZCL Time Cluster server side attributes defining. - - \return None - - \internal - //The typical usage is: - //Time Cluster server side related attributes - ZCL_TimeClusterServerAttributes_t timeClusterAttributes = ZCL_DEFINE_TIME_CLUSTER_SERVER_ATTRIBUTES(); -*******************************************************************************/ -#define ZCL_DEFINE_TIME_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(time, ZCL_READWRITE_ATTRIBUTE, ZCL_TIME_CLUSTER_SERVER_TIME_ATTRIBUTE_ID, ZCL_UTC_TIME_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(timeStatus, ZCL_READWRITE_ATTRIBUTE, ZCL_TIME_CLUSTER_SERVER_TIME_STATUS_ATTRIBUTE_ID, ZCL_8BIT_BITMAP_DATA_TYPE_ID) \ - -/***************************************************************************//** - \brief ZCL Time Cluster server side defining macros - - This macros should be used with #DEFINE_ZCL_TIME_CLUSTER_SERVER_ATTRIBUTES for - ZCL Time Cluster server side defining in application. - - \param attributes - pointer to cluster server attributes (ZCL_TimeClusterServerAttributes_t) - - \return None - - \internal - //The typical code is: - //Time Cluster server side related attributes - ZCL_TimeClusterServerAttributes_t timeClusterServerAttributes = DEFINE_ZCL_TIME_CLUSTER_SERVER_ATTRIBUTES(); - ZCL_Cluster_t myClusters[] = - { - ZCL_DEFINE_TIME_CLUSTER_SERVER(&timeClusterServerAttributes), - //... Any other cluster defining ... - } -*******************************************************************************/ -#define TIME_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = TIME_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_TIME_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_TIME_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - -/***************************************************************************//** - \brief ZCL Time Cluster client side defining macros - - This macros should be used for ZCL Time Cluster client side defining in application. - - \return None - - \internal - //The typical code is: - ZCL_Cluster_t myClusters[] = - { - ZCL_DEFINE_TIME_CLUSTER_CLIENT(), - //... Any other cluster defining ... - } -*******************************************************************************/ -#define TIME_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = TIME_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY }, \ - .attributesAmount = ZCL_TIME_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_TIME_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *) clcommands \ - } - -#define DEFINE_TIME_CLUSTER(cltype, clattributes, clcommands) TIME_CLUSTER_##cltype(clattributes, clcommands) - -/******************************************************************************* - Types section -*******************************************************************************/ - -BEGIN_PACK -/***************************************************************************//** - \brief - ZCL Time Cluster attributes -*******************************************************************************/ -typedef struct PACK -{ - /*! - \brief Time attribute (R/W, M) - - The Time attribute is 32-bits in length and holds the time value of a real time - clock. This attribute has data type UTCTime, but note that it may not actually be - synchronised to UTC - see discussion of the TimeStatus attribute below. - If the Master bit of the TimeStatus attribute has a value of 0, writing to this - attribute shall set the real time clock to the written value, otherwise it cannot be - written. The value 0xffffffff indicates an invalid time. - */ - struct PACK - { - ZCL_AttributeId_t id; //! -#include -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ -/* Default network parameters, for debug purpose */ -#define ZCL_ZLL_DEFAULT_WORKING_CHANNEL 0x0f - -/* ZLL Profile Constants */ -#define APLC_INTERPAN_TRANS_ID_LIFE_TIME 8000 // aplcInterPANTransIdLifeTime -#define APLC_MAX_PERMIT_JOIN_DURATION 60000 // aplcMaxPermitJoinDuration -#define APLC_MIN_STARTUP_DELAY_TIME 2000 // aplcMinStartupDelayTime -#define APLC_RX_WINDOW_DURATIO 5000 // aplcRxWindowDuration -#define APLC_SCAN_TIMEBASE_DURATION 250 // aplcScanTimeBaseDuration - -/****************************************************************************** - Types section -******************************************************************************/ -typedef enum _ZCL_ZllStatus_t -{ - ZCL_ZLL_SUCCESS_STATUS = 0x00, - ZCL_ZLL_SCAN_RESULT_STATUS = 0xf0, - ZCL_ZLL_SCAN_FINISHED_STATUS = 0xf1, - ZCL_ZLL_SCAN_ABORTED_STATUS = 0xf2, - ZCL_ZLL_IDENTIFY_START_STATUS = 0xf3, - ZCL_ZLL_IDENTIFY_STOP_STATUS = 0xf4, - ZCL_ZLL_INVALID_SCENARIO_STATUS = 0xf5, -} ZCL_ZllStatus_t; - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/**************************************************************************//** -\brief Reset the ZLL layer - -This function should be called prior to using any ZLL features. The only -function called before ZLL reset is ZCL_ZllIbSetAppData(), which provides -memory that will be used to store application data. - -The function restores ZLL and stack parameters from EEPROM as well as -applicaiton data. -******************************************************************************/ -void ZCL_ZllReset(void); - -/**************************************************************************//** -\brief Get next output sequence number -\returns next output sequence number. -******************************************************************************/ -uint8_t ZCL_ZllGetSeq(void); - -/**************************************************************************//** -\brief Generate new Transaction Identifier and start transaction timer for it -******************************************************************************/ -void ZCL_ZllGenerateTransactionId(void); - -/**************************************************************************//** -\brief Get current Transaction Identifier -\returns Current Transaction Identifier. -******************************************************************************/ -uint32_t ZCL_ZllTransactionId(void); - -/**************************************************************************//** -\brief Generate new Response Identifier -******************************************************************************/ -void ZCL_ZllGenerateResponseId(void); - -/**************************************************************************//** -\brief Set Response Identifier to specified value -\param[in] rid - Response Identifier value to be set -******************************************************************************/ -void ZCL_ZllSetResponseId(uint32_t rid); - -/**************************************************************************//** -\brief Get current Response Identifier -\returns Current Response Identifier. -******************************************************************************/ -uint32_t ZCL_ZllResponseId(void); - -/**************************************************************************//** -\brief Get other device's address (after Scan Request has been received) -\returns Other device's extended address. -******************************************************************************/ -uint64_t ZCL_ZllOtherDeviceAddress(void); - -/**************************************************************************//** -\brief Check if Scan Response has already been received from the device -\returns true if Scan Response has already been received from the device. -******************************************************************************/ -bool ZCL_ZllDublicateRejection(ExtAddr_t ieee); - -/**************************************************************************//** -\brief Assign a new address from the range of free addresses -\returns Newly assigned address or 0 in case of an error. -******************************************************************************/ -ShortAddr_t ZCL_ZllAssignAddress(void); - -/**************************************************************************//** -\brief Assign a new group ID from the range of free group IDs -\returns Newly assigned group ID or 0 in case of an error. -******************************************************************************/ -uint16_t ZCL_ZllAssignGroupId(void); - -/**************************************************************************//** -\brief Check if the device is in the Factory New state - -A router in ZLL applications loses its factory new state after it receives the -ZLL start network request during commissioning. An end device becomes not a -factory new device after it commissions the first router, thus creating its own -network, or joins an existing network through another end device (this is called -touch link between end devices). - -The application may switch a device back to the factory new state by calling the -ZCL_ZllResetToFactoryNewRequest() function. - -\returns Factory New status: \c true if the device is in the Factory New state -******************************************************************************/ -bool ZCL_ZllIsFactoryNew(void); - -/**************************************************************************//** -\brief Get other device's address (after Scan Request has been received) -\param[in] header - pointer to the header to be filled -\param[in] commandId - command ID to be set in the header -******************************************************************************/ -void zclZllFillFrameHeader(ZclZllFrameHeader_t *header, ZclZllCommandId_t commandId); - -#endif // _ZCLZLL_H - -// eof zclZll.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllBasicCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllBasicCluster.h deleted file mode 100644 index 1c74eddb..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllBasicCluster.h +++ /dev/null @@ -1,308 +0,0 @@ -/***************************************************************************//** - \file zclZllBasicCluster.h - - \brief - The header file describes the ZLL Basic Cluster and its interface - - \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: - 03.01.09 A. Potashov - Created. -*******************************************************************************/ - -#ifndef _ZCLZLLBASICCLUSTER_H -#define _ZCLZLLBASICCLUSTER_H - -/*! -Attributes and commands for determining basic information about a device, -setting user device information such as location, enabling a device and resetting it -to factory defaults. -*/ - -/******************************************************************************* - Includes section -*******************************************************************************/ - -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/***************************************************************************//** - \brief ZCL Basic Cluster server side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 9 -//The ZCLVersion and PowerSource attributes - -/***************************************************************************//** - \brief ZCL Basic Cluster derver side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_SERVER_COMMANDS_AMOUNT 0 -//There are no any commands at the server side - -/***************************************************************************//** - \brief ZCL Basic Cluster client side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 -//There are no any attributes at the client side - -/***************************************************************************//** - \brief ZCL Basic Cluster derver side commands amount -*******************************************************************************/ -#define ZCL_BASIC_CLUSTER_CLIENT_COMMANDS_AMOUNT 0 -//There are no any commands at the client side - - -//Atribute Ids of Basic Device Information Attribute Set at the server side -//!ZCL Basic Cluster server side ZCLVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_ZCL_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -//!ZCL Basic Cluster server side ApplicationVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_APPLICATION_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -//!ZCL Basic Cluster server side StackVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_STACK_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) -//!ZCL Basic Cluster server side HWVersion attribute id -#define ZCL_BASIC_CLUSTER_SERVER_HW_VERSION_ATTRIBUTE_ID CCPU_TO_LE16(0x0003) -//!ZCL Basic Cluster server side ManufacturerName attribute id -#define ZCL_BASIC_CLUSTER_SERVER_MANUFACTURER_NAME_ATTRIBUTE_ID CCPU_TO_LE16(0x0004) -//!ZCL Basic Cluster server side ModelIdentifier attribute id -#define ZCL_BASIC_CLUSTER_SERVER_MODEL_IDENTIFIER_ATTRIBUTE_ID CCPU_TO_LE16(0x0005) -//!ZCL Basic Cluster server side DateCode attribute id -#define ZCL_BASIC_CLUSTER_SERVER_DATE_CODE_ATTRIBUTE_ID CCPU_TO_LE16(0x0006) -//!ZCL Basic Cluster server side PowerSource attribute id -#define ZCL_BASIC_CLUSTER_SERVER_POWER_SOURCE_ATTRIBUTE_ID CCPU_TO_LE16(0x0007) - -//Atribute Ids of Basic Device Settings Attribute Set at the server side -//!ZCL Basic Cluster server side LocationDescription attribute id -#define ZCL_BASIC_CLUSTER_SERVER_LOCATION_DESCRIPTION_ATTRIBUTE_ID CCPU_TO_LE16(0x0010) -//!ZCL Basic Cluster server side PhysicalEnvironment attribute id -#define ZCL_BASIC_CLUSTER_SERVER_PHYSICAL_ENVIRONMENT_ATTRIBUTE_ID CCPU_TO_LE16(0x0011) -//!ZCL Basic Cluster server side DeviceEnabled attribute id -#define ZCL_BASIC_CLUSTER_SERVER_DEVICE_ENABLED_ATTRIBUTE_ID CCPU_TO_LE16(0x0012) -//!ZCL Basic Cluster server side AlarmMask attribute id -#define ZCL_BASIC_CLUSTER_SERVER_ALARM_MASK_ATTRIBUTE_ID CCPU_TO_LE16(0x0013) - -//!ZLL Basic Cluster server side SWBuildID attribute id -#define ZCL_BASIC_CLUSTER_SERVER_SW_BUILD_ID_ATTRIBUTE_ID CCPU_TO_LE16(0x4000) - -//!ZCL Basic Cluster server side ResetToFactoryDeafaults commabd id -#define ZCL_BASIC_CLUSTER_SERVER_RESET_TO_FACTORY_DEFAULTS_COMMAND_ID 0x00 - -/******************************************************************************* - Types section -*******************************************************************************/ - -/***************************************************************************//** - \brief ZCL Basic Cluster server side attributes defining macros - - This macros should be used for ZCL Basic Cluster server side attributes defining. - - \return None - - \internal - //The typical usage is: - //Basic Cluster server side related attributes - ZCL_BasicClusterServerAttributes_t basicClusterAttributes = ZCL_DEFINE_BASIC_CLUSTER_SERVER_ATTRIBUTES(); -*******************************************************************************/ -#define ZCL_DEFINE_BASIC_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(zclVersion, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_ZCL_VERSION_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID),\ - DEFINE_ATTRIBUTE(applicationVersion, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_APPLICATION_VERSION_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(stackVersion, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_STACK_VERSION_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(hwVersion, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_HW_VERSION_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(manufacturerName, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_MANUFACTURER_NAME_ATTRIBUTE_ID, ZCL_OCTET_STRING_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(modelIdentifier, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_MODEL_IDENTIFIER_ATTRIBUTE_ID, ZCL_OCTET_STRING_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(dateCode, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_DATE_CODE_ATTRIBUTE_ID, ZCL_OCTET_STRING_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(powerSource, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_POWER_SOURCE_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(swBuildId, ZCL_READONLY_ATTRIBUTE, ZCL_BASIC_CLUSTER_SERVER_SW_BUILD_ID_ATTRIBUTE_ID, ZCL_OCTET_STRING_DATA_TYPE_ID) - -/***************************************************************************//** - \brief ZCL Basic Cluster server side defining macros - - This macros should be used with #ZCL_DEFINE_BASIC_CLUSTER_SERVER_ATTRIBUTES for - ZCL Basic Cluster server side defining in application. - - \param attributes - pointer to cluster server attributes (ZCL_BasicClusterServerAttributes_t) - - \return None - - \internal - //The typical code is: - //Basic Cluster server side related attributes - ZCL_BasicClusterServerAttributes_t basicClusterServerAttributes = DEFINE_ZCL_BASIC_CLUSTER_SERVER_ATTRIBUTES(); - ZCL_Cluster_t myClusters[] = - { - ZCL_DEFINE_BASIC_CLUSTER_SERVER(&basicClusterServerAttributes), - //... Any other cluster defining ... - } -*******************************************************************************/ -#define ZCL_DEFINE_BASIC_CLUSTER_SERVER(clattributes) \ - { \ - .id = BASIC_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_BASIC_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *) clattributes, \ - .commandsAmount = ZCL_BASIC_CLUSTER_SERVER_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - -/***************************************************************************//** - \brief ZCL Basic Cluster client side defining macros - - This macros should be used for ZCL Basic Cluster client side defining in application. - - \return None - - \internal - //The typical code is: - ZCL_Cluster_t myClusters[] = - { - ZCL_DEFINE_BASIC_CLUSTER_CLIENT(), - //... Any other cluster defining ... - } -*******************************************************************************/ -#define ZCL_DEFINE_BASIC_CLUSTER_CLIENT() \ - { \ - .id = BASIC_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY, .ackRequest = 1}, \ - .attributesAmount = ZCL_BASIC_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = NULL, \ - .commandsAmount = ZCL_BASIC_CLUSTER_CLIENT_COMMANDS_AMOUNT, \ - .commands = NULL \ - } - - -BEGIN_PACK -/***************************************************************************//** - \brief - ZCL Basic Cluster server side attributes -*******************************************************************************/ -typedef struct PACK -{ - //!Basic Device Information attribute set (Id == 0x00) - - /*!ZCL Version attribute (Read only, M) - The ZCLVersion attribute is 8-bits in length and specifies the version number of - the ZigBee Cluster Library that all clusters on this endpoint conform to. For the - initial version of the ZCL, this attribute shall be set to 0x01. - */ - struct PACK - { - ZCL_AttributeId_t id; //! -#include - -/****************************************************************************** - Defines section -******************************************************************************/ - -/** - * \brief ZLL Server Cluster attributes amount. -*/ -#define ZCL_COLOR_CONTROL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 32 - -/** - * \brief ZLL Client Cluster attributes amount. -*/ -#define ZCL_COLOR_CONTROL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief ZLL Cluster server's attributes identifiers -*/ - -#define ZCL_ZLL_CLUSTER_CURRENT_HUE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_ZLL_CLUSTER_CURRENT_SATURATION_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -#define ZCL_ZLL_CLUSTER_REMAINING_TIME_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) -#define ZCL_ZLL_CLUSTER_CURRENT_X_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0003) -#define ZCL_ZLL_CLUSTER_CURRENT_Y_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0004) -#define ZCL_ZLL_CLUSTER_COLOR_MODE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0008) -#define ZCL_ZLL_CLUSTER_NUMBER_OF_PRIMARIES_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0010) -#define ZCL_ZLL_CLUSTER_PRIMARY_1_X_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0011) -#define ZCL_ZLL_CLUSTER_PRIMARY_1_Y_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0012) -#define ZCL_ZLL_CLUSTER_PRIMARY_1_INTENSITY_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0013) -#define ZCL_ZLL_CLUSTER_PRIMARY_2_X_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0015) -#define ZCL_ZLL_CLUSTER_PRIMARY_2_Y_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0016) -#define ZCL_ZLL_CLUSTER_PRIMARY_2_INTENSITY_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0017) -#define ZCL_ZLL_CLUSTER_PRIMARY_3_X_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0019) -#define ZCL_ZLL_CLUSTER_PRIMARY_3_Y_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x001A) -#define ZCL_ZLL_CLUSTER_PRIMARY_3_INTENSITY_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x001B) -#define ZCL_ZLL_CLUSTER_PRIMARY_4_X_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0020) -#define ZCL_ZLL_CLUSTER_PRIMARY_4_Y_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0021) -#define ZCL_ZLL_CLUSTER_PRIMARY_4_INTENSITY_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0022) -#define ZCL_ZLL_CLUSTER_PRIMARY_5_X_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0024) -#define ZCL_ZLL_CLUSTER_PRIMARY_5_Y_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0025) -#define ZCL_ZLL_CLUSTER_PRIMARY_5_INTENSITY_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0026) -#define ZCL_ZLL_CLUSTER_PRIMARY_6_X_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0028) -#define ZCL_ZLL_CLUSTER_PRIMARY_6_Y_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0029) -#define ZCL_ZLL_CLUSTER_PRIMARY_6_INTENSITY_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x002A) -/* Additional attributes */ -#define ZCL_ZLL_CLUSTER_ENHANCED_CURRENT_HUE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4000) -#define ZCL_ZLL_CLUSTER_ENHANCED_COLOR_MODE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4001) -#define ZCL_ZLL_CLUSTER_COLOR_LOOP_ACTIVE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4002) -#define ZCL_ZLL_CLUSTER_COLOR_LOOP_DIRECTION_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4003) -#define ZCL_ZLL_CLUSTER_COLOR_LOOP_TIME_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4004) -#define ZCL_ZLL_CLUSTER_COLOR_LOOP_START_ENHANCED_HUE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4005) -#define ZCL_ZLL_CLUSTER_COLOR_LOOP_STOP_ENHANCED_HUE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4006) - -#define DEFINE_COLOR_CONTROL_CLUSTER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(currentHue, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_CURRENT_HUE_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(currentSaturation, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_CURRENT_SATURATION_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(remainingTime, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_REMAINING_TIME_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(currentX, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_CURRENT_X_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(currentY, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_CURRENT_Y_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(colorMode, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_COLOR_MODE_SERVER_ATTRIBUTE_ID, ZCL_8BIT_ENUM_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(numberOfPrimaries, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_NUMBER_OF_PRIMARIES_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary1X, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_1_X_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary1Y, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_1_Y_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary1XIntensity, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_1_INTENSITY_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary2X, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_2_X_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary2Y, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_2_Y_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary2XIntensity, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_2_INTENSITY_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary3X, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_3_X_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary3Y, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_3_Y_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary3XIntensity, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_3_INTENSITY_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary4X, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_4_X_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary4Y, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_4_Y_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary4XIntensity, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_4_INTENSITY_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary5X, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_5_X_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary5Y, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_5_Y_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary5XIntensity, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_5_INTENSITY_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary6X, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_6_X_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary6Y, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_6_Y_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(primary6XIntensity, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_PRIMARY_6_INTENSITY_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(enhancedCurrentHue, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_ENHANCED_CURRENT_HUE_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(enhancedColorMode, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_ENHANCED_COLOR_MODE_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(colorLoopActive, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_COLOR_LOOP_ACTIVE_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(colorLoopDirection, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_COLOR_LOOP_DIRECTION_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(colorLoopTime, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_COLOR_LOOP_TIME_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(colorLoopStartEnhancedHue, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_COLOR_LOOP_START_ENHANCED_HUE_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(colorLoopStopEnhancedHue, ZCL_READONLY_ATTRIBUTE, ZCL_ZLL_CLUSTER_COLOR_LOOP_STOP_ENHANCED_HUE_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID) - -/** - * \brief ZLL Client Cluster commands amount. -*/ -#define ZCL_COLOR_CONTROL_CLUSTER_COMMANDS_AMOUNT 16 - -/** - * \brief ZLL Client Cluster commands identifiers. -*/ -#define MOVE_TO_HUE_COMMAND_ID 0x00 -#define MOVE_HUE_COMMAND_ID 0x01 -#define STEP_HUE_COMMAND_ID 0x02 -#define MOVE_TO_SATURATION_COMMAND_ID 0x03 -#define MOVE_SATURATION_COMMAND_ID 0x04 -#define STEP_SATURATION_COMMAND_ID 0x05 -#define MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x06 -#define MOVE_TO_COLOR_COMMAND_ID 0x07 -#define MOVE_COLOR_COMMAND_ID 0x08 -#define STEP_COLOR_COMMAND_ID 0x09 -/* Additional commands */ -#define ENHANCED_MOVE_TO_HUE_COMMAND_ID 0x40 -#define ENHANCED_MOVE_HUE_COMMAND_ID 0x41 -#define ENHANCED_STEP_HUE_COMMAND_ID 0x42 -#define ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID 0x43 -#define COLOR_LOOP_SET_COMMAND_ID 0x44 -#define STOP_MOVE_STEP_COMMAND_ID 0x47 - - -#define ZCL_COLOR_CONTROL_CLUSTER_COMMANDS(moveToHueInd, \ - moveHueInd, \ - stepHueInd, \ - moveToSaturationInd, \ - moveSaturationInd, \ - stepSaturationInd, \ - moveToHueAndSaturationInd, \ - moveToColorInd, \ - moveColorInd, \ - stepColorInd, \ - enhancedMoveToHueInd, \ - enhancedMoveHueInd, \ - enhancedStepHueInd, \ - enhancedMoveToHueAndSaturationInd, \ - colorLoopSetInd, \ - stopMoveStepInd) \ - DEFINE_COMMAND(moveToHueCommand, MOVE_TO_HUE_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), moveToHueInd), \ - DEFINE_COMMAND(moveHueCommand, MOVE_HUE_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), moveHueInd), \ - DEFINE_COMMAND(stepHueCommand, STEP_HUE_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), stepHueInd), \ - DEFINE_COMMAND(moveToSaturationCommand, MOVE_TO_SATURATION_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), moveToSaturationInd), \ - DEFINE_COMMAND(moveSaturationCommand, MOVE_SATURATION_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), moveSaturationInd), \ - DEFINE_COMMAND(stepSaturationCommand, STEP_SATURATION_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), stepSaturationInd), \ - DEFINE_COMMAND(moveToHueAndSaturationCommand, MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), moveToHueAndSaturationInd), \ - DEFINE_COMMAND(moveToColorCommand, MOVE_TO_COLOR_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), moveToColorInd), \ - DEFINE_COMMAND(moveColorCommand, MOVE_COLOR_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), moveColorInd), \ - DEFINE_COMMAND(stepColorCommand, STEP_COLOR_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), stepColorInd), \ - DEFINE_COMMAND(enhancedMoveToHueCommand, ENHANCED_MOVE_TO_HUE_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), enhancedMoveToHueInd), \ - DEFINE_COMMAND(enhancedMoveHueCommand, ENHANCED_MOVE_HUE_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), enhancedMoveHueInd), \ - DEFINE_COMMAND(enhancedStepHueCommand, ENHANCED_STEP_HUE_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), enhancedStepHueInd), \ - DEFINE_COMMAND(enhancedMoveToHueAndSaturationCommand, ENHANCED_MOVE_TO_HUE_AND_SATURATION_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), enhancedMoveToHueAndSaturationInd), \ - DEFINE_COMMAND(colorLoopSetCommand, COLOR_LOOP_SET_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), colorLoopSetInd), \ - DEFINE_COMMAND(stopMoveStepCommand, STOP_MOVE_STEP_COMMAND_ID, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), stopMoveStepInd) - -#define ZLL_COLOR_CONTROL_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = COLOR_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_COLOR_CONTROL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_COLOR_CONTROL_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define ZLL_COLOR_CONTROL_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = COLOR_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_COLOR_CONTROL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_COLOR_CONTROL_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } -#define DEFINE_COLOR_CONTROL_CLUSTER(cltype, clattributes, clcommands) ZLL_COLOR_CONTROL_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK -/***************************************************************************//** - \brief - ZCL Color Control Cluster server side attributes -*******************************************************************************/ -typedef struct PACK -{ - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } currentHue; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } currentSaturation; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } remainingTime; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } currentX; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } currentY; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } colorMode; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } numberOfPrimaries; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary1X; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary1Y; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } primary1XIntensity; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary2X; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary2Y; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } primary2XIntensity; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary3X; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary3Y; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } primary3XIntensity; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary4X; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary4Y; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } primary4XIntensity; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary5X; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary5Y; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } primary5XIntensity; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary6X; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } primary6Y; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } primary6XIntensity; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } enhancedCurrentHue; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } enhancedColorMode; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } colorLoopActive; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } colorLoopDirection; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } colorLoopTime; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } colorLoopStartEnhancedHue; - - /*!TBD - */ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } colorLoopStopEnhancedHue; - -} ZCL_ColorControlClusterServerAttributes_t; - -END_PACK - -/** - * \brief MoveToHue command direction values -*/ -typedef enum _ZCL_ZllMoveToHueDirection_t -{ - ZCL_ZLL_MOVE_TO_HUE_DIRECTION_SHORTEST_DISTANCE = 0x00, - ZCL_ZLL_MOVE_TO_HUE_DIRECTION_LONGEST_DISTANCE = 0x01, - ZCL_ZLL_MOVE_TO_HUE_DIRECTION_UP = 0x02, - ZCL_ZLL_MOVE_TO_HUE_DIRECTION_DOWN = 0x03, -} ZCL_ZllMoveToHueDirection_t; - -/** - * \brief MoveHue command moveMode values -*/ -typedef enum _ZCL_ZllMoveHueMoveMode_t -{ - ZCL_ZLL_MOVE_HUE_MOVE_MODE_STOP = 0x00, - ZCL_ZLL_MOVE_HUE_MOVE_MODE_UP = 0x01, - ZCL_ZLL_MOVE_HUE_MOVE_MODE_DOWN = 0x03, -} ZCL_ZllMoveHueMoveMode_t; - -/** - * \brief StepHue command stepMode values -*/ -typedef enum _ZCL_ZllStepHueStepMode_t -{ - ZCL_ZLL_STEP_HUE_STEP_MODE_UP = 0x01, - ZCL_ZLL_STEP_HUE_STEP_MODE_DOWN = 0x03, -} ZCL_ZllStepHueStepMode_t; - -/** - * \brief MoveSaturation command moveMode values -*/ -typedef enum _ZCL_ZllMoveSaturationMoveMode_t -{ - ZCL_ZLL_MOVE_SATURATION_MOVE_MODE_STOP = 0x00, - ZCL_ZLL_MOVE_SATURATION_MOVE_MODE_UP = 0x01, - ZCL_ZLL_MOVE_SATURATION_MOVE_MODE_DOWN = 0x03, -} ZCL_ZllMoveSaturationMoveMode_t; - -/** - * \brief StepSaturation command stepMode values -*/ -typedef enum _ZCL_ZllStepSaturationStepMode_t -{ - ZCL_ZLL_STEP_SATURATION_STEP_MODE_UP = 0x01, - ZCL_ZLL_STEP_SATURATION_STEP_MODE_DOWN = 0x03, -} ZCL_ZllStepSaturationStepMode_t; - -/** - * \brief ColorLoopSet command action values -*/ -typedef enum _ZCL_ZllColorLoopSetAction_t -{ - ZCL_ZLL_COLOR_LOOP_SET_ACTION_DEACTIVATE = 0x00, - ZCL_ZLL_COLOR_LOOP_SET_ACTION_ACTIVATE = 0x01, - ZCL_ZLL_COLOR_LOOP_SET_ACTION_ACTIVATE_ENHANCED = 0x02, -} ZCL_ZllColorLoopSetAction_t; - -/** - * \brief ColorLoopSet command direction values -*/ -typedef enum _ZCL_ZllColorLoopSetDirection_t -{ - ZCL_ZLL_COLOR_LOOP_SET_DIRECTION_DECREMENT_HUE = 0x00, - ZCL_ZLL_COLOR_LOOP_SET_DIRECTION_INCREMENT_HUE = 0x01, -} ZCL_ZllColorLoopSetDirection_t; - -/** - * \brief EnhancedColorMode values -*/ -typedef enum _ZCL_ZllEnhancedColorMode_t -{ - ZCL_ZLL_CURRENT_HUE_AND_CURRENT_SATURATION = 0x00, - ZCL_ZLL_CURRENT_X_AND_CURRENT_Y = 0x01, - ZCL_ZLL_COLOR_TEMPERATURE = 0x02, - ZCL_ZLL_ENHANCED_CURRENT_HUE_AND_CURRENT_SATURATION = 0x03, -} ZCL_ZllEnhancedColorMode_t; - -BEGIN_PACK -/** - * \brief MoveToHue command payload format -*/ -typedef struct PACK _ZCL_ZllMoveToHueCommand_t -{ - uint8_t hue; - uint8_t direction; - uint16_t transitionTime; -} ZCL_ZllMoveToHueCommand_t; - -/** - * \brief MoveHue command payload format -*/ -typedef struct PACK _ZCL_ZllMoveHueCommand_t -{ - uint8_t moveMode; - uint8_t rate; -} ZCL_ZllMoveHueCommand_t; - -/** - * \brief StepHue command payload format -*/ -typedef struct PACK _ZCL_ZllStepHueCommand_t -{ - uint8_t stepMode; - uint8_t stepSize; - uint8_t transitionTime; /* uint16_t ? */ -} ZCL_ZllStepHueCommand_t; - -/** - * \brief MoveToSaturation command payload format -*/ -typedef struct PACK _ZCL_ZllMoveToSaturationCommand_t -{ - uint8_t saturation; - uint16_t transitionTime; -} ZCL_ZllMoveToSaturationCommand_t; - -/** - * \brief MoveSaturation command payload format -*/ -typedef struct PACK _ZCL_ZllMoveSaturationCommand_t -{ - uint8_t moveMode; - uint8_t rate; -} ZCL_ZllMoveSaturationCommand_t; - -/** - * \brief StepSaturation command payload format -*/ -typedef struct PACK _ZCL_ZllStepSaturationCommand_t -{ - uint8_t stepMode; - uint8_t stepSize; - uint8_t transitionTime; /* uint16_t ? */ -} ZCL_ZllStepSaturationCommand_t; - -/** - * \brief MoveToHueAndSaturation command payload format -*/ -typedef struct PACK _ZCL_ZllMoveToHueAndSaturationCommand_t -{ - uint8_t hue; - uint8_t saturation; - uint16_t transitionTime; -} ZCL_ZllMoveToHueAndSaturationCommand_t; - -/** - * \brief MoveToColor command payload format -*/ -typedef struct PACK _ZCL_ZllMoveToColorCommand_t -{ - uint16_t colorX; - uint16_t colorY; - uint16_t transitionTime; -} ZCL_ZllMoveToColorCommand_t; - -/** - * \brief MoveColor command payload format -*/ -typedef struct PACK _ZCL_ZllMoveColorCommand_t -{ - int16_t rateX; - int16_t rateY; -} ZCL_ZllMoveColorCommand_t; - -/** - * \brief StepColor command payload format -*/ -typedef struct PACK _ZCL_ZllStepColorCommand_t -{ - int16_t stepX; - int16_t stepY; - uint16_t transitionTime; -} ZCL_ZllStepColorCommand_t; - -/** - * \brief EnhancedMoveToHue command payload format -*/ -typedef struct PACK _ZCL_ZllEnhancedMoveToHueCommand_t -{ - uint16_t enhancedHue; - uint8_t direction; - uint16_t transitionTime; -} ZCL_ZllEnhancedMoveToHueCommand_t; - -/** - * \brief EnhancedMoveHue command payload format -*/ -typedef struct PACK _ZCL_ZllEnhancedMoveHueCommand_t -{ - uint8_t moveMode; - uint16_t rate; -} ZCL_ZllEnhancedMoveHueCommand_t; - -/** - * \brief EnhancedStepHue command payload format -*/ -typedef struct PACK _ZCL_ZllEnhancedStepHueCommand_t -{ - uint8_t stepMode; - uint16_t stepSize; - uint16_t transitionTime; -} ZCL_ZllEnhancedStepHueCommand_t; - -/** - * \brief EnhancedMoveToHueAndSaturation command payload format -*/ -typedef struct PACK _ZCL_ZllEnhancedMoveToHueAndSaturationCommand_t -{ - uint16_t enhancedHue; - uint8_t saturation; - uint16_t transitionTime; -} ZCL_ZllEnhancedMoveToHueAndSaturationCommand_t; - -/** - * \brief ColorLoopSet command payload format -*/ -typedef struct PACK _ZCL_ZllColorLoopSetCommand_t -{ - uint8_t updateFlags; - uint8_t action; - uint8_t direction; - uint16_t time; - uint16_t startHue; -} ZCL_ZllColorLoopSetCommand_t; - -/** - * \brief Color Control Cluster extension field set - */ -typedef struct PACK -{ - uint16_t clusterId; - uint8_t length; - uint16_t currentX; - uint16_t currentY; - uint16_t enhancedCurrentHue; - uint16_t currentSaturation; -} ZCL_ColorControlClusterExtensionFieldSet_t; - -END_PACK - -/** - * \brief Color Control cluster commands - */ -typedef struct _ZCL_ZllColorControlClusterCommands_t -{ - //! MoveToHue command descriptor - struct - { - ZCL_CommandId_t id; //! -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief Commissioning Server Cluster attributes amount. -*/ - -#define ZCL_COMMISSIONING_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Commissioning Client Cluster attributes amount. -*/ - -#define ZCL_COMMISSIONING_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Commissioning Client Cluster commands amount. -*/ - -#define ZCL_COMMISSIONING_CLUSTER_COMMANDS_AMOUNT 5 - -/** - * \brief Commissioning Server Cluster commands identifiers. -*/ - -#define ZCL_COMMISSIONING_CLUSTER_ENDPOINT_INFORMATION_COMMAND_ID 0x40 -#define ZCL_COMMISSIONING_CLUSTER_GET_GROUP_IDENTIFIERS_RESPONSE_COMMAND_ID 0x41 -#define ZCL_COMMISSIONING_CLUSTER_GET_ENDPOINT_LIST_RESPONSE_COMMAND_ID 0x42 - -/** - * \brief Commissioning Client Cluster commands identifiers. -*/ - -#define ZCL_COMMISSIONING_CLUSTER_GET_GROUP_IDENTIFIERS_COMMAND_ID 0x41 -#define ZCL_COMMISSIONING_CLUSTER_GET_ENDPOINT_LIST_COMMAND_ID 0x42 - -/* - * \brief ZCL Commissioning Cluster commands defining macros - */ - -#define ZCL_DEFINE_COMMISSIONING_CLUSTER_COMMANDS(getGroupIdentifiersInd, getEndpointListInd, \ - endpointInformationResponseInd, getGroupIdentifiersResponseInd, getEndpointListResponseInd) \ - DEFINE_COMMAND(getGroupIdentifiersCommand, 0x41, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), getGroupIdentifiersInd), \ - DEFINE_COMMAND(getEndpointListCommand, 0x42, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), getEndpointListInd), \ - DEFINE_COMMAND(endpointInformationResponseCommand, 0x40, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), endpointInformationResponseInd), \ - DEFINE_COMMAND(getGroupIdentifiersResponseCommand, 0x41, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), getGroupIdentifiersResponseInd), \ - DEFINE_COMMAND(getEndpointListResponseCommand, 0x42, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), getEndpointListResponseInd) - - -#define COMMISSIONING_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = ZLL_COMMISSIONING_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_COMMISSIONING_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_COMMISSIONING_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define COMMISSIONING_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = ZLL_COMMISSIONING_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_COMMISSIONING_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_COMMISSIONING_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define DEFINE_COMMISSIONING_CLUSTER(cltype, clattributes, clcommands) COMMISSIONING_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK - -/** - * \brief Get Group Identifiers command format -*/ -typedef struct PACK -{ - uint8_t startIndex; -} ZCL_GetGroupIdentifiers_t; - -/** - * \brief Get Endpoint List command format -*/ -typedef struct PACK -{ - uint8_t startIndex; -} ZCL_GetEndpointList_t; - -/** - * \brief Endpoint Information Response command format -*/ -typedef struct PACK -{ - uint64_t ieeeAddress; - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} ZCL_EndpointInformationResponse_t; - -/** - * \brief Group Information Record format -*/ -typedef struct PACK -{ - uint16_t groupId; - uint8_t groupType; -} ZCL_GroupInformationRecord_t; - -/** - * \brief Endpoint Information Record format -*/ -typedef struct PACK -{ - uint16_t networkAddress; - uint8_t endpointId; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; -} ZCL_EndpointInformationRecord_t; - -/** - * \brief Get Group Identifiers Response command format -*/ -typedef struct PACK -{ - uint8_t total; - uint8_t startIndex; - uint8_t count; - ZCL_GroupInformationRecord_t recordList[5]; -} ZCL_GetGroupIdentifiersResponse_t; - -/** - * \brief Get Endpoint List Response command format -*/ -typedef struct PACK -{ - uint8_t total; - uint8_t startIndex; - uint8_t count; - ZCL_EndpointInformationRecord_t recordList[1]; -} ZCL_GetEndpointListResponse_t; - -END_PACK - -typedef struct -{ - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*getGroupIdentifiersCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetGroupIdentifiers_t *payload); - } getGroupIdentifiersCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*getEndpointListCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetEndpointList_t *payload); - } getEndpointListCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*endpointInformationResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_EndpointInformationResponse_t *payload); - } endpointInformationResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*getGroupIdentifiersResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetGroupIdentifiersResponse_t *payload); - } getGroupIdentifiersResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*getEndpointListResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetEndpointListResponse_t *payload); - } getEndpointListResponseCommand; -} ZCL_CommissioningClusterCommands_t; - - -#endif // _ZCLZLLCOMISSIONINGCLUSTER_H - -// eof zclZllCommissioningCluster.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllFrameFormat.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllFrameFormat.h deleted file mode 100644 index e09d3023..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllFrameFormat.h +++ /dev/null @@ -1,265 +0,0 @@ -/**************************************************************************//** - \file zclZllFrameFormat.h - - \brief - Inter-PAN commands frame formats for ZLL. - - \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: - 16.03.10 A. Taradov - Created. -******************************************************************************/ -#ifndef _ZCLZLLFRAMEFORMAT_H -#define _ZCLZLLFRAMEFORMAT_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ -#define MAX_DEVICE_INFO_ENTRIES_NUMBER 1 - -/****************************************************************************** - Types section -******************************************************************************/ -typedef enum _ZclZllCommandId_t -{ - ZCL_ZLL_SCAN_REQUEST_COMMAND_ID = 0x00, - ZCL_ZLL_SCAN_RESPONSE_COMMAND_ID = 0x01, - ZCL_ZLL_DEVICE_INFO_REQUEST_COMMAND_ID = 0x02, - ZCL_ZLL_DEVICE_INFO_RESPONSE_COMMAND_ID = 0x03, - ZCL_ZLL_IDENTIFY_REQUEST_COMMAND_ID = 0x06, - ZCL_ZLL_RESET_TO_FACTORY_NEW_REQUEST_COMMAND_ID = 0x07, - ZCL_ZLL_NETWORK_START_REQUEST_COMMAND_ID = 0x10, - ZCL_ZLL_NETWORK_START_RESPONSE_COMMAND_ID = 0x11, - ZCL_ZLL_NETWORK_JOIN_ROUTER_REQUEST_COMMAND_ID = 0x12, - ZCL_ZLL_NETWORK_JOIN_ROUTER_RESPONSE_COMMAND_ID = 0x13, - ZCL_ZLL_NETWORK_JOIN_ENDDEVICE_REQUEST_COMMAND_ID = 0x14, - ZCL_ZLL_NETWORK_JOIN_ENDDEVICE_RESPONSE_COMMAND_ID = 0x15, - ZCL_ZLL_NETWORK_UPDATE_REQUEST_COMMAND_ID = 0x16, -} ZclZllCommandId_t; - -BEGIN_PACK -typedef struct PACK -{ - struct - { - uint8_t frameType : 2; /*! Frame type sub-field */ - uint8_t manufacturerSpecific : 1; /*! Manufacturer specific sub-field */ - uint8_t direction : 1; /*! Direction sub-field */ - uint8_t defaultResponse : 1; /*! Disable default response sub-field */ - uint8_t reserved : 3; /*! Reserved bits. Must have a zero value */ - } frameControl; - uint8_t seq; - uint8_t commandId; -} ZclZllFrameHeader_t; - -typedef struct PACK -{ - uint8_t logicalType : 2; - uint8_t rxOnWhenIdle : 1; - uint8_t reserved : 5; -} ZclZllZigBeeInfo_t; - -typedef struct PACK -{ - uint8_t factoryNew : 1; - uint8_t addressAssignment : 1; - uint8_t compoundDevice : 1; - uint8_t relayedScanRequest : 1; - uint8_t touchLinkInitiator : 1; - uint8_t touchLinkTimeWindow : 1; /*! This field is reserved in Scan Request frame */ - uint8_t reserved : 2; -} ZclZllInfo_t; - -typedef struct PACK -{ - uint64_t ieeeAddress; - uint8_t endpoint; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIds; - uint8_t sort; -} ZclZllDeviceInfoEntry_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - ZclZllZigBeeInfo_t zigBeeInfo; - ZclZllInfo_t zllInfo; -} ZclZllScanRequestFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint8_t rssiCorrection; - ZclZllZigBeeInfo_t zigBeeInfo; - ZclZllInfo_t zllInfo; - uint16_t keyBitMask; - uint32_t responseId; - uint64_t extPanId; - uint8_t nwkUpdateId; - uint8_t channel; - uint16_t panId; - uint16_t networkAddress; - uint8_t numberSubDevices; - uint8_t totalGroupIds; - // next fields are present only if numberSubDevices == 1 - union - { - struct - { - uint8_t endpoint; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIds; - }; - uint64_t ieeeRelayerScanRequest1; - }; - /*! This field is present only if zllInfo.relayedScanRequest == 1 */ - uint64_t ieeeRelayerScanRequest2; -} ZclZllScanResponseFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint8_t startIndex; -} ZclZllDeviceInfoRequestFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint8_t numberSubDevices; - uint8_t startIndex; - uint8_t count; - ZclZllDeviceInfoEntry_t entries[MAX_DEVICE_INFO_ENTRIES_NUMBER]; -} ZclZllDeviceInfoResponseFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint16_t identifyTime; -} ZclZllIdentifyRequestFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; -} ZclZllResetToFactoryNewRequestFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint64_t extendedPanId; - uint8_t keyIndex; - uint8_t encryptedNwkKey[SECURITY_KEY_SIZE]; - uint8_t channel; - uint16_t panId; - uint16_t nwkAddress; - uint16_t groupIdsBegin; - uint16_t groupIdsEnd; - uint16_t freeNwkAddressRangeBegin; - uint16_t freeNwkAddressRangeEnd; - uint16_t freeGroupIdRangeBegin; - uint16_t freeGroupIdRangeEnd; - uint64_t edIeeeAddress; - uint16_t edNwkAddress; -} ZclZllNetworkStartRequestFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint8_t status; - uint64_t extendedPanId; - uint8_t nwkUpdateId; - uint8_t channel; - uint16_t panId; -} ZclZllNetworkStartResponseFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint64_t extendedPanId; - uint8_t keyIndex; - uint8_t encryptedNwkKey[SECURITY_KEY_SIZE]; - uint8_t nwkUpdateId; - uint8_t channel; - uint16_t panId; - uint16_t nwkAddress; - uint16_t groupIdsBegin; - uint16_t groupIdsEnd; - uint16_t freeNwkAddressRangeBegin; - uint16_t freeNwkAddressRangeEnd; - uint16_t freeGroupIdRangeBegin; - uint16_t freeGroupIdRangeEnd; -} ZclZllNetworkJoinRouterRequestFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint8_t status; -} ZclZllNetworkJoinRouterResponseFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint64_t extendedPanId; - uint8_t keyIndex; - uint8_t encryptedNwkKey[SECURITY_KEY_SIZE]; - uint8_t nwkUpdateId; - uint8_t channel; - uint16_t panId; - uint16_t nwkAddress; - uint16_t groupIdsBegin; - uint16_t groupIdsEnd; - uint16_t freeNwkAddressRangeBegin; - uint16_t freeNwkAddressRangeEnd; - uint16_t freeGroupIdRangeBegin; - uint16_t freeGroupIdRangeEnd; -} ZclZllNetworkJoinEndDeviceRequestFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint8_t status; -} ZclZllNetworkJoinEndDeviceResponseFrame_t; - -typedef struct PACK -{ - ZclZllFrameHeader_t header; - uint32_t transactionId; - uint64_t extendedPanId; - uint8_t nwkUpdateId; - uint8_t channel; - uint16_t panId; - uint16_t nwkAddress; -} ZclZllNetworkUpdateRequestFrame_t; - -END_PACK - -#endif // _ZCLZLLFRAMEFORMAT_H - -// eof zclZllFrameFormat.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllGroupsCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllGroupsCluster.h deleted file mode 100644 index b265c49b..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllGroupsCluster.h +++ /dev/null @@ -1,363 +0,0 @@ -/***************************************************************************//** - \file zclZllGroupsCluster.h - - \brief - The header file describes the ZCL ZLL Groups Cluster and its interface - - The file describes the types and interface of the ZCL Groups Cluster - - \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: - 12.02.09 D. Kasyanov - Created. -*******************************************************************************/ - -#ifndef _ZCLZLLGROUPSCLUSTER_H -#define _ZCLZLLGROUPSCLUSTER_H - -/*! -Attributes and commands for determining basic information about a device, -setting user device information such as location, enabling a device and resetting it -to factory defaults. -*/ - -/******************************************************************************* - Includes section -*******************************************************************************/ - -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -#define MAX_GROUPS_IN_GROUP_MEMBERSHIP_RESPONSE 5 - -/** - * \brief Groups Cluster group name support bit -*/ - -#define GROUP_NAME_SUPPORT_FLAG 0x80 - -/** - * \brief Groups Cluster server attributes amount -*/ - -#define ZCL_GROUPS_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/** - * \brief Groups Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_GROUPS_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Groups Cluster commands amount -*/ - -#define ZCL_GROUPS_CLUSTER_COMMANDS_AMOUNT 10 - -/** - * \brief Groups Cluster server's attributes identifiers -*/ - -#define ZCL_GROUPS_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) - -/** - * \brief Groups Cluster client's command identifiers -*/ - -#define ZCL_GROUPS_CLUSTER_ADD_GROUP_COMMAND_ID 0x00 -#define ZCL_GROUPS_CLUSTER_VIEW_GROUP_COMMAND_ID 0x01 -#define ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_COMMAND_ID 0x02 -#define ZCL_GROUPS_CLUSTER_REMOVE_GROUP_COMMAND_ID 0x03 -#define ZCL_GROUPS_CLUSTER_REMOVE_ALL_GROUPS_COMMAND_ID 0x04 -#define ZCL_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID 0x05 - -/** - * \brief Groups Cluster servers's command identifiers -*/ - -#define ZCL_GROUPS_CLUSTER_ADD_GROUP_RESPONSE_COMMAND_ID 0x00 -#define ZCL_GROUPS_CLUSTER_VIEW_GROUP_RESPONSE_COMMAND_ID 0x01 -#define ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID 0x02 -#define ZCL_GROUPS_CLUSTER_REMOVE_GROUP_RESPONSE_COMMAND_ID 0x03 - -/** - * \brief Groups Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_GROUPS_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(nameSupport, ZCL_READONLY_ATTRIBUTE, ZCL_GROUPS_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID, ZCL_8BIT_BITMAP_DATA_TYPE_ID) - -/** - * \brief On/Off Cluster define commands macros -*/ - -#define ZCL_DEFINE_GROUPS_CLUSTER_COMMANDS(addGroupCommandInd, viewGroupCommandInd, getGroupMembershipCommandInd, \ - removeGroupCommandInd, removeAllGroupsCommandInd, addGroupIfIdentifyingCommandInd, \ - addGroupResponseCommandInd, viewGroupResponseCommandInd, getGroupMembershipResponseCommandInd, \ - removeGroupResponseCommandInd) \ - DEFINE_COMMAND(addGroupCommand, ZCL_GROUPS_CLUSTER_ADD_GROUP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addGroupCommandInd), \ - DEFINE_COMMAND(viewGroupCommand, ZCL_GROUPS_CLUSTER_VIEW_GROUP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewGroupCommandInd), \ - DEFINE_COMMAND(getGroupMembershipCommand, ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getGroupMembershipCommandInd), \ - DEFINE_COMMAND(removeGroupCommand, ZCL_GROUPS_CLUSTER_REMOVE_GROUP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeGroupCommandInd), \ - DEFINE_COMMAND(removeAllGroupsCommand, ZCL_GROUPS_CLUSTER_REMOVE_ALL_GROUPS_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeAllGroupsCommandInd), \ - DEFINE_COMMAND(addGroupIfIdentifyingCommand, ZCL_GROUPS_CLUSTER_ADD_GROUP_IF_IDENTIFYING_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addGroupIfIdentifyingCommandInd), \ - DEFINE_COMMAND(addGroupResponseCommand, ZCL_GROUPS_CLUSTER_ADD_GROUP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addGroupResponseCommandInd), \ - DEFINE_COMMAND(viewGroupResponseCommand, ZCL_GROUPS_CLUSTER_VIEW_GROUP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewGroupResponseCommandInd), \ - DEFINE_COMMAND(getGroupMembershipResponseCommand, ZCL_GROUPS_CLUSTER_GET_GROUP_MEMBERSHIP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getGroupMembershipResponseCommandInd), \ - DEFINE_COMMAND(removeGroupResponseCommand, ZCL_GROUPS_CLUSTER_REMOVE_GROUP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeGroupResponseCommandInd) - -/** - * \brief On/Off Cluster definition macros -*/ - -#define GROUPS_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = GROUPS_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_GROUPS_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_GROUPS_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define GROUPS_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = GROUPS_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_GROUPS_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_GROUPS_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_GROUPS_CLUSTER(cltype, clattributes, clcommands) \ - GROUPS_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section - ******************************************************************************/ -BEGIN_PACK - -/** - * \brief Add Group Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t groupName[1]; -} ZCL_AddGroup_t; - -/** - * \brief View Group Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_ViewGroup_t; - -/** - * \brief Get Group Membership Command Payload format. - */ - -typedef struct PACK -{ - uint8_t groupCount; - uint16_t groupList[1]; -} ZCL_GetGroupMembership_t; - -/** - * \brief Remove Group Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_RemoveGroup_t; - -/** - * \brief Add Group if identifying Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t groupName[1]; -} ZCL_AddGroupIfIdentifying_t; - -/** - * \brief Add Group Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; -} ZCL_AddGroupResponse_t; - -/** - * \brief View Group Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t groupName[1]; -} ZCL_ViewGroupResponse_t; - -/** - * \brief Get Group Membership Response Payload format. - */ - -typedef struct PACK -{ - uint8_t capacity; - uint8_t groupCount; - uint16_t groupList[MAX_GROUPS_IN_GROUP_MEMBERSHIP_RESPONSE]; -} ZCL_GetGroupMembershipResponse_t; - -/** - * \brief Remove Group Command Response Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; -} ZCL_RemoveGroupResponse_t; - -/** - * \brief Groups Cluster server's attributes - */ - -typedef struct PACK -{ - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } nameSupport; -} ZCL_GroupsClusterServerAttributes_t; - -END_PACK - -/** - * \brief Groups Cluster commands. - */ - -typedef struct -{ - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addGroupCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddGroup_t * payload); - } addGroupCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewGroupCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewGroup_t * payload); - } viewGroupCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getGroupMembershipCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetGroupMembership_t * payload); - } getGroupMembershipCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeGroupCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveGroup_t * payload); - } removeGroupCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeAllGroupsCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, void * payload); - } removeAllGroupsCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addGroupIfIdentifyingCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddGroupIfIdentifying_t * payload); - } addGroupIfIdentifyingCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addGroupResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddGroupResponse_t * payload); - } addGroupResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewGroupResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewGroupResponse_t * payload); - } viewGroupResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getGroupMembershipResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetGroupMembershipResponse_t * payload); - } getGroupMembershipResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeGroupResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveGroupResponse_t * payload); - } removeGroupResponseCommand; -} ZCL_GroupsClusterCommands_t; - -#endif /* _ZCLZLLGROUPSCLUSTER_H */ - diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIB.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIB.h deleted file mode 100644 index f3904c0e..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIB.h +++ /dev/null @@ -1,171 +0,0 @@ -/**************************************************************************//** - \file zclZllIB.h - - \brief - ZLL Information Base interface. - - \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: - 18.03.10 A. Taradov - Created. -******************************************************************************/ -#ifndef _ZCLZLLIB_H -#define _ZCLZLLIB_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ - -/****************************************************************************** - Types section -******************************************************************************/ - -// Device Information Table entry -typedef struct _DitEntry_t -{ - uint64_t ieee; - uint8_t ep; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIds; - uint8_t sort; -} ZCL_ZllDitEntry_t; - -typedef struct _ZCL_ZllDevice_t -{ - uint8_t factoryNew; - uint8_t channel; - PanId_t panId; - ExtPanId_t extPanId; - ShortAddr_t nwkAddr; - ExtAddr_t extAddr; - ShortAddr_t freeNwkAddressRangeBegin; - ShortAddr_t freeNwkAddressRangeEnd; - uint16_t freeGroupIdRangeBegin; - uint16_t freeGroupIdRangeEnd; - uint16_t groupIdsBegin; - uint16_t groupIdsEnd; - uint8_t nwkKey[SECURITY_KEY_SIZE]; -} ZCL_ZllDevice_t; - -typedef struct _ZCL_ZllIb_t -{ - ZCL_ZllDevice_t device; - ZclZllZigBeeInfo_t zigBeeInfo; - ZclZllInfo_t zllInfo; - ZCL_ZllDitEntry_t *dit; - uint8_t ditSize; - uint8_t numberSubDevices; - uint8_t totalGroupIds; - MAC_CapabilityInf_t capabilityInf; - uint8_t *appData; - uint16_t appDataSize; -} ZCL_ZllIb_t; - -/****************************************************************************** - Global variables -******************************************************************************/ -extern ZCL_ZllIb_t zclZllIB; - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/**************************************************************************//** -\brief Initialize Information Base and restore ZLL parameters and -application data - -This function is invoked by the ZCL_ZllReset() function and therefore should -not be called by the user directly. - -The function restores ZLL parameters and application data from EEPROM and sets -the restored network and stack parameters in Configuration Server as well. -******************************************************************************/ -void ZCL_ZllIbReset(void); - -/**************************************************************************//** -\brief Set application data that should be saved and restored - -This function specifies the memory which is used to store and restore -application data. The data will be saved in EEPROM when the ZCL_ZllIbSave() -function is called, and restored when ZCL_ZllIbReset() or ZCL_ZllReset() -functions are called (ZCL_ZllReset() invokes ZCL_ZllIbReset()). - -This function should be called before ZCL_ZllIbReset() or ZCL_ZllReset() to -specify the memory to which application data will be restored. - -Application data may be any abstract data. However, keeping network and -stack parameters in application data is unnecunnecessary, because they are -maintained by ZLL. - -\param[in] data - application data -\param[in] button - button number -******************************************************************************/ -void ZCL_ZllIbSetAppData(uint8_t *data, uint16_t size); - -/**************************************************************************//** -\brief Save ZLL parameters and application data in EEPROM - -The functions saves ZLL parameters and application data in EEPROM so that -they can be restored after device is reset. ZLL parameters are stored inside -the stack in the instance of the ZCL_ZllDevice_t type. This function should -be called each time after the application data is modofied. -******************************************************************************/ -void ZCL_ZllIbSave(void); - -/**************************************************************************//** -\brief Reset ZLL parameters to factory new settings and store them into EEPROM -******************************************************************************/ -void ZCL_ZllIbResetToFactoryNew(void); - -/**************************************************************************//** -\brief Set Device Information Table - -Device Information Table contains entries desribing logical device type -implemented on the device. However, most frequently the table has only one entry. -Since the table stores static information about application functionality, it is -not writtern into EEPROM, but is typically configured each time the application -starts. - -The following example shows how to fill a table with a single entry: - -\code -\\Global definition of the Device Information table -ZCL_ZllDitEntry_t deviceInfoTable[DEVICE_INFO_TABLE_ENTRIES]; -... -CS_ReadParameter(CS_UID_ID, &deviceInfoTable[0].ieee); //Read extended address from the Configuration Server -deviceInfoTable[0].ep = APP_ENDPOINT_COLOR_SCENE_REMOTE; -deviceInfoTable[0].profileId = APP_PROFILE_ID; -deviceInfoTable[0].deviceId = APP_DEVICE_ID; -deviceInfoTable[0].version = APP_VERSION; -deviceInfoTable[0].groupIds = APP_GROUP_IDS; //The number of group IDs -deviceInfoTable[0].sort = 0; -ZCL_ZllIbSetDeviceInfoTable(deviceInfoTable, 1); -\endcode - -Note that all constants starting with APP_ should be defined by the -application. - -\param[in] dit - pointer to the Device Information table -\param[in] size - number of entries in the table -******************************************************************************/ -void ZCL_ZllIbSetDeviceInfoTable(ZCL_ZllDitEntry_t dit[], uint8_t size); - -#endif // _ZCLZLLIB_H - -// eof zclZllIB.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIdentifyCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIdentifyCluster.h deleted file mode 100644 index ad27466e..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllIdentifyCluster.h +++ /dev/null @@ -1,215 +0,0 @@ -/***************************************************************************//** - \file zclZllIdentifyCluster.h - - \brief - The header file describes the ZLL Identify Cluster and its interface - - \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: - 04.07.11 A. Taradov - Created. -*******************************************************************************/ - -#ifndef _ZCLZLLIDENTIFYCLUSTER_H -#define _ZCLZLLIDENTIFYCLUSTER_H - -/*! -Attributes and commands for determining basic information about a device, -setting user device information such as location, enabling a device and resetting it -to factory defaults. -*/ - -/******************************************************************************* - Includes section -*******************************************************************************/ - -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief Identify Server Cluster attributes amount. -*/ - -#define ZCL_IDENTIFY_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/** - * \brief Identify Client Cluster attributes amount. -*/ - -#define ZCL_IDENTIFY_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Identify Client Cluster commands amount. -*/ - -#define ZCL_IDENTIFY_CLUSTER_COMMANDS_AMOUNT 4 - -/** - * \brief Identify Server Cluster attributes identifiers. -*/ - -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) - -/** - * \brief Identify Server Cluster commands identifiers. -*/ - -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_QUERY_RESPONSE_COMMAND_ID 0x00 - -/** - * \brief Identify Client Cluster commands identifiers. -*/ - -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_COMMAND_ID 0x00 -#define ZCL_IDENTIFY_CLUSTER_IDENTIFY_QUERY_COMMAND_ID 0x01 -#define ZCL_IDENTIFY_CLUSTER_TRIGGER_EFFECT_COMMAND_ID 0x40 - -/* - *\brief ZCL Idetify Cluster server side attributes defining macros - */ - -#define ZCL_DEFINE_IDENTIFY_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(identifyTime, ZCL_READWRITE_ATTRIBUTE, ZCL_IDENTIFY_CLUSTER_IDENTIFY_TIME_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID) - -/* - * \brief ZCL Identify Cluster commands defining macros - */ - -#define IDENTIFY_CLUSTER_COMMANDS(identifyCommandInd, identifyQueryCommandInd, triggerEffectCommandInd, identifyQueryResponseCommandInd) \ - DEFINE_COMMAND(identifyCommand, 0x00, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), identifyCommandInd), \ - DEFINE_COMMAND(identifyQueryCommand, 0x01, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), identifyQueryCommandInd), \ - DEFINE_COMMAND(triggerEffectCommand, 0x40, COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), triggerEffectCommandInd), \ - DEFINE_COMMAND(identifyQueryResponseCommand, 0x00, COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), identifyQueryResponseCommandInd) - -#define IDENTIFY_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = IDENTIFY_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_IDENTIFY_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_IDENTIFY_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define IDENTIFY_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ - { \ - .id = IDENTIFY_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_IDENTIFY_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_IDENTIFY_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ - } - -#define DEFINE_IDENTIFY_CLUSTER(cltype, clattributes, clcommands) IDENTIFY_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -/** - * \brief Possible values for the Effect Identifier field. -*/ -enum -{ - ZCL_EFFECT_IDENTIFIER_BLINK = 0x00, - ZCL_EFFECT_IDENTIFIER_BREATHE = 0x01, - ZCL_EFFECT_IDENTIFIER_OKAY = 0x02, - ZCL_EFFECT_IDENTIFIER_CHANNEL_CHANGE = 0x0b, - ZCL_EFFECT_IDENTIFIER_FINISH_EFFECT = 0xfe, - ZCL_EFFECT_IDENTIFIER_STOP_EFFECT = 0xff, -}; - -/** - * \brief Possible values for the Effect Variant field. -*/ -enum -{ - ZCL_EFFECT_VARIANT_DEFAULT = 0x00, -}; - -BEGIN_PACK - -/** - * \brief Identify Command Payload format. -*/ -typedef struct PACK -{ - uint16_t identifyTime; -} ZCL_Identify_t; - -/** - * \brief Trigger Effect Command Payload format. -*/ -typedef struct PACK -{ - uint8_t effectIdentifier; - uint8_t effectVariant; -} ZCL_TriggerEffect_t; - -/** - * \brief Identify Query Response Payload format. -*/ -typedef struct PACK -{ - uint16_t timeout; -} ZCL_IdentifyQueryResponse_t; - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } identifyTime; -} ZCL_IdentifyClusterAttributes_t; - -END_PACK - -typedef struct -{ - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*identifyCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_Identify_t *payload); - } identifyCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*identifyQueryCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, uint8_t *payload); - } identifyQueryCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*triggerEffectCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_TriggerEffect_t *payload); - } triggerEffectCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t (*identifyQueryResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_IdentifyQueryResponse_t *payload); - } identifyQueryResponseCommand; -} ZCL_IdentifyClusterCommands_t; - - -#endif // _ZCLZLLIDENTIFYCLUSTER_H - -// eof zclZllIdentifyCluster.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllInterPan.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllInterPan.h deleted file mode 100644 index 471f8a48..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllInterPan.h +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************//** - \file zclZllInterPan.h - - \brief - ZLL Inter-PAN operation interface. - - \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: - 17.03.10 A. Taradov - Created. -******************************************************************************/ -#ifndef _ZCLZLLINTERPAN_H -#define _ZCLZLLINTERPAN_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ - -/****************************************************************************** - Types section -******************************************************************************/ -typedef struct _ZCL_ZllInterPanStartConf_t -{ - ZCL_ZllStatus_t status; -} ZCL_ZllInterPanStartConf_t; - -typedef struct _ZCL_ZllInterPanStartReq_t -{ - ZCL_ZllInterPanStartConf_t confirm; - void (*ZCL_ZllInterPanStartConf)(ZCL_ZllInterPanStartConf_t *conf); -} ZCL_ZllInterPanStartReq_t; - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/**************************************************************************//** -\brief Reset ZLL Inter-PAN module -******************************************************************************/ -void ZCL_ZllInterPanReset(void); - -/**************************************************************************//** -\brief Prepare stack for Inter-PAN operation - -The function prepares the device for Inter-PAN communication. It is required -for starting network scan (invoked by the ZCL_ZllScanReq() function). - -The function is executed asynchronously. Invocation of the callback function -provided in the \c req->ZCL_ZllInterPanStartConf field indicates request -completion. If the request has been successful (the reported status equals -::ZCL_ZLL_SUCCESS_STATUS) ZigBee network features become unavailable. - -To restore normal stack operation, when Inter-PAN data exchange has finished, -call the ZDO_ResetNetworkReq() function. -******************************************************************************/ -void ZCL_ZllInterPanStartReq(ZCL_ZllInterPanStartReq_t *req); - -#endif // _ZCLZLLINTERPAN_H - -// eof zclZllInterPan.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllLevelControlCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllLevelControlCluster.h deleted file mode 100644 index 0bd8caa2..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllLevelControlCluster.h +++ /dev/null @@ -1,297 +0,0 @@ -/***************************************************************************//** - \file zclZllLevelControlCluster.h - - \brief - Interface and types of Level Control Cluster - - \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: - 22.06.10 D.Loskutnikov - Created. -*******************************************************************************/ - -#ifndef _ZCLZLLLEVELCONTROLCLUSTER_H -#define _ZCLZLLLEVELCONTROLCLUSTER_H - -/*! -Attributes and commands for determining basic information about a device, -setting user device information such as location, enabling a device and resetting it -to factory defaults. -*/ - -/******************************************************************************* - Includes section -*******************************************************************************/ - -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -#define ZLL_LEVEL_CONTROL_UP_DIRECTION 0x00 -#define ZLL_LEVEL_CONTROL_DOWN_DIRECTION 0x01 - -/** - * \brief Amount of Level Control cluster server's attributes -*/ -#define ZCL_LEVEL_CONTROL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 1 - -/** - * \brief Client doesn't have attributes. -*/ -#define ZCL_LEVEL_CONTROL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT 0 - -/** - * \brief Level Control Cluster commands amount -*/ - -#define ZCL_LEVEL_CONTROL_CLUSTER_COMMANDS_AMOUNT 8 - -/** - * \brief Level Control Cluster server's attributes identifiers -*/ - -#define ZCL_LEVEL_CONTROL_CLUSTER_CURRENT_LEVEL_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_LEVEL_CONTROL_CLUSTER_REMAINING_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -#define ZCL_LEVEL_CONTROL_CLUSTER_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID CCPU_TO_LE16(0x0010) -#define ZCL_LEVEL_CONTROL_CLUSTER_ON_LEVEL_ATTRIBUTE_ID CCPU_TO_LE16(0x0011) - -/** - * \brief On/Off Cluster client's command identifiers -*/ - -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_COMMAND_ID 0x00 -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_COMMAND_ID 0x01 -#define ZCL_LEVEL_CONTROL_CLUSTER_STEP_COMMAND_ID 0x02 -#define ZCL_LEVEL_CONTROL_CLUSTER_STOP_COMMAND_ID 0x03 -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_W_ONOFF_COMMAND_ID 0x04 -#define ZCL_LEVEL_CONTROL_CLUSTER_MOVE_W_ONOFF_COMMAND_ID 0x05 -#define ZCL_LEVEL_CONTROL_CLUSTER_STEP_W_ONOFF_COMMAND_ID 0x06 -#define ZCL_LEVEL_CONTROL_CLUSTER_STOP_W_ONOFF_COMMAND_ID 0x07 - -/** - * \brief Level Control Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_LEVEL_CONTROL_CLUSTER_SERVER_MANDATORY_ATTRIBUTES(min, max) \ - DEFINE_REPORTABLE_ATTRIBUTE(currentLevel, ZCL_READONLY_ATTRIBUTE, ZCL_LEVEL_CONTROL_CLUSTER_CURRENT_LEVEL_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID, min, max), \ - DEFINE_ATTRIBUTE(remainingTime, ZCL_READONLY_ATTRIBUTE, ZCL_LEVEL_CONTROL_CLUSTER_REMAINING_TIME_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID) - -#define ZCL_DEFINE_LEVEL_CONTROL_CLUSTER_SERVER_OPTIONAL_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(onOffTransitionTime, ZCL_LEVEL_CONTROL_CLUSTER_ON_OFF_TRANSITION_TIME_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(onLevel, ZCL_LEVEL_CONTROL_CLUSTER_ON_LEVEL_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID) - - -/** - * \brief Level Control Cluster define commands macros -*/ - -#define ZCL_DEFINE_LEVEL_CONTROL_CLUSTER_COMMANDS(moveToLevelCommandInd,\ - moveCommandInd,\ - stepCommandInd,\ - stopCommandInd,\ - moveToLevelWOnOffCommandInd,\ - moveWOnOffCommandInd,\ - stepWOnOffCommandInd,\ - stopWOnOffCommandInd)\ - DEFINE_COMMAND(moveToLevelCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveToLevelCommandInd), \ - DEFINE_COMMAND(moveCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveCommandInd), \ - DEFINE_COMMAND(stepCommand, ZCL_LEVEL_CONTROL_CLUSTER_STEP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stepCommandInd), \ - DEFINE_COMMAND(stopCommand, ZCL_LEVEL_CONTROL_CLUSTER_STOP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stopCommandInd), \ - DEFINE_COMMAND(moveToLevelWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_TO_LEVEL_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveToLevelWOnOffCommandInd), \ - DEFINE_COMMAND(moveWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_MOVE_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - moveWOnOffCommandInd), \ - DEFINE_COMMAND(stepWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_STEP_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stepWOnOffCommandInd), \ - DEFINE_COMMAND(stopWOnOffCommand, ZCL_LEVEL_CONTROL_CLUSTER_STOP_W_ONOFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - stopWOnOffCommandInd) - -/** - * \brief Level Control Cluster definition macros -*/ - -#define LEVEL_CONTROL_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = LEVEL_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_SERVER_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_LEVEL_CONTROL_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_LEVEL_CONTROL_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define LEVEL_CONTROL_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = LEVEL_CONTROL_CLUSTER_ID, \ - .options = {.type = ZCL_CLIENT_CLUSTER_TYPE, .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY}, \ - .attributesAmount = ZCL_LEVEL_CONTROL_CLUSTER_CLIENT_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_LEVEL_CONTROL_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_LEVEL_CONTROL_CLUSTER(cltype, clattributes, clcommands) \ - LEVEL_CONTROL_CLUSTER_##cltype(clattributes, clcommands) - -#define DEFINE_LEVEL_CONTROL_CLUSTER_EXTENSION_FIELD_SET(value) \ - .clusterId = LEVEL_CONTROL_CLUSTER_ID, \ - .length = sizeof(uint8_t), \ - .currentLevel = value - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK - -/** - * \brief Move To Level Command Payload format. - */ -typedef struct PACK -{ - uint8_t level; - uint16_t transitionTime; -} ZCL_MoveToLevel_t; - -/** - * \brief Move Command Payload format. - */ -typedef struct PACK -{ - uint8_t moveMode; - uint8_t rate; -} ZCL_Move_t; - -/** - * \brief Step Command Payload format. - */ -typedef struct PACK -{ - uint8_t stepMode; - uint8_t stepSize; - uint16_t transitionTime; -} ZCL_Step_t; - -/** - * \brief Level Control Cluster server's attributes -*/ -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - ZCL_ReportTime_t reportCounter; //! -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ -#define ZCL_ZLL_USE_DEFAULT_IDENTIFY_TIME 0xffff - -/****************************************************************************** - Types section -******************************************************************************/ - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/**************************************************************************//** -\brief Identify notification - -The function shall be implemented by the application. The ZLL component -calls this function when an indetify request is received (sent from a remote -device with the ZCL_ZllIdentifyRequest() function). - -Receiving this notification, a router is expected to somehow identify itself -for the user; for example, a lighting device may blink. - -\param[in] status - notification status -\param[in] time - identification time -******************************************************************************/ -extern void ZCL_ZllIdentifyInd(ZCL_ZllStatus_t status, uint16_t time); - -/**************************************************************************//** -\brief Reset ZLL miscellaneous module -******************************************************************************/ -void ZCL_ZllMiscReset(void); - -/**************************************************************************//** -\brief Send Identify Request command - -The function sends an identify request to the destination device specified -with its extended address. On the destination device ZCL_ZllIdentifyInd() is -called by the stack to indicate identify command reception. The device that -sends the request should first select the destination device, using the -ZCL_ZllSelectDeviceReq() function. - -The function is used during ZLL commissioning via touch link to allow the -application to drop the commissioning procedure if something goes wrong -(for example, the user discovers that wrong device has been selected). - -\param[in] addr - destination device extended address pointer -\param[in] identifyTime - time in 1/10ths of a seconds -\returns true if the command has been sent -******************************************************************************/ -bool ZCL_ZllIdentifyRequest(ExtAddr_t *addr, uint16_t identifyTime); - -/**************************************************************************//** -\brief Reset the device to Factory New state -\param[in] addr - destination short address -\returns true if command was sent. -******************************************************************************/ -bool ZCL_ZllResetToFactoryNewRequest(ShortAddr_t addr); - -/**************************************************************************//** -\brief INTRP-DATA.indication primitive -\param[in] ind - indication parameters -******************************************************************************/ -void ZCL_ZllMiscDataInd(INTRP_DataInd_t *ind); - -#endif // _ZCLZLLMISC_H - -// eof zclZllMisc.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllNetwork.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllNetwork.h deleted file mode 100644 index adece9aa..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllNetwork.h +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************//** - \file zclZllNetwork.h - - \brief - ZLL network functionality interface. - - \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: - 22.03.10 A. Taradov - Created. -******************************************************************************/ -#ifndef _ZCLZLLNETWORK_H -#define _ZCLZLLNETWORK_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ - -/****************************************************************************** - Types section -******************************************************************************/ -typedef struct _ZCL_ZllStartNetworkConf_t -{ - ZCL_ZllStatus_t status; -} ZCL_ZllStartNetworkConf_t; - -typedef struct _ZCL_ZllStartNetworkReq_t -{ - ZCL_ZllStartNetworkConf_t confirm; - ZCL_ZllScanDeviceInfo_t *otherDevice; - void (*ZCL_ZllStartNetworkConf)(ZCL_ZllStartNetworkConf_t *conf); -} ZCL_ZllStartNetworkReq_t; - -/*! Select ZLL device confirm parameters */ -typedef struct _ZCL_SelectDeviceConf_t -{ - /* Operation status */ - ZCL_ZllStatus_t status; -} ZCL_SelectDeviceConf_t; - -/*! Select ZLL device request parameters */ -typedef struct _ZCL_ZllSelectDeviceReq_t -{ - /*! Selected device information */ - ZCL_ZllScanDeviceInfo_t *deviceInfo; - /*! MAC-SET.request primitive */ - MAC_SetReq_t macSetReq; - /*! Confirm callback pointer */ - void (*ZCL_ZllSelectDeviceConf)(ZCL_SelectDeviceConf_t *conf); - /*! Select ZLL device confirm info */ - ZCL_SelectDeviceConf_t confirm; -} ZCL_ZllSelectDeviceReq_t; - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/**************************************************************************//** -\brief Reset ZLL network module. -******************************************************************************/ -void ZCL_ZllNetworkReset(void); - -/**************************************************************************//** -\brief Send ZLL start network request. Should be called only by end devices. - -The function sends an Inter-PAN command containing network parameters to -the selected router. The router is notified about receiving network parameters -via ZCL_ZllStartInd() (this function should be implemented on the router). -Upon receiving such indication the router is expected to rejoin the nework, -using ZDO functions. The end device that has issued the request should also -rejoin the network to join the router. - -The device to which the ZLL start network request will be sent is set -with the ZCL_ZllSelectDeviceReq() function. - -\param req - request parameters -******************************************************************************/ -void ZCL_ZllStartNetworkReq(ZCL_ZllStartNetworkReq_t *req); - -/**************************************************************************//** -\brief INTRP-DATA.indication primitive -\param[in] ind - indication parameters -******************************************************************************/ -void ZCL_ZllNetworkDataInd(INTRP_DataInd_t *ind); - -/**************************************************************************//** -\brief Select a device discovered during scanning - -Using this function, the application specifies a device to which it will -send an identify request and a start network request. Information about the -device that should be provided for this function is received during network -scan (performed by ZCL_ZllScanReq()). - -\param[in] req - request parameters -******************************************************************************/ -void ZCL_ZllSelectDeviceReq(ZCL_ZllSelectDeviceReq_t *req); - -#endif // _ZCLZLLNETWORK_H - -// eof zclZllNetwork.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllOnOffCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllOnOffCluster.h deleted file mode 100644 index f16eaf1e..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllOnOffCluster.h +++ /dev/null @@ -1,281 +0,0 @@ -/***************************************************************************//** - \file zclZllOnOffCluster.h - - \brief - The header file describes the ZLL On/Off Cluster and its interface - - \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: - 21.03.11 A. Taradov - Created. -*******************************************************************************/ - -#ifndef _ZCLZLLONOFFCLUSTER_H -#define _ZCLZLLONOFFCLUSTER_H - -/*! -Attributes and commands for determining basic information about a device, -setting user device information such as location, enabling a device and resetting it -to factory defaults. -*/ - -/******************************************************************************* - Includes section -*******************************************************************************/ - -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -#define ZCL_ON_OFF_CLUSTER_ACCEPT_ONLY_WHEN_ON 0x01 - -/** - * \brief On/Off Cluster server attributes amount -*/ - -#define ZCL_ONOFF_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 4 - -/** - * \brief On/Off Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_ONOFF_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT 0 - -/** - * \brief On/Off Cluster commands amount -*/ - -#define ZCL_ONOFF_CLUSTER_COMMANDS_AMOUNT 6 - -/** - * \brief On/Off Cluster server's attributes identifiers -*/ - -#define ZCL_ONOFF_CLUSTER_ONOFF_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_ONOFF_CLUSTER_GLOBAL_SCENE_CONTROL_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4000) -#define ZCL_ONOFF_CLUSTER_ON_TIME_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4001) -#define ZCL_ONOFF_CLUSTER_OFF_WAIT_TIME_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x4002) - -/** - * \brief On/Off Cluster client's command identifiers -*/ - -#define ZCL_ONOFF_CLUSTER_OFF_COMMAND_ID 0x00 -#define ZCL_ONOFF_CLUSTER_ON_COMMAND_ID 0x01 -#define ZCL_ONOFF_CLUSTER_TOGGLE_COMMAND_ID 0x02 -#define ZCL_ONOFF_CLUSTER_OFF_WITH_EFFECT_COMMAND_ID 0x40 -#define ZCL_ONOFF_CLUSTER_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID 0x41 -#define ZCL_ONOFF_CLUSTER_ON_WITH_TIMED_OFF_COMMAND_ID 0x42 - -/** - * \brief On/Off Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_ONOFF_CLUSTER_SERVER_ATTRIBUTES(min, max) \ - DEFINE_REPORTABLE_ATTRIBUTE(onOff, ZCL_READONLY_ATTRIBUTE, ZCL_ONOFF_CLUSTER_ONOFF_SERVER_ATTRIBUTE_ID, ZCL_BOOLEAN_DATA_TYPE_ID, min, max), \ - DEFINE_ATTRIBUTE(globalSceneControl, ZCL_READONLY_ATTRIBUTE, ZCL_ONOFF_CLUSTER_GLOBAL_SCENE_CONTROL_SERVER_ATTRIBUTE_ID, ZCL_BOOLEAN_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(onTime, ZCL_READONLY_ATTRIBUTE, ZCL_ONOFF_CLUSTER_ON_TIME_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(offWaitTime, ZCL_READONLY_ATTRIBUTE, ZCL_ONOFF_CLUSTER_OFF_WAIT_TIME_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID) - -/** - * \brief On/Off Cluster define commands macros -*/ - -#define ZCL_DEFINE_ONOFF_CLUSTER_COMMANDS(onCommandInd, offCommandInd, toggleCommandInd, offWithEffectInd, onWithRecallGlobalSceneInd, onWithTimedOffInd) \ - DEFINE_COMMAND(onCommand, ZCL_ONOFF_CLUSTER_ON_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE, ZCL_COMMAND_NO_ACK), \ - onCommandInd), \ - DEFINE_COMMAND(offCommand, ZCL_ONOFF_CLUSTER_OFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE, ZCL_COMMAND_NO_ACK), \ - offCommandInd), \ - DEFINE_COMMAND(toggleCommand, ZCL_ONOFF_CLUSTER_TOGGLE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE, ZCL_COMMAND_NO_ACK), \ - toggleCommandInd), \ - DEFINE_COMMAND(offWithEffectCommand, ZCL_ONOFF_CLUSTER_OFF_WITH_EFFECT_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE, ZCL_COMMAND_NO_ACK), \ - offWithEffectInd), \ - DEFINE_COMMAND(onWithRecallGlobalSceneCommand, ZCL_ONOFF_CLUSTER_ON_WITH_RECALL_GLOBAL_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE, ZCL_COMMAND_NO_ACK), \ - onWithRecallGlobalSceneInd), \ - DEFINE_COMMAND(onWithTimedOffCommand, ZCL_ONOFF_CLUSTER_ON_WITH_TIMED_OFF_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_FRAME_CONTROL_DISABLE_DEFAULT_RESPONSE, ZCL_COMMAND_NO_ACK), \ - onWithTimedOffInd) - -/** - * \brief On/Off Cluster definition macros -*/ - -#define ONOFF_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = ONOFF_CLUSTER_ID, \ - .options = \ - { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY, \ - .reserved = 0, \ - }, \ - .attributesAmount = ZCL_ONOFF_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_ONOFF_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define ONOFF_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = ONOFF_CLUSTER_ID, \ - .options = \ - { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_NETWORK_KEY_CLUSTER_SECURITY, \ - .reserved = 0, \ - }, \ - .attributesAmount = ZCL_ONOFF_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_ONOFF_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_ONOFF_CLUSTER(cltype, clattributes, clcommands) \ - ONOFF_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ - -BEGIN_PACK - -/** - * \brief On/Off Cluster server's attributes -*/ - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - bool value; - ZCL_ReportTime_t reportCounter; //! -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ - -/****************************************************************************** - Types section -******************************************************************************/ - -typedef struct _ZCL_ZllScanDeviceInfo_t -{ - // Device Information Table entry - uint64_t ieee; - uint8_t ep; - uint16_t profileId; - uint16_t deviceId; - uint8_t version; - uint8_t groupIds; - uint8_t sort; - - // Common fields - uint8_t rssiCorrection; - ZclZllZigBeeInfo_t zigBeeInfo; - ZclZllInfo_t zllInfo; - uint16_t keyBitMask; - uint32_t responseId; - uint64_t extPanId; - uint8_t nwkUpdateId; - uint8_t channel; - uint16_t panId; - uint16_t networkAddress; - uint8_t numberSubDevices; - uint8_t totalGroupIds; - uint64_t ieeeRelayerScanRequest; - int8_t rssi; -} ZCL_ZllScanDeviceInfo_t; - -typedef struct _ZCL_ZllScanConf_t -{ - ZCL_ZllScanDeviceInfo_t info; - ZCL_ZllStatus_t status; - bool stopScan; -} ZCL_ZllScanConf_t; - -typedef struct _ZCL_ZllScanReq_t -{ - ZCL_ZllScanConf_t confirm; - void (*ZCL_ZllScanConf)(ZCL_ZllScanConf_t *conf); -} ZCL_ZllScanReq_t; - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/**************************************************************************//** -\brief Reset ZLL Scan. -******************************************************************************/ -void ZCL_ZllScanReset(void); - -/**************************************************************************//** -\brief ZLL Scan request. Should be called only by end devices. - -The function is called on end devices to discover other devices by scanning -supported radio channels. Before calling this function the device should be -prepared to handle Inter-PAN messages: call the ZCL_ZllInterPanStartReq() -function first. - -The callback function specified in the parameters is called once for -each discovered device. - -\param req - request parameters -******************************************************************************/ -void ZCL_ZllScanReq(ZCL_ZllScanReq_t *req); - -/**************************************************************************//** -\brief INTRP-DATA.indication primitive -\param[in] ind - indication parameters -******************************************************************************/ -void ZCL_ZllScanReqDataInd(INTRP_DataInd_t *ind); - -#endif // _ZCLZLLSCAN_H - -// eof zclZllScan.h diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllScenesCluster.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllScenesCluster.h deleted file mode 100644 index 2bf4b100..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllScenesCluster.h +++ /dev/null @@ -1,648 +0,0 @@ -/***************************************************************************//** - \file zclScenesCluster.h - - \brief - The header file describes the ZCL Scenes Cluster and its interface - - The file describes the types and interface of the ZCL Scenes Cluster - - \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: - 12.02.09 D. Kasyanov - Created. -*******************************************************************************/ - -#ifndef _ZCLSCENESCLUSTER_H -#define _ZCLSCENESCLUSTER_H - -/*! -Attributes and commands for determining basic information about a device, -setting user device information such as location, enabling a device and resetting it -to factory defaults. -*/ - -/******************************************************************************* - Includes section -*******************************************************************************/ - -#include -#include -#include -#include -#include - -/******************************************************************************* - Define(s) section -*******************************************************************************/ - -/** - * \brief Scenes Cluster scene name support bit -*/ - -#define ZCL_SCENES_CLUSTER_NAME_SUPPORT_FLAG 0x80 - -#define ZCL_SCENES_CLUSTER_COPY_ALL_SCENES 0x01 - -/** - * \brief Scenes Cluster server attributes amount -*/ - -#define ZCL_SCENES_CLUSTER_SERVER_ATTRIBUTES_AMOUNT 5 - -/** - * \brief Scenes Cluster client attributes amount. Clinet doesn't have attributes. -*/ - -#define ZCL_SCENES_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT 0 - -/** - * \brief Scenes Cluster commands amount -*/ - -#define ZCL_SCENES_CLUSTER_COMMANDS_AMOUNT 19 - -/** - * \brief Scenes Cluster server's attributes identifiers -*/ - -#define ZCL_SCENES_CLUSTER_SCENE_COUNT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0000) -#define ZCL_SCENES_CLUSTER_CURRENT_SCENE_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0001) -#define ZCL_SCENES_CLUSTER_CURRENT_GROUP_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0002) -#define ZCL_SCENES_CLUSTER_SCENE_VALID_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0003) -#define ZCL_SCENES_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID CCPU_TO_LE16(0x0004) - -/** - * \brief Scenes Cluster client's command identifiers -*/ - -#define ZCL_SCENES_CLUSTER_ADD_SCENE_COMMAND_ID 0x00 -#define ZCL_SCENES_CLUSTER_VIEW_SCENE_COMMAND_ID 0x01 -#define ZCL_SCENES_CLUSTER_REMOVE_SCENE_COMMAND_ID 0x02 -#define ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_COMMAND_ID 0x03 -#define ZCL_SCENES_CLUSTER_STORE_SCENE_COMMAND_ID 0x04 -#define ZCL_SCENES_CLUSTER_RECALL_SCENE_COMMAND_ID 0x05 -#define ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_COMMAND_ID 0x06 -#define ZCL_SCENES_CLUSTER_ENHANCED_ADD_SCENE_COMMAND_ID 0x40 -#define ZCL_SCENES_CLUSTER_ENHANCED_VIEW_SCENE_COMMAND_ID 0x41 -#define ZCL_SCENES_CLUSTER_COPY_SCENE_COMMAND_ID 0x42 - -/** - * \brief Scenes Cluster servers's command identifiers -*/ - -#define ZCL_SCENES_CLUSTER_ADD_SCENE_RESPONSE_COMMAND_ID 0x00 -#define ZCL_SCENES_CLUSTER_VIEW_SCENE_RESPONSE_COMMAND_ID 0x01 -#define ZCL_SCENES_CLUSTER_REMOVE_SCENE_RESPONSE_COMMAND_ID 0x02 -#define ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID 0x03 -#define ZCL_SCENES_CLUSTER_STORE_SCENE_RESPONSE_COMMAND_ID 0x04 -#define ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID 0x06 -#define ZCL_SCENES_CLUSTER_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID 0x40 -#define ZCL_SCENES_CLUSTER_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID 0x41 -#define ZCL_SCENES_CLUSTER_COPY_SCENE_RESPONSE_COMMAND_ID 0x42 - -/** - * \brief Scenes Cluster server define attributes macros -*/ - -#define ZCL_DEFINE_SCENES_CLUSTER_SERVER_ATTRIBUTES() \ - DEFINE_ATTRIBUTE(sceneCount, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_SCENE_COUNT_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(currentScene, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_CURRENT_SCENE_SERVER_ATTRIBUTE_ID, ZCL_U8BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(currentGroup, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_CURRENT_GROUP_SERVER_ATTRIBUTE_ID, ZCL_U16BIT_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(sceneValid, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_SCENE_VALID_SERVER_ATTRIBUTE_ID, ZCL_BOOLEAN_DATA_TYPE_ID), \ - DEFINE_ATTRIBUTE(nameSupport, ZCL_READONLY_ATTRIBUTE, ZCL_SCENES_CLUSTER_NAME_SUPPORT_SERVER_ATTRIBUTE_ID, ZCL_8BIT_BITMAP_DATA_TYPE_ID) - - -/** - * \brief On/Off Cluster define commands macros -*/ - -#define ZCL_DEFINE_SCENES_CLUSTER_SERVER_COMMANDS(addSceneCommandInd, viewSceneCommandInd, removeSceneCommandInd, \ - removeAllScenesCommandInd, storeSceneCommandInd, recallSceneCommandInd, \ - getSceneMembershipCommandInd, enhancedAddSceneCommandInd, enhancedViewSceneCommandInd, copySceneCommandInd) \ - DEFINE_COMMAND(addSceneCommand, ZCL_SCENES_CLUSTER_ADD_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addSceneCommandInd), \ - DEFINE_COMMAND(viewSceneCommand, ZCL_SCENES_CLUSTER_VIEW_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewSceneCommandInd), \ - DEFINE_COMMAND(removeSceneCommand, ZCL_SCENES_CLUSTER_REMOVE_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeSceneCommandInd), \ - DEFINE_COMMAND(removeAllScenesCommand, ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeAllScenesCommandInd), \ - DEFINE_COMMAND(storeSceneCommand, ZCL_SCENES_CLUSTER_STORE_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - storeSceneCommandInd), \ - DEFINE_COMMAND(recallSceneCommand, ZCL_SCENES_CLUSTER_RECALL_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - recallSceneCommandInd), \ - DEFINE_COMMAND(getSceneMembershipCommand, ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getSceneMembershipCommandInd), \ - DEFINE_COMMAND(enhancedAddSceneCommand, ZCL_SCENES_CLUSTER_ENHANCED_ADD_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - enhancedAddSceneCommandInd), \ - DEFINE_COMMAND(enhancedViewSceneCommand, ZCL_SCENES_CLUSTER_ENHANCED_VIEW_SCENE_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - enhancedViewSceneCommandInd), \ - DEFINE_COMMAND(copySceneCommand, ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_COMMAND_ID, \ - COMMAND_OPTIONS(CLIENT_TO_SERVER, ZCL_THERE_IS_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - copySceneCommandInd) - -#define ZCL_DEFINE_SCENES_CLUSTER_CLIENT_COMMANDS(addSceneResponseCommandInd, viewSceneResponseCommandInd, \ - removeSceneResponseCommandInd, removeAllScenesResponseCommandInd, storeSceneResponseCommandInd, \ - getSceneMembershipResponseCommandInd, enhancedAddSceneResponseCommandInd, enhancedViewSceneResponseCommandInd, \ - copySceneResponseCommandInd) \ - DEFINE_COMMAND(addSceneResponseCommand, ZCL_SCENES_CLUSTER_ADD_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - addSceneResponseCommandInd), \ - DEFINE_COMMAND(viewSceneResponseCommand, ZCL_SCENES_CLUSTER_VIEW_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - viewSceneResponseCommandInd), \ - DEFINE_COMMAND(removeSceneResponseCommand, ZCL_SCENES_CLUSTER_REMOVE_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeSceneResponseCommandInd), \ - DEFINE_COMMAND(removeAllScenesResponseCommand, ZCL_SCENES_CLUSTER_REMOVE_ALL_SCENES_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - removeAllScenesResponseCommandInd), \ - DEFINE_COMMAND(storeSceneResponseCommand, ZCL_SCENES_CLUSTER_STORE_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - storeSceneResponseCommandInd), \ - DEFINE_COMMAND(getSceneMembershipResponseCommand, ZCL_SCENES_CLUSTER_GET_SCENE_MEMBERSHIP_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - getSceneMembershipResponseCommandInd), \ - DEFINE_COMMAND(enhancedAddSceneResponseCommand, ZCL_SCENES_CLUSTER_ENHANCED_ADD_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - enhancedAddSceneResponseCommandInd), \ - DEFINE_COMMAND(enhancedViewSceneResponseCommand, ZCL_SCENES_CLUSTER_ENHANCED_VIEW_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - enhancedViewSceneResponseCommandInd), \ - DEFINE_COMMAND(copySceneResponseCommand, ZCL_SCENES_CLUSTER_COPY_SCENE_RESPONSE_COMMAND_ID, \ - COMMAND_OPTIONS(SERVER_TO_CLIENT, ZCL_THERE_IS_NO_RELEVANT_RESPONSE, ZCL_COMMAND_ACK), \ - copySceneResponseCommandInd) - -/** - * \brief Scene Cluster definition macros -*/ - -#define SCENES_CLUSTER_ZCL_CLIENT_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = SCENES_CLUSTER_ID, \ - .options = { \ - .type = ZCL_CLIENT_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_SCENES_CLUSTER_CLIENT_ATTRIBTUES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_SCENES_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define SCENES_CLUSTER_ZCL_SERVER_CLUSTER_TYPE(clattributes, clcommands) \ -{ \ - .id = SCENES_CLUSTER_ID, \ - .options = { \ - .type = ZCL_SERVER_CLUSTER_TYPE, \ - .security = ZCL_APPLICATION_LINK_KEY_CLUSTER_SECURITY, \ - }, \ - .attributesAmount = ZCL_SCENES_CLUSTER_SERVER_ATTRIBUTES_AMOUNT, \ - .attributes = (uint8_t *)clattributes, \ - .commandsAmount = ZCL_SCENES_CLUSTER_COMMANDS_AMOUNT, \ - .commands = (uint8_t *)clcommands \ -} - -#define DEFINE_SCENES_CLUSTER(cltype, clattributes, clcommands) \ - SCENES_CLUSTER_##cltype(clattributes, clcommands) - -/****************************************************************************** - Types section -******************************************************************************/ -BEGIN_PACK - -/** - * \brief Add Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; - uint16_t transitionTime; - uint8_t name[1]; -} ZCL_AddScene_t; - -/** - * \brief View Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_ViewScene_t; - -/** - * \brief Remove Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_RemoveScene_t; - -/** - * \brief Remove All Scenes Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_RemoveAllScenes_t; - -/** - * \brief Store Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_StoreScene_t; - -/** - * \brief Recall Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_RecallScene_t; - -/** - * \brief Get Scene Membership Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; -} ZCL_GetSceneMembership_t; - -/** - * \brief Enhanced Add Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; - uint16_t transitionTime; - uint8_t name[1]; - ZCL_OnOffClusterExtensionFieldSet_t onOffClusterExtFields; - ZCL_LevelControlClusterExtensionFieldSet_t levelControlClusterExtFields; - ZCL_ColorControlClusterExtensionFieldSet_t colorControlClusterExtFields; -} ZCL_EnhancedAddScene_t; - -/** - * \brief Enhanced View Scene Command Payload format. - */ - -typedef struct PACK -{ - uint16_t groupId; - uint8_t sceneId; -} ZCL_EnhancedViewScene_t; - -/** - * \brief Copy Scene Command Payload format. - */ - -typedef struct PACK -{ - uint8_t mode; - uint16_t groupIdFrom; - uint16_t sceneIdFrom; - uint16_t groupIdTo; - uint16_t sceneIdTo; -} ZCL_CopyScene_t; - -/** - * \brief Add Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; -} ZCL_AddSceneResponse_t; - -/** - * \brief View Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; - uint16_t transitionTime; - uint8_t nameAndExtField[1]; // string sceneName, extension field. -} ZCL_ViewSceneResponse_t; - -/** - * \brief Remove Scene Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; -} ZCL_RemoveSceneResponse_t; - -/** - * \brief Remove All Scenes Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; -} ZCL_RemoveAllScenesResponse_t; - -/** - * \brief Store Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; -} ZCL_StoreSceneResponse_t; - -/** - * \brief Get Scene Membership Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint8_t capacity; - uint16_t groupId; - uint8_t sceneCount; - uint8_t sceneList[16]; -} ZCL_GetSceneMembershipResponse_t; - -/** - * \brief Enhanced Add Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; -} ZCL_EnhancedAddSceneResponse_t; - -/** - * \brief Enhanced View Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupId; - uint8_t sceneId; - uint16_t transitionTime; - uint8_t name[1]; - ZCL_OnOffClusterExtensionFieldSet_t onOffClusterExtFields; - ZCL_LevelControlClusterExtensionFieldSet_t levelControlClusterExtFields; - ZCL_ColorControlClusterExtensionFieldSet_t colorControlClusterExtFields; -} ZCL_EnhancedViewSceneResponse_t; - -/** - * \brief Copy Scene Response Command Payload format. - */ - -typedef struct PACK -{ - uint8_t status; - uint16_t groupIdFrom; - uint16_t sceneIdFrom; - uint16_t groupIdTo; - uint16_t sceneIdTo; -} ZCL_CopySceneResponse_t; - -/** - * \brief Extension Fields Set format - */ - -typedef struct PACK -{ - uint16_t clusterId; - uint8_t length; -} ZCL_ExtensionFieldSets_t; - -/** - * \brief Scene Cluster server's attributes - */ - -typedef struct PACK -{ - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } sceneCount; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } currentScene; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint16_t value; - } currentGroup; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - bool value; - } sceneValid; - - struct PACK - { - ZCL_AttributeId_t id; - uint8_t type; - uint8_t properties; - uint8_t value; - } nameSupport; -} ZCL_SceneClusterServerAttributes_t; - -END_PACK - -/** - * \brief Scene Cluster commands. - */ - -typedef struct -{ - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddScene_t * payload); - } addSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewScene_t * payload); - } viewSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveScene_t * payload); - } removeSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeAllScenesCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveAllScenes_t * payload); - } removeAllScenesCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*storeSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_StoreScene_t * payload); - } storeSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*recallSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RecallScene_t * payload); - } recallSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getSceneMembershipCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetSceneMembership_t * payload); - } getSceneMembershipCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*enhancedAddSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_EnhancedAddScene_t * payload); - } enhancedAddSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*enhancedViewSceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_EnhancedViewScene_t * payload); - } enhancedViewSceneCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*copySceneCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_CopyScene_t * payload); - } copySceneCommand; - - // responses - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*addSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_AddSceneResponse_t * payload); - } addSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*viewSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_ViewSceneResponse_t * payload); - } viewSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveSceneResponse_t * payload); - } removeSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*removeAllScenesResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_RemoveAllScenesResponse_t * payload); - } removeAllScenesResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*storeSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_StoreSceneResponse_t * payload); - } storeSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*getSceneMembershipResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_GetSceneMembershipResponse_t * payload); - } getSceneMembershipResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*enhancedAddSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_EnhancedAddSceneResponse_t * payload); - } enhancedAddSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*enhancedViewSceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_EnhancedViewSceneResponse_t * payload); - } enhancedViewSceneResponseCommand; - - struct - { - ZCL_CommandId_t id; - ZclCommandOptions_t options; - ZCL_Status_t(*copySceneResponseCommand)(ZCL_Addressing_t *addressing, uint8_t payloadLength, ZCL_CopySceneResponse_t * payload); - } copySceneResponseCommand; -} ZCL_ScenesClusterCommands_t; - - -#endif /* _ZCLSCENESCLUSTER_H */ - diff --git a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllSecurity.h b/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllSecurity.h deleted file mode 100644 index 6dee63df..00000000 --- a/digital/beacon/src/Bitcloud_stack/Components/ZCL/include/zclZllSecurity.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************//** - \file zclZllSecurity.h - - \brief - Functions and constants used by the ZLL security module. - - \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: - 22.06.11 A. Taradov - Created. -******************************************************************************/ -#ifndef _ZCLZLLSECURITY_H -#define _ZCLZLLSECURITY_H - -/****************************************************************************** - Includes section -******************************************************************************/ -#include -#include - -/****************************************************************************** - Definitions section -******************************************************************************/ -#define ZCL_ZLL_DEVELOPMENT_KEY_INDEX 0 -#define ZCL_ZLL_MASTER_KEY_INDEX 4 -#define ZCL_ZLL_CERTIFICATION_KEY_INDEX 15 - -//#define ZCL_ZLL_SUPPORTED_KEY_INDEX ZCL_ZLL_CERTIFICATION_KEY_INDEX -//#define ZCL_ZLL_SUPPORTED_SECURITY_KEYS (1u << ZCL_ZLL_SUPPORTED_KEY_INDEX) - -#define ZCL_ZLL_SUPPORTED_KEY_INDEX ZCL_ZLL_DEVELOPMENT_KEY_INDEX -#define ZCL_ZLL_SUPPORTED_SECURITY_KEYS (1u << ZCL_ZLL_DEVELOPMENT_KEY_INDEX) - -/*! Certification key */ -#define ZCL_ZLL_SECURITY_KEY "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" - -/****************************************************************************** - Prototypes section -******************************************************************************/ - -/**************************************************************************//** -\brief Encrypt security key -\param[in] text - key to be encrypted -\param[in] callback - function to be called after encryption is finished -******************************************************************************/ -void zclZllEncryptKey(uint8_t text[SECURITY_BLOCK_SIZE], void (*callback)(void)); - -/**************************************************************************//** -\brief Decrypt security key -\param[in] text - key to be decrypted -\param[in] callback - function to be called after decryption is finished -******************************************************************************/ -void zclZllDecryptKey(uint8_t text[SECURITY_BLOCK_SIZE], void (*callback)(void)); - -#endif // _ZCLZLLSECURITY_H - -// eof zclZllSecurity.h -- cgit v1.2.3