mirror of
https://github.com/adrigongv23/G26---Telemetry-Software.git
synced 2026-05-25 20:41:27 +02:00
feat(telemetry): Escritura rápida en SD usando sync()
- 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.
This commit is contained in:
parent
8e7c116e6a
commit
e991ea3923
2 changed files with 26 additions and 19 deletions
|
|
@ -24,13 +24,18 @@ void setup() {
|
|||
if (!sd.begin(SD_CS_PIN, SPI_CLOCK)) {
|
||||
Serial.println("[FALLO] SD no detectada. El sistema continuará sin Datalogging.");
|
||||
} else {
|
||||
Serial.println("[OK] SD Montada.");
|
||||
if (!logFile.exists("G26.csv")) {
|
||||
if (logFile.open("G26.csv", O_RDWR | O_CREAT | O_AT_END)) {
|
||||
// SOLO Cabeceras de lo que vamos a grabar ahora
|
||||
if (logFile.open("G26.csv", O_RDWR | O_CREAT | O_APPEND)) {
|
||||
|
||||
// Si el archivo es nuevo (tamaño 0), escribimos la cabecera
|
||||
if (logFile.size() == 0) {
|
||||
logFile.println("Time,ECT");
|
||||
logFile.close();
|
||||
}
|
||||
|
||||
// El archivo se queda abierto y listo.
|
||||
Serial.println("[OK] Archivo abierto");
|
||||
|
||||
} else {
|
||||
Serial.println("[ERROR] No se pudo abrir el archivo G26.csv");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -145,18 +145,20 @@ void DataProcessor::send_serial_frame_4(int dig3, int dig4, int dig5, int dig6,
|
|||
}
|
||||
|
||||
// ESCRITURA EN SD
|
||||
|
||||
void DataProcessor::flushToSD() {
|
||||
// Solo escribe si la tarjeta está lista
|
||||
if (_sd && _logFile && _sd->card()) {
|
||||
|
||||
// Modo APPEND
|
||||
if (_logFile->open("G26.csv", O_RDWR | O_CREAT | O_AT_END)) {
|
||||
// Verificamos que los punteros existan Y que el archivo esté abierto
|
||||
if (_sd && _logFile && _logFile->isOpen()) {
|
||||
|
||||
// 1. Escribimos los datos
|
||||
_logFile->print(millis());
|
||||
_logFile->print(",");
|
||||
_logFile->println(car.ect);
|
||||
|
||||
_logFile->close();
|
||||
}
|
||||
// 2. SYNC
|
||||
// Esto fuerza a la SD a guardar físicamente los datos AHORA MISMO,
|
||||
// pero mantiene el archivo abierto para la siguiente vuelta.
|
||||
_logFile->sync();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue