ZigBee 3.0 应用程序的初始化如 ZigBee 3.0 Stack User Guide (ZB3STAUG) 的 “Forming and Joining a Network”部分所述。此外,必须执行一些设备的初始化。

ZigBee 设备的初始化必须根据下面的顺序执行:

1.在头文件 zcl_options.h 中,使能所需的编译时(compile-time)选项。这些选项包括:设备要使用的簇、每个簇的 客户端/服务器 状态和每个簇的可选属性。有关编译时选项的信息,请参阅第 1.6 节。

2.在应用程序中,通过声明文件范围变量来创建设备结构的示例。例如:

tsZLO_DimmableLightDevice sDevice;

3.在应用程序的初始化部分,设置你的代码处理的设备,如下所示:

a) 设置设备要使用的簇属性的初始值,例如:

sDevice.sBasicCluster.u8StackVersion = 1;
sDevice.sBasicCluster....

b) 在调用 ZPS_eAplAfInit() 之前和在调用 calling eZCL_Initialise() 之后,通过调用相关的设备注册函数来注册设备。例如:eZLO_RegisterDimmableLightEndPoint()。在这个函数调用中,设备必须分配一个端点(在 1 - 240 的范围中)。另外,必须指定设备结构以及用户定义的(user-defined)回调函数,该函数将在与端点相关的事件发生时被调用(参阅第 1.5 节)。一旦该函数被调用,共享设备结构可以被另一个设备读取。

c) 在调用 ZPS_eAplAfInit() 之后,通过先调用 BDB_vInit() 然后调用 BDB_vStart() 来初始化并启动 ZBD(请参阅第 2.1 节以了解 ZBD 初始化的更多细节)。

Note 1:设备类型说明中详细介绍了不同设备类型的端点注册函数的设置。例如,第 3 章 Lighting and Occupancy devices。

Note 2:设备注册函数创建设备使用的所有簇的实例,因此不需要明确地调用各个簇的创建函数,例如:创建 Identify 簇的 eCLD_IdentifyCreateIdentify()。

results matching ""

    No results matching ""