06.11.2015, 12:23
Hallo Leute,
zu folgender Aufgabenstellung fehlt mir ein günstiger und am besten geeigneter Ansatz zur Umsetzung:
In einer While-Schleife frag ich über eine simple TCP-Verbindung mehrere Daten zyklisch von einem Gerät ab (Druck, Spannung, Temperatur, etc.). Jetzt ist es aber so, dass ich einige Parameter beispielsweise aller 5 Sekunden, ander aber nur aller 30 Sekunden oder 5 Minuten abfragen. Die Anzahl der Abfragen mit unterschiedlichen Abfrageintervallen ist dynamisch, d.h. es kann sein, dass alle Parameter gleichzeitig abgefragt werden sollen, oder eben zu unterschiedlichen Zeitpunkten - je nachdem wie die Abfragen für das Gerät konfiguriert sind.
Meine Idee war, dass ich eine zeitgesteuerte Schleife einsetze, dessen Wiederholung (Durchlauf) auf die kürzeste Abfragedauer eingestellt ist. Bei jedem Durchgang wird die vergangene Zeit hochgezählt und immer wenn ein Vielfaches der Zeit mit der Abfragezeit eines anderen Parameters übeereinstimmt, frage ich diesen ebenfalls mit ab.
Dieser Ansatz könnte funktionieren, erscheint mir aber nicht am "elegantesten". Gibt es von euch weitere Idee, wie man diese Problematik besser umsetzen kann? Wäre das Arbeiten mit Eventstrukturen möglich?
Danke für eure Hilfe!
Gruß
zu folgender Aufgabenstellung fehlt mir ein günstiger und am besten geeigneter Ansatz zur Umsetzung:
In einer While-Schleife frag ich über eine simple TCP-Verbindung mehrere Daten zyklisch von einem Gerät ab (Druck, Spannung, Temperatur, etc.). Jetzt ist es aber so, dass ich einige Parameter beispielsweise aller 5 Sekunden, ander aber nur aller 30 Sekunden oder 5 Minuten abfragen. Die Anzahl der Abfragen mit unterschiedlichen Abfrageintervallen ist dynamisch, d.h. es kann sein, dass alle Parameter gleichzeitig abgefragt werden sollen, oder eben zu unterschiedlichen Zeitpunkten - je nachdem wie die Abfragen für das Gerät konfiguriert sind.
Meine Idee war, dass ich eine zeitgesteuerte Schleife einsetze, dessen Wiederholung (Durchlauf) auf die kürzeste Abfragedauer eingestellt ist. Bei jedem Durchgang wird die vergangene Zeit hochgezählt und immer wenn ein Vielfaches der Zeit mit der Abfragezeit eines anderen Parameters übeereinstimmt, frage ich diesen ebenfalls mit ab.
Dieser Ansatz könnte funktionieren, erscheint mir aber nicht am "elegantesten". Gibt es von euch weitere Idee, wie man diese Problematik besser umsetzen kann? Wäre das Arbeiten mit Eventstrukturen möglich?
Danke für eure Hilfe!
Gruß