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 

ANTDKT3



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!

20.11.2008, 20:42
Beitrag #9

masht Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Sep 2008

8.5
2007
de

1150
Oesterreich
ANTDKT3
' schrieb:Also ich habe bis jetzt noch nicht String oder Array Handles als Datenelemente in UserEvents von meinem C Code gebraucht. Grundsätzlich sind da aber zwei Möglichkeiten:

Entweder erwartet die LVPostUserEvent() Funktion dass sie Handles erben kann oder nicht.

Ich tendiere dazu anzumehmen dass sie das eben schon will, da dass mit dem allgemeinen Speicherkonzept von LabVIEW einhergeht.

Das heisst LVPostUserEvent nimmt ganz einfach an, dass ein Handle in den userEvent Daten nicht kopiert werden muss sondern einfach geerbt werden kann. Das ist auch speicherplatzmässig und in runtime performance effizienter.

Das heisst für Dich Du musst vor jedem PostUserEvent einen LStrHandle anlegen, die gewünschten Daten hineinekopieren und als Parameter an die Funktion mitgeben. Wenn Du beim Konzept der StringHandles bleiben willst wäre eventuel die Funktion LStrPrintf() für Dich interessant. Du musst ihr zwar ein gültiges LStrHandle übergeben (DSNewHClr(4) ist dafür aber genug) aber das formatieren des Strings und anschliessendes korrektes Resizen des Handle's sowie einfüllen der richtigen Anzahl Characterelemente macht alles die LStrPrintf() Funktion für Dich.

Sobald die LVPostUserEvent() Funktion zurückkehrt musst Du dieses Handle als von LabVIEW konsumiert betrachten und ist es in Deiner Funktion halt nicht mehr benützbar. Keine globalen LStrHandle also!

Wenn ich falsch habe, solltest Du den Speicher langsam umhoch gehen sehen da bei jedem Aufruf ein Speicherhandle verloren geht aber ich glaube es eher nicht.

Rolf Kalbermatter

Hallo Rolf, liebe LabVIEWforumnutzer,

@rolf: danke vielmals für deine hilfe. es hat alles funktioniert - auch das mit dem string (ich bin einfach zu schlampig, und hab die buffer zu klein dimensioniert..)

jedenfalls funktioniert jetzt ant unter LabVIEW. ich muss noch ein paar sachen ausprogrammieren (zb. für acknowledge messages usw.) wenn dass dann fertig ist, und wer interesse hat das zu nutzen kontaktiert mich einfach - da mir so viel geholfen wurde, möchte ich auch anderen helfen, deshlab gibts den code, die dll und vis natürlich gratis von mir für jede(n) der das brauchen kann.

liebe grüße aus wien
masht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
ANTDKT3 - masht - 03.09.2008, 21:06
ANTDKT3 - rolfk - 15.09.2008, 09:07
ANTDKT3 - masht - 16.11.2008, 09:01
ANTDKT3 - rolfk - 16.11.2008, 10:51
ANTDKT3 - masht - 16.11.2008, 14:28
ANTDKT3 - rolfk - 17.11.2008, 07:46
ANTDKT3 - masht - 17.11.2008, 22:01
ANTDKT3 - rolfk - 18.11.2008, 08:36
ANTDKT3 - masht - 20.11.2008 20:42

Gehe zu: