微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

节点串口写入错误[Error: Writing to COM port (WriteFileEx): Invalid handle] 第二次写入时发生错误

如何解决节点串口写入错误[Error: Writing to COM port (WriteFileEx): Invalid handle] 第二次写入时发生错误

当我第一次启动并写入成功时,我尝试使用节点串行端口写入 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 举报,一经查实,本站将立刻删除。