| 
				 
					06.10.2009, 18:02  
				 
				
  Beitrag #1 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            wernerIBN 
 
 
                            
                                Datenflussumgeher 
                                   
                                
  
                            
                            
	Beiträge: 124 
	Registriert seit: Sep 2009
	
 
 
8.6 und 2011 
2000 
DE 
 
52425 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				
					
     ProducerConsumerEvents_2.vi (Größe: 13,28 KB / Downloads: 408) 
  
Hi, 
ich habe das Erzeuger/Verbraucher-Entwurfsmuster erstellt und wundere mich über die Funktion Queue-Status lesen (Get Queue Status). Wenn man meinen Button mehrfach schnell betätigt, kann man leicht z.B.: 10 Elemente in die Queue einstellen. Da meine Verbraucherschleife nur alle 2 Sekunden ein Event entnimmt, zählt so die Anzeige Elementanzahl in der Queue langsam von 10 bis 0 runter. Das ist klar.
 
Ich verstehe absolut nicht, was der andere Ausgang, Anz. noch zu entfernen, macht. Wenn nix in der Queue ist, steht der auf 1, sonst auf 0.
 
Was ist der Sinn ?  
Werner
				  
				
				
 
Erfahrung ist die Summe der gemachten Fehler  
KISS - Keep it simple and stupid 
Walking on water and developing software from a specification are easy if both are frozen. – Edward V Berard  
 
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			
				
					06.10.2009, 18:40   
(Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2009 18:41  von jg.)
				 
				
  Beitrag #2 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            jg 
 
 
                            
                                CLA & CLED 
                                
                                
 
  
                            
                            
	Beiträge: 15.864 
	Registriert seit: Jun 2005
	
 
 
20xx / 8.x 
1999 
EN 
 
Franken... 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				
					Ich habe  , was die deutsche Hilfe so erzählt, aber ich finde, die englische ist doch recht klar:
     
#pending remove erzählt dir, wie viele Dequeue-VIs gerade "warten".
 
Gruß, Jens
 
P.S.: Wieder mal ein Argument für die englische LV-Version  
				 
				
				
 
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.  
 
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					06.10.2009, 18:53  
				 
				
  Beitrag #3 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            IchSelbst 
 
 
                            
                                LVF-Guru 
                                      
                                
  
                            
                            
	Beiträge: 3.708 
	Registriert seit: Feb 2005
	
 
 
11, 14, 15, 17, 18 
- 
DE 
 
97437 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				
					"Funktionen, aus denen noch Elemente entfernt werden müssen." heist doch niemals "element functions currently waiting to remove an element from the queue". Gott, ach Gott.   
"Funktionen, die darauf warten, ein Element aus der Queue lesen zu können".
  
				 
				
				
 
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).  
 
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					06.10.2009, 19:50  
				 
				
  Beitrag #4 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            jg 
 
 
                            
                                CLA & CLED 
                                
                                
 
  
                            
                            
	Beiträge: 15.864 
	Registriert seit: Jun 2005
	
 
 
20xx / 8.x 
1999 
EN 
 
Franken... 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				
					' schrieb:"Funktionen, aus denen noch Elemente entfernt werden müssen." heist doch niemals "element functions currently waiting to remove an element from the queue". 
Steht das wirklich in der deutschen Hilfe?  
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.  
 
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					06.10.2009, 20:14  
				 
				
  Beitrag #5 
			 | 
		 
		
		
			| 
                                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					07.10.2009, 07:53  
				 
				
  Beitrag #6 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            wernerIBN 
 
 
                            
                                Datenflussumgeher 
                                   
                                
  
                            
                            
	Beiträge: 124 
	Registriert seit: Sep 2009
	
 
 
8.6 und 2011 
2000 
DE 
 
52425 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				
					' schrieb:Steht das wirklich in der deutschen Hilfe?  
 
Gruß, Jens 
Hi, 
in der deutschen Hilfe steht: 
 
Anz. noch zu entfernen ist die Anzahl der Funktionen, aus denen noch Elemente entfernt werden müssen. Weitere Informationen finden Sie in der Beschreibung der Funktionen Element aus Queue entfernen und Vorschau für Queue-Element. 
 
Das versteh zumindest ich nicht...
 Zitat:#pending remove erzählt dir, wie viele Dequeue-VIs gerade "warten". 
Jens, das wirds wohl sein, danke. Damit kann man aber meiner Meinung nach nix sinnvolles tun... dass weiss man zum Zeitpunkt des Programmierens ja selber.
 
Meiner meinung nach ist der unten angeordnete Ausgang "Elementeanzahl in der Queue ist die aktuelle Anzahl der Elemente in der Queue. " der nützliche. ZUmindest ich nehm den, dann seh ich, wenn meine Queue anwächst, weil ich zu viele Events produziere oder mein Programm einfach zu langsam ist.
 
Danke.
				  
				
				
 
Erfahrung ist die Summe der gemachten Fehler  
KISS - Keep it simple and stupid 
Walking on water and developing software from a specification are easy if both are frozen. – Edward V Berard  
 
				
				
				 
			 | 
                              
                 
				
 
 
				 
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					07.10.2009, 08:01  
				 
				
  Beitrag #7 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            jg 
 
 
                            
                                CLA & CLED 
                                
                                
 
  
                            
                            
	Beiträge: 15.864 
	Registriert seit: Jun 2005
	
 
 
20xx / 8.x 
1999 
EN 
 
Franken... 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				
					' schrieb:Hi, 
in der deutschen Hilfe steht:  
 
Anz. noch zu entfernen ist die Anzahl der Funktionen, aus denen noch Elemente entfernt werden müssen. Weitere Informationen finden Sie in der Beschreibung der Funktionen Element aus Queue entfernen und Vorschau für Queue-Element.  
 
Das versteh zumindest ich nicht... 
Nicht nur du, siehe die anderen Antworten im Thread!
 ' schrieb:Jens, das wirds wohl sein, danke. Damit kann man aber meiner Meinung nach nix sinnvolles tun... dass weiss man zum Zeitpunkt des Programmierens ja selber. 
Ich denke, das hängt vom Programm ab. Der Ausgang erzählt dir nicht, wieviele "Dequeue et al" VIs du "verbaut" hast, sondern wieviele gerade aktuell auf ein neues Queue Element warten.
 ' schrieb:Meiner meinung nach ist der unten angeordnete Ausgang "Elementeanzahl in der Queue ist die aktuelle Anzahl der Elemente in der Queue. " der nützliche. ZUmindest ich nehm den, dann seh ich, wenn meine Queue anwächst, weil ich zu viele Events produziere oder mein Programm einfach zu langsam ist. 
100% ACK.
 
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.  
 
				
				
				 
			 | 
                              
                 
				
 
 
				 
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			
				
					07.10.2009, 08:31   
(Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2009 08:32  von Lucki.)
				 
				
  Beitrag #8 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            Lucki 
 
 
                            
                                Tech.Exp.2.Klasse 
                                
                                
 
  
                            
                            
	Beiträge: 7.699 
	Registriert seit: Mar 2006
	
 
 
LV 2016-18 prof. 
1995 
DE 
 
01108 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				 
					Ich hatte das auch nicht richtig verstanden - auch wegen der schlechten Übersetzung. 
Das Ganze scheint so zu funktionieren - bitte korrigiert mich, wenn es falsch ist: 
Eine Queue kann von mehr als einem Verbraucher angezapft werden, z.B von Verbraucher  1 und 2.   
Wenn der Verbraucher 1 das Element E0  aus der Queue holt, kann er,  selbst wenn das nächste Element E1  schon in der Queue ist,  dieses  so lange nicht aus der Queue holen,  bis nicht auch Verbraucher 2 das Element E0 aus der Queue geholt hat. Erst wenn das der Fall ist, wird E0 aus der Queue entfernt, und das Element E1 ist vorn und steht zur Abholung bereit. 
Der Status-Ausgang dient also der Infomation, damit die Verbraucher wissen, warum sie nicht lesen konnten: Entweder weil die Schlange leer war, oder weil die anderen Verbraucher ihr Element bis zum Timeout noch nicht abgeholt hatten.
				 
				
				
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					07.10.2009, 08:42  
				 
				
  Beitrag #9 
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            IchSelbst 
 
 
                            
                                LVF-Guru 
                                      
                                
  
                            
                            
	Beiträge: 3.708 
	Registriert seit: Feb 2005
	
 
 
11, 14, 15, 17, 18 
- 
DE 
 
97437 
Deutschland 
			 | 
                              
Erzeuger/Verbraucher-Entwurfsmuster 
				
					' schrieb:Ich hatte das auch nicht richtig verstanden - auch wegen der schlechten Übersetzung. 
Das Ganze scheint so zu funktionieren - bitte korrigiert mich, wenn es falsch ist: 
Eine Queue kann von mehr als einem Verbraucher angezapft werden, z.B von Verbraucher  1 und 2.   
Wenn der Verbraucher 1 das Element E0  aus der Queue holt, kann er,  selbst wenn das nächste Element E1  schon in der Queue ist,  dieses  so lange nicht aus der Queue holen,  bis nicht auch Verbraucher 2 das Element E0 aus der Queue geholt hat. Erst wenn das der Fall ist, wird E0 aus der Queue entfernt, und das Element E1 ist vorn und steht zur Abholung bereit. 
Der Status-Ausgang dient also der Infomation, damit die Verbraucher wissen, warum sie nicht lesen konnten: Entweder weil die Schlange leer war, oder weil die anderen Verbraucher ihr Element bis zum Timeout noch nicht abgeholt hatten. 
Ich glaube, ich sehe das anders: 
Fall Eins: Queue lesen. 
Wenn die Queue  leer ist und 5 Verbraucher wollen aus der Queue was auslesen, dann gibt er Ausgang 5 aus. Wie bei wernerIBN: Da wartet einer und das Element gibt 1 aus. Ein Schreibender könnte jetzt, da er weis es gibt 5 Verbraucher, sein Element 5mal einstellen.
 
Fall Zwei: Queue beschreiben. 
Wenn die Queue  voll ist und 7 Erzeuger wollen was reinschreiben (mit Timeout auf unendlich), dann gibt der entsprechende Ausgang 7 aus.
				  
				
				
 
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).  
 
				
				
				 
			 | 
                              
                 
				
 
 
				 
 | 
		 
		
			| 
				
			 | 
		 
	
 
 |  |