通過peripheralChar4Notify發(fā)送了第1包數(shù)據(jù),什么時候才能發(fā)送第2包?也就是我想知道第1包數(shù)據(jù)什么時候發(fā)送成功?
不想通過獲取peripheralChar4Notify函數(shù)返回值的方法來確認(rèn),
通過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é)議。
您好,謝謝解答!
因為是不重要的信息,不需要應(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ù)。