注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
kata的个人空间 https://home.eeworld.com.cn/space-uid-120358.html [收藏] [复制] [分享] [RSS]
日志

Zstack学习经验点滴:端点(endpoint)的实现机制。

已有 3859 次阅读2010-12-3 16:48

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


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


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


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


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


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


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

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章