Speicherintervall und Langzeitspeicherung
Hallo Alex!
Ich weiß nicht, inwieweit du deinem Problem schon auf die Spur gekommen bist, möchte nichts desto trotz vielleicht mal meine Vorgehensweise deines Problems kurz erläutern. Vielleicht hilft es ja weiter.
Also zunächst sagtest du möchtest deinen Messwert-String alle 0,5s in eine Datei speichern? Heißt das auch, dass du alle 0,5s solch einen String von irgendwoher (Messgerät) bekommst? Falls ja so würde ich deine Problemstellung in 2 Teilbereich unterteilen.
Zunächst kannst du das Auslesen von deinem Gerät eine While-Schleife legen. Diese lässt du halt so lange laufen, wie du es für richtig erachtest. Das Wegschreiben der Daten würde ich dann in eine Weitere, von der ersten Routine unabhängige, Schleife legen. Dort kannst du zunächst eine Datei erstellen, und die Daten dann ruhig für 2 Stunden immer schön hinein schieben. Danach wird diese wieder geschlossen und eine Neue erstellt. Nun ist allerdings die Frage, wie die Daten von der einen Schleife in die andere gelangen. Das Stichwort aus meiner Sicht ist hierbei "Queue". In dieser kannst du in der Auslese-Schleife immer deine Daten ablegen, während du hingegen in der anderen Schleife, wo die Daten in die Datei abgespeichert werden, prüfst ob Elemente in dieser Queue vorhanden sind. Sollte das der Fall sein, so entnimmst du ein Element, schreibst es in die aktuell geöffnete Datei. Anschließend überprüfst du ob 2h rum sind und falls nicht, dann einfach das gleiche Spiel mit dem nächsten Element.
Hoffe du verstehst vielleicht meine Idee dahinter. Der Vorteil von dem Ganzen ist, dass beide Teilprobleme (Messwerterfassung und -speicherung) zunächst unabhängig voneinander laufen, aber deine Daten nichts desto trotz in sicheren Händen liegen.
Falls dir meine Idee noch nicht ganz klar sein sollte, sag einfach Bescheid und ich schaue mal, ob ich ein kleines Beispiel basteln kann. Habe aktuell leider keine Möglichkeit dazu.
Schöne Grüße
Falk
|