在 ZigBee 3.0 应用程序编译之前,必选在应用程序的头文件 zcl_options.h 中配置编译时选项。

Note 1:指定簇的(Cluster-specific)编译时选项在 ZCL User Guide (ZB3ZCLUG) 的簇说明中详细描述。

Note 2:此外,ZBD 的编译时选项必须在文件 bdb_options.h 中设置,参见第 2.10 节。


端点的编号(Number of Endpoints)

必须指定应用程序使用的最高端点编号,如:

#define BDB_FB_NUMBER_OF_ENDPOINTS 3

通常,应用程序从端点 1 开始使用,因此上述例子中,将使用端点 1 到 3。然而,可以使用编号较低的端点作非应用程序用途,即在端点 1 和 2 上运行其他协议,并在端点 3 上运行应用程序。在设置 BDB_FB_NUMBER_OF_ENDPOINTS 为 3 时,一些存储空间将会被静态分配给端点 1 和 2,但其未被使用。需要注意,此定义仅适用于本地端点,应用程序可以引用远程端点(其编号值超出所定义的 BDB_FB_NUMBER_OF_ENDPOINTS 值)。


制造商码(Manufacturer Code)

ZCL 允许一些开发设备的制造商定义制造商码。这是由 ZigBee 联盟分配给制造商的 16-bit 值,设置如下:

#define ZCL_MANUFACTURER_CODE 0x1037

以上示例将制造商码的默认值设置为 0x1037(NXP 的),但制造商(ps:指使用其芯片开发的厂商)应该设置属于自己的分配值。


使能簇(Enabled Clusters)

所有需要的簇必须在头文件的选项中使能。例如,一个 开/关 灯设备的应用程序可能需要使用以下的簇定义:

#define CLD_BASIC
#define CLD_IDENTIFY
#define CLD_GROUPS
#define CLD_SCENES
#define CLD_ONOFF

服务器和客户端选项(Server and Client Options)

许多簇都具有表明本地设备上的簇是服务器行为还是客户端行为的选项。如果上述定义之一的簇被使能,则必须定义簇的 服务器/客户端 状态。例如,使用 Groups 簇作为服务器,需在头文件中包含以下定义:

#define GROUPS_SERVER

属性读写支持(Support for Attribute Read/Write)

对簇属性的 读/写 访问必须显示编译到应用程序中,并且必须在选项头文件中使用以下的宏,以单独地使能一个簇的服务器和客户端:

#define ZCL_ATTRIBUTE_READ_SERVER_SUPPORTED
#define ZCL_ATTRIBUTE_READ_CLIENT_SUPPORTED
#define ZCL_ATTRIBUTE_WRITE_SERVER_SUPPORTED
#define ZCL_ATTRIBUTE_WRITE_CLIENT_SUPPORTED

注意,上述的每个定义将在应用程序中应用到所有簇上。


可选属性(Optional Attributes)

许多簇具有可选属性,可以在编译时通过选项头文件将其使能。例如,如下使能了 Basic 簇中的 ”application version“ 属性:

#define CLD_BAS_ATTR_APPLICATION_VERSION

results matching ""

    No results matching ""