1
我正在使用java RXTX串行端口實現。
情景是監視設備(傳感器組合)正在以文本模式發送其數據,但是當攝像機有新圖像時,它應該以二進制模式發送該圖像(這是一個簡單的jpeg文件)。
如何在運行時處理這個問題?Java讀取串行端口在文本模式/二進制模式之間切換在運行時
我正在使用java RXTX串行端口實現。
情景是監視設備(傳感器組合)正在以文本模式發送其數據,但是當攝像機有新圖像時,它應該以二進制模式發送該圖像(這是一個簡單的jpeg文件)。
如何在運行時處理這個問題?Java讀取串行端口在文本模式/二進制模式之間切換在運行時
大多數設備實現了一個衆所周知的協議來發送數據,所以任何正在監聽並知道該協議的人都可以解釋這些數據。 Tipically他們發送的幀(大部分爲固定長度的時間),有一些額外的信息,如狀態,數據長度,數據類型等。例如像這樣:
| 0010 | 0001 | 1101 | 0000 ... 0010 1101 | 0111 |
status type length data CRC
如果是這樣的話您將不得不聯繫製造商以獲取協議文檔。
如果不是這種監控設備發送數據的所有時間,那麼你可以這樣做:
0xFF, 0xD8
那麼你是在JPEG圖片的存在,因爲這些字節是圖像開始(SOI)標記。然後下一個數據應該是圖像的一部分,直到獲得這對字節:0xFF, 0xD9
這是圖像的結尾(EOI)標記。下面的例子是從官方網站RXTX截取的並且字節兩者讀取數據:
謝謝,非常有幫助! –
@yasharHeidarnejad不客氣! :) – dic19