node.js - “端口未打开错误/权限问题”或“没有显示数据的错误”电表读数,Node.js
问题描述
我已经用谷歌搜索并搜索了很多我的问题,但没有受到任何使用威胁。我有与https://github.com/yaacov/node-modbus-serial/issues/115相同的问题,但我使用的是 Windows 10 操作系统。我尝试了建议的解决方案,但仍然是同样的问题。我认为这应该很简单,但现在卡住了好几天
var path = "COM3";
var ModbusRTU = require("modbus-serial");
var client = new ModbusRTU();
client.connectRTUBuffered(path, { baudRate: 9600, stopbits: 1, databits: 8, parity: 'none' }, false, read());
client.setID(1);
function read() {
// read the 20 registers starting at address 0
// on device number 1.
var data = client.readHoldingRegisters(0, 20)
console.log(data)
}
使用此代码,我没有得到端口权限/权限被拒绝错误。通过设备管理器端口属性的端口信息
- 每秒比特数:9600
- 数据位:8
- 奇偶校验:无
- 停止位:1
- 流量控制:无
输出 1:(节点:10784)UnhandledPromiseRejectionWarning:错误:打开 COM3:访问被拒绝
尝试手动打开端口
var x = setInterval(function () {
if (client.isOpen) {
client.setID(1);
//console.log("WORKING WORKING");
try {
client.readHoldingRegisters(0, 10, function (err, data) {
console.log(data);
});
} catch (err) {
console.log("Error Encountered: " + err)
}
} else {
console.log("ERROR ERROR ERROR");
}
}, 1000);
解决方案
推荐阅读
- openstreetmap - 不通过更新的提名数据更新光子
- php - 如何连接两列值,例如 - 产品名称(产品数量),......来自while循环中的表并存储在变量中
- python - 在 Keras 中读取 LSTM 文本时如何修复此“UnicodeEncodeError”/“TypeError”
- r - 调整 tmap 中的图例大小
- codeigniter - 如何在codeigniter中使用带有like的连接表以及在like中使用多列
- javascript - Angular 表单验证,在 HTML 上迭代时访问表单控件
- c# - 学生姓名用“,”转换?
- php - 如何在html表的换行符中显示for循环PHP变量
- vbscript - 向域用户授予权限不起作用
- javascript - 如何将窗口的 keydown 监听器用于 Chrome 用作快捷键的键?