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 

Speicher allozieren - wie?



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!

07.11.2007, 15:06 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2007 15:10 von t4b-1re-2.)
Beitrag #1

t4b-1re-2 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 155
Registriert seit: May 2007

8.5
2007
de

99*
Deutschland
Speicher allozieren - wie?
Hallo,

wie kann ich denn mit LabVIEW Speicher (z.b.) für einen Puffer allokieren? Geht das über die Queue-Funktionen? Kann ich der Queue-Anforderung einen unbestimmten Typ übergeben? Was bekomme ich (dann) zurück? Kann ich den Pointer auf den Speicherbereich der Queue sonst irgendwie übergeben also nicht den Queue-Ausgang, sondern direkt den Pointer?


Sry, dass ich so viele Fragen in einer Stelle, aber die LV-Hilfe ist hier mal wieder absolut intransparent.

Viele Grüße
t4b-1re-2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2007, 15:33
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Speicher allozieren - wie?
' schrieb:Hallo,

wie kann ich denn mit LabVIEW Speicher (z.b.) für einen Puffer allokieren? Geht das über die Queue-Funktionen? Kann ich der Queue-Anforderung einen unbestimmten Typ übergeben? Was bekomme ich (dann) zurück? Kann ich den Pointer auf den Speicherbereich der Queue sonst irgendwie übergeben also nicht den Queue-Ausgang, sondern direkt den Pointer?
Sry, dass ich so viele Fragen in einer Stelle, aber die LV-Hilfe ist hier mal wieder absolut intransparent.

Viele Grüße
t4b-1re-2

direkte Antwort: nein. Es gibt in LV keine Pointer, LabVIEW arbeitet nach dem Datenflußmodell und alle Daten werden per Value (über den Draht) übergeben.

Indirekte Antwort: jein. Du kannst z.B. per "initialize Array" ein Array mit einer bestimmten Größe erzeugen und die Array-Elemente durch "Replace Array Subset" ersetzen. Das ist dann im Prinzip wieder eine Pointer-Operation, weil einfach ein neuer Wert an eine Speicherstelle geschrieben wird. Falls du ein Beispiel zum Thema "Ring-Buffer" sucht, kannst du mal hier nachschauen.

Ansonsten kann ich nur noch sagen: Frag Rolf K, der scheint die "allwissende Müllhalde" (ich hoff er kennt nun die Serie "die Fraggles, sonst isser vielleicht beleidigtWink) zu sein, wenn es darum geht Funktionen in LV zu nutzen, die es gar nicht gibtBig Grin

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2007, 23:42 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2007 23:45 von rolfk.)
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Speicher allozieren - wie?
' schrieb:Hallo,

wie kann ich denn mit LabVIEW Speicher (z.b.) für einen Puffer allokieren? Geht das über die Queue-Funktionen? Kann ich der Queue-Anforderung einen unbestimmten Typ übergeben? Was bekomme ich (dann) zurück? Kann ich den Pointer auf den Speicherbereich der Queue sonst irgendwie übergeben also nicht den Queue-Ausgang, sondern direkt den Pointer?
Sry, dass ich so viele Fragen in einer Stelle, aber die LV-Hilfe ist hier mal wieder absolut intransparent.

Wofür willst Du denn das überhaupt? Also LabVIEW selber arbeitet natürlich intern schon mit Pointern und so aber auf Diagrammebene ist das mit voller Absicht nicht verfügbar. Ist auch der Grund warum Du LabVIEW VIs programmieren kannst ohne Dich immer um die korrekte Allozierung von Speicher kümmern zu müssen.

Der einzige Grund wo das noch Sinn macht, ist wenn Du einen solchen Buffer an eine DLL übergeben müsstest. Und da geht das auch. Einfach ein Bytearray (oder String) anlegen in LabVIEW und an die Call Library Node verbinden. Den entsprechenden Parameter dann als Array Datenpointer oder String Datenpointer konfigurieren.

Aber denke daran, LabVIEW verfügt über diesen Buffer nach der Rückkehr der Call Library Node nach Belieben, d.h. wenn Du diesen Buffer an eine asynchrone DLL Funktion gibts die erst später etwas damit machen will, geht es auf diese Weise meist schief.

Rolf Kalbermatter

PS: Danke i2dx für die Erklärung. Nein ich kenne die Fraggles nicht. Bin da wohl schon zu alt und mein Kleiner noch etwas zu jung. Big Grin
Andererseits vermute ich bei Anderen (und bei Dir im Speziellen) nicht automatisch Böswilligkeit wenn ich etwas nicht verstehe. ^_^

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2007, 07:59
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Speicher allozieren - wie?
' schrieb:PS: Danke i2dx für die Erklärung. Nein ich kenne die Fraggles nicht. Bin da wohl schon zu alt und mein Kleiner noch etwas zu jung. Big Grin
Andererseits vermute ich bei Anderen (und bei Dir im Speziellen) nicht automatisch Böswilligkeit wenn ich etwas nicht verstehe. ^_^

Rolf Kalbermatter

jau, als ich die Fraggles geguckt hab war ich noch sehr jung, das müsste wohl so 28 Jahre her seinBig Grin

zum Glück gibt es aber Wikipedia, da ist das beschriebenSmile
Code:
Majorie, die Müllhalde (gespielt von Jerry Nelson, Myra Fried) ist allwissend und weise. Tatsächlich befindet sie sich im Garten der Gorgs und besteht wohl auch aus ihrem Müll. Die Fraggles besuchen sie, um sich von ihr Rat zu holen und sie und ihre magischen Kräfte um Hilfe zu bitten.

Quelle: Wikipedia / Fraggles

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: