AF_DataRequest数据包发送。
这个函数是AF框架下的数据包发送请求,函数逐步构造一个应用层的数据包,然后调用下APS层函数APSDE_DataReq发送数据包。
函数操作过程如下:
1)检验源端点是否有效。
2)检验目标地址是否广播地址,如果地址和模式有冲突,修正广播地址。
3)填写目标地址。
4)填写默认配置ID。
5)如果源端点有回调函数,调用回调函数修改配置ID。
6)如果端点有简单描述符,覆盖掉默认配置ID。
7)根据条件填写发送选项。
8)填写交易ID,transID。
9)填写源端点。
10)填写目源端点。
11)填写簇ID。
12)填写APS载荷数据长度。
13)填写APS载荷数据指针。
14)填写是否允许触发路由发现服务。当数据包找不到目标时触发路由服务。
15)设计广播半径。
16)调用APS数据发送函数。
17)如果目标地址是本节点,调用数据包确认原语。
没有看原代码之前一直觉得第二个参数源端点有些古怪,为什么不用源端点号来得简单明了,从代码中可以看到源端点在发送过程需要调用源端点回调函数,同时需要用到源端点简单描述符中的配置ID,第二参数使用端点结构体就不足为怪了。