Update many stuff, see toDo
Took 9 seconds
This commit is contained in:
81
getSerialList.js
Normal file
81
getSerialList.js
Normal file
@ -0,0 +1,81 @@
|
||||
const { SerialPort } = require('serialport');
|
||||
const { ReadlineParser } = require('@serialport/parser-readline');
|
||||
|
||||
( async( ) => {
|
||||
console.log( await SerialPort.list() );
|
||||
|
||||
|
||||
let port = new SerialPort( { path: '/dev/ttyS11', baudRate: 9600 } );
|
||||
|
||||
/*port.on('data', function (data) {
|
||||
console.log('Data:', data.toString())
|
||||
|
||||
})*/
|
||||
|
||||
port.close()
|
||||
|
||||
let callbacks = {};
|
||||
|
||||
function request()
|
||||
{
|
||||
return new Promise((resolve, reject) => {
|
||||
let id = makeid(8);
|
||||
console.log(id);
|
||||
|
||||
let req = {
|
||||
id: id,
|
||||
type: "REQUEST",
|
||||
data: "1,2"
|
||||
}
|
||||
|
||||
callbacks[req.id] = resolve;
|
||||
|
||||
let done = false;
|
||||
|
||||
setTimeout( () => {
|
||||
if( !done )
|
||||
reject("Request with id " + id + " timed out");
|
||||
}, 15000 );
|
||||
|
||||
port.write(JSON.stringify(req) + "\r", "utf-8");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
const parser = port.pipe(new ReadlineParser({ delimiter: '\r' }))
|
||||
|
||||
parser.on('data', (data) => {
|
||||
/*let req = {
|
||||
id: id,
|
||||
type: "ACK",
|
||||
data: "1,2"
|
||||
}*/
|
||||
|
||||
data = data.toString().trim();
|
||||
let json = JSON.parse(data);
|
||||
|
||||
console.log("GOT: " + data );
|
||||
callbacks[json.id]();
|
||||
|
||||
});
|
||||
|
||||
try {
|
||||
await request();
|
||||
console.log("FUNCTION RESOLVED YAY!");
|
||||
} catch( e )
|
||||
{
|
||||
console.error(e);
|
||||
}
|
||||
} )();
|
||||
|
||||
function makeid(length) {
|
||||
var result = '';
|
||||
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
var charactersLength = characters.length;
|
||||
for ( var i = 0; i < length; i++ ) {
|
||||
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user