«Порт не открывается, ошибка / проблемы с разрешениями» или «Ошибка отсутствует, данные не отображаются» Считывание показаний электросчетчика, Node.js
Я много искал в Google и искал свои проблемы, но не получил никакой угрозы использования. У меня та же проблема, что и на 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);