Backup senica-RVO34 on 16.10.2025

This commit is contained in:
Jakub Klena 2025-10-16 02:25:32 +02:00
parent 41f484c275
commit 1467900c80
60 changed files with 24397 additions and 0 deletions

View file

@ -0,0 +1,99 @@
const { exec } = require('child_process');
function openPort(port) {
return new Promise((resolve, reject) => {
var callbackError = function(err) {
port.removeListener('error', callbackError);
port.removeListener('open', callbackError);
reject(err.message);
};
var callbackOpen = function(data) {
port.removeListener('error', callbackError);
port.removeListener('open', callbackOpen);
resolve("port open: ok");
};
port.on('error', callbackError);
port.on('open', callbackOpen);
port.open();
})
}
function runSyncExec(command) {
return new Promise((resolve, reject) => {
exec(command, (error, stdout, stderr) => {
if (error == null) resolve(stdout);
reject(error);
});
})
}
async function writeData(port, data, readbytes, timeout) {
return new Promise((resolve, reject) => {
// If first item in data array is 255, we just write broadcast command to rsPort
// We wait 3 seconds and resolve(["broadcast"])
// It is important to resolve with array
if (data[0] == 255) {
port.write(Buffer.from(data), function(err) {
if (err) {
reject(err.message);
}
});
setTimeout(resolve, 3000, ["broadcast"]);
return;
}
//cmd-manager mame http route POST / terminal a tomu sa tiez nastavuje timeout!!!
var callback = function(data) {
rsPortReceivedData.push(...data);
let l = rsPortReceivedData.length;
if (l >= readbytes) {
port.removeListener('data', callback);
clearTimeout(t);
resolve(rsPortReceivedData);
}
};
port.removeListener('data', callback);
let t = setTimeout(() => {
port.removeListener('data', callback);
//console.log("serialport helper: writeData TIMEOUT READING", rsPortReceivedData);
reject("TIMEOUT READING");
}, timeout);
let rsPortReceivedData = [];
port.on('data', callback);
port.write(Buffer.from(data), function(err) {
if (err) {
port.removeListener('data', callback);
reject(err.message);
}
});
})
}
module.exports = {
openPort,
runSyncExec,
writeData
}