LabVIEWForum.de
c-struktur in LabVIEW - 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: c-struktur in LabVIEW (/Thread-c-struktur-in-LabVIEW)

Seiten: 1 2


c-struktur in LabVIEW - verflixxt - 23.01.2009 12:43

Hallo allerseitz,

ich versuche gerade eine Struktur die in C++ geschrieben ist in LV so aufzulösen dass ich an die Daten komme.


hier die Beschreibung dazu:

ZebDevice_Read
The ZebDevice_Read function performs physical data transfer from the device. Refer to Data transfer for related information.

BOOL ZebDevice_Read(
ZebDevice* device,
ZebReadInfo* readInfo
);
Parameters
device
[in] Pointer to the device for which to perform the read operation. This pointer is re-trieved by calling the ZebDeviceManager_GetDevice function.
readInfo
[out] Pointer to a ZebReadInfo structure which is filled by the function with status in-formation about the read operation.
Return value
If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call Zeb_GetLastError.


ZebReadInfo
This structure is received as result of the read operation.

Name Type Purpose Size
reserved int Always 0. Do not pay attention 4 byte
atomIndex int For internal use. Do not pay attention 4 byte
atomCount int contains the count of atoms received during the last read operation 4 byte
syncStart BOOL set when the first portion after start or ext_sync_start is re-ceived 4 byte
dataOver BOOL set when no more data expected from the device 4 byte
running BOOL set while data is received 4 byte



Mein Versuch seht ihr im Dateianhang.

Grüße Dennis


c-struktur in LabVIEW - jg - 23.01.2009 12:47

Könntest du den Screenshot mal in besserer Qualität hochladen (am besten als PNG, nicht als JPG).

Noch besser wäre der Upload des VIs.

Gruß, Jens


c-struktur in LabVIEW - verflixxt - 23.01.2009 12:54

' schrieb:Könntest du den Screenshot mal in besserer Qualität hochladen (am besten als PNG, nicht als JPG).

Noch besser wäre der Upload des VIs.

Gruß, Jens

kein Problem, schon gemacht

Lv80_img


c-struktur in LabVIEW - jg - 23.01.2009 15:49

Hallo,

müsste so aus dem Bauch heraus funktionieren, bloss das die Struktur aus 6x4 Byte, nicht 4x4 Byte besteht.
Ich denke, es müsste in diesem speziellen Fall auch möglich sein, direkt ein 1D-Array aus U32, vorher belegt mit 6 Elementen, anzuschließen und wieder direkt auszulesen, dann sparst du dir das Speichergeschiebe über die LabVIEW-Kopier-Funktion.

Gruß, Jens

EDIT: Ach ja, hat der bisherige Versuch eigentlich nicht funktioniert? Oder was läuft da falsch? Das hast du bisher nicht gesagt.


c-struktur in LabVIEW - IchSelbst - 23.01.2009 16:36

Oh, ich sehe da ein paar sehr interessante Sachen. z.B. FindComponent. Sieht aus wie ein Handle oder Instanzpointer. Eigentlich nicht DF-konform. Aber über U32 machbar.

Für die Struktur (6*4 Byte) schließt du ein Array[5] am Eingang (!) und am Ausgang an und sagt im DLL-Knoten "Zeiger auf Daten".


c-struktur in LabVIEW - verflixxt - 27.01.2009 10:19

' schrieb:Oh, ich sehe da ein paar sehr interessante Sachen. z.B. FindComponent. Sieht aus wie ein Handle oder Instanzpointer. Eigentlich nicht DF-konform. Aber über U32 machbar.

Für die Struktur (6*4 Byte) schließt du ein Array[5] am Eingang (!) und am Ausgang an und sagt im DLL-Knoten "Zeiger auf Daten".
So, hallo zusammen,

ich habe versucht das ganze jetzt so zu lösen.


Dein Vorschlag in meiner Umsetzung bringt im array unterschiedliche Werte, ich kann sie aber nicht deuten

Dennis

Lv80_img


c-struktur in LabVIEW - jg - 27.01.2009 11:32

ACHTUNG! Die Struktur besteht aus 6 Elementen a 4 Byte (zumindest laut deiner Beschreibung, und das haben sowohl IchSelbst als auch ich schonmal so geschrieben)! Deshalb sollte das Array 6 Elemente haben, nicht 5, wie in deinem Programm.

Was steht dann darin? Woher sollen wir das wissen, du kennst dich (hoffentlich) mit deinem zebDevice aus, ich jedenfalls nicht...
Laut deiner kopierten Beschreibung sollte im Element Array[0] immer eine 0 drin stehen, Array[1] ist zu ignorieren, Array[2] ist atomcount, etc, etc, bis zum Element Array[5], die dem running Bool set entspricht.

Gruß, Jens

EDIT: Ein wenig Offtopic, aber du hast doch laut Profil LV8.6, hast du schon mal den DLL-Import-Assi von 8.6 auf die DLL losgelassen, der Assi ist inzwischen recht gut geworden.

Außerdem, da du offenbar deine PM's nicht liest, bitte nicht vergessen:

LVF-Regeln lesen

Immer LV-Version bei VI-Uploads angeben


c-struktur in LabVIEW - verflixxt - 28.01.2009 12:04

' schrieb:ACHTUNG! Die Struktur besteht aus 6 Elementen a 4 Byte (zumindest laut deiner Beschreibung, und das haben sowohl IchSelbst als auch ich schonmal so geschrieben)! Deshalb sollte das Array 6 Elemente haben, nicht 5, wie in deinem Programm.
Ok, hab ich soweit umgeändert. Hab ich schlichtweg vergessen.

' schrieb:EDIT: Ein wenig Offtopic, aber du hast doch laut Profil LV8.6, hast du schon mal den DLL-Import-Assi von 8.6 auf die DLL losgelassen, der Assi ist inzwischen recht gut geworden.

Den DLL Import Assi hab ich ausprobiert, aber er ist nicht so wahnsinnig prickelnd. Mit dem funktioniert es gar nicht. Im Parameterblock stellt er "auf Typ anpassen". So komme ich nicht einmal soweit wie jetzt.


Um diese Struktur auslesen zu können, muss ich doch mit dem Moveblock arbeiten oder?

' schrieb:Außerdem, da du offenbar deine PM's nicht liest, bitte nicht vergessen:

LVF-Regeln lesen

Immer LV-Version bei VI-Uploads angeben

Sorry, hab ich soeben gelesen.


Gruß Dennis


c-struktur in LabVIEW - IchSelbst - 28.01.2009 13:45

' schrieb:Um diese Struktur auslesen zu können, muss ich doch mit dem Moveblock arbeiten oder?
Nee.

[*guck*]

Jetzt hab ich vor lauter LV 86 doch tatsächlich vergessen mir das anzukucken. Construction


c-struktur in LabVIEW - IchSelbst - 28.01.2009 18:21

' schrieb:ich habe versucht das ganze jetzt so zu lösen.
Kannst du die DLL ZEBSDK zum Download bereit stellen (und alles was sonst noch notwendig ist)?

Dein Blockdiagramm kuck ich nur sehr ungern an. Das ist ja zwei Meter breit!

Im Read-Knoten stimmt der Parameter DEVICE nicht. Laut Header ist der ein Pointer, du übergibst aber einen Wert. Hier sollte wohl stehen "Zeiger in Wert".

Außerdem stimmen glaub ich alle Device-Ein/Ausgänge aller zuvor ausgeführten DLL-Knoten nicht.