/** * Convierte una línea de datos en un objeto * @param {string} line Línea de datos para convertir a objeto * @returns {object} Objeto con los datos convertidos */ function dataLineToObject(line) { //Separamos nuestra línea en diferentes trozos usando como separador el ';' const lineArray = line.split(";"); //Devolvemos un objeto con sus propiedades convertidas //Usamos el trim() para eliminar los espacios delante y detrás de los valores //Usamos el parseFloat para convertir esos valores a decimales, ya que son cadenas de texto //Usamos el parseInt para convertir esos valores a enteros, ya que son cadenas de texto try { return { paquetes: parseInt(lineArray[0].trim()), temperatura: parseFloat(lineArray[1].trim()), presion: parseFloat(lineArray[2].trim()), altitudSegunPresion: parseFloat(lineArray[3].trim()), nombreEstacion: lineArray[4].trim(), latitud: parseFloat(lineArray[5].trim()), longitud: parseFloat(lineArray[6].trim()), altitudMetros: parseFloat(lineArray[7].trim()), velocidadKmph: parseFloat(lineArray[8].trim()), direccionONose: parseFloat(lineArray[9].trim()), numSatelites: parseInt(lineArray[10].trim()), datetime: new Date(lineArray[11].trim().replace("Date/Time: ", "")) }; } catch (error) { console.error('Error al convertir los datos:', error); return null; } } /** * Espera un cierto tiempo, esto sirve para crear temporizadores * @param {number} ms Milisegundos que hay que esperar * @returns {Promise} */ async function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); } // Exportamos las funciones para poder usarlas en otras partes del programa export { dataLineToObject, sleep }