Log measurements on SD card added on DISCO-L476VG board acceleration, omega, compass & 5 Analog values
Dependencies: BSP_DISCO_L476VG COMPASS_DISCO_L476VG ConfigFile GYRO_DISCO_L476VG SDFileSystem mbed
Diff: DataFile/DataFile.cpp
- Revision:
- 0:0861bf46efe4
- Child:
- 1:e1f3b4b8b99b
diff -r 000000000000 -r 0861bf46efe4 DataFile/DataFile.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DataFile/DataFile.cpp Fri Feb 12 20:54:38 2016 +0000 @@ -0,0 +1,85 @@ +#include "DataFile.h" +#include "ConfigFile.h" //pour lire le fichier de configuration + +#include "mbed.h" +#include "util.h" + +//tDataFile::tDataFile(DigitalOut* apLedRecord) +tDataFile::tDataFile() +{ + Opened=0; + //pLedRecord=apLedRecord; +} + + + + +void tDataFile::New() +{ + + char DataFileName[40] ; + char NumFich[40]; + char *keyIndex = "Index"; + char value[BUFSIZ]; + ConfigFile cfg; + if (Opened==0) + { + //récupère le n° d'index dans un fichier de configuration + if (!cfg.read("/sd/index.txt")) { + error("Failure to read index file.\n"); + } + cfg.getValue(keyIndex, &value[0], sizeof(value)); + Index=atoi(value); + printf("Index=%d\r\n", Index); + + //crèe le non de fichier à créer + // printf("OpenDataFile\n\r"); + strcpy(DataFileName,"/sd/"); + // printf("DataFileName=%s\n\r",DataFileName); + itoa(Index,NumFich); + // printf("numFich=%s\n\r",NumFich); + strcat (DataFileName,NumFich); + // printf("DataFileName=%s\n\r",DataFileName); + strcat (DataFileName,".txt"); + printf("DataFileName=%s\n\r",DataFileName); + + //met à jour l'index + + itoa(Index+1,NumFich); + printf("Prochain fichier a ecrire=%s\n\r",NumFich); + cfg.setValue(keyIndex, NumFich); + cfg.write("/sd/index.txt","index",cfg.DOS); + + //ouvre le fichier + fp= fopen(DataFileName, "a"); // Open "xxx.txt" on the local file system for writing + + fprintf(fp, "Gx\tGy\tGz\tWx\tWy\tWz\tMx\tMy\tMz\n"); + Opened=1; + printf("DataFile opened\n\r"); + + + } +} + +void tDataFile::Close() +{ + if (Opened==1) + { + fclose(fp); + Opened=0; + printf("DataFile Closed\n\n\r"); + } +} + +void tDataFile::SaveMesures(tMesure * apMesure) +{ + + if (Opened==1) + { + printf("sauvegarde en cours\r\n"); + apMesure->Save(fp); + } +} + + +