如何解决在 NodeJS 中重用 SerialPort 对象
我正在使用 node js 串行端口包 (https://serialport.io/docs/)。
我创建了以下串口对象:
var port = new SerialPort(data.device.hostPort,{
baudrate: 115200,autoOpen: false,}
);
我将这个对象保存在一个 json 文件中,以便稍后我可以重用它。 但是在检索json文件中的数据并解析后我无法使用串口对象方法,我尝试使用:
port.open(function(err){
if(err){
return console.log('Error opening port: ',err.message);
}
});
但是我收到一个错误,说无法识别 open 方法。 有人可以帮我解决这个问题吗? 提前致谢!
解决方法
我认为你的问题的根源在于你在学会走路之前试图跑步。你认为你理解了一些东西(比如 JSON 和类)并试图继续前进;但很明显,你缺乏一些基础知识,导致你理解错误,因为你是从基础开始的。
我认为,到那时,您可能会理解为什么您尝试做的事情与您尝试做的事情的方式不同。更重要的是,通常物理资源没有唯一标识符就无法序列化。
另一方面,您没有说明您无法解决的问题是什么,而只是说明您尝试了什么以及得到的结果。这只是问题的一半。
如果你只是想以同样的方式连接到“相同”的端口,你只需要存储信息来重建它和一些函数来做到这一点:可能你需要:
- 端口名称(唯一标识符!!):
data.device.hostPort
- 配置:
{baudRate: 115200,autoOpen: false}
此外,您必须考虑:
- 也许您需要存储其他信息,与您的问题域的具体情况更相关。
- 某些信息可能会在初始配置后发生变化。最好的方法是使用一个函数来获取 SerialPort,读取相关属性并返回一个序列化对象。然后创建另一个函数来反转操作,这将调用 SerialPort 构造函数。
- 如果您要混合序列化类,则可能需要某种方式来指示该类。此外,如果您不小心发送了另一个对象,您可以检测到它并抛出更有用的错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。