Versión Inicial
This commit is contained in:
38
main.js
Normal file
38
main.js
Normal file
@@ -0,0 +1,38 @@
|
||||
// Importamos las librerias necesarias
|
||||
import { SerialPort } from 'serialport';
|
||||
import { ReadlineParser } from '@serialport/parser-readline';
|
||||
|
||||
// Importamos las funciones de utilidad que vayamos a usar
|
||||
import { dataLineToObject } from './libs/utils.js';
|
||||
|
||||
// Importamos las funciones de la API
|
||||
import { subirDato } from './libs/api.js';
|
||||
|
||||
// Importamos toda la configuración
|
||||
import config from './config.js';
|
||||
|
||||
// Creamos una conexión con el puerto serial
|
||||
const port = new SerialPort({
|
||||
path: config.serial.path,
|
||||
baudRate: config.serial.baudRate,
|
||||
autoOpen: true
|
||||
});
|
||||
|
||||
// Le establecemos que procese los datos recibidos con el parser de readline y le decimos que diferencie las líneas por saltos de línea
|
||||
const parser = port.pipe(new ReadlineParser({ delimiter: '\n' }));
|
||||
|
||||
// Esperamos a que se abra el puerto y cuando lo haga ejecutamos un console log para indicar que se ha abierto correctamente
|
||||
port.on('open', () => {
|
||||
console.log(`Puerto ${config.serial.path} conectado correctamente.`);
|
||||
});
|
||||
|
||||
// Cada vez que recibamos un dato, le decimos al programa que lo procese sin bloquear la ejecución principal
|
||||
parser.on('data', async (data) => {
|
||||
// Convertimos la línea recibida en un objeto y lo mandamos a la api para que se encargue de la subida
|
||||
subirDato(dataLineToObject(data));
|
||||
});
|
||||
|
||||
// Si hay un error en el puerto, lo mostramos en la consola
|
||||
port.on('error', (err) => {
|
||||
console.error('Error en el puerto:', err.message);
|
||||
});
|
||||
Reference in New Issue
Block a user