[z-stack-apps/z-stack-example-apps.git] / IAS Sample Applications / CIE-FD-WD-Z3.0 / SampleWarningDevice / Source / zcl_samplewarningdevice_data.c
1 /******************************************************************************\r
2 \r
3 @file zcl_samplewarningdevice_data.c\r
4 \r
5 @brief Z-Stack 3.0 Sample Application\r
6 \r
7 @date 2017-02-15 18:24:32\r
8 \r
9 Group: CMCU LPC\r
10 Target Devices: CC2530/CC2531/CC2538\r
11 \r
12 ******************************************************************************\r
13 \r
14 Copyright (c) 2017, Texas Instruments Incorporated\r
15 All rights reserved.\r
16 \r
17 Redistribution and use in source and binary forms, with or without\r
18 modification, are permitted provided that the following conditions\r
19 are met:\r
20 \r
21 * Redistributions of source code must retain the above copyright\r
22 notice, this list of conditions and the following disclaimer.\r
23 \r
24 * Redistributions in binary form must reproduce the above copyright\r
25 notice, this list of conditions and the following disclaimer in the\r
26 documentation and/or other materials provided with the distribution.\r
27 \r
28 * Neither the name of Texas Instruments Incorporated nor the names of\r
29 its contributors may be used to endorse or promote products derived\r
30 from this software without specific prior written permission.\r
31 \r
32 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
33 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
34 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
35 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
36 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
37 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
38 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
39 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
40 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
41 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
43 \r
44 *****************************************************************************/\r
45 \r
46 /*********************************************************************\r
47 * INCLUDES\r
48 */\r
49 #include "ZComDef.h"\r
50 #include "OSAL.h"\r
51 #include "AF.h"\r
52 #include "ZDConfig.h"\r
53 \r
54 #include "zcl.h"\r
55 #include "zcl_general.h"\r
56 #include "zcl_ha.h"\r
57 #include "zcl_ms.h"\r
58 \r
59 #include "zcl_samplewarningdevice.h"\r
60 \r
61 /*********************************************************************\r
62 * CONSTANTS\r
63 */\r
64 \r
65 #define SAMPLEWARNINGDEVICE_DEVICE_VERSION 0\r
66 #define SAMPLEWARNINGDEVICE_FLAGS 0\r
67 \r
68 #define SAMPLEWARNINGDEVICE_HWVERSION 1\r
69 #define SAMPLEWARNINGDEVICE_ZCLVERSION 1\r
70 \r
71 /*********************************************************************\r
72 * TYPEDEFS\r
73 */\r
74 \r
75 /*********************************************************************\r
76 * MACROS\r
77 */\r
78 \r
79 /*********************************************************************\r
80 * GLOBAL VARIABLES\r
81 */\r
82 \r
83 // Basic Cluster\r
84 const uint8 zclSampleWarningDevice_HWRevision = SAMPLEWARNINGDEVICE_HWVERSION;\r
85 const uint8 zclSampleWarningDevice_ZCLVersion = SAMPLEWARNINGDEVICE_ZCLVERSION;\r
86 const uint8 zclSampleWarningDevice_ManufacturerName[] = { 16, 'T','e','x','a','s','I','n','s','t','r','u','m','e','n','t','s' };\r
87 const uint8 zclSampleWarningDevice_ModelId[] = { 16, 'T','I','0','0','0','1',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ' };\r
88 const uint8 zclSampleWarningDevice_DateCode[] = { 16, '2','0','0','6','0','8','3','1',' ',' ',' ',' ',' ',' ',' ',' ' };\r
89 const uint8 zclSampleWarningDevice_PowerSource = POWER_SOURCE_MAINS_1_PHASE;\r
90 \r
91 uint8 zclSampleWarningDevice_LocationDescription[17] = { 16, ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ' };\r
92 uint8 zclSampleWarningDevice_PhysicalEnvironment = 0;\r
93 uint8 zclSampleWarningDevice_DeviceEnable = DEVICE_ENABLED;\r
94 \r
95 // Identify Cluster\r
96 uint16 zclSampleWarningDevice_IdentifyTime = 0;\r
97 \r
98 uint16 zclSampleWarningDevice_MaxDuration = SAMPLEWARNINGDEVICE_ALARM_MAX_DURATION;\r
99 \r
100 // IAS ZONE Cluster\r
101 uint8 zclSampleWarningDevice_ZoneState = SS_IAS_ZONE_STATE_NOT_ENROLLED;\r
102 uint16 zclSampleWarningDevice_ZoneType = SS_IAS_ZONE_TYPE_FIRE_SENSOR;\r
103 uint16 zclSampleWarningDevice_ZoneStatus = 0;\r
104 uint8 zclSampleWarningDevice_IAS_CIE_Address[8] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };\r
105 \r
106 \r
107 /*********************************************************************\r
108 * ATTRIBUTE DEFINITIONS - Uses REAL cluster IDs\r
109 */\r
110 CONST zclAttrRec_t zclSampleWarningDevice_Attrs[SAMPLEWARNINGDEVICE_MAX_ATTRIBUTES] =\r
111 {\r
112 // *** General Basic Cluster Attributes ***\r
113 {\r
114 ZCL_CLUSTER_ID_GEN_BASIC, // Cluster IDs - defined in the foundation (ie. zcl.h)\r
115 { // Attribute record\r
116 ATTRID_BASIC_HW_VERSION, // Attribute ID - Found in Cluster Library header (ie. zcl_general.h)\r
117 ZCL_DATATYPE_UINT8, // Data Type - found in zcl.h\r
118 ACCESS_CONTROL_READ, // Variable access control - found in zcl.h\r
119 (void *)&zclSampleWarningDevice_HWRevision // Pointer to attribute variable\r
120 }\r
121 },\r
122 {\r
123 ZCL_CLUSTER_ID_GEN_BASIC,\r
124 { // Attribute record\r
125 ATTRID_BASIC_ZCL_VERSION,\r
126 ZCL_DATATYPE_UINT8,\r
127 ACCESS_CONTROL_READ,\r
128 (void *)&zclSampleWarningDevice_ZCLVersion\r
129 }\r
130 },\r
131 {\r
132 ZCL_CLUSTER_ID_GEN_BASIC,\r
133 { // Attribute record\r
134 ATTRID_BASIC_MANUFACTURER_NAME,\r
135 ZCL_DATATYPE_CHAR_STR,\r
136 ACCESS_CONTROL_READ,\r
137 (void *)zclSampleWarningDevice_ManufacturerName\r
138 }\r
139 },\r
140 {\r
141 ZCL_CLUSTER_ID_GEN_BASIC,\r
142 { // Attribute record\r
143 ATTRID_BASIC_MODEL_ID,\r
144 ZCL_DATATYPE_CHAR_STR,\r
145 ACCESS_CONTROL_READ,\r
146 (void *)zclSampleWarningDevice_ModelId\r
147 }\r
148 },\r
149 {\r
150 ZCL_CLUSTER_ID_GEN_BASIC,\r
151 { // Attribute record\r
152 ATTRID_BASIC_DATE_CODE,\r
153 ZCL_DATATYPE_CHAR_STR,\r
154 ACCESS_CONTROL_READ,\r
155 (void *)zclSampleWarningDevice_DateCode\r
156 }\r
157 },\r
158 {\r
159 ZCL_CLUSTER_ID_GEN_BASIC,\r
160 { // Attribute record\r
161 ATTRID_BASIC_POWER_SOURCE,\r
162 ZCL_DATATYPE_UINT8,\r
163 ACCESS_CONTROL_READ,\r
164 (void *)&zclSampleWarningDevice_PowerSource\r
165 }\r
166 },\r
167 {\r
168 ZCL_CLUSTER_ID_GEN_BASIC,\r
169 { // Attribute record\r
170 ATTRID_BASIC_LOCATION_DESC,\r
171 ZCL_DATATYPE_CHAR_STR,\r
172 (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),\r
173 (void *)zclSampleWarningDevice_LocationDescription\r
174 }\r
175 },\r
176 {\r
177 ZCL_CLUSTER_ID_GEN_BASIC,\r
178 { // Attribute record\r
179 ATTRID_BASIC_PHYSICAL_ENV,\r
180 ZCL_DATATYPE_UINT8,\r
181 (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),\r
182 (void *)&zclSampleWarningDevice_PhysicalEnvironment\r
183 }\r
184 },\r
185 {\r
186 ZCL_CLUSTER_ID_GEN_BASIC,\r
187 { // Attribute record\r
188 ATTRID_BASIC_DEVICE_ENABLED,\r
189 ZCL_DATATYPE_BOOLEAN,\r
190 (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),\r
191 (void *)&zclSampleWarningDevice_DeviceEnable\r
192 }\r
193 },\r
194 \r
195 // *** Identify Cluster Attribute ***\r
196 {\r
197 ZCL_CLUSTER_ID_GEN_IDENTIFY,\r
198 { // Attribute record\r
199 ATTRID_IDENTIFY_TIME,\r
200 ZCL_DATATYPE_UINT16,\r
201 (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),\r
202 (void *)&zclSampleWarningDevice_IdentifyTime\r
203 }\r
204 },\r
205 \r
206 // *** WD Cluster Attributes ***\r
207 \r
208 {\r
209 ZCL_CLUSTER_ID_SS_IAS_WD,\r
210 { // Attribute record\r
211 ATTRID_SS_IAS_WD_MAXIMUM_DURATION,\r
212 ZCL_DATATYPE_UINT16,\r
213 (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),\r
214 (void *)&zclSampleWarningDevice_MaxDuration\r
215 }\r
216 }\r
217 };\r
218 \r
219 /*********************************************************************\r
220 * SIMPLE DESCRIPTOR\r
221 */\r
222 // This is the Cluster ID List and should be filled with Application\r
223 // specific cluster IDs.\r
224 #define ZCLSAMPLEWARNINGDEVICE_MAX_INCLUSTERS 3\r
225 const cId_t zclSampleWarningDevice_InClusterList[ZCLSAMPLEWARNINGDEVICE_MAX_INCLUSTERS] =\r
226 {\r
227 ZCL_CLUSTER_ID_GEN_BASIC,\r
228 ZCL_CLUSTER_ID_GEN_IDENTIFY,\r
229 ZCL_CLUSTER_ID_SS_IAS_WD\r
230 };\r
231 \r
232 #define ZCLSAMPLEWARNINGDEVICE_MAX_OUTCLUSTERS 1\r
233 const cId_t zclSampleWarningDevice_OutClusterList[ZCLSAMPLEWARNINGDEVICE_MAX_OUTCLUSTERS] =\r
234 {\r
235 ZCL_CLUSTER_ID_GEN_IDENTIFY\r
236 };\r
237 \r
238 SimpleDescriptionFormat_t zclSampleWarningDevice_SimpleDesc =\r
239 {\r
240 SAMPLEWARNINGDEVICE_ENDPOINT, // int Endpoint;\r
241 ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];\r
242 ZCL_HA_DEVICEID_IAS_WARNING_DEVICE, // uint16 AppDeviceId[2];\r
243 SAMPLEWARNINGDEVICE_DEVICE_VERSION, // int AppDevVer:4;\r
244 SAMPLEWARNINGDEVICE_FLAGS, // int AppFlags:4;\r
245 ZCLSAMPLEWARNINGDEVICE_MAX_INCLUSTERS, // byte AppNumInClusters;\r
246 (cId_t *)zclSampleWarningDevice_InClusterList, // byte *pAppInClusterList;\r
247 ZCLSAMPLEWARNINGDEVICE_MAX_OUTCLUSTERS, // byte AppNumInClusters;\r
248 (cId_t *)zclSampleWarningDevice_OutClusterList // byte *pAppInClusterList;\r
249 };\r
250 \r
251 /*********************************************************************\r
252 * GLOBAL FUNCTIONS\r
253 */\r
254 \r
255 /*********************************************************************\r
256 * LOCAL FUNCTIONS\r
257 */\r
258 \r
259 /****************************************************************************\r
260 ****************************************************************************/\r
261 \r
262 \r