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:

Queue von hinten auslesen?



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!

25.10.2012, 22:21
Beitrag #1

Chess Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Sep 2012

2011
2012
EN



Queue von hinten auslesen?
Hallo zusammen Smile

ich haette mal eine Frage..

Was ich da zusammengebastelt habe funktioniert zwar, aber irgendwie bin ich sicher dass es auch eleganter geht, ausserdem hab ich keine Ahnung was passiert wenn die Laenge meiner queue ins unendliche steigt.. Blush

Folgendes: Ich habe zwei While Loops die parallel laufen. Im einen Werden Daten erzeugt, die dann ueber eine Queue in den anderen uebertragen werden in dem sie dann verarbeitet werden.

Ziel der Sache: Der verarbeitende Loop sollte sich immer den aktuellen Wert holen und dann mit dem arbeiten.

Die Problematik: Die Daten werden viel schneller (wie schnell weiss ich leider nicht genau) erzeugt als dass sie gelesen werden.
Will heissen: Wenn sich der Eingangswert aendert darf ich erst einen Haufen alter Werte abarbeiten bevor ich die Aenderung auch im auslesenden Loop mitbekomme.

Jetzt hab ich mir ueberlegt, ich schreibe den Wert einfach immer ans andere Ende. Das funktioniert auch soweit, dadurch lese ich immer aktuelle Werte, habe halt nur eine Queue die staendig waechst und mir vermutlich irgendwann um die Ohren fliegt..

Jetzt meine Frage: faellt irgendwem spontan eine elegantere Loesung ein? Oder weiss irgendjemand was passiert wenn die Queue zu gross wird?


   


Vielen Dank im Voraus,
Chess
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.10.2012, 22:44
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Queue von hinten auslesen?

Akzeptierte Lösung

Wieso verwendest du eine Queue, wenn du sowieso immer nur den aktuellen/letzten Wert an anderer Stelle verarbeiten willst?

Das hört sich nach einer Aufgabe für einen Notifier an.

Oder wenn es unbedingt eine Queue sein soll, dann begrenze sie auf Länge 1 und arbeite mit "Lossy Enqueue Element".

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2012, 10:35
Beitrag #3

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: Queue von hinten auslesen?
(25.10.2012 22:21 )Chess schrieb:  Oder weiss irgendjemand was passiert wenn die Queue zu gross wird?

Warum probierst du das nicht einfach aus? Man kann sich da ja recht schnell ein Demo zusammen klicken?

Abgesehen davon: Wenn du immer nur den letzten Wert willst, könntest du doch auch einfach ne lokale Variable nehmen...

A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2012, 13:51 (Dieser Beitrag wurde zuletzt bearbeitet: 26.10.2012 16:34 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Queue von hinten auslesen?
(26.10.2012 10:35 )Achim schrieb:  Warum probierst du das nicht einfach aus? Man kann sich da ja recht schnell ein Demo zusammen klicken?
Der Vorteil der Queues/Notifieres ist aber die Synchronisation von Senden und Empfangen. Beim Auslesen einer lokalen Variablen wird nicht gwartet, bis ein neuer Wert anliegt, man weiß nicht, ab sie neu ist oder ob man den gleichen Wert schon x-mal gelesen hat. Man müßte dann noch eine boolsche Veriable für das Handshaking erstellen, das wird aber dann umständlicher und ist immer noch nicht so gut wie eine Queue oder Notifier.
Übrigens: Die zweitgenannte Lösung von Jens verdient meines Erachtesn die verbale Diskriminierung mit "Wenn es unbedingt eine Queues sein muss.." nicht. Ich würde Melder nur dort verwenden, wo sich Queues grundsätzlich nicht eignen und wofür sie (denke ich) gedacht sind: bei mehreren Empfängern.

Edit: Wenn die die Erzeugung immer schneller ist als dier Verbrauch, und immer nur der neueste Wert interessiert, Synchronisation also keine Rolle speilt, dann ist eine lokale Variable tatsächlich die einfachste Lösung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2012, 15:21
Beitrag #5

Chess Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Sep 2012

2011
2012
EN



RE: Queue von hinten auslesen?
Hallo an alle und danke fuer die Antworten,

ich habe stehe noch relativ am Anfang meiner Labview - Karriere, und habe einfach online gesucht was man verwenden kann um zwischen zwei parallel laufenden while Loops zu kommunizieren.

Ich bin auf Queues gestossen, und deshalb habe ich versucht das Ganze ueber eine Queue zu machen Smile

Vielen Dank fuer den Tip mit dem "Lossy Enqueue Element" zu loesen, das war ziemlich genau das was mir gefehlt hatte Smile

Gruss an alle und Danke fuer die schnelle Hilfe,

Yourock

Chess
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Frage zu Queue Mistered 2 4.028 13.06.2020 08:03
Letzter Beitrag: Mistered
  Queue Action Engine Roumaen 6 6.777 22.10.2018 13:26
Letzter Beitrag: Roumaen
  Receive/Transmit Queue (UDP) NoWay 2 4.447 03.06.2014 14:09
Letzter Beitrag: NoWay
  Array aus einer Queue auslesen felix.korth 1 5.121 18.02.2014 15:13
Letzter Beitrag: Morpheus
  Queue Referenz mit o. ohne SR GT123 3 5.596 15.02.2012 23:19
Letzter Beitrag: phylin
  Queue mstefan26 1 4.102 10.08.2011 20:18
Letzter Beitrag: GerdW

Gehe zu: