Risolizione di un bug che causava il riavvio della porta

This commit is contained in:
Giuseppe Raffa
2026-05-13 12:43:43 +02:00
parent db15e0c704
commit 9a299586f4
2 changed files with 22 additions and 2 deletions

View File

@@ -97,10 +97,26 @@ module.exports = function (app) {
try {
await bms.open();
await bms.getStatus(); // necessario per cell/temp
let lastErr = null;
for (let i=0; i<3; i++) {
try {
await bms.getStatus();
lastErr = null;
break;
} catch (error) {
lastErr = error;
await new Promise(r => setTimeout(r, 500));
}
if (lastErr) throw lastErr;
}
app.setPluginStatus(`Connesso a ${opts.device}`);
} catch (e) {
app.setPluginError(`init failed: ${e.message}`);
if (bms) {
await bms.close().catch(()=>{});
bms = null;
}
return;
}

View File

@@ -29,9 +29,13 @@ class BMS {
dataBits: 8,
parity: 'none',
stopBits: 1,
lock: true,
autoOpen: false
});
this.port.open(err => err ? reject(err) : this.port.flush(() => resolve()));
this.port.open(err => {
if (err) return reject(err);
setTimeout(() => this.port.flush(() => resolve()), 300);
});
});
}