Advertisement
tranthudo

Basic.h

Jun 5th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 24.02 KB | None | 0 0
  1. /*****************************************************************************
  2.  *
  3.  * MODULE:             Basic Cluster
  4.  *
  5.  * COMPONENT:          Basic.h
  6.  *
  7.  * AUTHOR:             Lee Mitchell
  8.  *
  9.  * DESCRIPTION:        Header for Basic Cluster
  10.  *
  11.  * $HeadURL: https://www.collabnet.nxp.com/svn/lprf_sware/Projects/Components/ZCL/Trunk/Clusters/General/Include/Basic.h $
  12.  *
  13.  * $Revision: 73733 $
  14.  *
  15.  * $LastChangedBy: nxp29772 $
  16.  *
  17.  * $LastChangedDate: 2015-10-28 12:30:13 +0100 (Wed, 28 Oct 2015) $
  18.  *
  19.  * $Id: Basic.h 73733 2015-10-28 11:30:13Z nxp29772 $
  20.  *
  21.  *****************************************************************************
  22.  *
  23.  * This software is owned by NXP B.V. and/or its supplier and is protected
  24.  * under applicable copyright laws. All rights are reserved. We grant You,
  25.  * and any third parties, a license to use this software solely and
  26.  * exclusively on NXP products  [NXP Microcontrollers such as JN5168, JN5164,
  27. * JN5161, JN5148, JN5142, JN5139].
  28.  * You, and any third parties must reproduce the copyright and warranty notice
  29.  * and any other legend of ownership on each  copy or partial copy of the software.
  30.  *
  31.  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  32.  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  33.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  34.  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
  35.  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  36.  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  37.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  38.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  39.  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  40.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  41.  * POSSIBILITY OF SUCH DAMAGE.
  42.  *
  43.  * Copyright NXP B.V. 2012. All rights reserved
  44.  *
  45.  ****************************************************************************/
  46.  
  47. #ifndef BASIC_H
  48. #define BASIC_H
  49.  
  50. #include <jendefs.h>
  51. #include "zcl.h"
  52. #include "zcl_options.h"
  53.  
  54. /****************************************************************************/
  55. /***        Macro Definitions                                             ***/
  56. /****************************************************************************/
  57.  
  58. /****************************************************************************/
  59. /*             Basic Cluster - Optional Attributes                          */
  60. /*                                                                          */
  61. /* Add the following #define's to your zcl_options.h file to add optional   */
  62. /* attributes to the basic cluster.                                         */
  63. /****************************************************************************/
  64.  
  65. #ifdef CLD_SM_SUPPORT_MIRROR
  66.  
  67. #ifndef CLD_BAS_ATTR_PHYSICAL_ENVIRONMENT
  68.     /*Required for maintaining the Mirror capability at ESI*/
  69.     #define CLD_BAS_ATTR_PHYSICAL_ENVIRONMENT
  70. #endif
  71.  
  72. #endif
  73.  
  74. /* Enable the optional Application Version attribute */
  75. //#define   CLD_BAS_ATTR_APPLICATION_VERSION
  76.  
  77. /* Enable the optional Stack Version attribute*/
  78. //#define   CLD_BAS_ATTR_STACK_VERSION
  79.  
  80. /* Enable the optional Hardware Version attribute */
  81. //#define   CLD_BAS_ATTR_HARDWARE_VERSION
  82.  
  83. /* Enable the optional Manufacturer Name attribute */
  84. //#define   CLD_BAS_ATTR_MANUFACTURER_NAME
  85.  
  86. /* Enable the optional Model Identifier attribute */
  87. //#define   CLD_BAS_ATTR_MODEL_IDENTIFIER
  88.  
  89. /* Enable the optional Date Code attribute */
  90. //#define   CLD_BAS_ATTR_DATE_CODE
  91.  
  92. /* Enable the optional Location Description attribute */
  93. //#define   CLD_BAS_ATTR_LOCATION_DESCRIPTION
  94.  
  95. /* Enable the optional Physical Environment attribute */
  96. //#define   CLD_BAS_ATTR_PHYSICAL_ENVIRONMENT
  97.  
  98. /* Enable the optional Device Enabled attribute */
  99. //#define   CLD_BAS_ATTR_DEVICE_ENABLED
  100.  
  101. /* Enable the optional Alarm Mask attribute */
  102. //#define   CLD_BAS_ATTR_ALARM_MASK
  103.  
  104. /* Enable the optional Disable Local Config attribute */
  105. //#define CLD_BAS_ATTR_DISABLE_LOCAL_CONFIG
  106.  
  107. /* Enable the optional Software Build ID attribute */
  108. //#define CLD_BAS_ATTR_SW_BUILD_ID
  109.  
  110. /* Enable the optional Generic Device Class attribute */
  111. //#define CLD_BAS_ATTR_GENERIC_DEVICE_CLASS
  112.  
  113. /* Enable the optional Generic Device Type attribute */
  114. //#define CLD_BAS_ATTR_GENERIC_DEVICE_TYPE
  115.  
  116. /* Enable the optional Product code attribute */
  117. //#define CLD_BAS_ATTR_PRODUCT_CODE
  118.  
  119. /* Enable the optional Product URL attribute */
  120. //#define CLD_BAS_ATTR_PRODUCT_URL
  121.  
  122. /* Manufacturer-specific attribute */
  123. //#define CLD_BAS_ATTR_MAN_SPEC_LED_INTENSITY
  124. //#define CLD_BAS_ATTR_MAN_SPEC_VIBRATION_INTENSITY
  125.  
  126. /* End of optional attributes */
  127. #ifndef CLD_BAS_APP_VERSION
  128. #define CLD_BAS_APP_VERSION         (0x00)
  129. #endif
  130. #ifndef CLD_BAS_STACK_VERSION
  131. #define CLD_BAS_STACK_VERSION       (0x00)
  132. #endif
  133. #ifndef CLD_BAS_HARDWARE_VERSION
  134. #define CLD_BAS_HARDWARE_VERSION    (0x00)
  135. #endif
  136. #ifndef CLD_BAS_MANUF_NAME_SIZE
  137. #define CLD_BAS_MANUF_NAME_SIZE     (0)
  138. #endif
  139. #ifndef CLD_BAS_MODEL_ID_SIZE
  140. #define CLD_BAS_MODEL_ID_SIZE       (0)
  141. #endif
  142. #ifndef CLD_BAS_DATE_SIZE
  143. #define CLD_BAS_DATE_SIZE           (0)
  144. #endif
  145. #ifndef CLD_BAS_POWER_SOURCE
  146. #define CLD_BAS_POWER_SOURCE        E_CLD_BAS_PS_UNKNOWN
  147. #endif
  148.  
  149. #ifndef CLD_BAS_SW_BUILD_SIZE
  150. #define CLD_BAS_SW_BUILD_SIZE       (0)
  151. #endif
  152. #ifndef CLD_BAS_URL_SIZE
  153. #define CLD_BAS_URL_SIZE            (0)
  154. #endif
  155. #ifndef CLD_BAS_PCODE_SIZE
  156. #define CLD_BAS_PCODE_SIZE          (0)
  157. #endif
  158.  
  159. #ifndef CLD_BAS_DEVICE_CLASS
  160. #define CLD_BAS_DEVICE_CLASS          (0xff)
  161. #endif
  162.  
  163.  
  164. /* Cluster ID's */
  165. #define GENERAL_CLUSTER_ID_BASIC                            0x0000
  166.  
  167. /* Alarm Mask */
  168. #define CLD_BAS_ALARM_MASK_GENERAL_HARDWARE_FAULT           (1 << 0)
  169. #define CLD_BAS_ALARM_MASK_GENERAL_SOFTWARE_FAULT           (1 << 1)
  170.  
  171. /* Disable Local Config */
  172. #define CLD_BAS_DISABLE_LOCAL_CFG_RESET                     (1 << 0)
  173. #define CLD_BAS_DISABLE_LOCAL_CFG_DISABLED                  (1 << 1)
  174.  
  175. #define CLD_BASIC_NUMBER_OF_MANDATORY_ATTRIBUTE              3  //ePowerSource and u8ZCLVersion
  176.  
  177. #ifdef CLD_BAS_ATTR_APPLICATION_VERSION
  178.     #define ATTR_APPLICATION_VERSION                         1
  179. #else
  180.     #define ATTR_APPLICATION_VERSION                         0
  181. #endif
  182.  
  183. #ifdef CLD_BAS_ATTR_STACK_VERSION
  184.     #define ATTR_STACK_VERSION                               1
  185. #else
  186.     #define ATTR_STACK_VERSION                               0
  187. #endif
  188.  
  189. #ifdef CLD_BAS_ATTR_HARDWARE_VERSION
  190.     #define ATTR_HARDWARE_VERSION                            1
  191. #else
  192.     #define ATTR_HARDWARE_VERSION                            0
  193. #endif
  194.  
  195. #ifdef CLD_BAS_ATTR_MANUFACTURER_NAME
  196.     #define ATTR_MANUFACTURER_NAME                           1
  197. #else
  198.     #define ATTR_MANUFACTURER_NAME                           0
  199. #endif
  200. #ifdef CLD_BAS_ATTR_MODEL_IDENTIFIER
  201.     #define ATTR_MODEL_IDENTIFIER                            1
  202. #else
  203.     #define ATTR_MODEL_IDENTIFIER                            0
  204. #endif
  205. #ifdef CLD_BAS_ATTR_DATE_CODE
  206.     #define ATTR_DATE_CODE                                   1
  207. #else
  208.     #define ATTR_DATE_CODE                                   0
  209. #endif
  210. #ifdef CLD_BAS_ATTR_LOCATION_DESCRIPTION
  211.     #define ATTR_LOCATION_DESCRIPTION                        1
  212. #else
  213.     #define ATTR_LOCATION_DESCRIPTION                        0
  214. #endif
  215. #ifdef CLD_BAS_ATTR_DEVICE_ENABLED
  216.     #define ATTR_DEVICE_ENABLED                              1
  217. #else
  218.     #define ATTR_DEVICE_ENABLED                              0
  219. #endif
  220. #ifdef CLD_BAS_ATTR_PHYSICAL_ENVIRONMENT
  221.     #define ATTR_PHYSICAL_ENVIRONMENT                        1
  222. #else
  223.     #define ATTR_PHYSICAL_ENVIRONMENT                        0
  224. #endif
  225.  
  226.  
  227. #ifdef CLD_BAS_ATTR_ALARM_MASK
  228.     #define ATTR_ALARM_MASK                                  1
  229. #else
  230.     #define ATTR_ALARM_MASK                                  0
  231. #endif
  232. #ifdef CLD_BAS_ATTR_DISABLE_LOCAL_CONFIG
  233.     #define ATTR_DISABLE_LOCAL_CONFIG                        1
  234. #else
  235.     #define ATTR_DISABLE_LOCAL_CONFIG                        0
  236. #endif
  237. #ifdef CLD_BAS_ATTR_SW_BUILD_ID
  238.     #define ATTR_SW_BUILD_ID                                 1
  239. #else
  240.     #define ATTR_SW_BUILD_ID                                 0
  241. #endif
  242.  
  243. #ifndef CLD_BAS_CLUSTER_REVISION
  244.     #define CLD_BAS_CLUSTER_REVISION                         1
  245. #endif
  246.  
  247. #define CLD_BASIC_NUMBER_OF_OPTIONAL_ATTRIBUTE  \
  248.     ATTR_APPLICATION_VERSION        +           \
  249.     ATTR_STACK_VERSION              +           \
  250.     ATTR_HARDWARE_VERSION           +           \
  251.     ATTR_MANUFACTURER_NAME          +           \
  252.     ATTR_MODEL_IDENTIFIER           +           \
  253.     ATTR_DATE_CODE                  +           \
  254.     ATTR_LOCATION_DESCRIPTION       +           \
  255.     ATTR_DEVICE_ENABLED             +           \
  256.     ATTR_PHYSICAL_ENVIRONMENT       +           \
  257.     ATTR_ALARM_MASK                 +           \
  258.     ATTR_DISABLE_LOCAL_CONFIG       +           \
  259.     ATTR_SW_BUILD_ID
  260.  
  261. #define CLD_BASIC_MAX_NUMBER_OF_ATTRIBUTE       \
  262.     CLD_BASIC_NUMBER_OF_OPTIONAL_ATTRIBUTE +    \
  263.     CLD_BASIC_NUMBER_OF_MANDATORY_ATTRIBUTE
  264.    
  265. #ifndef CLD_BASIC_MAX_NUMBER_OF_BYTES_PRODUCT_CODE
  266.     #define CLD_BASIC_MAX_NUMBER_OF_BYTES_PRODUCT_CODE                    16
  267. #endif
  268. #ifndef CLD_BASIC_MAX_NUMBER_OF_BYTES_PRODUCT_URL
  269.     #define CLD_BASIC_MAX_NUMBER_OF_BYTES_PRODUCT_URL                     32
  270. #endif    
  271. /****************************************************************************/
  272. /***        Type Definitions                                              ***/
  273. /****************************************************************************/
  274.  
  275. /* Command codes */
  276. typedef enum
  277. {
  278.     E_CLD_BASIC_CMD_RESET_TO_FACTORY_DEFAULTS        = 0x00,
  279.     E_CLD_BASIC_CMD_MAN_SPEC_SET_LED_INTENSITY       = 0xF0,
  280.     E_CLD_BASIC_CMD_MAN_SPEC_SET_VIBRATION_INTENSITY = 0xF1
  281.  
  282. } teCLD_Basic_Command;
  283.  
  284. typedef enum
  285. {
  286.     /* Basic Device Information attribute set attribute ID's (3.2.2.2.1) */
  287.     E_CLD_BAS_ATTR_ID_ZCL_VERSION                = 0x0000, /* Mandatory */
  288.     E_CLD_BAS_ATTR_ID_APPLICATION_VERSION,
  289.     E_CLD_BAS_ATTR_ID_STACK_VERSION,
  290.     E_CLD_BAS_ATTR_ID_HARDWARE_VERSION,
  291.     E_CLD_BAS_ATTR_ID_MANUFACTURER_NAME,
  292.     E_CLD_BAS_ATTR_ID_MODEL_IDENTIFIER,
  293.     E_CLD_BAS_ATTR_ID_DATE_CODE,
  294.     E_CLD_BAS_ATTR_ID_POWER_SOURCE,                       /* Mandatory */
  295.    
  296.     /* ZLO extension to Basic cluster */
  297.     E_CLD_BAS_ATTR_ID_GENERIC_DEVICE_CLASS,
  298.     E_CLD_BAS_ATTR_ID_GENERIC_DEVICE_TYPE,
  299.     E_CLD_BAS_ATTR_ID_PRODUCT_CODE,
  300.     E_CLD_BAS_ATTR_ID_PRODUCT_URL,
  301.  
  302.     /* Basic Device Settings attribute set attribute ID's (3.2.2.2.10) */
  303.     E_CLD_BAS_ATTR_ID_LOCATION_DESCRIPTION        = 0x0010,
  304.     E_CLD_BAS_ATTR_ID_PHYSICAL_ENVIRONMENT,
  305.     E_CLD_BAS_ATTR_ID_DEVICE_ENABLED,
  306.     E_CLD_BAS_ATTR_ID_ALARM_MASK,
  307.     E_CLD_BAS_ATTR_ID_DISABLE_LOCAL_CONFIG,
  308.     E_CLD_BAS_ATTR_ID_SW_BUILD_ID               = 0x4000,
  309.  
  310.     /* Manufacturer Specific Attributes */
  311.     E_CLD_BAS_ATTR_ID_MAN_SPEC_LED_INTENSITY = 0xFF00,
  312.     E_CLD_BAS_ATTR_ID_MAN_SPEC_VIBRATION_INTENSITY,
  313. } teCLD_BAS_ClusterID;
  314.  
  315.  
  316. /* Generic Device Class */
  317. typedef enum
  318. {
  319.     E_CLD_BAS_GENERIC_DEVICE_CLASS_LIGHTING         = 0x00,
  320. } teCLD_BAS_GenericDeviceClass;
  321.  
  322. /* Generic Device Type */
  323. typedef enum
  324. {
  325.     E_CLD_BAS_GENERIC_DEVICE_TYPE_INCANDESCENT       = 0x00,
  326.     E_CLD_BAS_GENERIC_DEVICE_TYPE_SPOTLIGHT_HALOGEN,
  327.     E_CLD_BAS_GENERIC_DEVICE_TYPE_HALOGEN_BULB,
  328.     E_CLD_BAS_GENERIC_DEVICE_TYPE_CFL,
  329.     E_CLD_BAS_GENERIC_DEVICE_TYPE_LINEAR_FLUORESCENT,
  330.     E_CLD_BAS_GENERIC_DEVICE_TYPE_LED_BULB,
  331.     E_CLD_BAS_GENERIC_DEVICE_TYPE_SPOTLIGHT_LED,
  332.     E_CLD_BAS_GENERIC_DEVICE_TYPE_LED_STRIP,
  333.     E_CLD_BAS_GENERIC_DEVICE_TYPE_LED_TUBE,
  334.     E_CLD_BAS_GENERIC_DEVICE_TYPE_INDOOR_LUMINAIRE,
  335.     E_CLD_BAS_GENERIC_DEVICE_TYPE_OUTDOOR_LUMINAIRE,
  336.     E_CLD_BAS_GENERIC_DEVICE_TYPE_PENDANT_LUMINAIRE,
  337.     E_CLD_BAS_GENERIC_DEVICE_TYPE_FLOOR_STANDING_LUMINAIRE,
  338.     E_CLD_BAS_GENERIC_DEVICE_TYPE_CONTROLLER        = 0xE0,
  339.     E_CLD_BAS_GENERIC_DEVICE_TYPE_WALL_SWITCH,
  340.     E_CLD_BAS_GENERIC_DEVICE_TYPE_PORTABLE_REMOTE_CONTROLLER,
  341.     E_CLD_BAS_GENERIC_DEVICE_TYPE_MOTION_OR_LIGHT_SENSOR,
  342.     E_CLD_BAS_GENERIC_DEVICE_TYPE_ACTUATOR         = 0xF0,
  343.     E_CLD_BAS_GENERIC_DEVICE_TYPE_WALL_SOCKET,
  344.     E_CLD_BAS_GENERIC_DEVICE_TYPE_GATEWAY_OR_BRIDGE,
  345.     E_CLD_BAS_GENERIC_DEVICE_TYPE_PLUG_IN_UNIT,
  346.     E_CLD_BAS_GENERIC_DEVICE_TYPE_RETROFIT_ACTUATOR,
  347.     E_CLD_BAS_GENERIC_DEVICE_TYPE_UNSPECIFIED     = 0xFF
  348. } teCLD_BAS_GenericDeviceType;
  349.  
  350. /* Power source */
  351. typedef enum
  352. {
  353.     E_CLD_BAS_PS_UNKNOWN                                            = 0x00,
  354.     E_CLD_BAS_PS_SINGLE_PHASE_MAINS,
  355.     E_CLD_BAS_PS_THREE_PHASE_MAINS,
  356.     E_CLD_BAS_PS_BATTERY,
  357.     E_CLD_BAS_PS_DC_SOURCE,
  358.     E_CLD_BAS_PS_EMERGENCY_MAINS_CONSTANTLY_POWERED,
  359.     E_CLD_BAS_PS_EMERGENCY_MAINS_AND_TRANSFER_SWITCH,
  360.     E_CLD_BAS_PS_UNKNOWN_BATTERY_BACKED                                = 0x80,
  361.     E_CLD_BAS_PS_SINGLE_PHASE_MAINS_BATTERY_BACKED,
  362.     E_CLD_BAS_PS_THREE_PHASE_MAINS_BATTERY_BACKED,
  363.     E_CLD_BAS_PS_BATTERY_BATTERY_BACKED,
  364.     E_CLD_BAS_PS_DC_SOURCE_BATTERY_BACKED,
  365.     E_CLD_BAS_PS_EMERGENCY_MAINS_CONSTANTLY_POWERED_BATTERY_BACKED,
  366.     E_CLD_BAS_PS_EMERGENCY_MAINS_AND_TRANSFER_SWITCH_BATTERY_BACKED,
  367. } teCLD_BAS_PowerSource;
  368.  
  369. /* Physical Environment */
  370. typedef enum
  371. {
  372.     E_CLD_BAS_PE_UNSPECIFIED                                       = 0x00,
  373.     E_CLD_BAS_PE_MIRROR,
  374.     E_CLD_BAS_PE_ATRIUM,
  375.     E_CLD_BAS_PE_BAR,
  376.     E_CLD_BAS_PE_COURTYARD,
  377.     E_CLD_BAS_PE_BATHROOM,
  378.     E_CLD_BAS_PE_BEDROOM,
  379.     E_CLD_BAS_PE_BILLIARD_ROOM,
  380.     E_CLD_BAS_PE_UTILITY_ROOM,
  381.     E_CLD_BAS_PE_CELLAR,
  382.     E_CLD_BAS_PE_STORAGE_CLOSET,
  383.     E_CLD_BAS_PE_THREATER,
  384.     E_CLD_BAS_PE_OFFICE_0x0B,
  385.     E_CLD_BAS_PE_DECK,
  386.     E_CLD_BAS_PE_DEN,
  387.     E_CLD_BAS_PE_DINNING_ROOM,
  388.     E_CLD_BAS_PE_ELECTRICAL_ROOM,
  389.     E_CLD_BAS_PE_ELEVATOR,
  390.     E_CLD_BAS_PE_ENTRY,
  391.     E_CLD_BAS_PE_FAMILY_ROOM,
  392.     E_CLD_BAS_PE_MAIN_FLOOR,
  393.     E_CLD_BAS_PE_UPSTAIRS,
  394.     E_CLD_BAS_PE_DOWNSTAIRS,
  395.     E_CLD_BAS_PE_BASEMENT_LOWER_LEVEL,
  396.     E_CLD_BAS_PE_GALLERY,
  397.     E_CLD_BAS_PE_GAME_ROOM,
  398.     E_CLD_BAS_PE_GARAGE,
  399.     E_CLD_BAS_PE_GYM,
  400.     E_CLD_BAS_PE_HALLWAY,
  401.     E_CLD_BAS_PE_HOUSE,
  402.     E_CLD_BAS_PE_KITCHEN,
  403.     E_CLD_BAS_PE_LAUNDRY_ROOM,
  404.     E_CLD_BAS_PE_LIBRARY,
  405.     E_CLD_BAS_PE_MASTER_BEDROOM,
  406.     E_CLD_BAS_PE_MUD_ROOM,
  407.     E_CLD_BAS_PE_NURSERY,
  408.     E_CLD_BAS_PE_PANTRY,
  409.     E_CLD_BAS_PE_OFFICE_0X24,
  410.     E_CLD_BAS_PE_OUTSIDE,
  411.     E_CLD_BAS_PE_POOL,
  412.     E_CLD_BAS_PE_PORCH,
  413.     E_CLD_BAS_PE_SEWING_ROOM,
  414.     E_CLD_BAS_PE_SITTING_ROOM,
  415.     E_CLD_BAS_PE_STAIRWAY,
  416.     E_CLD_BAS_PE_YARD,
  417.     E_CLD_BAS_PE_ATTIC,
  418.     E_CLD_BAS_PE_HOT_TUB,
  419.     E_CLD_BAS_PE_LIVING_ROOM_0X2E,
  420.     E_CLD_BAS_PE_SAUNA,
  421.     E_CLD_BAS_PE_SHOP_WORKSHOP,
  422.     E_CLD_BAS_PE_GUEST_BEDROOM,
  423.     E_CLD_BAS_PE_GUEST_BATH,
  424.     E_CLD_BAS_PE_POWDER_ROOM,
  425.     E_CLD_BAS_PE_BACK_YARD,
  426.     E_CLD_BAS_PE_FRONT_YARD,
  427.     E_CLD_BAS_PE_PATIO,
  428.     E_CLD_BAS_PE_DRIVEWAY,
  429.     E_CLD_BAS_PE_SUN_ROOM,
  430.     E_CLD_BAS_PE_LIVING_ROOM_0X39,
  431.     E_CLD_BAS_PE_SPA,
  432.     E_CLD_BAS_PE_WHIRLPOOL,
  433.     E_CLD_BAS_PE_SHED,
  434.     E_CLD_BAS_PE_EQUIPMENT_STORAGE,
  435.     E_CLD_BAS_PE_HOBBY_CRAFT_ROOM,
  436.     E_CLD_BAS_PE_FOUNTAIN,
  437.     E_CLD_BAS_PE_POND,
  438.     E_CLD_BAS_PE_RECEPTION_ROOM,
  439.     E_CLD_BAS_PE_BREAKFAST_ROOM,
  440.     E_CLD_BAS_PE_NOOK,
  441.     E_CLD_BAS_PE_GARDEN,
  442.     E_CLD_BAS_PE_PANIC_ROOM,
  443.     E_CLD_BAS_PE_TERRACE,
  444.     E_CLD_BAS_PE_ROOF,
  445.     E_CLD_BAS_PE_TOILET,
  446.     E_CLD_BAS_PE_TOILET_MAIN,
  447.     E_CLD_BAS_PE_OUTSIDE_TOILET,
  448.     E_CLD_BAS_PE_SHOWER_ROOM,
  449.     E_CLD_BAS_PE_STUDY,
  450.     E_CLD_BAS_PE_FRONT_GARDEN,
  451.     E_CLD_BAS_PE_BACK_GARDEN,
  452.     E_CLD_BAS_PE_KETTLE,
  453.     E_CLD_BAS_PE_TELEVISION,
  454.     E_CLD_BAS_PE_STOVE,
  455.     E_CLD_BAS_PE_MICROWAVE,
  456.     E_CLD_BAS_PE_TOASTER,
  457.     E_CLD_BAS_PE_VACUMM,
  458.     E_CLD_BAS_PE_APPLIANCE,
  459.     E_CLD_BAS_PE_FRONT_DOOR,
  460.     E_CLD_BAS_PE_BACK_DOOR,
  461.     E_CLD_BAS_PE_FRIDGE_DOOR,
  462.     E_CLD_BAS_PE_MEDICATION_CABINET_DOOR,
  463.     E_CLD_BAS_PE_WARDROBE_DOOR,
  464.     E_CLD_BAS_PE_FRONT_CUPBOARD_DOOR,
  465.     E_CLD_BAS_PE_OTHER_DOOR,
  466.     E_CLD_BAS_PE_WAITING_ROOM,
  467.     E_CLD_BAS_PE_TRIAGE_ROOM,
  468.     E_CLD_BAS_PE_DOCTOR_OFFICE,
  469.     E_CLD_BAS_PE_PATIENT_PRIVATE_ROOM,
  470.     E_CLD_BAS_PE_CONSULTATION_ROOM,
  471.     E_CLD_BAS_PE_NURSE_STATION,
  472.     E_CLD_BAS_PE_WARD,
  473.     E_CLD_BAS_PE_COORIDOR,
  474.     E_CLD_BAS_PE_OPERATING_THREATER,
  475.     E_CLD_BAS_PE_DENTAL_SURGERY_ROOM,
  476.     E_CLD_BAS_PE_MEDICAL_IMAGING_ROOM,
  477.     E_CLD_BAS_PE_DECONTAMINATION_ROOM,
  478.     E_CLD_BAS_PE_UNKNOWN_ENVIRONMENT
  479. } teCLD_BAS_PhysicalEnvironment;
  480.  
  481. /* Basic Cluster */
  482. typedef struct
  483. {
  484. #ifdef BASIC_SERVER
  485.     zuint8                      u8ZCLVersion;
  486.  
  487. #ifdef CLD_BAS_ATTR_APPLICATION_VERSION
  488.     zuint8                      u8ApplicationVersion;
  489. #endif
  490.  
  491. #ifdef CLD_BAS_ATTR_STACK_VERSION
  492.     zuint8                      u8StackVersion;
  493. #endif
  494.  
  495. #ifdef CLD_BAS_ATTR_HARDWARE_VERSION
  496.     zuint8                      u8HardwareVersion;
  497. #endif
  498.  
  499. #ifdef CLD_BAS_ATTR_MANUFACTURER_NAME
  500.     tsZCL_CharacterString       sManufacturerName;
  501.     uint8                       au8ManufacturerName[32];
  502. #endif
  503.  
  504. #ifdef CLD_BAS_ATTR_MODEL_IDENTIFIER
  505.     tsZCL_CharacterString       sModelIdentifier;
  506.     uint8                       au8ModelIdentifier[32];
  507. #endif
  508.  
  509. #ifdef CLD_BAS_ATTR_DATE_CODE
  510.     tsZCL_CharacterString       sDateCode;
  511.     uint8                       au8DateCode[16];
  512. #endif
  513.  
  514.     zenum8                      ePowerSource;
  515.  
  516. #ifdef CLD_BAS_ATTR_GENERIC_DEVICE_CLASS    
  517.     zenum8                      eGenericDeviceClass;
  518. #endif
  519.  
  520. #ifdef CLD_BAS_ATTR_GENERIC_DEVICE_TYPE    
  521.     zenum8                      eGenericDeviceType;
  522. #endif
  523.  
  524. #ifdef CLD_BAS_ATTR_PRODUCT_CODE    
  525.     tsZCL_OctetString           sProductCode;
  526.     uint8                       au8ProductCode[CLD_BASIC_MAX_NUMBER_OF_BYTES_PRODUCT_CODE];
  527. #endif
  528.  
  529. #ifdef CLD_BAS_ATTR_PRODUCT_URL  
  530.     tsZCL_CharacterString       sProductURL;
  531.     uint8                       au8ProductURL[CLD_BASIC_MAX_NUMBER_OF_BYTES_PRODUCT_URL];
  532. #endif
  533.    
  534. #ifdef CLD_BAS_ATTR_LOCATION_DESCRIPTION
  535.     tsZCL_CharacterString       sLocationDescription;
  536.     uint8                       au8LocationDescription[16];
  537. #endif
  538.  
  539. #ifdef CLD_BAS_ATTR_PHYSICAL_ENVIRONMENT
  540.     zenum8                      u8PhysicalEnvironment;
  541. #endif
  542.  
  543. #ifdef CLD_BAS_ATTR_DEVICE_ENABLED
  544.     zbool                       bDeviceEnabled;
  545. #endif
  546.  
  547. #ifdef CLD_BAS_ATTR_ALARM_MASK
  548.     zbmap8                      u8AlarmMask;
  549. #endif
  550.  
  551. #ifdef CLD_BAS_ATTR_DISABLE_LOCAL_CONFIG
  552.     zbmap8                      u8DisableLocalConfig;
  553. #endif
  554.  
  555. #ifdef CLD_BAS_ATTR_SW_BUILD_ID
  556.     tsZCL_CharacterString       sSWBuildID;
  557.     uint8                       au8SWBuildID[16];
  558. #endif
  559. #endif
  560.  
  561. #ifdef CLD_BAS_ATTR_MAN_SPEC_LED_INTENSITY
  562.     zuint8                      u8LedIntensity;
  563. #endif
  564.  
  565. #ifdef CLD_BAS_ATTR_MAN_SPEC_VIBRATION_INTENSITY
  566.     zuint8                      u8VibrationIntensity;
  567. #endif
  568.  
  569.     zuint16                      u16ClusterRevision;
  570. } tsCLD_Basic;
  571.  
  572. /* Set LED Intensity Payload */
  573. typedef struct
  574. {
  575.     uint8                             u8IntensityLevel;
  576. }tsCLD_Basic_SetLedIntensityPayload;
  577.  
  578. /* Set Vibration Intensity Payload */
  579. typedef struct
  580. {
  581.     uint8                             u8IntensityLevel;
  582. }tsCLD_Basic_SetVibrationIntensityPayload;
  583.  
  584. #ifdef CLD_SM_SUPPORT_MIRROR
  585.  
  586. /* Basic Cluster */
  587. typedef struct
  588. {
  589.     zuint8                      u8ZCLVersion;
  590.  
  591. #ifdef CLD_BAS_MIRROR_ATTR_APPLICATION_VERSION
  592.     zuint8                      u8ApplicationVersion;
  593. #endif
  594.  
  595. #ifdef CLD_BAS_MIRROR_ATTR_STACK_VERSION
  596.     zuint8                      u8StackVersion;
  597. #endif
  598.  
  599. #ifdef CLD_BAS_MIRROR_ATTR_HARDWARE_VERSION
  600.     zuint8                      u8HardwareVersion;
  601. #endif
  602.  
  603. #ifdef CLD_BAS_MIRROR_ATTR_MANUFACTURER_NAME
  604.     tsZCL_CharacterString       sManufacturerName;
  605.     uint8                       au8ManufacturerName[32];
  606. #endif
  607.  
  608. #ifdef CLD_BAS_MIRROR_ATTR_MODEL_IDENTIFIER
  609.     tsZCL_CharacterString       sModelIdentifier;
  610.     uint8                       au8ModelIdentifier[32];
  611. #endif
  612.  
  613. #ifdef CLD_BAS_MIRROR_ATTR_DATE_CODE
  614.     tsZCL_CharacterString       sDateCode;
  615.     uint8                       au8DateCode[16];
  616. #endif
  617.  
  618.     zenum8                      ePowerSource;
  619.    
  620. #ifdef CLD_BAS_MIRROR_ATTR_LOCATION_DESCRIPTION
  621.     tsZCL_CharacterString       sLocationDescription;
  622.     uint8                       au8LocationDescription[16];
  623. #endif
  624.  
  625. #ifdef CLD_BAS_MIRROR_ATTR_PHYSICAL_ENVIRONMENT
  626.     zenum8                      u8PhysicalEnvironment;
  627. #endif
  628.  
  629. #ifdef CLD_BAS_MIRROR_ATTR_DEVICE_ENABLED
  630.     zbool                       bDeviceEnabled;
  631. #endif
  632.  
  633. #ifdef CLD_BAS_MIRROR_ATTR_ALARM_MASK
  634.     zbmap8                      u8AlarmMask;
  635. #endif
  636.  
  637. #ifdef CLD_BAS_MIRROR_ATTR_DISABLE_LOCAL_CONFIG
  638.     zbmap8                      u8DisableLocalConfig;
  639. #endif
  640.  
  641.     zuint16                      u16ClusterRevision;
  642.    
  643. } tsCLD_BasicMirror;
  644.  
  645.  
  646. #endif
  647.  
  648.  
  649. /* Definition of Basic Callback Event Structure */
  650. typedef struct
  651. {
  652.     uint8                           u8CommandId;
  653. } tsCLD_BasicCallBackMessage;
  654.  
  655.  
  656. #ifdef CLD_SM_SUPPORT_MIRROR
  657. tsZCL_ClusterDefinition sCLD_BasicMirror[CLD_SM_NUMBER_OF_MIRRORS];
  658. #endif
  659. /****************************************************************************/
  660. /***        Exported Functions                                            ***/
  661. /****************************************************************************/
  662.  
  663. PUBLIC teZCL_Status eCLD_BasicCreateBasic(
  664.                 tsZCL_ClusterInstance              *psClusterInstance,
  665.                 bool_t                              bIsServer,
  666.                 tsZCL_ClusterDefinition            *psClusterDefinition,
  667.                 void                               *pvEndPointSharedStructPtr,
  668.                 uint8                              *pu8AttributeControlBits);
  669.  
  670. PUBLIC teZCL_Status eCLD_BasicCommandResetToFactoryDefaultsSend(
  671.                     uint8                       u8SourceEndPointId,
  672.                     uint8                       u8DestinationEndPointId,
  673.                     tsZCL_Address               *psDestinationAddress,
  674.                     uint8                       *pu8TransactionSequenceNumber);
  675.  
  676. #ifdef CLD_BAS_CMD_MAN_SPEC_SET_LED_INTENSITY
  677. PUBLIC teZCL_Status eCLD_BasicCommandSetLedIntensitySend(
  678.                     uint8                       u8SourceEndPointId,
  679.                     uint8                       u8DestinationEndPointId,
  680.                     tsZCL_Address               *psDestinationAddress,
  681.                     uint8                       *pu8TransactionSequenceNumber,
  682.                     tsCLD_Basic_SetLedIntensityPayload *psPayload);
  683. #endif
  684.  
  685. #ifdef CLD_BAS_CMD_MAN_SPEC_SET_VIBRATION_INTENSITY
  686. PUBLIC teZCL_Status eCLD_BasicCommandSetVibrationIntensitySend(
  687.                     uint8                       u8SourceEndPointId,
  688.                     uint8                       u8DestinationEndPointId,
  689.                     tsZCL_Address               *psDestinationAddress,
  690.                     uint8                       *pu8TransactionSequenceNumber,
  691.                     tsCLD_Basic_SetVibrationIntensityPayload *psPayload);
  692. #endif
  693.  
  694. #ifdef CLD_SM_SUPPORT_MIRROR
  695. teZCL_Status eSE_RegisterMirroredBasicCluster(uint8 u8MirrorNum,
  696.         tsZCL_ClusterInstance              *psClusterInstance,
  697.         void                  *pvEndPointSharedStructPtr);
  698. #endif
  699.  
  700. /****************************************************************************/
  701. /***        External Variables                                            ***/
  702. /****************************************************************************/
  703. extern tsZCL_ClusterDefinition sCLD_Basic;
  704. extern const tsZCL_AttributeDefinition asCLD_BasicClusterAttributeDefinitions[];
  705. extern uint8 au8BasicClusterAttributeControlBits[];
  706.    
  707. /****************************************************************************/
  708. /***        END OF FILE                                                   ***/
  709. /****************************************************************************/
  710.  
  711. #endif /* BASIC_H */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement