Code retour sur un file.println

Bonjour,
je découvre l'utilisation de carte SD, pour mémoriser le niveau de soleil sur 10 zones de mon toit que je souhaite équiper de panneaux voltaïques.
(Carte UNO + un shield SD et RTC)

Pas de pb pour créer, ouvrir, écrire dans un fichier. Mais je ne trouve nulle part les "code retour" de l'instruction "file".println (pas de retour d'après la doc); Comment savoir si l'écriture s'est bien passée ? Les autres fonctions renvoie un code.

Merci.

Print vous dit combien d'octets ont été "envoyés" au stream sous jacent.


dans le monde de la programmation on dit que le code source est "the ultimate documentation"

La classe File hérite de la classe Stream qui elle même hérite de Print

C'est comme cela que println() fonctionne pour la carte SD, il suffit d'imprimer la fonction write() pour un octet dans le code et c'est Print qui fait la décomposition

Si vous regardez le code pour cette classe, vous verrez que les fonctions retournent un type size_t et que ce nombre est le nombre d'octets réellement envoyés dans le stream.

Dans la doc officielle Arduino

il est dit pour print():

Returns
byte
print() will return the number of bytes written, though reading that number is optional

Merci,
j'aurai la même question de code retour sur flush et close qui semblent n'avoir aucun retour (none sur la doc).

Alors que c'est là que se faire l'écriture physique et, éventuellement, les erreurs d'écriture.
(je suis sur un projet qui enregistre sur du long terme - 1à 2 mois- et j'aimerais suivre les enregistrements effectifs)
Merci....

D’un point de vue pratique, Utilisez GitHub - greiman/SdFat: Arduino FAT16/FAT32 exFAT Library

Au lieu de flush() regardez si vous pouvez appeler sync() (je ne sais pas si c’est dans l’API publique mais suffit de modifier la bibliothèque) qui retourne un bool

Le close() de la classe fatFile retourne aussi un bool

Il y a deux exemples de data log, regardez déjà le simple

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.