ZigBee ZCL especificación y su pila de protocolos 1
http://www.cnblogs.com/-song/archive/2013/03/16/3331818.html
consulte ZigBee_Cluster_Library_Public_download_version
1.zcl divide en varias zonas funcionales diferentes,cada área que ocupa una parte ClusterID
ejemplo tiene las siguientes áreas generales ClusterID
........
tiene una pila de protocolos en el zcl.h ClusterID estas definiciones, correspondiente a la anterior documentos, pero incompleto
- // grupos generales
- #define ZCL_CLUSTER_ID_GEN_BASIC 0x0000
- #define ZCL_CLUSTER_ID_GEN_POWER_CFG 0x0001
- #define ZCL_CLUSTER_ID_GEN_DEVICE_TEMP_CONFIG 0x0002
- #define ZCL_CLUSTER_ID_GEN_IDENTIFY 0x0003
- #define ZCL_CLUSTER_ID_GEN_GROUPS 0x0004
- #define ZCL_CLUSTER_ID_GEN_SCENES 0x0005
- #define ZCL_CLUSTER_ID_GEN_ON_OFF 0x0006
- #define ZCL_CLUSTER_ID_GEN_ON_OFF_SWITCH_CONFIG 0x0007
- #define ZCL_CLUSTER_ID_GEN_LEVEL_CONTROL 0x0008
- #define ZCL_CLUSTER_ID_GEN_ALARMS 0x0009
- #define ZCL_CLUSTER_ID_GEN_TIME 0x000A
- #define ZCL_CLUSTER_ID_GEN_LOCATION 0x000B
- #define ZCL_CLUSTER_ID_GEN_KEY_ESTABLISHMENT 0x0800
- // Los cierres Clusters
- #define ZCL_CLUSTER_ID_CLOSURES_SHADE_CONFIG 0x0100
- // HVAC Clusters
- #define ZCL_CLUSTER_ID_HVAC_PUMP_CONFIG_CONTROL 0x0200
- #define ZCL_CLUSTER_ID_HAVC_THERMOSTAT 0x0201
- #define ZCL_CLUSTER_ID_HAVC_FAN_CONTROL 0x0202
- #define ZCL_CLUSTER_ID_HAVC_DIHUMIDIFICATION_CONTROL 0x0203
- #define ZCL_CLUSTER_ID_HAVC_USER_INTERFACE_CONFIG 0x0204
- // iluminación Clusters
- #define ZCL_CLUSTER_ID_LIGHTING_COLOR_CONTROL 0x0300
- #define ZCL_CLUSTER_ID_LIGHTING_BALLAST_CONFIG 0x0301
- // Medición y Detección de Clusters
- #define ZCL_CLUSTER_ID_MS_ILLUMINANCE_MEASUREMENT 0x0400
- #define ZCL_CLUSTER_ID_MS_ILLUMINANCE_LEVEL_SENSING_CONFIG 0x0401
- #define ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT 0x0402
- #define ZCL_CLUSTER_ID_MS_PRESSURE_MEASUREMENT 0x0403
- #define ZCL_CLUSTER_ID_MS_FLOW_MEASUREMENT 0x0404
- #define ZCL_CLUSTER_ID_MS_RELATIVE_HUMIDITY 0x0405
- #define ZCL_CLUSTER_ID_MS_OCCUPANCY_SENSING 0x0406
- // Seguridad y Protección (SS) Clusters
- #define ZCL_CLUSTER_ID_SS_IAS_ZONE 0x0500
- #define ZCL_CLUSTER_ID_SS_IAS_ACE 0x0501
- #define ZCL_CLUSTER_ID_SS_IAS_WD 0x0502
- // Protocolo Interfaces
- #define ZCL_CLUSTER_ID_PI_GENERIC_TUNNEL 0x0600
- #define ZCL_CLUSTER_ID_PI_BACNET_PROTOCOL_TUNNEL 0x0601
- #define ZCL_CLUSTER_ID_PI_11073_PROTOCOL_TUNNEL 0x0614
- // Iniciativa de medición avanzada (SE) Clusters
- #define ZCL_CLUSTER_ID_SE_PRICING 0x0700
- #define ZCL_CLUSTER_ID_SE_LOAD_CONTROL 0x0701
- #define ZCL_CLUSTER_ID_SE_SIMPLE_METERING 0x0702
- #define ZCL_CLUSTER_ID_SE_MESSAGE 0x0703
- #define ZCL_CLUSTER_ID_SE_REGISTRATION 0x0704
- #define ZCL_CLUSTER_ID_SE_SE_TUNNELING 0x0705
- #define ZCL_CLUSTER_ID_SE_PRE_PAYMENT 0x0706
2. Cada conjunto ClusterID de atributos y los comandos por un número de colección de
tales
arte general ClusterID básica, hay tantas de las siguientes propiedades (dividido en dos partes, la información del dispositivo y la configuración del dispositivo de información básica)
básico ClusterID general, existe un campo de orden atributos ClusterID y comandos ejecutados en la pila de protocolos, tales como zcl_general.h básica ClusterID campo general situado
- / ******************************** /
- / *** *** Cluster Atributos básicos /
- / ******************************** /
- // Información básica del dispositivo
- #define ATTRID_BASIC_ZCL_VERSION 0x0000
- #define ATTRID_BASIC_APPL_VERSION 0x0001
- #define ATTRID_BASIC_STACK_VERSION 0x0002
- #define ATTRID_BASIC_HW_VERSION 0x0003
- #define ATTRID_BASIC_MANUFACTURER_NAME 0x0004
- #define ATTRID_BASIC_MODEL_ID 0x0005
- #define ATTRID_BASIC_DATE_CODE 0x0006
- #define ATTRID_BASIC_POWER_SOURCE 0x0007
- // Configuración del dispositivo básico
- #define ATTRID_BASIC_LOCATION_DESC 0x0010
- #define ATTRID_BASIC_PHYSICAL_ENV 0x0011
- #define ATTRID_BASIC_DEVICE_ENABLED 0x0012
- #define ATTRID_BASIC_ALARM_MASK 0x0013
- ...
- / ****************************** /
- / *** *** Los comandos básicos Cluster /
- / ****************************** /
- #define COMMAND_BASIC_RESET_FACT_DEFAULT 0x00
- <span style = "font-family: SimSun;" >
- </ Span>
zcl_general.h- genéricos
Zcl_closures.h- de interior o de acceso?
zcl_hvac.h- aire acondicionado
de iluminación zcl_lighting.h-
zcl_ms.h-Mediciones y detección
zcl_ss.h
zcl_pi.h
Tienes ClusterID propiedad macro definición, la necesidad de atributos de configuración (asignación)
dispuesto de tal manera, zcl_samplelight.c en cada atributo ClusterID ZCL_CLUSTER_ID_GEN_BASIC realiza:
- CONST zclAttrRec_t zclSampleLight_Attrs [SAMPLELIGHT_MAX_ATTRIBUTES] =
- {
- // *** generales del clúster Atributos básicos ***
- {
- ZCL_CLUSTER_ID_GEN_BASIC, // Cluster IDs - definida en la base (. Es decir zcl.h)
- { // registro de atributo
- ATTRID_BASIC_HW_VERSION, // Atributo ID - Se encuentra en cabecera Biblioteca Cluster (es decir zcl_general.h.)
- ZCL_DATATYPE_UINT8, // Tipo de datos - se encuentra en zcl.h
- ACCESS_CONTROL_READ, // Variable de control de acceso - se encuentra en zcl.h
- ( Void *) y zclSampleLight_HWRevision // puntero a la variable de atributos
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_ZCL_VERSION,
- ZCL_DATATYPE_UINT8,
- ACCESS_CONTROL_READ,
- ( Void *) y zclSampleLight_ZCLVersion
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_MANUFACTURER_NAME,
- ZCL_DATATYPE_CHAR_STR,
- ACCESS_CONTROL_READ,
- ( Void *) zclSampleLight_ManufacturerName
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_MODEL_ID,
- ZCL_DATATYPE_CHAR_STR,
- ACCESS_CONTROL_READ,
- ( Void *) zclSampleLight_ModelId
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_DATE_CODE,
- ZCL_DATATYPE_CHAR_STR,
- ACCESS_CONTROL_READ,
- ( Void *) zclSampleLight_DateCode
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_POWER_SOURCE,
- ZCL_DATATYPE_UINT8,
- ACCESS_CONTROL_READ,
- ( Void *) y zclSampleLight_PowerSource
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_LOCATION_DESC,
- ZCL_DATATYPE_CHAR_STR,
- (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
- ( Void *) zclSampleLight_LocationDescription
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_PHYSICAL_ENV,
- ZCL_DATATYPE_UINT8,
- (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
- ( Void *) y zclSampleLight_PhysicalEnvironment
- }
- },
- {
- ZCL_CLUSTER_ID_GEN_BASIC,
- { // registro de atributo
- ATTRID_BASIC_DEVICE_ENABLED,
- ZCL_DATATYPE_BOOLEAN,
- (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
- ( Void *) y zclSampleLight_DeviceEnable
- }
- },
- // *** *** Identificar Cluster Atributo
- {
- ZCL_CLUSTER_ID_GEN_IDENTIFY,
- { // registro de atributo
- ATTRID_IDENTIFY_TIME,
- ZCL_DATATYPE_UINT16,
- (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
- ( Void *) y zclSampleLight_IdentifyTime
- }
- },
- // *** On / Off Cluster Atributos ***
- {
- ZCL_CLUSTER_ID_GEN_ON_OFF,
- { // registro de atributo
- ATTRID_ON_OFF,
- ZCL_DATATYPE_UINT8,
- ACCESS_CONTROL_READ,
- ( Void *) y zclSampleLight_OnOff
- }
- },
- }
3. Además de la ClusterID comando único, hay algunos comandos comunes, como la lectura de un atributo ClusterID,
implementados en una pila de protocolos, ubicada zcl.h
- / *** *** Fundación Comando identificaciones /
- #define ZCL_CMD_READ 0x00
- #define ZCL_CMD_READ_RSP 0x01
- #define ZCL_CMD_WRITE 0x02
- #define ZCL_CMD_WRITE_UNDIVIDED 0x03
- #define ZCL_CMD_WRITE_RSP 0x04
- #define ZCL_CMD_WRITE_NO_RSP 0x05
- #define ZCL_CMD_CONFIG_REPORT 0x06
- #define ZCL_CMD_CONFIG_REPORT_RSP 0x07
- #define ZCL_CMD_READ_REPORT_CFG 0x08
- #define ZCL_CMD_READ_REPORT_CFG_RSP 0x09
- #define ZCL_CMD_REPORT 0x0a
- #define ZCL_CMD_DEFAULT_RSP 0x0B
- 0x0C #define ZCL_CMD_DISCOVER
- #define ZCL_CMD_DISCOVER_RSP 0x0D
- #define ZCL_CMD_MAX ZCL_CMD_DISCOVER_RSP