2016-07-31 266 views
1

我嘗試接收celestron nexstar goto系統的goto固件版本。Serialport nodejs奇怪的字符

我使用串口庫收到一些數據,但收到一些奇怪的字符,白蟻是唯一顯示好字符的軟件。

下面是我收到的數據和白蟻顯示的數據的示例。從的node.js

的SerialPort:♦§#

白蟻:[04] [15]#

下面是連接到安裝件,並顯示所接收的數據的代碼:

var telescope = new serial(port.comName, { 
    baudRate: 9600, 
    stopBits: 1, 
    parity: 'none' 
}); 

telescope.on('open', function() { 

    telescope.on('data', function (data) { 
     console.log('Data : ' + data); 
    }); 

    telescope.write('V'); 

}); 

有沒有什麼方法可以顯示好的數據?我搜索,我認爲這是一個編碼問題

感謝您的幫助!

+0

如何將'\ x5b \ x30 \ x34 \ x5d \ x5b \ x31 \ x35 \ x5d \ x23' **轉換爲**'§#'? – dsgdfg

回答

0

這裏發生的事情是Termite以[xx]的形式顯示控制字符(有幾個例外),其中xx是控制字符的十六進制值。但是在節點中,您隱式地將整個傳入數據視爲UTF-8。

可能通過檢查每個字節值並在括號中打印十六進制值(如果它是控制字符或將字符寫入標準輸出)來模擬白蟻的行爲。

+0

好吧,好像有點複雜:我是否必須編寫或使用另一個解析器(我使用原始解析器)? –

+0

這取決於你正在處理的數據的種類。如果它是二進制數據,那麼最好繼續使用原始解析器。如果它是一個shell會話或其他文本數據,那麼行解析器可能會更好? – mscdex