问题描述
当我第一次启动并写入成功时,我尝试使用节点串行端口写入 EDC,但第二次尝试返回错误,第三次尝试成功相同的行为继续
错误:
[Error: Writing to COM port (WriteFileEx): Invalid handle]
Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed
at onwriteError (internal/streams/writable.js:389:22)
at onwrite (internal/streams/writable.js:426:7)
我附上了我从写执行中得到的日志
[Error: Writing to COM port (WriteFileEx): Invalid handle]
Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed
我在每次交易后关闭端口(port.close()),并在每次交易开始时初始化节点串口对象
代码:
const port = new SerialPort(serialPortConfig,{ baudrate: parseInt(baudrateConfig) }).setEncoding('hex');
const parser = new Readline();
port.pipe(parser);
port.write(data,(writeError) => {
if (writeError) {
console.log('[inside writeAndDrain write error::',writeError);
}
})
port.drain((drainError) => {
if (drainError) {
console.log('[inside writeAndDrain drain error::',drainError);
}
});
port.on('data',function (data) {
console.log('[response]:',data)
port.unpipe(parser);
port.destroy((destroyError) => {
console.log('[destroyError]:',destroyError)
})
port.close();
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)