|
把自己初学zigbee时总结的zstack程序流程贴出来和大家共享一下:
采集节点zmain初始化——>sapiinit初始化——>进入事件——>按键事件(设置设备类型和启动方式)——>进入事件——>启动设备请求——>检查设备逻辑类型是否正确——>初始化设备——>设置一个网络初始化事件(初始化网络)交给zdapp处理——>网络形成请求——>网络形成确认(反馈信息)——>网络启动事件处理——>ZDO状态改变事件处理——>更新网络状态——向sapi发送ZDO状态改变事件——>启动确认【至此采集节点已经启动】——>按键事件(允许绑定)【至此采集节点已设置完毕】——>传感节点zmain初始化——>sapiinit初始化——>进入事件——>按键事件(设置设备类型和启动方式)——>进入事件——>启动设备请求——>检查设备逻辑类型是否正确——>初始化设备——>设置一个网络初始化事件(初始化网络)交给zdapp处理——>网络发现请求——网络发现确认——>向ZDO发送网络发现处理信息——>网络层加入请求——>网络加入确认——>向ZDO发送网络加入处理信息——>设置ZDO状态改变事件——>更新网络——>向sapi发送ZDO状态改变事件——>启动确认【至此传感节点已经启动】——>向sapi发送发现并绑定采集节点事件(包含于用户事件)——>(发现采集节点后)向采集节点发送匹配描述符请求消息(包含于系统消息)——>采集节点处理匹配描述符消息处理(ZDO层ZDO_ProcessMatchDescReq)——>如果找到与之匹配描述符,就给传感节点发送响应信息——>传感节点处理匹配响应(由于初始化时已经在sapi层注册了匹配响应,响应就在sapi层处理)——>设置网络更新事件(空操作)——>查找绑定设备的IE地址(向采集节点发送IE地址请求)——>采集节点处理传感节点的请求(包含于ZDO层AF消息输入处理)并查找自己的IE地址,将其发送给传感节点——>(由于未在sapi层注册IE地址响应处理,那么就在ZDApp层处理(包含在ZDO层AF消息输入处理))传感节点对IE地址做响应处理(更新网络地址和IE地址)——>向应用程序绑定确认消息——>设置用户事件(开始处理用户函数)——>发送数据给采集节点——>采集节点处理接收到的数据(sapi层AF消息输入处理) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|