【问题标题】:Serialport nodejs strange characterSerialport nodejs奇怪的字符
【发布时间】:2016-07-31 20:39:26
【问题描述】:

我尝试接收 celestron nexstar goto 系统的 goto 固件版本。

我使用串口库接收了一些数据,但我收到了一些奇怪的字符,Termite 是唯一能显示好字符的软件。

这是我收到的数据和 Termite 显示的数据的示例。

来自 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');

});

有什么方法可以显示好的数据吗?我搜索了一下,我认为这是一个编码问题

感谢您的帮助!

【问题讨论】:

  • 如何转换\x5b\x30\x34\x5d\x5b\x31\x35\x5d\x23 TO ♦§# ?

标签: node.js node-serialport


【解决方案1】:

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

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

【讨论】:

  • 哦,好吧,这似乎有点复杂:D 我是否必须编写或使用另一个解析器(我使用原始解析器)?
  • 这取决于您处理的数据类型。如果是二进制数据,那么最好继续使用原始解析器。如果是 shell 会话或其他文本数据,那么行解析器可能会更好?
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2020-05-12
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
相关资源
最近更新 更多