51 lines
1.9 KiB
JavaScript
51 lines
1.9 KiB
JavaScript
/**
|
|
* 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<void>}
|
|
*/
|
|
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
|
|
} |