// 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); });