15.05.2007, 08:11
Beitrag #1
|
Predator
LVF-Gelegenheitsschreiber
Beiträge: 62
Registriert seit: Mar 2007
8.50
2006
DE
29393
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
hallo liebes forum,
ich habe wieder mal ein problem, bzw. eine frage die sich auf ein problem bezieht. ich habe in c eine 3D autokorrelationsfunktion geschrieben und möchte jetzt die daten in LV ploten. ich übergebe über den knoten die zu überprüfenden daten und erhalte als rückgabewert jeweils ein array für x,y und z korrdinaten. so jetzt mein problem: ich habe festgestellt, wenn die anzahl der daten über ca. 25000Xuint32 je dimension überschreitet, gibt LV eine fehlermeldung bezüglich des speichers heraus. unterhalb arraysize von 25000 ist alles in ordnung. kann es sein das der speicher in lv begrenzt ist? ich verstehe das nicht ganz, da doch von der dll ein pointer übergeben - und nicht das array nach lv kopiert wird. kann mir da vielleicht jemand eine aufklärung geben.... vielen dank im voraus
gruß
dennis
|
|
|
15.05.2007, 08:45
Beitrag #2
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
' schrieb:hallo liebes forum,
ich habe wieder mal ein problem, bzw. eine frage die sich auf ein problem bezieht. ich habe in c eine 3D autokorrelationsfunktion geschrieben und möchte jetzt die daten in LV ploten. ich übergebe über den knoten die zu überprüfenden daten und erhalte als rückgabewert jeweils ein array für x,y und z korrdinaten. so jetzt mein problem: ich habe festgestellt, wenn die anzahl der daten über ca. 25000Xuint32 je dimension überschreitet, gibt LV eine fehlermeldung bezüglich des speichers heraus. unterhalb arraysize von 25000 ist alles in ordnung. kann es sein das der speicher in lv begrenzt ist? ich verstehe das nicht ganz, da doch von der dll ein pointer übergeben - und nicht das array nach lv kopiert wird. kann mir da vielleicht jemand eine aufklärung geben.... vielen dank im voraus
gruß
dennis
ich hab nicht viel Ahnung von DLLs, aber wenn ich das so lese, dann sind das grad mal ca. 100kByte, die du übergeben willst, und das sollte nun überhaupt kein Problem sein ...
kannst du mal einen screenshot von der Fehlermeldung posten?
|
|
|
15.05.2007, 08:56
Beitrag #3
|
|
|
15.05.2007, 09:38
(Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2007 09:39 von IchSelbst.)
Beitrag #4
|
IchSelbst
LVF-Guru
Beiträge: 3.692
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
' schrieb:da doch von der dll ein pointer übergeben - und nicht das array nach lv kopiert wird.
Die Übergabe eines Pointers schließt nicht aus, dass der DLL-Knoten selbständig und grundsätzlich die Daten, auf die der Pointer zeigt, in den Datenfluß kopiert, der den DLL-Knoten verläßt. Ich tippe eher auf ein Kopieren.
Tritt der Fehler grundsätzlich auf, oder erst, nachdem der DLL-Knoten des öfteren aufgerufen wurde?
Kuck im Fehlerfall mal im Taskmanager nach, was da der Speicherbedarf von LV bzw. der Applikation macht.
Eins hab ich vergessen: Wird der Speicher für die Rückgabedaten von der DLL oder von LV zur Verfügung gestellt?
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
15.05.2007, 10:07
Beitrag #5
|
|
|
15.05.2007, 10:48
Beitrag #6
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
Hallo, Dennis,
nur eine Vermutung, aber: könnte es sein, dass dein Fehler daher rührt, dass du nur einmal das "Array-Initialisieren" ausführst und dann sozudagen denselben Speicherbereich an drei Array-Eingänge der dll übergibst? Ich würde deine Ausgangsarrays intialisieren und dann als Ein- und Ausgang anschließen.
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.
|
|
|
15.05.2007, 11:14
Beitrag #7
|
Predator
LVF-Gelegenheitsschreiber
Beiträge: 62
Registriert seit: Mar 2007
8.50
2006
DE
29393
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
hallo jens...
deine vermutung gebe sinn; du meinst, das dass initialisierte array ein und das selbe array (von der adressierung) ist für die drei ausgabe arrays...
mmh nur ich habe leider deinen vorschlag nicht ganz verstanden. meinst du ich initialisiere drei arrays, ohne brücke??? ich versuchs einfach mal... melde mich wenn ich fortschritte gemacht habe... vorerst vielen dank
gruß
dennis
|
|
|
15.05.2007, 11:16
Beitrag #8
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
' schrieb:hallo jens...
deine vermutung gebe sinn; du meinst, das dass initialisierte array ein und das selbe array (von der adressierung) ist für die drei ausgabe arrays...
mmh nur ich habe leider deinen vorschlag nicht ganz verstanden. meinst du ich initialisiere drei arrays, ohne brücke??? ich versuchs einfach mal... melde mich wenn ich fortschritte gemacht habe... vorerst vielen dank
gruß
dennis
Genau, drei Arrays initialieren. Ist zumindest (denke ich) eine Versuch Wert.
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.
|
|
|
15.05.2007, 12:34
Beitrag #9
|
IchSelbst
LVF-Guru
Beiträge: 3.692
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
' schrieb:ich habe mal die fehlermeldung
Eigentlich müsste ich ja sagen, aus der Fehlermeldung geht eindeutig hervor, dass der Fehler in der DLL liegt und nicht in LV.
Der Fehler in der DLL kann aber ein Folgefehler sein, infolge von Parametern, die von LV falsch vorgegeben werden.
Du könntest z.B. folgendes testen. Lass am DLL-Ausgang die Array-Ausgänge, also den Datenfluß am Ausgang, einfach mal weg, und schau ob es immernoch zu eine Fehler kommt.
Das mit dem initialisierten Array halte ich für richtig. Schließlich ist jede Linie ein Datenfluß - und da sollte dann für jeden Datenfluss nach dem Aufspaltungsknoten ein eigener Speicher geschafft worden sein. Außerdem wäre das schon aufgefallen, dann nämlich wären die Ergebnissdaten falsch.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
15.05.2007, 12:57
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Wieviele Daten kann man in einem Array schreiben?
' schrieb:Das mit dem initialisierten Array halte ich für richtig. Schließlich ist jede Linie ein Datenfluß - und da sollte dann für jeden Datenfluss nach dem Aufspaltungsknoten ein eigener Speicher geschafft worden sein. Außerdem wäre das schon aufgefallen, dann nämlich wären die Ergebnissdaten falsch.
Auja, ich glaube, du hast recht. Dann war mein Vorschlag überflüssig. Da gibt es ein LV-internen Tool, um das zu testen. Muss ich mal bei Gelegenheit ausprobieren.
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.
|
|
|
| |