avec dfu

Fork of Utils by POTLESS

Revision:
12:9dd7c462a2c0
Parent:
11:a41267cffa61
Child:
13:ff0f36a6d800
--- a/Utils.cpp	Mon Mar 05 11:14:45 2018 +0000
+++ b/Utils.cpp	Tue Mar 06 10:31:52 2018 +0000
@@ -15,10 +15,10 @@
 {
     Exist_Val = 0;
     if (ret_val) {
-        DEBUG("  Problème Flash = %d\r\n", ret_val);
+        DEEP_DEBUG("  Problème Flash = %d\r\n", ret_val);
         Exist_Val = 0;
     } else {
-        DEBUG("  Flash -> OK.\r\n");
+        DEEP_DEBUG("  Flash -> OK.\r\n");
         Exist_Val = 1;
     }
     wait_ms(100);
@@ -28,10 +28,10 @@
 {
     Exist_Val = 0;
     if (ret_val == NULL) {
-        DEBUG("  Problème Flash = %d \r\n", errno);
+        DEEP_DEBUG("  Problème Flash = %d \r\n", errno);
         Exist_Val = 0;
     } else {
-        DEBUG("  Flash -> OK.\r\n");
+        DEEP_DEBUG("  Flash -> OK.\r\n");
         Exist_Val = 1;
     }
     wait_ms(100);
@@ -65,77 +65,6 @@
     printf("  Taille du fichier %s = %d Kb\r\n", filename, size / 1024);
 }
 
-/*
-void UTILS::Get_File_Infos(char* File_Name) {
-
-    char filename[20];
-    sprintf(filename, "/Root/%s", File_Name);
-
-    struct stat fileStat;
-    stat(filename, &fileStat);
-
-    printf("Informations sur %s\r\n\r\n",filename);
-    printf("  Taille du fichier           :  %d bytes\r\n",&fileStat.st_size);
-    printf("  Heure dernier accès         :  %s\r\n",ctime(&fileStat.st_atime));
-    printf("  Heure dernière modification :  %s\r\n",ctime(&fileStat.st_mtime));
-    printf("  Heure dernier changement    :  %s\r\n",ctime(&fileStat.st_ctime));
-
-    struct stat stat_buf;
-
-    stat(filename, &stat_buf);
-
-    stat_buf.st_size;
-    stat_buf.st_dev;
-    stat_buf.st_ino;
-    stat_buf.st_mode;
-    stat_buf.st_nlink;
-    stat_buf.st_uid;
-    stat_buf.st_gid;
-    stat_buf.st_rdev;
-    stat_buf.st_size;
-    stat_buf.st_blksize;
-    stat_buf.st_blocks;
-    stat_buf.st_atime;
-    stat_buf.st_mtime;
-    stat_buf.st_ctime;
-
-    printf("  Taille du fichier           :  %d bytes\r\n",&stat_buf.st_size);
-    printf("  Heure dernier accès         :  %s\r\n",ctime(&stat_buf.st_atime));
-    printf("  Heure dernière modification :  %s\r\n",ctime(&stat_buf.st_mtime));
-    printf("  Heure dernier changement    :  %s\r\n",ctime(&stat_buf.st_ctime));
-
-}
-
-void UTILS::Get_File_Infos_bis(char* File_Name) {
-
-    char filename[20];
-    sprintf(filename, "/Root/%s", File_Name);
-
-    struct stat fileStat;
-
-    stat(filename, &fileStat);
-
-    printf("Information for %s\n",filename);
-    printf("---------------------------\n");
-    printf("File Size: \t\t%d bytes\n",fileStat.st_size);
-    printf("Number of Links: \t%d\n",fileStat.st_nlink);
-    printf("File inode: \t\t%d\n",fileStat.st_ino);
-
-    printf("File Permissions: \t");
-    printf( (fileStat.st_mode & S_IRUSR) ? "r" : "-");
-    printf( (fileStat.st_mode & S_IWUSR) ? "w" : "-");
-    printf( (fileStat.st_mode & S_IXUSR) ? "x" : "-");
-    printf( (fileStat.st_mode & S_IRGRP) ? "r" : "-");
-    printf( (fileStat.st_mode & S_IWGRP) ? "w" : "-");
-    printf( (fileStat.st_mode & S_IXGRP) ? "x" : "-");
-    printf( (fileStat.st_mode & S_IROTH) ? "r" : "-");
-    printf( (fileStat.st_mode & S_IWOTH) ? "w" : "-");
-    printf( (fileStat.st_mode & S_IXOTH) ? "x" : "-");
-    printf("\n\n");
-
-}
-*/
-
 void UTILS::Store_A_Val(float Val_To_Store, char* File_Name)
 {
 
@@ -147,7 +76,7 @@
     fprintf(fd, "%f\r\n", Val_To_Store);
     fclose(fd);
 
-    DEBUG("  \r\n  %s sauvegardée = %f\r\n", filename, Val_To_Store);
+    DEEP_DEBUG("  \r\n  %s sauvegardée = %f\r\n", filename, Val_To_Store);
 
 }
 
@@ -161,7 +90,7 @@
     char filename[20];
     sprintf(filename, "/Root/%s.txt", File_Name);
 
-    DEBUG("  \n  Récupération de %s...\r\n", filename);
+    DEEP_DEBUG("  \n  Récupération de %s...\r\n", filename);
 
     FILE* fd = fopen(filename, "r");
     errno_error(fd);
@@ -176,7 +105,7 @@
 
     float val = atof(token);
 
-    DEBUG("  Valeur Récupérée = %f\r\n", val);
+    DEEP_DEBUG("  Valeur Récupérée = %f\r\n", val);
 
     fclose(fd);
 
@@ -195,7 +124,7 @@
     fprintf(fd, "%s\r\n", To_Store);
     fclose(fd);
 
-    DEBUG("  Enregistrement de %s OK\r\n\r\n", filename);
+    DEEP_DEBUG("  Enregistrement de %s OK\r\n\r\n", filename);
 }
 
 /*
@@ -268,23 +197,23 @@
     error = Root.remove(filename);
     return_error(error);
 
-    DEBUG("Fichier %s effacé.\r\n", filename);
+    DEBUG("  Fichier %s effacé.\r\n", filename);
 }
 
 void UTILS::Clean_Flash()
 {
-    DEBUG("Nettoyage de la Flash.\r\n");
-    float Saved_O2 = UTILS::Read_A_Val("Calibration_O2");
+    DEBUG("  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");
     int ARNSRS_ID = (int)UTILS::Read_A_Val("ARNSRS_ID");
     UTILS::UnMount_Flash();
     UTILS::Format_Flash();
     UTILS::Mount_Flash();
-    UTILS::Store_A_Val(Saved_O2, "Calibration_O2");
+    //UTILS::Store_A_Val(Saved_O2, "Calibration_O2");
     UTILS::Store_A_Val(Saved_Motor, "Servo_Poumon");
     UTILS::Store_A_Val(ARNSRS_ID, "ARNSRS_ID");
-    DEBUG("Flash nettoyée.\r\n");
-    DEBUG("Redémmarage code.\r\n");
+    DEBUG("  Flash nettoyée.\r\n");
+    DEBUG("  Redémmarage code.\r\n");
     NVIC_SystemReset();
 }
 
@@ -299,7 +228,7 @@
     error = Root.rename(Oldfilename, Newfilename);
     return_error(error);
 
-    DEBUG("Fichier %s renommé en %s.\r\n", Oldfilename, Newfilename);
+    DEBUG("  Fichier %s renommé en %s.\r\n", Oldfilename, Newfilename);
 }
 
 void UTILS::Mount_Flash()
@@ -338,21 +267,21 @@
 {
     int error = 0;
     int nb = 0;
-    DEBUG("\r\n  Ouverture du répertoire %s\r\n", Dir_Name);
+    DEEP_DEBUG("\r\n  Ouverture du répertoire %s\r\n", Dir_Name);
     char Dirname[20];
     sprintf(Dirname, "/Root/%s", Dir_Name);
 
     DIR* dir = opendir(Dirname);
 
     struct dirent* de;
-    DEBUG("  Fichier du répertoire :\r\n\r\n");
+    DEBUG("  Fichiers du répertoire :\r\n\r\n");
     while((de = readdir(dir)) != NULL) {
         printf("  %s\r\n", &(de->d_name)[0]);
         fflush(stdout);
         nb++;
     }
     DEBUG("\r\n  Nombre de fichiers = %d\r\n", nb);
-    DEBUG("  Fermeture du répertoire.\r\n");
+    DEEP_DEBUG("  Fermeture du répertoire.\r\n");
     error = closedir(dir);
     return_error(error);
 }
@@ -398,6 +327,7 @@
     printf("  start            =    démmarage des sorties moniteur.\r\n");
     printf("  stop             =    arrêt des sorties moniteur.\r\n");
     printf("  time X           =    met la RTC à l'heure, X en UNIX TIME.\n\r");
+    printf("  ARNSRS_ID X      =    entrée de l'identifiant de l'appareil X.\r\n");
     printf("  sleep            =    mise en veille.\n\r");
     printf("  reset            =    reset de la carte.\n\r\n\r");
     printf("  COMMANDES MEMOIRE\r\n\r\n");
@@ -414,14 +344,16 @@
     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("  secu             =    mise des volets en mode sécu.\n\r\n\r");
+    printf("  secu             =    mise des volets en mode sécu.\n\r");
+    printf("  check_F          =    sortie des valeurs 0 moteurs et ARNSRS_ID enregistrées.\n\r\n\r");
     printf("  COMMANDES CAPTEURS\r\n\r\n");
     printf("  Head_ID X        =    Numérote le numéro X d'identification de la sensor Head dans l'eeprom.\n\r");
     printf("  O2_1_ID X        =    Numérote le numéro X d'identification de la cellule O2 1 dans l'eeprom.\n\r");
     printf("  O2_2_ID X        =    Numérote le numéro X d'identification de la cellule O2 2 dans l'eeprom.\n\r");
     printf("  CO2_ID X         =    Numérote le numéro X d'identification du capteur CO2 dans l'eeprom.\n\r");
-    printf("  calib_O2 X       =    calibration des cellules O2 dans l'air avec X itérations.\n\r");
-    printf("  check            =    sortie des valeurs de calibrations enregistrées.\n\r\n\r");
+    printf("  check_E          =    sortie des valeurs de calibration enregistrées dans l'eeprom.\n\r\n\r");
+    printf("  calib_O2 X       =    calibration des cellules O2 dans l'air avec X itérations.\n\r\n\r");
+    
     printf("  Les commandes pour le Mini-r sont à entrer conformément à la doc. Les plus utilisée :\n\r");
     printf("  G                =    calibration du capteur CO2 dans l'air.\n\r");
     printf("  K 0              =    arrêt du capteur CO2.\n\r");
@@ -434,7 +366,7 @@
 
 void UTILS::clean_line_EEPROM(unsigned int eeaddress, int address)
 {
-    DEBUG("  Effacage de la ligne à l'adresse %d de l'eeprom.\r\n", eeaddress);
+    DEEP_DEBUG("  Effacage de la ligne à l'adresse %d de l'eeprom.\r\n", eeaddress);
      
     int size = 64;
     char deleteData[] = {"                                                                "};
@@ -450,7 +382,7 @@
     int result = I2C_EEPROM.write(address, i2cBuffer, size + 2, false);
     wait_ms(6);
     
-    DEBUG("  Ligne à l'adresse %d de l'eeprom effacée.\r\n", eeaddress);
+    DEEP_DEBUG("  Ligne à l'adresse %d de l'eeprom effacée.\r\n", eeaddress);
 }
 
 //Max 63 bit en écriture
@@ -477,9 +409,51 @@
 
     wait_ms(6);
 
-    DEBUG("  Chaine écrite à l'adresse %d de l'eeprom : %s\r\n", eeaddress , data);
+    DEEP_DEBUG("  Chaine écrite à l'adresse %d de l'eeprom : %s\r\n", eeaddress , data);
 }
 
+char* UTILS::read_EEPROM(unsigned int eeaddress , int address)
+{
+    //On lit toute la ligne
+    int size = 17;
+    static char data[17];
+    
+    char i2cBuffer[2];
+    i2cBuffer[0] = (unsigned char)(eeaddress >> 8); // MSB
+    i2cBuffer[1] = (unsigned char)(eeaddress & 0xFF); // LSB
+ 
+    // Reset eeprom pointer address
+    int result = I2C_EEPROM.write(address, i2cBuffer, 2, false);
+    wait_ms(6);
+ 
+    // Read eeprom
+    I2C_EEPROM.read(address, data, size);
+    wait_ms(6);
+    
+    DEEP_DEBUG("  Char lu à l'adresse %d de l'eeprom : %s\r\n", eeaddress, &data);
+    
+    return data;
+    }
+
+void UTILS::read_C_EEPROM(char *data, unsigned int eeaddress ,int address)
+{
+    //On lit toute la ligne
+    int size = 64;
+    
+    char i2cBuffer[2];
+    i2cBuffer[0] = (unsigned char)(eeaddress >> 8); // MSB
+    i2cBuffer[1] = (unsigned char)(eeaddress & 0xFF); // LSB
+ 
+    // Reset eeprom pointer address
+    int result = I2C_EEPROM.write(address, i2cBuffer, 2, false);
+    wait_ms(6);
+ 
+    // Read eeprom
+    I2C_EEPROM.read(address, data, size);
+    wait_ms(6);
+    
+    DEEP_DEBUG("  Char lu à l'adresse %d de l'eeprom : %s\r\n", eeaddress, data);
+}
 
 float UTILS::read_F_EEPROM(unsigned int eeaddress ,int address)
 {
@@ -498,7 +472,7 @@
     wait_ms(6);
 
     float result_F = atof(data);
-    DEBUG("  Float lu à l'adresse %d de l'eeprom : %f\r\n", eeaddress, result_F);
+    DEEP_DEBUG("  Float lu à l'adresse %d de l'eeprom : %f\r\n", eeaddress, result_F);
     return result_F;
 }
 
@@ -520,7 +494,7 @@
     wait_ms(6);
 
     int result_I = atoi(data);
-    DEBUG("  Int lu à l'adresse %d l'eeprom : %d\r\n", eeaddress, result_I);
+    DEEP_DEBUG("  Int lu à l'adresse %d l'eeprom : %d\r\n", eeaddress, result_I);
     return result_I;
 }