Datenlogging auf SD-Karte, Abruf per PC, Löschen der Karte

Gast #2362558
Lesenswert?

Hi!

Mein aktuelles Projekt loggt alle 4 Minuten auf eine SD-Karte 200 Bytes, 
also 72.000 Bytes/Tag bzw. 2.6280.000 Bytes/Jahr.

Die Daten sollen mehr oder weniger regelmäßig von einem PC abgerufen 
werden. Der PC hängt am usart (57600Baud angeschlossen).

Wie sollte man dies von Konzept her am Geschicktesten lösen?


1) Einfachster Ansatz: Die Daten immer in die gleiche Datei schreiben. 
Fragt der PC an, alle Daten ausgeben und danach die Datei oder deren 
Inhalt löschen, wenn der PC den Empfang bestätigt hat. Wird mir das die 
SD/MMC-Karte übel nehmen? Ich würde ja schreiben, löschen, schreiben, 
löschen..... und eventuell immer wieder die Datei öffnen, schließen, neu 
anlegen usw.. Im schlimmsten Fall alle 4 Minuten.

2) Die Daten immer in die gleiche Datei schreiben, aber nie löschen. 
Stattdessen irgendwo speichern, bis wohin zuletzt übertragen wurde.


Idee: Einen "Puffer" anlegen, der einen Datensatz aufnehmen kann und 
somit nur auf die SD-Karte schreibt, wenn der PC ihn nicht abruft, bevor 
der nächste Datensatz ansteht.

Gruß,
Chris
Gast #2362651
Lesenswert?

Wenn Du sicherstellen musst, das wärend der Übertragung weiter geloggt 
wird, müsstest Du das Schreibfile wechseln (in ein neues schreiben), 
dann das alte übertragen und dann löschen. Wenn deine FAT-Lib nur eine 
Datei gleichzeitig kann, gibts damit auch Probleme. Nächster Ansatz 
wäre: eine Datei mit konstanter Größe auf der SD, Schreib/Lesezugriff 
über 2 Zeiger.
Wenn die SD immer im Gerät bleibt und für nichts anderes genutzt werden 
soll, könntest Du ja auf das Dateisystem ganz verzichten und die Karte 
ganz als Ringspeicher nutzen.
mfG ingo

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren