【发布时间】:2020-07-16 08:07:04
【问题描述】:
我正在尝试从从 Arduino 纳米设备接收数据的串行端口读取数据,我已经有它的 matlab 实现并且它读取了正确的数据,
但是,我正在尝试将其迁移到节点 js,并且遇到以下问题,
应接收的数据为
']
上面的第一帧是我在 matlab 中接收它的方式,因此我可以在 node js 中使用它,由于某种原因,整个帧被替换为“?”。尤其是诸如“ÿ”之类的字符被替换为“?”。 我正在使用串行端口模块,使用读取线解析器,sn-p 看起来像,
myPort.on("data", data => {
console.log(data);
});
这绝对不是波特率问题,因为其他数据可以完美接收。它与编码有关。
【问题讨论】:
-
能否在发送数据前设置特定的编码/字符集?
-
如您所见,它是否将二进制数据的一部分视为字符串?是否可以全部视为二进制数据并将每个字节转换为十六进制字符串,或者将字符串/字符串数据和二进制数据分开并分别转换后再输出到日志?
-
我认为发送数据之前的编码应该没问题,因为它在Matlab中接收良好,唯一的问题是节点js如何解析它......
-
我也不担心被发送的数据。例如,在进行真正的处理之前,我建议你将其转换为十六进制并检查它,以确认在node.js端正确接收到数据。 How to display nodejs raw Buffer data as Hex string
标签: javascript node.js arduino serial-port