summaryrefslogtreecommitdiff
path: root/digital/zigbit/bitcloud/stack/Components/ZCL/include/zclZllCommissioningCluster.h
diff options
context:
space:
mode:
Diffstat (limited to 'digital/zigbit/bitcloud/stack/Components/ZCL/include/zclZllCommissioningCluster.h')
-rw-r--r--digital/zigbit/bitcloud/stack/Components/ZCL/include/zclZllCommissioningCluster.h228
1 files changed, 228 insertions, 0 deletions
diff --git a/digital/zigbit/bitcloud/stack/Components/ZCL/include/zclZllCommissioningCluster.h b/digital/zigbit/bitcloud/stack/Components/ZCL/include/zclZllCommissioningCluster.h
new file mode 100644
index 00000000..75fd07cd
--- /dev/null
+++ b/digital/zigbit/bitcloud/stack/Components/ZCL/include/zclZllCommissioningCluster.h
@@ -0,0 +1,228 @@
+/***************************************************************************//**
+ \file zclZllCommissioningCluster.h
+
+ \brief
+ The header file describes the ZLL Commissioning 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 _ZCLZLLCOMISSIONINGCLUSTER_H
+#define _ZCLZLLCOMISSIONINGCLUSTER_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 <zcl.h>
+#include <clusters.h>
+
+/*******************************************************************************
+ 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