![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
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
DataFile/DataFile.cpp@1:e1f3b4b8b99b, 2016-02-13 (annotated)
- Committer:
- flowh
- Date:
- Sat Feb 13 14:29:40 2016 +0000
- Revision:
- 1:e1f3b4b8b99b
- Parent:
- 0:0861bf46efe4
Version 2.1 ; log acc, omega, compass and 5 AI
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:e1f3b4b8b99b | 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 | 1:e1f3b4b8b99b | 44 | printf("New Data file opened : %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 | 1:e1f3b4b8b99b | 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 | 1:e1f3b4b8b99b | 56 | fprintf(fp, "Gx\tGy\tGz\tWx\tWy\tWz\tMx\tMy\tMz\tI0\tAI1\tAI2\tAI3\tAI4\n"); |
flowh | 0:0861bf46efe4 | 57 | Opened=1; |
flowh | 1:e1f3b4b8b99b | 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 | 1:e1f3b4b8b99b | 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 |