Serialport nodejs奇怪的字符

问题描述:

我尝试接收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

这里发生的事情是Termite以[xx]的形式显示控制字符(有几个例外),其中xx是控制字符的十六进制值。但是在节点中,您隐式地将整个传入数据视为UTF-8。

可能通过检查每个字节值并在括号中打印十六进制值(如果它是控制字符或将字符写入标准输出)来模拟白蚁的行为。

+0

好吧,好像有点复杂:我是否必须编写或使用另一个解析器(我使用原始解析器)? –

+0

这取决于你正在处理的数据的种类。如果它是二进制数据,那么最好继续使用原始解析器。如果它是一个shell会话或其他文本数据,那么行解析器可能会更好? – mscdex