[讨论] 端点(endpoint)的实现机制

kata   2011-5-22 19:45 楼主

以前的贴子,重新整理到这个版面

 

zigbee里面应用对象是建立在端点的基础上的,写应用代码时,如果不把端点的实现机制搞明白,总觉得有点虚。

好在TI没有把这一块的代码编译到库里,有源代码分析起很方便。

在zigbee规范里面,端点最多可以支持256个,其中0号端点作保留给ZDO,255号端作为广播用途,用户可以使用的端点大概240个左右。

从AF.C和AF.H可以看到端点是借助单向链表来管理的。用户需要使用某个端点进行通讯时,先要调用afRegister注册相应的端点向端点管理链表添加一条记录。

端点一量注册之后,在接收和发送两个过程中都会使用到。

在接收过程,afIncomingData函数提取来自APS层数据包中的目标端点号,搜索节点已注册的端点号,进行匹配。如果端点号匹配则需要进一步匹配应用配置ID,应用配置ID也匹配的语,数据包就会被打包,然后借助OSAL的消息机制,最终发送到相应端点应用对象的消息处理函数。

在发送过程,端点信息被AF_DataRequest读取,填写到数据包相关的区域,如果端点注册了回调函数,回调函数将在数据发送前被调用。

电子工程师技术交流QQ群:12425841,专注于自动控制、数字电源等

回复评论 (2)

又学到知识了,谢谢分享
点赞  2011-6-22 07:31
犹如大汗遇甘霖呀,谢谢分享
点赞  2012-9-12 19:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复