(再印刷)ジグビーZCL明細書およびそのプロトコルスタック1

ジグビーZCL明細書およびそのプロトコルスタック1

http://www.cnblogs.com/-song/archive/2013/03/16/3331818.html

ZigBee_Cluster_Library_Public_download_versionを参照してください。

1.zclは、いくつかの異なる機能領域に分割し、
部分CLUSTERIDの占める各領域

の例は、以下の一般的な領域はCLUSTERID有する




........は
zcl.hにおけるプロトコルスタックは、上記に対応し、これらの定義を有するCLUSTERID不完全な文書が、

  1. //一般的なクラスタ  
  2. #define ZCL_CLUSTER_ID_GEN_BASIC 0000  
  3. #define ZCL_CLUSTER_ID_GEN_POWER_CFGは0x0001  
  4. #define ZCL_CLUSTER_ID_GEN_DEVICE_TEMP_CONFIG 0×0002  
  5. #define ZCL_CLUSTER_ID_GEN_IDENTIFY 0x0003  
  6. #define ZCL_CLUSTER_ID_GEN_GROUPS 0x0004は  
  7. #define ZCL_CLUSTER_ID_GEN_SCENES 0x0005  
  8. #define ZCL_CLUSTER_ID_GEN_ON_OFF 0x0006  
  9. #define ZCL_CLUSTER_ID_GEN_ON_OFF_SWITCH_CONFIG 0x0007  
  10. #define ZCL_CLUSTER_ID_GEN_LEVEL_CONTROL 0x0008で  
  11. #define ZCL_CLUSTER_ID_GEN_ALARMS 0x0009  
  12. #define ZCL_CLUSTER_ID_GEN_TIME 0x000A  
  13. #define ZCL_CLUSTER_ID_GEN_LOCATION 0x000B  
  14. #define ZCL_CLUSTER_ID_GEN_KEY_ESTABLISHMENT 0x0800で  
  15.   
  16. //クロージャクラスタ  
  17. #define ZCL_CLUSTER_ID_CLOSURES_SHADE_CONFIGは0x0100  
  18.   
  19. // HVACクラスタ  
  20. #define ZCL_CLUSTER_ID_HVAC_PUMP_CONFIG_CONTROL 0x0200  
  21. #define ZCL_CLUSTER_ID_HAVC_THERMOSTAT 0x0201  
  22. #define ZCL_CLUSTER_ID_HAVC_FAN_CONTROL 0x0202  
  23. #define ZCL_CLUSTER_ID_HAVC_DIHUMIDIFICATION_CONTROL 0x0203  
  24. #define ZCL_CLUSTER_ID_HAVC_USER_INTERFACE_CONFIG 0x0204  
  25.   
  26. //ライティングクラスタ  
  27. #define ZCL_CLUSTER_ID_LIGHTING_COLOR_CONTROL 0x0300  
  28. #define ZCL_CLUSTER_ID_LIGHTING_BALLAST_CONFIG 0x0301  
  29.     
  30. //測定およびセンシングクラスター  
  31. #define ZCL_CLUSTER_ID_MS_ILLUMINANCE_MEASUREMENT 0x0400  
  32. #define ZCL_CLUSTER_ID_MS_ILLUMINANCE_LEVEL_SENSING_CONFIG 0x0401  
  33. #define ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT 0x0402  
  34. #define ZCL_CLUSTER_ID_MS_PRESSURE_MEASUREMENT 0x0403  
  35. #define ZCL_CLUSTER_ID_MS_FLOW_MEASUREMENT 0x0404  
  36. #define ZCL_CLUSTER_ID_MS_RELATIVE_HUMIDITY 0x0405  
  37. #define ZCL_CLUSTER_ID_MS_OCCUPANCY_SENSING 0x0406  
  38.   
  39. //セキュリティと安全性(SS)クラスター  
  40. #define ZCL_CLUSTER_ID_SS_IAS_ZONE 0x0500  
  41. #define ZCL_CLUSTER_ID_SS_IAS_ACEて0x0501  
  42. #define ZCL_CLUSTER_ID_SS_IAS_WD 0x0502  
  43.       
  44. //プロトコルインタフェース  
  45. #define ZCL_CLUSTER_ID_PI_GENERIC_TUNNEL 0x0600  
  46. #define ZCL_CLUSTER_ID_PI_BACNET_PROTOCOL_TUNNEL 0x0601  
  47. #define ZCL_CLUSTER_ID_PI_11073_PROTOCOL_TUNNEL 0x0614  
  48.   
  49. //高度な計量イニシアティブ(SE)クラスター   
  50. #define ZCL_CLUSTER_ID_SE_PRICING 0x0700  
  51. #define ZCL_CLUSTER_ID_SE_LOAD_CONTROL 0x0701  
  52. #define ZCL_CLUSTER_ID_SE_SIMPLE_METERING 0x0702  
  53. #define ZCL_CLUSTER_ID_SE_MESSAGE 0x0703  
  54. #define ZCL_CLUSTER_ID_SE_REGISTRATION 0x0704  
  55. #define ZCL_CLUSTER_ID_SE_SE_TUNNELING 0x0705  
  56. #define ZCL_CLUSTER_ID_SE_PRE_PAYMENT 0x0706    

2のコレクションの数によって属性とコマンドの各々 CLUSTERIDセット
そのような
基本的なCLUSTERID一般的な技術は、以下の特性の非常に多くの(二つの部分、基本的なデバイス情報とデバイス構成情報に分割)がある
基本的なコマンド・フィールドは、一般CLUSTERIDあります ようなプロトコルスタックに実装CLUSTERID属性とコマンド、基本CLUSTERID一般的なフィールド位置zcl_general.h





  1. / ******************************** /  
  2. / ***基本的なクラスタは***属性/  
  3. / ******************************** /  
  4.   //基本的なデバイス情報  
  5. #define ATTRID_BASIC_ZCL_VERSION 0000  
  6. #define ATTRID_BASIC_APPL_VERSIONは0x0001  
  7. #define ATTRID_BASIC_STACK_VERSION 0×0002  
  8. #define ATTRID_BASIC_HW_VERSION 0x0003  
  9. #define ATTRID_BASIC_MANUFACTURER_NAME 0x0004は  
  10. #define ATTRID_BASIC_MODEL_ID 0x0005  
  11. #define ATTRID_BASIC_DATE_CODE 0x0006  
  12. #define ATTRID_BASIC_POWER_SOURCE 0x0007  
  13.   //基本的なデバイスの設定  
  14. #define ATTRID_BASIC_LOCATION_DESC 0x0010  
  15. #define ATTRID_BASIC_PHYSICAL_ENV 0x0011  
  16. #define ATTRID_BASIC_DEVICE_ENABLED 0x0012  
  17. #define ATTRID_BASIC_ALARM_MASK 0x0013  
  18. ...  
  19. / ****************************** /  
  20. / ***基本クラスタコマンド*** /  
  21. / ****************************** /  
  22. #define COMMAND_BASIC_RESET_FACT_DEFAULT $ 00  
  23. <スパンのスタイル= 「フォントファミリー:SimSun;」>  
  24. </ span>の  
CLUSTERIDと属性フィールドが配置されている
zcl_general.h-ジェネリック
またはアクセス?Zcl_closures.h-室内
zcl_hvac.h-空調
zcl_lighting.h-照明
zcl_ms.h-測定とセンシングを

zcl_ss.h
zcl_pi.h

CLUSTERID性質を持っていますマクロ定義、構成属性(割当て)の必要性が
、このような配置は、各属性にzcl_samplelight.cはZCL_CLUSTER_ID_GEN_BASICが行わCLUSTERID。

  1. CONST zclAttrRec_t zclSampleLight_Attrs [SAMPLELIGHT_MAX_ATTRIBUTES] =  
  2. {  
  3.   // ***一般的な基本的なクラスタは***属性  
  4.   {  
  5.     ZCL_CLUSTER_ID_GEN_BASIC、              //クラスタのID -土台(。すなわちzcl.h)で定義されています  
  6.     {   //属性レコード  
  7.       ATTRID_BASIC_HW_VERSION、             //属性ID -クラスターライブラリヘッダで発見された(すなわちzcl_general.h。)  
  8.       ZCL_DATATYPE_UINT8、                  //データタイプ- zcl.hで見つかりました  
  9.       ACCESS_CONTROL_READ、                 //変数のアクセス制御- zcl.hで見つかりました  
  10.       (無効 *)&zclSampleLight_HWRevision   属性変数へのポインタ//  
  11.     }  
  12.   }、  
  13.   {  
  14.     ZCL_CLUSTER_ID_GEN_BASIC、  
  15.     {  //属性レコード  
  16.       ATTRID_BASIC_ZCL_VERSION、  
  17.       ZCL_DATATYPE_UINT8、  
  18.       ACCESS_CONTROL_READ、  
  19.       (無効 *)&zclSampleLight_ZCLVersion  
  20.     }  
  21.   }、  
  22.   {  
  23.     ZCL_CLUSTER_ID_GEN_BASIC、  
  24.     {  //属性レコード  
  25.       ATTRID_BASIC_MANUFACTURER_NAME、  
  26.       ZCL_DATATYPE_CHAR_STR、  
  27.       ACCESS_CONTROL_READ、  
  28.       (無効 *)zclSampleLight_ManufacturerName  
  29.     }  
  30.   }、  
  31.   {  
  32.     ZCL_CLUSTER_ID_GEN_BASIC、  
  33.     {  //属性レコード  
  34.       ATTRID_BASIC_MODEL_ID、  
  35.       ZCL_DATATYPE_CHAR_STR、  
  36.       ACCESS_CONTROL_READ、  
  37.       (無効 *)zclSampleLight_ModelId  
  38.     }  
  39.   }、  
  40.   {  
  41.     ZCL_CLUSTER_ID_GEN_BASIC、  
  42.     {  //属性レコード  
  43.       ATTRID_BASIC_DATE_CODE、  
  44.       ZCL_DATATYPE_CHAR_STR、  
  45.       ACCESS_CONTROL_READ、  
  46.       (無効 *)zclSampleLight_DateCode  
  47.     }  
  48.   }、  
  49.   {  
  50.     ZCL_CLUSTER_ID_GEN_BASIC、  
  51.     {  //属性レコード  
  52.       ATTRID_BASIC_POWER_SOURCE、  
  53.       ZCL_DATATYPE_UINT8、  
  54.       ACCESS_CONTROL_READ、  
  55.       (無効 *)&zclSampleLight_PowerSource  
  56.     }  
  57.   }、  
  58.   {  
  59.     ZCL_CLUSTER_ID_GEN_BASIC、  
  60.     {  //属性レコード  
  61.       ATTRID_BASIC_LOCATION_DESC、  
  62.       ZCL_DATATYPE_CHAR_STR、  
  63.       (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE)、  
  64.       (無効 *)zclSampleLight_LocationDescription  
  65.     }  
  66.   }、  
  67.   {  
  68.     ZCL_CLUSTER_ID_GEN_BASIC、  
  69.     {  //属性レコード  
  70.       ATTRID_BASIC_PHYSICAL_ENV、  
  71.       ZCL_DATATYPE_UINT8、  
  72.       (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE)、  
  73.       (無効 *)&zclSampleLight_PhysicalEnvironment  
  74.     }  
  75.   }、  
  76.   {  
  77.     ZCL_CLUSTER_ID_GEN_BASIC、  
  78.     {  //属性レコード  
  79.       ATTRID_BASIC_DEVICE_ENABLED、  
  80.       ZCL_DATATYPE_BOOLEAN、  
  81.       (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE)、  
  82.       (無効 *)&zclSampleLight_DeviceEnable  
  83.     }  
  84.   }、  
  85.   
  86.   // *** ***クラスタ属性を識別  
  87.   {  
  88.     ZCL_CLUSTER_ID_GEN_IDENTIFY、  
  89.     {  //属性レコード  
  90.       ATTRID_IDENTIFY_TIME、  
  91.       ZCL_DATATYPE_UINT16、  
  92.       (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE)、  
  93.       (無効 *)&zclSampleLight_IdentifyTime  
  94.     }  
  95.   }、  
  96.   
  97.   // ***オン/オフクラスタ***属性  
  98.   {  
  99.     ZCL_CLUSTER_ID_GEN_ON_OFF、  
  100.     {  //属性レコード  
  101.       ATTRID_ON_OFF、  
  102.       ZCL_DATATYPE_UINT8、  
  103.       ACCESS_CONTROL_READ、  
  104.       (無効 *)&zclSampleLight_OnOff  
  105.     }  
  106.   }、  
  107. }  

3.固有のコマンドCLUSTERIDに加えて、そのような属性CLUSTERIDの読み出しなどのいくつかの一般的なコマンドがある


zcl.hを配置プロトコルスタックの実装は、
  1. / ***財団コマンドIDは*** /  
  2. #define ZCL_CMD_READ $ 00  
  3. #define ZCL_CMD_READ_RSPが0x01  
  4. #define ZCL_CMD_WRITEが0x02  
  5. #define ZCL_CMD_WRITE_UNDIVIDED 0x03の  
  6. #define ZCL_CMD_WRITE_RSP 0x04の  
  7. #define ZCL_CMD_WRITE_NO_RSP 0x05の  
  8. #define ZCL_CMD_CONFIG_REPORT 0x06で  
  9. #define ZCL_CMD_CONFIG_REPORT_RSP 0x07の  
  10. #define ZCL_CMD_READ_REPORT_CFGは0x08  
  11. #define ZCL_CMD_READ_REPORT_CFG_RSP 0x09の  
  12. #define ZCL_CMD_REPORTは0x0A  
  13. #define ZCL_CMD_DEFAULT_RSP 0x0Bの  
  14. #define ZCL_CMD_DISCOVER 0x0Cの  
  15. #define ZCL_CMD_DISCOVER_RSPに0x0d  
  16.   
  17. #define ZCL_CMD_MAX ZCL_CMD_DISCOVER_RSP 
リリース5元の記事 ウォンの賞賛0 ビュー250

おすすめ

転載: blog.csdn.net/DIANZI520SUA/article/details/103560931