Zigbee学习日记(九)(中)栈单播通信理论
goJhou 发布于2018-01-11 浏览:1757 回复:1
0
收藏

端点(Endpoint)

1. 他是一个字节编号的,数据收与发的基本单元。在单播通信(目前触及)时,发送模块必须指定收发双方模块的网络地址与端点。

例如从A模块(0x1234)10号端点发给B模块(0x0000)6号端点。编号由0到255

2. 端点要使用则必须要和某个任务挂钩定义

(应用层的任务事件处理函数)

3. 一个端点只能挂在一个任务上,而一个任务可以挂钩多个端点,且端点对所有任务公用,定义一个少一个

(在应用层的Init中可以查看到端点的生成与应用层任务绑定的过程)

 

无线数据包在底层任务,判断端口与哪个任务挂钩,然后无线数据包发送一个消息给任务处理函数

 

簇(ClusterId)

簇是端点中接收的最终目标。簇有2个字节编号。无线数据包最终是由簇接收的。在应用层MessageMSGCB函数中可以看到,根据簇进行分类处理。

现在再来回顾看一下发送数据包的命令,又可以看懂更多参数了

AF_DataRequest( &GenericApp_DstAddr, //目标地址 0x0000
                        &GenericApp_epDesc, //自己的端点详情 结构体叫端点描述符。其中有源端点的各项信息
                       GENERICAPP_CLUSTERID, //目标端点簇ID 1
                       (byte)osal_strlen(theMessageData) + 1, //发送数据长度
                       (byte *)&theMessageData, //数据地址
                       &GenericApp_TransID, //发送ID  是个全局变量,也可以当作应用层任务数据包发送次数计数器
                       AF_DISCV_ROUTE,
                       AF_DEFAULT_RADIUS
                       );

 

 

 

收藏
点赞
0
个赞
共1条回复 最后由荒墨丶迷失回复于2018-01-12
#2荒墨丶迷失回复于2018-01-12

强势占楼一波~

1
TOP
切换版块