Bon maintenant ça marche niquel , la lib sdfat offre plus de posibilitées que la lib SD arduino est je suppose quelle est mise a jour plus régulierement aussi.
dans les choses qui sont agréable à utilisé il y a la fonction timeStamp qui permet de renseigné plusieur choses :
-la date de creation du fichier
- la date de derniere ecriture
-la date de dernier accés
et oui ce qui pour moi été imperatif et qui m'a fait passé a la lib sdfat pouvoir arreter et relancer aprés une extraction et une reintroduction la carte sd , ça c'est vraiment tres bien!
pour les experts je rencontre une dificulté que je ne sait pas résoudre je sent que c'est un probléme simple mais je n'en suis pas sur
j'arrive à utiliser timestamp avec les fichiers mais pas avec les répertoires.
je vous poste une partie (car tous ce serai trop long)de code de ma lib qui permet d'enregistré le numero d'une sonde DS18B20 sur la sd et la fonction horrodatage qui utilise les metode timeStamp :
boolean ElementRegule::saveSonde()
{
boolean reponse;
//---- efface l'ancien fichier au préalable ---
#ifdef DEBUG_SERIAL
Serial.println(F("lancement fonction sauvegarde"));
#endif
//---- efface l'ancien fichier au préalable ---
// efface fichier et mémorise résultat opération
sprintf(Buff_Nom_Fichier, "%s/SONDE", Buff_Nom_Fichier);
if (SD.exists(Buff_Nom_Fichier)==false)
{
//sprintf(Buff_Nom_Fichier, "%s/SONDE",Buff_Nom_Fichier);
SD.mkdir(Buff_Nom_Fichier);
//SD.timestamp(T_CREATE, rtcD.a, rtcD.m, rtcD.j, rtcH.h, rtcH.m, rtcH.s);// ne fonctionne apparament pas
};
sprintf(Buff_Nom_Fichier, "%s/SONDE.txt",Buff_Nom_Fichier);
SD.remove(Buff_Nom_Fichier);
#ifdef DEBUG_SERIAL
Serial.print(F("Fichier efface : SONDE"));
Serial.println(F(".txt"));
#endif
// ouvre le fichier en écriture// NB : le fichier est créé si il n'existe pas !
if (fichier.open(Buff_Nom_Fichier, O_CREAT | O_WRITE)==false)
{
reponse=false;
#ifdef DEBUG_SERIAL
Serial.println (F("Erreur ouverture fichier !"));
#endif
fichier.close(); // ferme le fichier
} // si fichier pas dispo
else
{
horodatage();/// utilise timeStamp
#ifdef DEBUG_SERIAL
Serial.println (F("Fichier pret pour ecriture !"));
#endif
//partie a sauver:
for (byte i =0; i<8; i++)
{
fichier.print(m_sonde.adr[i]);
fichier.print(".");
}
fichier.print(F(";"));
reponse=true;
}
#ifdef DEBUG_SERIAL
Serial.println(F("Fin enregistrement !"));
#endif
fichier.close(); // ferme le fichier
#ifdef DEBUG_SERIAL
Serial.println(F("Fermeture fichier !"));
#endif
return reponse;
}
///********************la fonction horodatage******************//
boolean horodatage()
{
if (fichier.timestamp(T_CREATE, rtcD.a, rtcD.m, rtcD.j, rtcH.h, rtcH.m, rtcH.s)==false || fichier.timestamp(T_WRITE, rtcD.a, rtcD.m, rtcD.j, rtcH.h, rtcH.m, rtcH.s)==false)
{
#ifdef DEBUG_SERIAL
Serial.println (F("EREURE ecriture HORODATAGE!"));
#endif
return false;
}
else
{
return true;
}
}
en gros lorsque je crée le répertoire "sonde"mais je n'arrive pas a l'horodaté!