LabVIEWForum.de
Brauche jemanden der mir Programm erklärt - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: Sonstiges (/Forum-Sonstiges)
+--- Forum: Smalltalk (/Forum-Smalltalk)
+---- Forum: Off Topic - LVF betreffend (/Forum-Off-Topic-LVF-betreffend)
+---- Thema: Brauche jemanden der mir Programm erklärt (/Thread-Brauche-jemanden-der-mir-Programm-erklaert)



Brauche jemanden der mir Programm erklärt - JackDaniels - 29.01.2009 19:33

Wie der Titel schon sagt, könnte mir jemand erklären was da genau abläuft und wofür jedes einzelne Element benötigt wird?
Bitte auch so, das es normalsterbliche verstehen können.Tongue


Brauche jemanden der mir Programm erklärt - Y-P - 29.01.2009 21:00

Das könnte schwierig werden, weil man (zumindest ich) nicht weiß, was sich hinter den DLLs befindet.
Das ist in etwa so, als wenn ich Dir die Eingänge und Ausgänge eines SubVIs auf einem Bild zur Verfügung stelle und Dich frage, was das SubVI macht.

Gruß Markus


Brauche jemanden der mir Programm erklärt - Y-P - 29.01.2009 21:01

Was evtl. helfen könnte, wäre dass Du das VI und die DLLs mal hochlädst.

Gruß Markus

' schrieb:Das könnte schwierig werden, weil man (zumindest ich) nicht weiß, was sich hinter den DLLs befindet.
Das ist in etwa so, als wenn ich Dir die Eingänge und Ausgänge eines SubVIs auf einem Bild zur Verfügung stelle und Dich frage, was das SubVI macht.

Gruß Markus



Brauche jemanden der mir Programm erklärt - IchSelbst - 29.01.2009 21:52

Wie wärs denn mal mit googeln?

SendMessage sollte klar sein. Das zu erklären ist in einem Forum schwierig: Sendet Parameter (WParam und LParam) zusammen mit einem Befehl (MsgID) zu einem Handle (z.B. wie HWND).

HWND ist hier wohl ein Capture-Handle.

Die Zahlen 40A, 432 etc. sind die Befehle. Schwierig wird es, diese Befehle zu finden:

[code]


Brauche jemanden der mir Programm erklärt - JackDaniels - 29.01.2009 21:58

Hi, thx für deine Antwort

avicap32.dll und user32.dll findest du unter C:Windowssystem32
Für die Mac user hab ichs trotzdem hochgeladen

Das Programm habe ich von Achim, aber Jens_G hats hochgeladen.. finde es aber hier im Forum nicht mehr Wink


***EDIT**
Thx Ichselbst,

so genau möchte ich es nicht wissen, was die genauen parameter in der dll machen oder so. Nur oberflächlich


Brauche jemanden der mir Programm erklärt - jg - 29.01.2009 22:07

Meinst du diesen Thread hier:
http://www.LabVIEWforum.de/index.php?showtopic=11144

Gruß, Jens

P.S.: Mit Windows-DLL's werden Linux und Mac-User recht wenig anfangen können. Übrigens, laut dem alten Thread oben braucht das Bsp .NET


Brauche jemanden der mir Programm erklärt - IchSelbst - 29.01.2009 22:12

' schrieb:Nur oberflächlich
Nur oberflächlich kannst du dir selbst überlegen anhand der Beschreibungen der Zahlen:

5 Knoten - 5 Schritte: Handle auf Fenster (Paintbox) holen, Handle (also Fenster) mit Treiber verbinden (40A: DRIVER_CONNECT), Scalierung (also wohl, dass das Bild ins fenster passt) setzen (435: SET_SCALE), Previewrate (???) setzen (434: SET_PREVIEWRATE) und letztendlich Preview (also Vorschau) (432: SET_PREVIEW).

Warum man natürlich die Previewrate und die Scalierung setzen muss, weiß ich nicht.


Brauche jemanden der mir Programm erklärt - JackDaniels - 04.02.2009 17:42

' schrieb:Nur oberflächlich kannst du dir selbst überlegen anhand der Beschreibungen der Zahlen:

5 Knoten - 5 Schritte: Handle auf Fenster (Paintbox) holen, Handle (also Fenster) mit Treiber verbinden (40A: DRIVER_CONNECT), Scalierung (also wohl, dass das Bild ins fenster passt) setzen (435: SET_SCALE), Previewrate (???) setzen (434: SET_PREVIEWRATE) und letztendlich Preview (also Vorschau) (432: SET_PREVIEW).

Warum man natürlich die Previewrate und die Scalierung setzen muss, weiß ich nicht.

Dein Beitrag hat mir schon sehr geholfen danke.
Ich habe nun Versucht dies irgendwie in paar sätze zu formulieren. Wenn ihr mal drüberschauen könntet.. Ist erstmal ein entwurf, also warscheinlich paar rechtschreibfehler und gramatikalisch nicht 100% richtig:)Die bedeutung von dwSytle ist mir noch nicht ganz so klar, stimmt das was ich über dwstlye geschrieben habe? (hab danach gegoogelt)



In der ersten Sequenz wurde ein „Knoten zum Aufruf externen Bibliotheken“ platziert. Dieses Element öffnet nun die Bibliothek in C:WindowsSystem32avicap32.dll. Die Bibliothek ist dazu gut, damit die Aufzeichnung von der Webcam ins LabVIEW gebracht wird. Dieser Knoten muss nun einige Parameter bekommen um richtig funktionieren zu können. Einmal wird für das Anzeigefenster ein Name (lpszWindowName) benötigt, der durch einen "KangKang" String definiert ist. dwStyle ist zur Definierung wie die Bildaufzeichnung angezeigt werden soll. Dann benötigt der Knoten die Position (X,Y), wo die Aufzeichnung in der Paintbox angezeigt wird. X und Y wird durch eine Numerische Konstante „0“ in dezimal schreibweise definiert. Dadurch wird die Aufzeichnung im oberen linken Eck in der Paintbox Positioniert. nWidth und nHeight ist zur länge und breite des Bildes. Durch ein „DotNet“-Element (PictureBox2) wird eine Paintbox mit einer definiert Höhe und länge erzeugt. Diese Länge und Höhe wird zum Knoten weitergegeben. Somit wäre die Aufzeichnung genau so groß wie das Anzeigefenster. Mit hWnd wird eine Zugriffsnummer vergeben, um das Objekt zu kennzeichnen. Die Zugriffsnummer wird auch als Handle bezeichnet. Am ende liefert der Knoten eine Konstante Zahl als Ausgabe, die auf ein Anzeigeelement geführt ist.
In der zweiten Sequenz wird über einen „Knoten zum Aufruf externen Bibliotheken“ die Bibliothek C:WindowsSystem32user32.dll geladen. Der Knoten bekommt über die Lokale Variable „hWnd of Capture“ die sogenannte Zugriffsnummer übermittelt. Mit dem Parameter 40A Hex wird nun das Anzeige Fenster mit dem Treiber verbunden. Der Wert 40A Hex ist sozusagen der Befehl DRIVER_CONNECT. Wenn LabVIEW nun erfolgreich mit dem Treiber verbunden ist, gibt die user32.dll den Wert 1 aus und Startet somit die Anweisungen in der Case-Struktur „1“. Wenn der Treiber nicht Verbunden ist, bleibt der Wert auf 0. In der Case-Strukur „1“ befindet sich eine weitere flache Sequenz. In der ersten Sequenz wird über die user32.dll die Aufzeichnung Skaliert, d.h., dass das Video so klein skaliert wird, damit es in das Anzeigefenster hineinpasst. Dies geschieht über den Parameter 435 Hex. 435 Hex steht für den Befehl SET_SCALE. In der zweiten Sequenz wird die Previewrate (Vorschaurate) gesetzt. Damit wird definiert wie viele Bilder in der Sekunde aufgezeichnet werden. Die Rate ist natürlich von der maximalen Aufzeichnungsrate der Webcam abhängig. Die Rate wird mit dem Parameter "30" Dezimal, also 30 Bilder pro Sekunde, definiert. Mit dem Parameter 434 Hex wird der Befehl SET_PREVIEWRATE ausgeführt. Und schließlich im dritten Sequenzfenster wird die Vorschau mit dem Parameter 432 Hex gesetzt. Also das wir auch etwas angezeigt bekommen, sprich damit die Videoübertragung gestartet wird. 432 Hex steht für SET_PREVIEW.


Hoffe da ist nicht all so viel falsch Lol

Danke schonmal

mfg
JackDaniels


Brauche jemanden der mir Programm erklärt - IchSelbst - 04.02.2009 19:29

Naja, kann man so lassen. Ich weiß ja was du meinst.

dwStyle ist ein "Kombinationswert" aus WS_Child und WS_Visible. Das sind fenster-spezifische Werte, damit das BS weiß, was es machen soll.

Guckst du auch hier und hier. Gefunden mit capcreatecapturewindowa bei google.