我正在使用下面的库通过USB连接到外部设备:
https://github.com/node-serialport/node-serialport
我设置了以下示例项目来缩小问题的范围:
https://github.com/nyoung697/node-serial-test
这段代码可以在我的Mac上运行。我要连接的设备接受ascii命令,回车符返回以终止该命令。
在示例项目中,我传入了'V\r‘,并期望返回设备的版本。当我在Mac上运行这段代码时,我得到了预期的响应。
然而,当我在我的Windows10机器上运行它时,我根本得不到任何响应。port.on('data')或port.on('error')事件都未命中。
我测试了将序列端口库降级到版本4.0.7,它确实起作用了。
有谁知道4 => 6之间可能发生了什么变化吗?
附注:我编辑了这个问题,因为我最初认为它与电子有关,但是在只用node.js做了这个简单的测试后,我相信我已经把范围缩小到了Windows上的这个库版本。
发布于 2018-08-02 03:13:21
好吧..。我刚想通了。
我所需要做的就是将'rtscts‘属性添加到我传递给构造函数的openOptions对象中,并将其设置为true。
const SERIAL_PORT_SETTINGS = {
baudRate: 115200,
rtscts: true
};
let port = new SerialPort(devicePath, SERIAL_PORT_SETTINGS);我通过仔细阅读发行说明找到了这一点。我注意到从v5.x.x到6.0.0的重大变化包括将这个值默认为false。
窗口:我们以前硬编码让windows的RTS一直处于打开状态,现在默认设置为关闭。
https://stackoverflow.com/questions/51623375
复制相似问题