您好,我們一直在用Ch34x芯片,并且應用在 安卓OTG? 與我們的設備 進行通信。
之前一直很穩(wěn)定,因為 我們的協(xié)議幀 長度固定10字節(jié) or 130字節(jié),后面? 我們 在其它項目中,發(fā)出 不定長的數(shù)據(jù),發(fā)現(xiàn)一個異常情況;
場景背景如下:
1.android 代碼 我們目前 不是直接用的 sdk
2.我們有個線程 在讀取 數(shù)據(jù),我們的buffer,usbdata 長度為1024.?
我們可以正常收發(fā)數(shù)據(jù),并且在我們項目中驗證了?3-4年都沒問題。
現(xiàn)在 新情況為:我們新的項目中 與設備端 通信采用 非定長 協(xié)議(即 在協(xié)議中 約定幀長,動態(tài)解析),我們發(fā)現(xiàn) 當設備 發(fā)來32 字節(jié)的數(shù)據(jù)時,我們居然 收不到數(shù)據(jù)。? 設備一直發(fā)32,一直收不到數(shù)據(jù),直到? 撐滿1024的buffer,才一股腦的 從安卓底層上傳數(shù)據(jù)上來。
針對此情況,我將接收buffer 長度調(diào)成 32字節(jié),此時可以兼容此情況。但是 依舊存在一個問題:當設備端 發(fā)來 200+ 數(shù)據(jù)時,此時 鐵定丟包。
請問有沒有好的解決辦法