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

Committer:
flowh
Date:
Fri Feb 12 20:54:38 2016 +0000
Revision:
0:0861bf46efe4
Child:
1:e1f3b4b8b99b
enregistrement Acc et boussole sur sd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
flowh 0:0861bf46efe4 1 #include "DataFile.h"
flowh 0:0861bf46efe4 2 #include "ConfigFile.h" //pour lire le fichier de configuration
flowh 0:0861bf46efe4 3
flowh 0:0861bf46efe4 4 #include "mbed.h"
flowh 0:0861bf46efe4 5 #include "util.h"
flowh 0:0861bf46efe4 6
flowh 0:0861bf46efe4 7 //tDataFile::tDataFile(DigitalOut* apLedRecord)
flowh 0:0861bf46efe4 8 tDataFile::tDataFile()
flowh 0:0861bf46efe4 9 {
flowh 0:0861bf46efe4 10 Opened=0;
flowh 0:0861bf46efe4 11 //pLedRecord=apLedRecord;
flowh 0:0861bf46efe4 12 }
flowh 0:0861bf46efe4 13
flowh 0:0861bf46efe4 14
flowh 0:0861bf46efe4 15
flowh 0:0861bf46efe4 16
flowh 0:0861bf46efe4 17 void tDataFile::New()
flowh 0:0861bf46efe4 18 {
flowh 0:0861bf46efe4 19
flowh 0:0861bf46efe4 20 char DataFileName[40] ;
flowh 0:0861bf46efe4 21 char NumFich[40];
flowh 0:0861bf46efe4 22 char *keyIndex = "Index";
flowh 0:0861bf46efe4 23 char value[BUFSIZ];
flowh 0:0861bf46efe4 24 ConfigFile cfg;
flowh 0:0861bf46efe4 25 if (Opened==0)
flowh 0:0861bf46efe4 26 {
flowh 0:0861bf46efe4 27 //récupère le n° d'index dans un fichier de configuration
flowh 0:0861bf46efe4 28 if (!cfg.read("/sd/index.txt")) {
flowh 0:0861bf46efe4 29 error("Failure to read index file.\n");
flowh 0:0861bf46efe4 30 }
flowh 0:0861bf46efe4 31 cfg.getValue(keyIndex, &value[0], sizeof(value));
flowh 0:0861bf46efe4 32 Index=atoi(value);
flowh 0:0861bf46efe4 33 printf("Index=%d\r\n", Index);
flowh 0:0861bf46efe4 34
flowh 0:0861bf46efe4 35 //crèe le non de fichier à créer
flowh 0:0861bf46efe4 36 // printf("OpenDataFile\n\r");
flowh 0:0861bf46efe4 37 strcpy(DataFileName,"/sd/");
flowh 0:0861bf46efe4 38 // printf("DataFileName=%s\n\r",DataFileName);
flowh 0:0861bf46efe4 39 itoa(Index,NumFich);
flowh 0:0861bf46efe4 40 // printf("numFich=%s\n\r",NumFich);
flowh 0:0861bf46efe4 41 strcat (DataFileName,NumFich);
flowh 0:0861bf46efe4 42 // printf("DataFileName=%s\n\r",DataFileName);
flowh 0:0861bf46efe4 43 strcat (DataFileName,".txt");
flowh 0:0861bf46efe4 44 printf("DataFileName=%s\n\r",DataFileName);
flowh 0:0861bf46efe4 45
flowh 0:0861bf46efe4 46 //met à jour l'index
flowh 0:0861bf46efe4 47
flowh 0:0861bf46efe4 48 itoa(Index+1,NumFich);
flowh 0:0861bf46efe4 49 printf("Prochain fichier a ecrire=%s\n\r",NumFich);
flowh 0:0861bf46efe4 50 cfg.setValue(keyIndex, NumFich);
flowh 0:0861bf46efe4 51 cfg.write("/sd/index.txt","index",cfg.DOS);
flowh 0:0861bf46efe4 52
flowh 0:0861bf46efe4 53 //ouvre le fichier
flowh 0:0861bf46efe4 54 fp= fopen(DataFileName, "a"); // Open "xxx.txt" on the local file system for writing
flowh 0:0861bf46efe4 55
flowh 0:0861bf46efe4 56 fprintf(fp, "Gx\tGy\tGz\tWx\tWy\tWz\tMx\tMy\tMz\n");
flowh 0:0861bf46efe4 57 Opened=1;
flowh 0:0861bf46efe4 58 printf("DataFile opened\n\r");
flowh 0:0861bf46efe4 59
flowh 0:0861bf46efe4 60
flowh 0:0861bf46efe4 61 }
flowh 0:0861bf46efe4 62 }
flowh 0:0861bf46efe4 63
flowh 0:0861bf46efe4 64 void tDataFile::Close()
flowh 0:0861bf46efe4 65 {
flowh 0:0861bf46efe4 66 if (Opened==1)
flowh 0:0861bf46efe4 67 {
flowh 0:0861bf46efe4 68 fclose(fp);
flowh 0:0861bf46efe4 69 Opened=0;
flowh 0:0861bf46efe4 70 printf("DataFile Closed\n\n\r");
flowh 0:0861bf46efe4 71 }
flowh 0:0861bf46efe4 72 }
flowh 0:0861bf46efe4 73
flowh 0:0861bf46efe4 74 void tDataFile::SaveMesures(tMesure * apMesure)
flowh 0:0861bf46efe4 75 {
flowh 0:0861bf46efe4 76
flowh 0:0861bf46efe4 77 if (Opened==1)
flowh 0:0861bf46efe4 78 {
flowh 0:0861bf46efe4 79 printf("sauvegarde en cours\r\n");
flowh 0:0861bf46efe4 80 apMesure->Save(fp);
flowh 0:0861bf46efe4 81 }
flowh 0:0861bf46efe4 82 }
flowh 0:0861bf46efe4 83
flowh 0:0861bf46efe4 84
flowh 0:0861bf46efe4 85