]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - z-stack-apps/z-stack-example-apps.git/blob - IAS Sample Applications/CIE-FD-WD-Z3.0/SampleWarningDevice/Source/zcl_samplewarningdevice_data.c
Initial IAS Sample Apps release
[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