avec dfu

Fork of Utils by POTLESS

Revision:
3:01677db45b2a
Parent:
2:5af7a1fb1903
Child:
4:872676dd87a4
--- a/Utils.cpp	Mon Feb 12 07:22:14 2018 +0000
+++ b/Utils.cpp	Tue Feb 13 08:32:46 2018 +0000
@@ -4,20 +4,29 @@
 SDBlockDevice bd(SD_MOSI, SD_MISO, SD_SCK, SD_CS);
 FATFileSystem Root("Root");
 
+int Exist_Val = 0;
+
 void return_error(int ret_val)
 {
-    if (ret_val)
+    
+    if (ret_val){
         printf("  Problème carte SD = %d\r\n", ret_val);
-    else
+        Exist_Val = 0;
+    }else{
         printf("  SD -> OK.\r\n");
+        Exist_Val = 1;
+        }
 }
 
 void errno_error(void* ret_val)
 {
-    if (ret_val == NULL)
+    if (ret_val == NULL){
         printf("  Problème carte SD = %d \r\n", errno);
-    else
+        Exist_Val = 0;
+    }else{
         printf("  SD -> OK.\r\n");
+        Exist_Val = 1;
+        }
 }
 
 void UTILS::Store_A_Val(float Val_To_Store, char* File_Name)
@@ -90,16 +99,33 @@
     FILE* fd = fopen(filename, "r");
     errno_error(fd);
 
-    printf("Contenu du fichier :\r\n\r\n");
+    printf("  Contenu du fichier :\r\n\r\n");
     char buff[16] = {0};
     while (!feof(fd)) {
         int size = fread(&buff[0], 1, 15, fd);
         fwrite(&buff[0], 1, size, stdout);
     }
-    printf("Fin du fichier.\n");
+    printf("\r\n  Fin du fichier.\r\n");
     fclose(fd);
 }
 
+bool UTILS::File_Exist(char* 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 recherché n'existe pas....\r\n");
+        return false;
+    }else{
+        fclose(fd);
+        return true;
+    }   
+}
+
 void UTILS::Delete_SD_File(char* File_Name)
 {
     char filename[20];
@@ -157,10 +183,11 @@
     return_error(error);
 }
 
-void UTILS::DIR_SD(char* Dir_Name)
+void UTILS::Dir_SD(char* Dir_Name)
 {
     int error = 0;
-    printf("Ouverture du répertoire %s\r\n.", Dir_Name);
+    int nb = 0;
+    printf("\r\n  Ouverture du répertoire %s\r\n", Dir_Name);
     char Dirname[20];
     sprintf(Dirname, "/Root/%s", Dir_Name);
     
@@ -168,18 +195,36 @@
     //errno_error(fd);
 
     struct dirent* de;
-    printf("Fichier du répertoire :\r\n");
+    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("Fermeture du répertoire. ");
+    printf("\r\n  Nombre de fichiers = %d\r\n", nb);
+    printf("  Fermeture du répertoire.\r\n");
     error = closedir(dir);
     return_error(error);
 }
 
+int UTILS::File_Index()
+{
+    int error = 0;
+    int nb = 0;
+    
+    DIR* dir = opendir("/Root/");
+    struct dirent* de;
+    while((de = readdir(dir)) != NULL)
+    {
+    nb++;
+    }
+    error = closedir(dir);
+    return_error(error);
+    
+    return nb - 2;
+}
+
 //Remapping d'une valeur dans une autre échelle
 float UTILS::Remap(float x, float in_min, float in_max, float out_min, float out_max)
 {