perf(sd): activar escritura por buffer y sync periodico

- 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.
This commit is contained in:
Alejandro Guerrero 2025-12-16 13:53:09 +01:00
parent d190db3d3c
commit 9993acaba6
Signed by: alejandrogs73
GPG key ID: 1CFF10953BEE333C
2 changed files with 13 additions and 6 deletions

View file

@ -30,6 +30,10 @@ private:
SdFile* _logFile;
CarState car;
uint32_t _last_sync_time = 0;
const uint32_t _sync_interval_ms = 1000; // Guardar físicamente cada 1 segundo (ajustable)
// Esto optimiza tiempos. Los datos se guardan a la velocidad del CAN en RAM y cada 1 segundo se vuelcan a la SD. Cosa mucho más optima ya que la SD es relativamente lenta comparada al CAN
void flushToSD(); // Guardado físico
};