欢迎来到天天文库
浏览记录
ID:1970833
大小:41.00 KB
页数:5页
时间:2017-11-14
《zigbee数据的发送和接收》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据的发送和接收一、数据的发送在ZStack2006的协议栈中,我们只需调用函数AF_DataRequest()即可完成数据的发送。afStatus_tAF_DataRequest(afAddrType_t*dstAddr,endPointDesc_t*srcEP,uint16cID,uint16len,uint8*buf,uint8*transID,uint8options,uint8radius)而我们在使用AF_DataRequest()函数时只需要了解其参数便可以非常灵活的以各种方式来发送数据。AF_DataRequest()函数参
2、数说明如下:*dstAddr---------------------发送目的地址、端点地址以及传送模式*srcEP-----------------------源端点cID---------------------------簇IDlen---------------------------数据长度*buf-------------------------数据*transID--------------------序列号options----------------------发送选项radius---------------------
3、--跳数*dstAddr决定了消息发送到那个设备及那个endpoint,而簇ID(cID)决定了设备接收到信息如何处理。簇可以理解为是一种约定,约定了信息怎么处理。重要参数说明:1、地址afAddrType_ttypedefstruct{union{uint16shortAddr;//短地址}addr;afAddrMode_taddrMode;//传送模式byteendPoint;//端点号}afAddrType_t;2、端点描述符endPointDesc_ttypedefstruct{byteendPoint;//端点号byte*task
4、_id;//那一个任务的端点号SimpleDescriptionFormat_t*simpleDesc;//简单的端点描述afNetworkLatencyReq_tlatencyReq;}endPointDesc_t;3、简单描述符SimpleDescriptionFormat_ttypedefstruct{5byteEndPoint;//EPuint16AppProfId;//应用规范IDuint16AppDeviceId;//特定规范ID的设备类型byteAppDevVer:4;//特定规范ID的设备的版本byteReserved:4;
5、//AF_V1_SUPPORTusesforAppFlags:4.byteAppNumInClusters;//输入簇ID的个数cId_t*pAppInClusterList;//输入簇ID的列表byteAppNumOutClusters;//输出簇ID的个数cId_t*pAppOutClusterList;//输出簇ID的列表}SimpleDescriptionFormat_t;4、簇IDcIDClusterID--具体应用串ID5、发送选项options发送选项有如下选项#defineAF_FRAGMENTED0x01#defineAF
6、_ACK_REQUEST0x10#defineAF_DISCV_ROUTE0x20#defineAF_EN_SECURITY0x40#defineAF_SKIP_ROUTING0x80其中AF_ACK_REQUEST为发送后需要接收方的确认6、半径、条数radius传输跳数或传输半径,默认值为10数据发送模式说明:在协议栈数据发送模式有以下几种:单播、组播、广播和直接发送四种模式。广播发送广播发送可以分为三种,如果想使用广播发送,则只需将dstAddr->addrMode设为AddrBroadcast,dstAddr->addr->shor
7、tAddr设置为相应的广播类型即可。具体的定义如下:NWK_BROADCAST_SHORTADDR_DEVALL(0xFFFF)——数据包将被传送到网络上的所有设备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时。NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD)——数据包将被传送到网络上的所有接收机的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC)——数据包发送给所有的路由器
8、,包括协调器。组播发送如果设备想传输数据到某一组设备,那么只需将dstAddr->addrMode设为AddrGroup,dstAddr->addr->shortAddr设置为相
此文档下载收益归作者所有