avec dfu

Fork of Utils by POTLESS

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