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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章