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!
' schrieb:Ich möchte lediglich Bilder die ich von einer Kamera grabbe in LabVIEW darstellen.
Ein Bild schüttelst du doch bestimmt nicht aus dem Ärmel und fängst es mit einer Tüte auf. ;)Ich gehe mal davon aus, der Kamera-Hersteller liefert eine DLL (!) die man ansprechen kann, um ein Bild aufnehmen zu lassen und um es dannach abzuholen. Möglicherweise kannst du diese DLL direkt in LV einbinden - was schon vor dir mancher gemacht hat. Möglicherweise hast du aber auch ein C-Programm geschrieben, das selbst die Kamera bedienen kann. Auch das wäre kein Problem. Dieses Programm kannst du - auch wenn es eine eigene Oberfläche hat - als DLL auslegen. Dann kannst du in dieses Programm eine LV-Kompatible Schnittstelle implementieren.
Zitat:Ich dachte es wäre das einfachste die Bilder in ein C-Puffer zu schreiben und dann einfach LabVIEW übergeben. Wenn das so nicht funktioniert, geht es dann irgendwie anders?
"In einen C-Puffer schreiben" klingt für mich jetzt so, als ob du genau hierfür ein eigenen Programm geschrieben hast. Das würdest du dann aber auch als DLL hinbekommen.
[*grübel* *grübel*]Jetzt muss ich mir doch tatsächlich mal das mit dem CIN ankucken.[*grübel* *grübel*]
Noch ein Versuch:
Schon mal an ActiveX gedacht? Ich mach zwar sowas nicht, aber vielleicht geht das bei dir ja besser als DLL.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:"In einen C-Puffer schreiben" klingt für mich jetzt so, als ob du genau hierfür ein eigenen Programm geschrieben hast. Das würdest du dann aber auch als DLL hinbekommen.
Richtig. Dafür existiert ein Programm. Hierfür verwende ich eine Bibliothek von Matrox (MIL) die mir sowas erleichtert. Darin sind Funktionen integriert die mir Bilder grabben und die Daten in einen Puffer schreiben. Ich kanns mir auch anzeigen lassen, aber ich finde hierfür LabVIEW besser geeignet da die Graphen mehr möglichkeiten der weiterverarbeitung haben. Also das C-Skript tut das was es soll. Bilder grabben und in einen Puffer schreiben. Diesen Puffer brauche ich jetzt in LabVIEW genauer, ich muss es einem Graphen in LabVIEW übergeben.
16.08.2007, 14:26 (Dieser Beitrag wurde zuletzt bearbeitet: 16.08.2007 14:27 von jg.)
' schrieb:Hierfür verwende ich eine Bibliothek von Matrox (MIL) die mir sowas erleichtert. Darin sind Funktionen integriert die mir Bilder grabben und die Daten in einen Puffer schreiben.
Bestimmt kann man diese Bibliothek auch in LV benutzen. (Wie das geht, weis ich aber nicht. Ich kenne ja die Bibliothek nicht.)
Nachtrag:
Hast du dir wenigstens mal die Linsks angekuckt und mal nachgelesen, wie das mit DLL's gehen würde?
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Der steckt in LabVIEW seit Version 2.5 damals aber nur für CINs erreichbar. Aber seit minimal 5.0 kann man den per DLL Aufrufknoten direkt erreichen. Habe ich auf den LabVIEW Foren und Info-LabVIEW wiederholt in den letzten 6 oder 7 Jahren oder so haarfein erklärt, bevor jemand bei NI scheinbar dachte, dass man das auch mal in einem Beispiel dokumentieren könnte.
Rolf Kalbermatter
Zitat stammt von dem Link den Jens G gepostet hat. Danke dafür schonmal.
Ich versuche dieses VI nachzubilden aber ohne Erfolg. rolfk schrieb, dass es das auch für CIN's gibt. Wie heisst dieser Block? Vieleicht komme ich damit hin?!
Welches VI willst du nachbilden? Das mit dem Move-Befehl? Das kannst du nicht nachbilden. Den Move-Befehl musst du herunterladen (siehe Link weiter oben in jenem Link), entsprechend beschalten und ausführen.
Im übrigen:
Der Move-Befehl ist dazu da, Unzulänglichkeiten einer Programmiersprache - ob LV, Delphi oder C++ - zu umgehen. Eigenlich soll man sowas gar nicht benutzen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Welches VI willst du nachbilden? Das mit dem Move-Befehl? Das kannst du nicht nachbilden. Den Move-Befehl musst du herunterladen (siehe Link weiter oben in jenem Link), entsprechend beschalten und ausführen.
Im übrigen:
Der Move-Befehl ist dazu da, Unzulänglichkeiten einer Programmiersprache - ob LV, Delphi oder C++ - zu umgehen. Eigenlich soll man sowas gar nicht benutzen.
Ich möchte aber keine Strings in ein Array laden. Wo finde ich denn die makros für Zahlen? Hier mal mein Code:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
/* CIN source file */
' schrieb:Es wird natürlich kein so einfaches Array bleiben. Das war nur mal ein Test um herauszufinden wie ich das Array anpacken muss um es ins richtige Format zu bringen. Hab noch nie mit DLL-Knoten gearbeitet. Bei uns wird eigentlich ausschließlich mit CIN's gearbeitet. Das funtkioniert auch bestens. Mein Problem besteht eigentlich nur aus der Umwandlung (Typecast).
Ich könnte mal versuchen ein Array im Frontpanel anzulegen welches ich unsichtbar mache. Aber ob das die schönste Lösung ist?
Ein Typecast wird nicht genügen. Dazu sind die Formate zu unterschiedlich respektive weiss C++ zu wenig über LabVIEW Datentypen. Du musst das C++ Array wohl schon eigenhändig ins LabVIEW Array kopieren. Ist aber ja keine so grosse Sache. In C müsstest Du das ohnehin tun.