Datenerfassung über C++ in LabVIEW exportieren - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: DLL & externer Code (/Forum-DLL-externer-Code) +---- Thema: Datenerfassung über C++ in LabVIEW exportieren (/Thread-Datenerfassung-ueber-C-in-LabVIEW-exportieren) |
Datenerfassung über C++ in LabVIEW exportieren - rolfk - 24.08.2007 11:24 ' schrieb:Erstens: Da hast Du mal Unrecht. Die Deklaration so wie Du sie hier siehst ist GENAU so wie LabVIEW ein Array im Speicher ablegt. Das ist dann auch die einzige Weise um Arrays an ein CIN zu übergeben. Der DLL Knoten kann das aber auch. Einfach "Adapt to Type" auswählen und dann ein eindimensionales Array von float64 and den Eingang verbinden. Für diesen Fall noch "Handles als Value" und nicht "Pointer to Handles" ansonsten gibts ein "arg1 *TD1Hdl" Parameter was hier wohl nicht erwünscht wäre. Rolf Kalbermatter Datenerfassung über C++ in LabVIEW exportieren - rolfk - 24.08.2007 11:33 ' schrieb:Zitat stammt von dem Link den Jens G gepostet hat. Danke dafür schonmal. Das hast Du aber aus einem anderen Thread kopiert und hier als Frage darauf in diesen Thread kopiert. Es gibt keinen Block den Du in einem CIN verwenden kannst. Wohl aber die MoveBlock Funktion die genau wie alle anderen LabVIEW Manager calls von LabVIEW.lib exportiert wird. Einfach extcode.h in Deinem C source File einfügen, LabVIEW.lib als extra Library in Dein Projekt aufnehmen und schon kannst Du diese Funktion in Deinem CIN oder DLL verwenden. Und wie schon gesagt, CINs sind echt alte Legacytechnologie. Der Tag an dem die Erstellung von CINs in neuen LabVIEW Versionen nicht mehr möglich sein wird weil die entsprechenden CIN Tools einfach nicht mehr mitgeliefert werden ist wahrscheinlich nicht mehr so fern. Die Verwendung von bestehenden CINs wird wohl noch eine Weile möglich sein, aber auch das wird für neue Platformen(Windows 64bit zum Beispiel) für die LabVIEW eventuel noch herauskommen wird wohl nicht mehr unterstützt werden. Du bist also gewarnt! Rolf Kalbermatter Datenerfassung über C++ in LabVIEW exportieren - rolfk - 24.08.2007 12:04 ' 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. Das ist so nicht richtig. Wenn Du grössere Speicherbereiche kopieren willst kannst Du das entweder von Hand in einer Schleife tun, in C++ beispielsweise implizit durch den Compiler machen lassen wenn der dann beide Datentypen begreifen kann, oder eben eine Runtimefunktion verwenden. Die C Runtime bietet beispielsweise memcpy() und das Windows API bietet auch mindestens drei oder so Varianten dafür. LabVIEW hat dafür auch eine eigenen C Funktion um auf allen Plattformen dieselbe verwenden zu können. Solche Funktionen obwohl scheinbar trivial können es nämlich in sich haben. Beispielweise können nicht alle davon mit überlappenden Speicherbereichen umgehen. Rolf Kalbermatter |