Se eleva la tasa de transferencia del puerto Serie al máximo régimen estable soportado por el microcontrolador (2 Mbps). Esta optimización reduce drásticamente el tiempo de bloqueo de la CPU al imprimir mensajes de depuración, liberando ciclos de reloj que son vitales para garantizar la lectura ininterrumpida del bus CAN y soportar la futura carga de la pila Wi-Fi/UDP.
Se reemplazan las múltiples llamadas secuenciales a _logFile->print() por la construcción de una cadena de texto única en la RAM mediante snprintf. Esta refactorización minimiza las operaciones de escritura sobre el bus SPI, reduce la latencia de guardado en la SD y prepara la función flushToSD() para escalar a múltiples variables del vehículo sin riesgo de bloquear los ciclos de CPU del microcontrolador.
- Se elimina el guardado fisico forzado en cada mensaje CAN.
- Ahora los datos se acumulan en RAM y se guardan en la SD cada 1 segundo.
- Esto evita que el procesador se bloquee y pierda datos.
- Nota: riesgo de perder maximo 1s de log (minimo comparado al riesgo de perder paquetes del CAN por que se bloquee el procesador con el codigo anterior) si se corta la energia de golpe.
- Se ha centralizado todas las librerias bajo common_libraries.
- Ahora todo hace un llamado a common_libraries.hpp, mera optimización.
- Todo queda más ordenado: si cambiamos la librería de la SD mañana, solo hay que tocar un archivo.
- Hemos cambiado la táctica: ahora el archivo se abre al arrancar y SE QUEDA ABIERTO.
- En lugar de abrir y cerrar el archivo cada vez (que es muy lento), usamos 'sync' para empujar los datos a la tarjeta.
- Creada la estructura 'CarState' para que el ESP32 no se olvide de los datos entre mensajes.
- Comentados todos los cálculos que no sean usados para ahorrar recursos.
Se han eliminado todos los componentes del data_processor que no iban a ser usados y se ha comenzado a guardar en la SD algunos datos (por ahora, solo tiempo y temperatura. Los demas datos son procesados, pero aun no guardados)