2016-07-31 2 views
1

Я пытаюсь получить версию прошивки goto системы celestron nexstar goto.Serialport nodejs странный символ

Я получаю некоторые данные, используя библиотеку serialport, но получаю какой-то странный символ, Termite - единственное мягкое, которое отображает хорошие символы.

Ниже приведен пример данных, которые я получаю, и данных, которые отображаются на экране Termite.

SerialPort из Node.js: ♦ § #

термитов: [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' ** TO **' ♦ § # '? – dsgdfg

ответ

0

Что здесь происходит, так это то, что Termite отображает управляющие символы (за некоторыми исключениями) в форме [xx], где xx - это шестнадцатеричное значение управляющего символа. Однако в узле вы неявно рассматриваете всю полноту входящих данных как UTF-8.

может эмулировать поведение термита путем проверки каждого байтового значения и печати шестнадцатеричного значения в скобках, если это управляющий символ или запись символа в стандартный вывод.

+0

ой, похоже, это немного сложно: D я должен был написать или использовать другой парсер (я использую сырой парсер)? –

+0

Это зависит от типа данных, с которыми вы имеете дело. Если это двоичные данные, тогда лучше использовать сырой парсер. Если это сеанс оболочки или другие текстовые данные, возможно, анализатор строк может быть лучше? – mscdex