INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Datensatz einer Stuktur lesen...



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!

26.04.2007, 07:53
Beitrag #1

Predator Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 62
Registriert seit: Mar 2007

8.50
2006
DE

29393
Deutschland
Datensatz einer Stuktur lesen...
hallo liebes LV forum...

ich habe folgendes problem und bitte um hilfe: ich habe eine funktion einer DLL, die den konfigurationsdatensatz einer karte ausgibt.

funktion: BOOL GetKonfig (HANDLE hDevice, OUT_READ_KONFIG*pStructKonfig, ULONG* pSimpleStatus)

laut beschreibung hat die struktur folgendes aussehen:

typdef struct_OUT_READ_KONFIG
{
char ...[20]
char ...[20]
float ...[2]
.
.
.
}

das HANDLE und der zeiger des Statusregisters machen mir keine probleme... ich habe lediglich probleme mit dem pointer auf die struktur. die funktion gibt mir doch den pointer aus. aber wie komme ich mit dem pointer an meine daten? ich hatte vorerst angenommen das ich den gesamten datensatz in ein array ausgegeben bekomme und mir dann in LV die benötigten daten heraussuche. blos in der struktur befinden sich ja daten unterschiedlichen typs. Kann mir da jemand helfen?

vielen dank im voraus...

gruß dennis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.04.2007, 08:27
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Datensatz einer Stuktur lesen...
' schrieb:ich habe lediglich probleme mit dem pointer auf die struktur. die funktion gibt mir doch den pointer aus. aber wie komme ich mit dem pointer an meine daten?

in dem du die Call Library Node verwendest und bei der Konfiguration angibst, dass ein Zeiger übergeben wird. Die Call Library Node holt dann die Daten nach LabVIEW ...

   

mehr sag ich dazu nicht, weil in diesem Forum seit Monaten der Thread zum Thema "DLL Tutorial" aktiv istWink

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.04.2007, 09:18
Beitrag #3

Predator Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 62
Registriert seit: Mar 2007

8.50
2006
DE

29393
Deutschland
Datensatz einer Stuktur lesen...
hallo... vielen dank für deine antwort! jedoch hat das mir nicht weitergeholfen. das ich das mit der call library function machen muss, wusste ich vorher. ich habe nur das (verständnis) problem mit der struktur. wenn ich einen pointer übergeben bekomme, wie navigiere ich den pointer in LV?

zur erklärung:

typ struct_OUT_READ_KONFIG
{
char Karte[20]
char Aufsteckfilter[20]
float Bandgrenzen[2]
.
.
.
}

ich möchte z.B. jetzt die daten des Aufsteckfilters auslesen. in der textlichen programmierung würde man schreiben: struct_OUT_READ_KONFIG.Aufsteckfilter[...]. Wie mache ich das in LV, wie navigiere ich den Pointer und hole mir die Daten die ich benötige?
Gruß Dennis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.04.2007, 10:34
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Datensatz einer Stuktur lesen...
' schrieb:Wie mache ich das in LV, wie navigiere ich den Pointer

gar nicht. LV kennt keine Pointer und keine Pointer Arithmetik.

' schrieb:hole mir die Daten die ich benötige?

die einzige Chance die du hast, ist, die Rückgabe-Struktur in einen Cluster zu pressen und dann mit Unbundle zu arbeiten. Wenn du Strings im struct verwendest ist das allerding so eine Sache, die müssen ebenfalls *richtig* übergeben werden. Wenn du Zugriff auf den Quellcode der DLL hast, dann hast du die Chance die extcode.h einzubinden und in der DLL die Daten auf LV Format umzubiegen. Wenn nicht, kann es sein, dass du Pech hast und gar nicht an die Daten rankommst.

Im Zweifel kann ich dir dazu nur empfehlen dieses Tutorial auf ni.com zu lesen

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.04.2007, 09:15
Beitrag #5

Predator Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 62
Registriert seit: Mar 2007

8.50
2006
DE

29393
Deutschland
Datensatz einer Stuktur lesen...
vielen dank nochmal... habe das problem gelöst. es lag nicht am knoten, sondern es fehlte eine funktion zum öffnen und schließen der karte. das problem hat sich also geklärt...
jedoch jetzt habe ich ein nächstes problem: wie oben beschrieben kommen aus der struktur zeichen (char), die als zahl im array stehen. wie kann ich jetzt die zahlen umcodieren, dass ich sie als ASCII code lesen kann? gibt es in LV eine funktion dafür? habe die hilfe durchsucht, bin aber nicht fündig geworden...

mfg
dennis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.04.2007, 10:21
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Datensatz einer Stuktur lesen...
Hallo, Dennis,

da gibt es bei den Umwandlungsfunktionen (entweder unter Numerisch oder String) die Funktionen "String to Byte Array" und "Byte Array to String". Probier die doch mal aus. Die wandeln auf jeden Fall korrekt nach ASCII.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.04.2007, 11:48
Beitrag #7

Predator Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 62
Registriert seit: Mar 2007

8.50
2006
DE

29393
Deutschland
Datensatz einer Stuktur lesen...
super vielen dank...
es hat mit byte array to string funktioniert...
mfg
dennis
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 13:34
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Datensatz einer Stuktur lesen...
' schrieb:gar nicht. LV kennt keine Pointer und keine Pointer Arithmetik.
die einzige Chance die du hast, ist, die Rückgabe-Struktur in einen Cluster zu pressen und dann mit Unbundle zu arbeiten. Wenn du Strings im struct verwendest ist das allerding so eine Sache, die müssen ebenfalls *richtig* übergeben werden. Wenn du Zugriff auf den Quellcode der DLL hast, dann hast du die Chance die extcode.h einzubinden und in der DLL die Daten auf LV Format umzubiegen. Wenn nicht, kann es sein, dass du Pech hast und gar nicht an die Daten rankommst.

Im Zweifel kann ich dir dazu nur empfehlen dieses Tutorial auf ni.com zu lesen

Eine andere Möglichkeit die zwar meist schwieriger scheint aber meiner Meinung nach in manchen Fällen einfacher ist, ist das ganze als ein Array of Bytes zu behandeln und die verschiedenen Informationen in LabVIEW aus dem Array herauszupicken.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: