Thread 中讨论的其他器件:Z-stack
您好,团队
协议栈初始化;首先、我使用编辑器作为官方 CCS、打开官方 Z-stack 例程、删除官方应用层、并根据官方 API 配置 Z-stack 初始化。 不能像这样配置它? 这是根据官方 API 来完成的
配置如下:
静态 空 zclGenericApp_Init( void )
{
//注册 端点
//通过调用 Zstackapi_AfRegisterReq()来注册一个或多个 Zigbee 设备端点。
zclGenericAppEpDesc.endpoint = GENERICAPP_ENPOINT;
zclGenericAppEpDesc.simpleDesc =&zclGenericApp_SimpleDesc;
zclport_registerEndpoint (appServiceTaskId、&zclGenericAppEpDesc);//Zstackapi_AfRegisterReq
/*通过使用所需的回调调用 Zstackapi_DevZDOCBREQ()来注册 Z-Stack 回调(异步)消息。*/
SetupZStackCallbacks();//Zstackapi_DevZDOCBREQ
/*Write Z-Stack 参数,使用 所需参数调用 Zstackapi_sysConfigWriteReq()。 *
myZstackapi_sysConfigWriteReq ();//Zstackapi_sysConfigWriteReq
/*Call Zstackapi_DevStartReq()以启动 Z-Stack Thread 的自动加入过程。*/
myZstackapi_DevStartReq();
/* 调用 zclport_getDeviceInfo()以检索设备的连接网络参数。//
zclport_getDeviceInfo (appServiceTaskId);
*
}
通过调用 Zstackapi_AfDataReq() 来发送应用程序专有消息。
void send(){Zstackapi_AfDataReq()
API:
zstackapi.h 中定义的函数是通过 OsalPort 消息传递与 Z-Stack 映像进行通信的函数。 如果需要立即响应、而不是无线响应、则该功能将阻止响应消息。
要设置与 Z-Stack 线程通信、您的应用应执行以下初始化(简化):
- 通过调用 Zstackapi_AfRegisterReq()来注册一个或多个 Zigbee 设备端点。
- 通过使用 所需的回调调用 Zstackapi_DevZDOCBREQ()来注册 Z-Stack 回调(异步)消息。 例如,如果要接收设备状态更改通知,则必须在 ZStack_devZDOCKREQ_t 中将 ha_devStateChange 和 devStateChange 字段设置为 true,然后调用 Zstackapi_DevZDOCBREQ()。
- 通过 使用所需参数调用 Zstackapi_sysConfigWriteReq ()来写入 Z-Stack 参数。 示例参数包括通道掩码、PAN ID、轮询速率、超时等。
- 调用 Zstackapi_DevStartReq ()来启动 Z-Stack Thread 的自动加入过程。
加入过程完成后、您将收到 状态 为以下的 zstackmsg_CmdIDs_dev_State_change_IND 消息:
- ZStack_DevState_dev_ZB_COord-器件作为协调器启动。
- ZStack_DevState_dev_router-作为路由器加入的设备。
- ZStack_DevState_dev_end_device-作为终端器件加入的器件。
然后、如果 您的应用程序不是 ZCL 项目、则应调用 zclport_getDeviceInfo()或 Zstackapi_sysNWkInfoReadReq()来检索器件的已加入网络参数。
您可以通过 ZDO 命令(即 Zstackapi_ZdoMatchDescReq())进行器 件发现,并通过 ZCL 命令或调用 Zstackapi_AfDataReq()发送数据以发送应用程序专有消息。
注册终结点后、应用程序将通过 OsalPort 消息接收发送到该终结点的任何数据消息、作为 AF 传入数据指示[zstackmsg_afIncomingMsgInd_t、消息事件为 zstackmsg_CmdIDs_AF_Incoming_MSG_IND]。
此外,您注册使用 Zstackapi_DevZDOCBREQ()的任何指示或响应消息 都将作为 OsalPort 消息传送到您的应用程序。 例如、设备状态更改消息[zstackmsg_devStateChangeInd_t 、消息事件 为 zstackmsg_CmdIDs_dev_State_change_IND]。
此致、
Susan Ren