26.01.2011, 23:00
Heyho!
Zwei Fragen bereiten mir gerade Kopfzerbrechen - ich schildere mal am besten zuerst was ich lese und was draus werden soll:
- 8 Kanäle DAQ als 2D Array mit je 1000 Werten / 1000 Hz in while-Schleife mit Sanduhr->1000
- 1 Kanal Durchfluss mit einem Wert Aufruf in while-Schleife mit Sanduhr->1000
- 2 Kanäle DAQ als 2D Array mit je 9 Werten / 9 Hz in while-Schleife mit Sanduhr->1000
- Mehrere verschiedene Werte über RS232 - am liebsten jede sek, kann aber auch mal länger dauern...
Nun die entscheidende Frage: Queues sind klar - funktioniert halt nach FIFO-Prinzip. Aber was passiert, wenn ich z.B. eine gemeinsame Verbraucherschleife mit 1 Hz takte aber irgendeine Datenquelle mal zuviel oder zuwenig Daten ausspuckt. Im Queue-Beispiel laufen die Daten dann ja hinterher, weil sie nicht abgefragt werden, so würde man es auch vermuten. Was passiert aber wenn ich die Verbraucherschleife aus genau dem Grund schneller als die Quellen laufen lasse? Geraten dann meine verarbeitenden Objekte aus dem Tritt, weil mal Daten kommen und mal nicht? Wie löst man so etwas am besten - mit mehreren Verbraucherschleifen, deren Ergebnisse man dann erst am Ende zusammen fasst...?!
Und die zweite Frage zu eben diesem Thema: Für jede Datenquelle sollte man ein eigenes Queue nehmen, eben weil die Inhalte unterschiedlich sind, richtig? Oder kann man ein großes Queue definieren, in dem mehrere zusammen gefasste aber unabhängige Queues laufen.?!
Danke und Gruß,
Dennis
PS: Anbei ein Screenshot um zu zeigen wie ich jetzt angesetzt habe. Da fehlt aber noch einiges an Erzeugern und noch viel mehr an Verbrauchern...
Zwei Fragen bereiten mir gerade Kopfzerbrechen - ich schildere mal am besten zuerst was ich lese und was draus werden soll:
- 8 Kanäle DAQ als 2D Array mit je 1000 Werten / 1000 Hz in while-Schleife mit Sanduhr->1000
- 1 Kanal Durchfluss mit einem Wert Aufruf in while-Schleife mit Sanduhr->1000
- 2 Kanäle DAQ als 2D Array mit je 9 Werten / 9 Hz in while-Schleife mit Sanduhr->1000
- Mehrere verschiedene Werte über RS232 - am liebsten jede sek, kann aber auch mal länger dauern...
Nun die entscheidende Frage: Queues sind klar - funktioniert halt nach FIFO-Prinzip. Aber was passiert, wenn ich z.B. eine gemeinsame Verbraucherschleife mit 1 Hz takte aber irgendeine Datenquelle mal zuviel oder zuwenig Daten ausspuckt. Im Queue-Beispiel laufen die Daten dann ja hinterher, weil sie nicht abgefragt werden, so würde man es auch vermuten. Was passiert aber wenn ich die Verbraucherschleife aus genau dem Grund schneller als die Quellen laufen lasse? Geraten dann meine verarbeitenden Objekte aus dem Tritt, weil mal Daten kommen und mal nicht? Wie löst man so etwas am besten - mit mehreren Verbraucherschleifen, deren Ergebnisse man dann erst am Ende zusammen fasst...?!
Und die zweite Frage zu eben diesem Thema: Für jede Datenquelle sollte man ein eigenes Queue nehmen, eben weil die Inhalte unterschiedlich sind, richtig? Oder kann man ein großes Queue definieren, in dem mehrere zusammen gefasste aber unabhängige Queues laufen.?!
Danke und Gruß,
Dennis
PS: Anbei ein Screenshot um zu zeigen wie ich jetzt angesetzt habe. Da fehlt aber noch einiges an Erzeugern und noch viel mehr an Verbrauchern...
