avec dfu
Fork of Utils by
Diff: Utils.cpp
- Revision:
- 6:8bae97034114
- Parent:
- 5:0f3b6e6677ef
- Child:
- 7:1bd8b236feb1
--- a/Utils.cpp Tue Feb 13 16:54:00 2018 +0000 +++ b/Utils.cpp Tue Feb 20 16:48:46 2018 +0000 @@ -1,7 +1,9 @@ #include "mbed.h" #include "Utils.h" -SDBlockDevice bd(SD_MOSI, SD_MISO, SD_SCK, SD_CS); +SDBlockDevice bd(Flash_MOSI, Flash_MISO, Flash_SCK, Flash_CS); +//SPIFBlockDevice bd(Flash_MOSI, Flash_MISO, Flash_SCK, Flash_CS); + FATFileSystem Root("Root"); int Exist_Val = 0; @@ -9,25 +11,27 @@ void return_error(int ret_val) { Exist_Val = 0; - if (ret_val){ - printf(" Problème carte SD = %d\r\n", ret_val); + if (ret_val) { + DEBUG_U(" Problème Flash = %d\r\n", ret_val); Exist_Val = 0; - }else{ - printf(" SD -> OK.\r\n"); + } else { + DEBUG_U(" Flash -> OK.\r\n"); Exist_Val = 1; - } + } + wait_ms(100); } void errno_error(void* ret_val) { Exist_Val = 0; - if (ret_val == NULL){ - printf(" Problème carte SD = %d \r\n", errno); + if (ret_val == NULL) { + DEBUG_U(" Problème Flash = %d \r\n", errno); Exist_Val = 0; - }else{ - printf(" SD -> OK.\r\n"); + } else { + DEBUG_U(" Flash -> OK.\r\n"); Exist_Val = 1; - } + } + wait_ms(100); } void UTILS::Store_A_Val(float Val_To_Store, char* File_Name) @@ -41,7 +45,7 @@ fprintf(fd, "%f\r\n", Val_To_Store); fclose(fd); - printf(" \r\n %s sauvegardée = %f\r\n", filename, Val_To_Store); + DEBUG_U(" \r\n %s sauvegardée = %f\r\n", filename, Val_To_Store); } @@ -55,11 +59,11 @@ char filename[20]; sprintf(filename, "/Root/%s.txt", File_Name); - printf(" \n Récupération de %s...\r\n", filename); + DEBUG_U(" \n Récupération de %s...\r\n", filename); FILE* fd = fopen(filename, "r"); errno_error(fd); - + while ((c != '\n') && (i < 10)) { c = fgetc(fd); buffer[i] = c; @@ -70,7 +74,7 @@ float val = atof(token); - printf(" Valeur Récupérée = %f\r\n", val); + DEBUG_U(" Valeur Récupérée = %f\r\n", val); fclose(fd); @@ -78,70 +82,108 @@ } -void UTILS::Write_SD_File(char* To_Store, char* File_Name) +void UTILS::Write_Flash_File(char* To_Store, char* File_Name) { char filename[50]; sprintf(filename, "/Root/%s", (string)File_Name); - + FILE* fd = fopen(filename, "a"); - + errno_error(fd); fprintf(fd, "%s\r\n", To_Store); fclose(fd); - //printf(" Sauvegarde OK\r\n\r\n"); + DEBUG_U(" Enregistrement de %s OK\r\n\r\n", filename); } -void UTILS::Read_SD_File(char* File_Name) +/* +void UTILS::Read_Flash_File(char* File_Name) { char filename[20]; sprintf(filename, "/Root/%s", File_Name); - + FILE* fd = fopen(filename, "r"); errno_error(fd); - printf(" Contenu du fichier :\r\n\r\n"); - char buff[16] = {0}; - while (!feof(fd)) { + //printf(" Contenu du fichier :\r\n\r\n"); + char buff[100] = {0}; + + while (!feof(fd)) { int size = fread(&buff[0], 1, 15, fd); - fwrite(&buff[0], 1, size, stdout); + fwrite(&buff[0], 1, size, stdout); } - printf("\r\n Fin du fichier.\r\n"); + //printf("\r\n Fin du fichier.\r\n"); fclose(fd); + +} +*/ + +void UTILS::Read_Flash_File(char* File_Name) +{ + char filename[20]; + sprintf(filename, "/Root/%s", File_Name); + + FILE* fd = fopen(filename, "r"); + errno_error(fd); + char s1[100]; + printf(" Contenu du fichier :\r\n\r\n"); + while (!feof(fd)) { + memset(s1, 0, sizeof(s1)); + fgets(s1, sizeof(s1), fd); + printf("%s", s1); + fflush(stdout); + } + fclose(fd); + printf("\r\n Fin du fichier.\r\n"); } bool UTILS::File_Exist(string File_Name) { char filename[20]; sprintf(filename, "/Root/%s.txt", File_Name); - + FILE* fd = fopen(filename, "r"); errno_error(fd); - - if (Exist_Val == 0){ - printf(" Le fichier %s n'existe pas....\r\n", filename); + + if (Exist_Val == 0) { + DEBUG_U(" Le fichier %s n'existe pas....\r\n", filename); fclose(fd); return false; } - - if (Exist_Val == 1){ + + if (Exist_Val == 1) { fclose(fd); return true; - } + } } -void UTILS::Delete_SD_File(char* File_Name) +void UTILS::Delete_Flash_File(char* File_Name) { char filename[20]; - sprintf(filename, "/Root/%s", File_Name); + sprintf(filename, "%s", File_Name); int error = 0; error = Root.remove(filename); return_error(error); - printf("Fichier effacé.\n"); + DEBUG_U("Fichier %s effacé.\r\n", filename); } -void UTILS::Rename_SD_File(char* Old_File_Name, char* New_File_Name) +void UTILS::Clean_Flash() +{ + DEBUG_U("Nettoyage de la Flash.\r\n"); + float Saved_O2 = UTILS::Read_A_Val("Calibration_O2"); + int Saved_Motor = (int)UTILS::Read_A_Val("Servo_Poumon"); + UTILS::UnMount_Flash(); + UTILS::Format_Flash(); + UTILS::Mount_Flash(); + UTILS::Store_A_Val(Saved_O2, "Calibration_O2"); + UTILS::Store_A_Val(Saved_Motor, "Servo_Poumon"); + DEBUG_U("Flash nettoyée.\r\n"); + DEBUG_U("Redémmarage code.\r\n"); + NVIC_SystemReset(); +} + +void UTILS::Rename_Flash_File(char* Old_File_Name, char* New_File_Name) { char Oldfilename[20]; sprintf(Oldfilename, "/Root/%s", Old_File_Name); @@ -152,63 +194,61 @@ error = Root.rename(Oldfilename, Newfilename); return_error(error); - printf("Fichier renommé.\n"); + DEBUG_U("Fichier %s renommé en %s.\r\n", Oldfilename, Newfilename); } -void UTILS::Mount_SD() +void UTILS::Mount_Flash() { - //Montage carte SD - printf(" Montage carte SD \"/Root\". \r\n\r\n"); + //Montage Flash + DEBUG_U(" Montage Flash \"/Root\". \r\n\r\n"); int error = 0; error = Root.mount(&bd); return_error(error); if (error > 0) { //On re format s'il n'y a as de file system...normalement une seul fois... - printf("Pas de File system, on format... "); - Format_SD(); + DEBUG_U("Pas de File system, on format... "); + Format_Flash(); } } -void UTILS::UnMount_SD() +void UTILS::UnMount_Flash() { - //Montage carte SD - printf(" Demontage carte SD \"/Root\". \r\n\r\n"); + //De Montage Flash + DEBUG_U(" Demontage Flash \"/Root\". \r\n\r\n"); int error = 0; error = Root.unmount(); return_error(error); } -void UTILS::Format_SD() +void UTILS::Format_Flash() { - //Formatage carte SD - printf(" Formatage carte SD\r\n\r\n"); + //Formatage Flash + DEBUG_U(" Formatage Flash\r\n\r\n"); int error = 0; error = FATFileSystem::format(&bd); return_error(error); } -void UTILS::Dir_SD(char* Dir_Name) +void UTILS::Dir_Flash(char* Dir_Name) { int error = 0; int nb = 0; - printf("\r\n Ouverture du répertoire %s\r\n", Dir_Name); + DEBUG_U("\r\n Ouverture du répertoire %s\r\n", Dir_Name); char Dirname[20]; sprintf(Dirname, "/Root/%s", Dir_Name); - + DIR* dir = opendir(Dirname); - //errno_error(fd); struct dirent* de; - printf(" Fichier du répertoire :\r\n\r\n"); - while((de = readdir(dir)) != NULL) - { - printf(" %s\r\n", &(de->d_name)[0]); - nb++; - //wait_ms(100); - } - printf("\r\n Nombre de fichiers = %d\r\n", nb); - printf(" Fermeture du répertoire.\r\n"); - //error = closedir(dir); + DEBUG_U(" Fichier du répertoire :\r\n\r\n"); + while((de = readdir(dir)) != NULL) { + printf(" %s\r\n", &(de->d_name)[0]); + fflush(stdout); + nb++; + } + DEBUG_U("\r\n Nombre de fichiers = %d\r\n", nb); + DEBUG_U(" Fermeture du répertoire.\r\n"); + error = closedir(dir); return_error(error); } @@ -216,16 +256,15 @@ { int error = 0; int nb = 0; - + DIR* dir = opendir("/Root/"); struct dirent* de; - while((de = readdir(dir)) != NULL) - { - nb++; + while((de = readdir(dir)) != NULL) { + nb++; } error = closedir(dir); return_error(error); - + return nb - 2; } @@ -244,4 +283,27 @@ return b; } else return x; +} + +void UTILS::Help() +{ + printf("\r\n"); + printf(" Commandes à entrer dans le moniteur :\r\n\r\n"); + printf(" help = liste des commandes\r\n"); + printf(" start = démmarage des sorties moniteur\r\n"); + printf(" stop = arrêt des sorties moniteur\r\n"); + printf(" clean = nettoyage flash, suppression des fichiers LOG\r\n"); + printf(" dir = liste des fichiers de la flash\r\n"); + printf(" del X = effacer le fichier LOG_X\n\r"); + printf(" get X = récupérer le contenu du fichier LOG_X\n\r"); + printf(" time X = met la RTC à l'heure, X en UNIX TIME.\n\r"); + printf(" c_pou X = changement consigne volet poumon à X\n\r"); + printf(" c_fui X = changement consigne volet fuite à X\n\r"); + printf(" calib_p = calibration à 0 du volet poumon\n\r"); + printf(" calib_f = calibration à 0 du volet fuite\n\r"); + printf(" sleep = mise en veille\n\r"); + printf(" reset = reset de la carte\n\r\n\r"); + printf(" Les commandes pour le Mini-r sont à entrer conformément à la doc.\n\r"); + printf("\r\n\r\n"); + fflush(stdout); } \ No newline at end of file