INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Drei Queues in einer While-Schleife mit case-Struktur



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

13.05.2017, 12:30
Beitrag #1

EinVolvic Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2017

2016
-
DE



Drei Queues in einer While-Schleife mit case-Struktur
Hallo liebes Forum,

ich würde euch gerne bezüglich den Queues in meinem Progamm um euren Rat und eure Meinungen bitten.

Es geht um mein Messprogramm, welches in zwei Modi Daten erfassen und speichern kann. Das Programm ist nach dem Producer-Consumer Modell aufgebaut; es gibt für jeden Modus eine separate Queue, die vom Producer (erfassen) zum Consumer (speichern) führt. Es soll während einer Messung nur ein Modus aktiv sein.
Den Consumer habe ich mit einer einzigen While-Schleife realisiert, in der sich eine case-Struktur zur Unterscheidung der Messmodi befindet. Folglich führen zwei Daten-Queues zum Consumer.

Ich habe festgestellt, dass ich während der Programmlaufzeit den Selektor (Schalter) für die case-Struktur nicht mehr ändern kann. Er verbleibt immer in seiner Anfangsposition. Das Eigenartige: Wenn ich den Schalter nicht mit dem Selektoranschluss verbinde, wird er während der Programmlaufzeit aktualisiert. Schlussendlich habe ich das Problem so gelöst, dass ich noch eine dritte Queue als Steuerleitung eingeführt habe und seine Daten gleichzeitig mit den anderen Queues in die Schlange hinzugefügt werden. Das Programm funktioniert soweit ohne Probleme, ich möchte mir jedoch die Risiken betrachten und ggf. optimieren, für nächstes Mal besser machen.Blush


Frage 1: Ich habe gelesen, dass die Consumer-While-Schleife normalerweise immer auf die Queue-Daten wartet bevor sie ihren Inhalt ausführt. Wie verhält sie sich bei zwei oder drei Queues? Weißt die Schleife, dass sie für das Ausführen der case-Struktur sowohl die Daten-Queue als auch die Steuerleitung-Queue braucht und wartet dementsprechend?

Frage 2: Gibt es eine Möglichkeit dem Consumer den Selektorwert nur einmal mitzuteilen (bei Änderung)? Sodass sie nicht mehr auf die Steuerleitung zu warten braucht, wäre evtll. dadurch sogar schneller?

Frage 3: Ist die While-Schleife mit case-Struktur günstiger für die Programmlaufzeit als zwei While-Schleifen ohne case-Struktur?

Besten Dank und schöne Grüße
EinVolvic
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Drei Queues in einer While-Schleife mit case-Struktur - EinVolvic - 13.05.2017 12:30

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Ansteuerung von drei DACs Rumo 15 10.809 11.06.2021 15:50
Letzter Beitrag: GerdW
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 4.841 02.02.2021 15:05
Letzter Beitrag: Lucki
  Case Struktur 2 Schleifendurchläufe verzögert True setzen aber sofort auf False bachatero18 4 4.431 07.11.2020 14:08
Letzter Beitrag: Martin.Henz
  CAN Nachrichten in Array verarbeiten und aus Case Struktur weiterverarbeiten Tomate27 4 3.690 17.07.2020 13:30
Letzter Beitrag: Tomate27
  Steuerung, Case-Struktur pixie_2 4 3.232 16.04.2020 14:30
Letzter Beitrag: GerdW
  Probleme mit Queues und Programmaufbau stefan1312 6 4.441 30.10.2018 17:08
Letzter Beitrag: NoWay

Gehe zu: