29.08.2008, 09:44
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Falschfarbenbild erstellen mit DLL und NiVision (Grau->Farbe)
' schrieb:Aber aus eben jenem Grund wird doch ein Ausgang garnicht benötigt.
Ja, aber dann kommst du doch - so sehe ich das jedenfalls - in LV gar nicht an die Daten, die in der DLL geschrieben wurden. Weil: Den Speicherbereich des Eingang-Wires gibt es nicht mehr.
Zitat:Die Erklärung mit den Kopien, die bei einem Intensitätsgraph nicht benötigt werden, da nur lesend, finde ich aber logisch in meinem LabVIEW-Weltbild
Das sei dir auch zugestanden.
Nur passt das jetzt nicht mehr mit meinem Bild zusammen. Dann könntest du nämlich einen Wire in eine DLL legen, die in einem parallelen Thread läuft. Die DLL liefe dann permanent und könnte somit indirekt, also per Pointer, auf den Bildschirm schreiben (wenn auch indirekt über ein LV-Element).
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
29.08.2008, 10:03
(Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2008 10:08 von p3t3rpoe.)
|
p3t3rpoe
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Aug 2008
8.2
2008
de
23564
Deutschland
|
Falschfarbenbild erstellen mit DLL und NiVision (Grau->Farbe)
@RoLe:
Ist nur eine Abstaktion des Gesammt-VIs, um es einfach zu halten.
Das ist komplizierter und dort ändern sich die Werte ständig von außen.
@IchSelbst:
Es wird mit einem IMAQ-Vision-Bild speicher allokiert.
Dieser bleibt bestehen, es sei denn man gibt ihn explizit frei.
Die DLL rödelt jetzt also auf diesem Speicherbereich, der ihr an anderer Stelle verraten wurde.
Das Image-Display zeigt regelmäßig diesen Speicherbereich an, in dem *Magic *Magic plötzlich ein Falschfarbenbild liegt :-)
Soweit die Theorie.
Ich weiß nicht, ob ich als Anfänger da was übersehe, oder etwas nicht funktionieren sollte,
aber das Falschfarbenbild wird korrekt angezeigt, nur eben nicht schnell genug :-(
Wenn ihr keine Idee habt, dann helft mir meinem Praktikumsplatzgeber zu erklären, was ich die letzten 4 Wochen gemacht habe ;-D
Naja, in 4Wochen bin ich weg, passt scho ;-)
Was das Weltbild betrifft:
Bei einer DLL kann ein schreiben nicht ausgeschlossen werden, es sei denn die wird dekompiliert und.. also nein.
Abgesehen davon, dass so Inkonsistenz verhindert wird, warum sollte ein Programm nicht Parallel zu LV arbeiten können?
|
|
|
29.08.2008, 10:51
|
p3t3rpoe
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Aug 2008
8.2
2008
de
23564
Deutschland
|
Falschfarbenbild erstellen mit DLL und NiVision (Grau->Farbe)
Was mich gerade interessiert, warum ist die synchrone Anzeige des Intensitätsgraphen um so viel langsamer?
Zur Erinnerung:
DLL=0:12 (asynchron) / 0:27 (synchron)
LV =0:27 (asynchron) / 3:50 (synchron)
(Daten beziehen sich wieder auf das Färben von 10.000 Bildern).
|
|
|
29.08.2008, 16:18
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Falschfarbenbild erstellen mit DLL und NiVision (Grau->Farbe)
' schrieb:warum sollte ein Programm nicht Parallel zu LV arbeiten können?
Weil dann zwei gleichzeitig auf den selben Datenspeicher schreiben könnten. Das würde aber zu Problemen führen.
Es sei denn - man macht es mit Absicht so. Ich muss jetzt also ...
[*grübel*]
Nee, stimmt, du hast Recht. Ich habs ja schon ausprobiert. Wenn am Ausgang eines DLL-Knotens nichts hängt wird der Eingangsspeicher verwendet. Und dann kann eine DLL direkt in z.B. ein Anzeigeelement schreiben. Irgendwo hab ich mal ein Paket gepostet, zusammen mit dem Tutorial glaub ich.
Da bin ich jetzt aber beruhigt - und kann in Urlaub fahren. Am 10.09. bin ich wieder da.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
11.09.2008, 09:47
|
p3t3rpoe
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Aug 2008
8.2
2008
de
23564
Deutschland
|
Falschfarbenbild erstellen mit DLL und NiVision (Grau->Farbe)
Pünktlich mein Erklärungsversuch:
Die Anzeige wird in Abständen aktualisiert, die größer sind als die Berechnungen dauern.
Sagen wir, die Anzeige wird mit 100Hz betrieben, dann werden in der Sekunde 100 Bilder benötigt,
in 12 Sekunden eben nur 1.200 Bilder, nicht 10.000. Die DLL wird aber trotzdem 10.000 mal ausgeführt.
Wird die Anzeige auf synchron gestellt, dann werden alle Daten angezeigt.
|
|
|
| |