21.01.2007, 22:01
(Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2007 22:08 von IchSelbst.)
|
|
|
23.01.2007, 10:41
(Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2007 11:10 von Mr.T.)
|
Mr.T
LVF-SeniorMod
Beiträge: 1.007
Registriert seit: Jun 2005
2009
2005
kA
88400
Deutschland
|
Übergabe eines Pointers
Hallo!
Also DANKE!
Es sieht gerade so aus, als ob es funktionieren würde (jetzt weiß ich, dass Daten da sind, als nächstes hole ich sie dann mal ab..)
ichselbst: Vielen Dank. Ich denke das Tut macht immer mehr Sinn.
Achimedes: Vielen Dank! So wars gemeint! Nur dass ich meinte, die Zahl hätte von selbst erscheinen müssen, weil ich ja einen Pointer übergeben habe...
Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
|
|
|
29.01.2007, 14:50
|
Semtex
LVF-Grünschnabel
Beiträge: 22
Registriert seit: Jan 2007
7.1
2002
kA
Oesterreich
|
Übergabe eines Pointers
@ Mr.T: interessantes Thema ist das hier, könntest du nicht bitte einen Screenshot von deiner DLL + Übergrabeparameter sowie den Funktionstyp reingeben? Ich habe nur LabVIEW 7.20, und die Beispiele die dir hier weitergeholfen haben sind alle für 8.20. Wäre echt super, könnte ein Problem von mir lösen!
Hasta luego
|
|
|
29.01.2007, 15:02
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Übergabe eines Pointers
Also zum Pollen und Callback:
ab LV 8.2 gibt es auch Callback in Verbindung mit DLLs.
Ansonsten, statt DLL ein ActiveX Element erzeugen, dann klappt es auch mit Callback-Funktionen.
Ich muss leider mit meiner 8.0 die DLLs pollen.
Gruss, Eugen
|
|
|
29.01.2007, 19:56
(Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2007 20:01 von cwz.)
|
cwz
LVF-Neueinsteiger
Beiträge: 6
Registriert seit: Jul 2006
7.11 / 8.01
2003
kA
Deutschland
|
Übergabe eines Pointers
Hallo zusammen,
hoch interessante Diskussion hier, mich interessiert schon länger was LV unter der Haube macht nachdem selbst modernste CPUs keine Flussdiagramme lesen können ;-)
Bisher bin ich eigentlich davon ausgegangen, dass die wires intern als Zeiger genutzt werden (würde sich mE. anbieten), zumal gerade bei messtechnischen Aufgaben ordentliche Datenmengen anfallen, die effizient eigentlich nur referenziert durchgenudelt werden können. Dass die sog. "lokalen Variablen" keine solche im Sinne eines Prozessors sind ist schon klar, wie i2dx schon beschreibt gibt es ausser der Wertänderung zumindest ein GUI (Frontpanel)-Update das allein schon zig Operationen erfordert.
Wenn jemand hintergründiges Material zu Internas von LV kennt, auch die Compilierung wäre interessant, ein Klick auf den Pfeil kann nicht jedesmal so schnell den Linker und Compiler anwerfen um danach das VI auszuführen, immer her damit ... :-)
So long, danke für Infoverweise,
Grüße, Christoph.
' schrieb:weder noch ...
eine lokale Variable ist eigentlich eine Funktion, die entweder den Wert eines Controls verändern oder den Wert eines Controls lesen kann. Beim Schreiben wird automatisch das Frontpanel aktualisiert, damit der geschriebene Wert auch sichtbar ist. Mit Variablen im Sinne von Variablen in C/C++ hat das überhaupt nichts gemeinsam.
Die mit den Variablen in C/C++ vergleichbaren Elemente in LabVIEW sind die Drähte!
Was ichSelbst da nun macht ist: er prüft, ob ein Control auf dem Frontpanel einen bestimmten Wert hat. Wo dieser Wert nun herkommt ist dem Programm völlig wurschd. Das kann durch eine andere lokale Variable gesetzt worden sein, oder der User hat den Wert des Controls verändert, dabei wird immer der gerade aktuelle Wert gelesen. Wenn man nun schnell genug klicken kann, kann man durchaus den Wert einers Controls verändern, ohne dass die lokale Variable alle Änderungen mitbekommt ...
Ansonsten: in LV gibt es intern zwar durchaus Zeiger, aber die sind dem Benutzer nicht zugänglich noch in irgend einer anderen Art und Weise sichtbar. Die Aussage "Ich übergebe einen Pointer auf ein numerisches Bedienelement." ist also Quatsch.
|
|
|
30.01.2007, 11:51
|
Mr.T
LVF-SeniorMod
Beiträge: 1.007
Registriert seit: Jun 2005
2009
2005
kA
88400
Deutschland
|
Übergabe eines Pointers
@SEMTEX
Screenshot:
Gruß und viel Erfolg!
Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
|
|
|
30.01.2007, 12:46
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
Übergabe eines Pointers
' schrieb:Bisher bin ich eigentlich davon ausgegangen, dass die wires intern als Zeiger genutzt werden (würde sich mE. anbieten), zumal gerade bei messtechnischen Aufgaben ordentliche Datenmengen anfallen, die effizient eigentlich nur referenziert durchgenudelt werden können.
man kann sich die Verwendung von Pointers im LabVIEW Code (=das kompilierte Blockdiagramm) schon in einer gewissen Art und Weise anschauen: Tools --> Profile --> Show Buffer Allocations. Da wo KEIN Buffer allokiert wird (ein Buffer ist quasi eine lokale Kopie der Daten auf dem Stack, der zur Laufzeit angelegt wird) werden Pointer verwendet.
|
|
|
| |