CH571F使用Notify發(fā)送數(shù)據(jù),如果才能知道發(fā)送完成?

通過peripheralChar4Notify發(fā)送了第1包數(shù)據(jù),什么時候才能發(fā)送第2包?也就是我想知道第1包數(shù)據(jù)什么時候發(fā)送成功?

不想通過獲取peripheralChar4Notify函數(shù)返回值的方法來確認(rèn),

Noti本身是沒有返回值的,從協(xié)議層面來說。所以需要確保對面接收到數(shù)據(jù)有兩種方式。第一使用應(yīng)用層的應(yīng)答,例如noti主機(jī)收到后,主機(jī)回復(fù)一包數(shù)據(jù)給從機(jī),這是自定義應(yīng)答的方式。第二是使用indication,這是協(xié)議層面有應(yīng)答的方式。

既然noti本身沒有應(yīng)答,那只能從本身協(xié)議層面入手,BLE本身是可靠傳輸,并且提供接口給你用,只需要確保數(shù)據(jù)成功傳入到這個接口后,在藍(lán)牙未斷開時,數(shù)據(jù)一定會通過底層傳輸出去。這個接口就是你調(diào)用的noti發(fā)送函數(shù)接口。

至于你說的不想通過返回值確認(rèn),那建議使用indication或者自定義協(xié)議。

藍(lán)牙BLE從機(jī)Peripheral講解二(句柄指示\確認(rèn)(Handle Value Indication\Confirmation)) - SweetTea_lllpc - 博客園


您好,謝謝解答!

因為是不重要的信息,不需要應(yīng)答的數(shù)據(jù),我也不希望通過indication協(xié)議層應(yīng)答,這樣會降低傳輸效率

我希望協(xié)議棧有一個通知,就是Noti從底層發(fā)送出去了,通知一下應(yīng)用層,我應(yīng)用層好寫程序繼續(xù)給下一包數(shù)據(jù),這樣才能做到連續(xù)傳輸,高效率傳輸



協(xié)議層面不存在這個接口,并且你說的這個接口跟直接查看noti發(fā)送函數(shù)的返回值并沒有區(qū)別。

底層給你緩沖區(qū),noti的返回值可以根據(jù)返回值判斷緩沖區(qū)是否已滿進(jìn)而判斷是否繼續(xù)填入數(shù)據(jù)。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频