JS节点串行端口访问被拒绝连接丢失?

问题描述

这是应该将伺服器转到180°状态的代码

const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const port = new SerialPort("COM3",{ baudrate: 9600 })


const parser = new Readline()
port.pipe(parser)

parser.on('data',line => console.log(`> ${line}`))
port.write('X(180)Y(0)')

会发生什么: 当我第一次键入导致该代码的命令时,该命令会通过,但伺服系统只会转至〜85°。 如果我再次输入命令,则会出现此错误

(节点:15088)UnhandledPromiseRejectionWarning:错误:正在打开COM3: 访问被拒绝(节点:15088)UnhandledPromiseRejection警告:未处理 承诺拒绝。该错误是由以下原因引起的: 一个没有catch块的异步函数,或者通过拒绝一个Promise 没有使用.catch()处理。终止节点进程 未处理的承诺被拒绝,请使用CLI标志 --unhandled-rejections=strict(请参阅 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝ID:1)(节点:15088)[DEP0018] DeprecationWarning:未处理 答应拒绝已弃用。将来,承诺会被拒绝 未处理的将终止Node.js进程 非零退出代码。 [10:40]错误:Ping超时。

我想重要的部分是COM3:访问被拒绝,这表明该端口被其他人使用。 但是,如果我随后尝试使用之前编写的C#程序或arduino ide访问该端口,则它可以正常工作。

我不确定端口是否刚刚失去连接,因为那样我希望伺服器至少执行一次完整命令,而不会中途停止。

到目前为止,我们一直在尝试:拔下arduino,重新启动PC,复制并粘贴我在这里找到的一些东西,因为我对这一切都不陌生,所以没什么其他了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)