Inhalt einer Liste überwachen und bei Änderung reagieren
Verfasst: Donnerstag 4. Oktober 2018, 07:27
Moin zusammen,
gibt es eine Möglichkeit die Werte einer Liste zu überwachen und bei einer Änderung entsprechend reagieren.
Folgendes habe ich mir dazu überlegt:
Mein Datenaufzeicher hat bsp. für jeden Sensor einen Thread der in seinem bestimmten Intervall von x Sekunden die Daten ausliest und sie dann an die Stelle Y in eine Liste schreibt.
(Jeder Sensor(Thread) eine andere Stelle Y in der gleichen Liste).
Sobald sich nun ein Wert in dieser Liste ändert, soll die gesamte Liste in eine CSV-Datei geschrieben werden, bzw. einer CSV-Datei angehängt werden, inklusive eines Zeitstempels.
Sprich es soll eine Auswertdatei erstellen und immer bei Änderung eines Sensorwertes die gesamte Liste als Messpunkt aller Sensoren hinzugefügt werden. Das bedeutet natürlich das meine maximale Schreibgeschwindigkeit immer von dem Sensor abhängt der das kleinste Intervall hat und ich so sicher viele Gleiche Werte für Sensoren mit langem Intervall bekomme.
siehe Skizze

Eine Alternative wäre dann, dass die Sensor-Threads direkt Ihren Wert in diese CSV-Datei schreiben, sobald das Intervall erreicht ist. Dann hätte man jedoch das Problem, dass man man immer nur einen Wert zu einem bestimmten Zeitwert hat und die Liste unheimlich groß wird, weil jeder Sensor in eine eigene Zeile schreibt... Weshalb es vermutlich besser ist das Schreiben der CSV Auszulagern und zentral zu der Zeit zu machen, sobald sich ein Wert in der Liste ändert
Was wäre aber wenn zwei Threads zur gleichen Zeit Werte in der Liste verändern, eventuell müsste man dann eher ein festes Zeitinvervall machen um die Werte zu schreiben damit es keine Konflikte gibt?
LG TINA
gibt es eine Möglichkeit die Werte einer Liste zu überwachen und bei einer Änderung entsprechend reagieren.
Folgendes habe ich mir dazu überlegt:
Mein Datenaufzeicher hat bsp. für jeden Sensor einen Thread der in seinem bestimmten Intervall von x Sekunden die Daten ausliest und sie dann an die Stelle Y in eine Liste schreibt.
(Jeder Sensor(Thread) eine andere Stelle Y in der gleichen Liste).
Sobald sich nun ein Wert in dieser Liste ändert, soll die gesamte Liste in eine CSV-Datei geschrieben werden, bzw. einer CSV-Datei angehängt werden, inklusive eines Zeitstempels.
Sprich es soll eine Auswertdatei erstellen und immer bei Änderung eines Sensorwertes die gesamte Liste als Messpunkt aller Sensoren hinzugefügt werden. Das bedeutet natürlich das meine maximale Schreibgeschwindigkeit immer von dem Sensor abhängt der das kleinste Intervall hat und ich so sicher viele Gleiche Werte für Sensoren mit langem Intervall bekomme.
siehe Skizze

Eine Alternative wäre dann, dass die Sensor-Threads direkt Ihren Wert in diese CSV-Datei schreiben, sobald das Intervall erreicht ist. Dann hätte man jedoch das Problem, dass man man immer nur einen Wert zu einem bestimmten Zeitwert hat und die Liste unheimlich groß wird, weil jeder Sensor in eine eigene Zeile schreibt... Weshalb es vermutlich besser ist das Schreiben der CSV Auszulagern und zentral zu der Zeit zu machen, sobald sich ein Wert in der Liste ändert

Was wäre aber wenn zwei Threads zur gleichen Zeit Werte in der Liste verändern, eventuell müsste man dann eher ein festes Zeitinvervall machen um die Werte zu schreiben damit es keine Konflikte gibt?
LG TINA