2011-11-03 82 views
0

我試圖通過藍牙從傳感器獲取一些數據。傳感器發送給我8位軟件包。問題是數據具有不同的長度(幾次8位),所以我無法確定數據的結束。在android(停止位)接收藍牙傳輸的正確方法

現在我將字符串追加到一起並檢查回車,但問題是這是我的傳感器特定的(在字符串結尾我有回車)。

對於一個測量傳感器數據是這樣的:

547.8 5.688 22.40 .0000 .0000 .0000 \r\n 
547.8 855.688 22.40 .0000 .0000 .0000 \r\n 

我發送此傳感器數據每秒到機器人設備。 Android設備獲得8位塊,但我無法檢測到停止位。

有沒有一種方法來檢測停止位或我現在得到了一個輸入的全部數據?

我收到類似於android藍牙聊天的藍牙傳輸示例。

謝謝 託尼

回答

1

總是有需要在數據的方式來找到每個塊的結束,而一個只是不斷讀書,直到這一點被發現。通常,這是一個完整的行(以換行符結尾),或者它可以是第一個或兩個字節(或字符)中的計數值。人們不能依靠一次閱讀或類似的數據。

請注意,「停止位」是在物理串行電纜上使用的東西,並且在之後每隔字節,因此如果在這裏沒有用處。

+0

謝謝你的解釋。 – toni