ZigBee使用Z-Stack协议栈时如何关闭ACK验证

    已经第三次在交流群里面看到有人问ACK的问题了,其实我之前也不知道,有次群里面有人偶然提到,然后我就去看了一下,顿时发现自己看书多么的不仔细。明明都已经看过好几遍的结构体,还是没记住,不过那次之后就一直没忘了就是。


   afStatus_t AF_DataRequest(afAddrType_t *dstAddr, //目的地址指针

                             endPointDesc_t *srcEP, //发送节点的端点描述符指针
                             uint16cID,   //ClusID 簇ID号

                             uint16len,  //发送数据的长度

                              uint8*buf,  //指向存放发送数据的缓冲区指针

                             uint8*transID,//传输序列号,该序列号随着信息的发送而增加

                             uint8 options, //发送选项

                             uint8 radius  //最大传输半径(发送的跳数)

                            )


修改ACK验证,重要的还是  uint8 options, //发送选项   这个参数,它有以下几个值。


 #define AF_FRAGMENTED     0x01 

   #defineAF_ACK_REQUEST     0x10 //要求APS应答,这是应用层的应答,只在直接发送(单播)时使用。
   #defineAF_DISCV_ROUTE     0x20 //总要包含这个选项
   #defineAF_EN_SECURITY    0x40 
   #defineAF_SKIP_ROUTING    0x80 //设置这个选项将导致设备跳过路由而直接发送消息。终点设备将不向其父亲发送消息。在直接发送(单播)和广播消息时很好用。


如果需要关闭ACK,直接用AF_DISCV_ROUTE 就可以了


结构体代码直接复制http://blog.sina.com.cn/s/blog_6184e67b01018xzv.html的,我也懒得敲了

发布了32 篇原创文章 · 获赞 179 · 访问量 11万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章