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 

Designproblem: RS232 Kommunikation



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!

16.02.2009, 20:12
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.704
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Designproblem: RS232 Kommunikation
' schrieb:Mein erster Gedanke war, eine Klasse zu erstellen, die die Kommunikation handlet, d.h. den einkommenden Datenstrom permanent ausliest und nach Antwort- und Datenpaketen aufsplittet. Diese sollte den Datenstrom dann gleich noch parsen und die Daten daraus extrahieren (enthält verschiedene Messdaten). Diese Klasse hätte dann eine Funktion, um einen Befehl zu senden, die entweder einen Timeout oder die Antwort zurückliefern würde. Weiterhin hätte sie die Möglichkeit für jeden einkommenden Messwert-Datenstrom Listeners zu registrieren. Dafür hatte ich Queues angedacht, die man bei der Klasse registrieren und wieder abmelden kann.
Würde ich auch so machen.

Zitat:Das ganze habe ich versucht mit LVOOP umzusetzen.
Das nicht. Geht auch ohne.

Zitat:Das VI, das permanent samplet, muss auch permanent laufen. Das erste Problem ist also, wie ich das von außen wieder anhalten kann. Das habe ich mit Referenzen auf das VI gelöst, was ich irgendwie unschön finde.
Der Klasse über die Steuerqueue den Befehl senden, sich selbst zu beenden.

Zitat:Das größere Problem ist, dass ich diesem Permanent laufenden VI ja nicht die Klasseninstanz übergeben kann, da ich sie ja dann nicht mehr zurückbekommen würde. Damit kann dieses VI keine wirkliche Objektmethode sein. Dadurch habe ich aber das Problem, dass ich Änderungen an der Klasse (Listener hinzugefügt, entfernt, etc.) in dem VI nicht mitbekomme. Natürlich könnte ich mir da jetzt irgendwie mit Queues behelfen, aber das wird dann gleich alles sehr komplex.
Das klingt, als wolltest du die Klasse, die die RS232 handlet, als Methode einer übergeordneten, applikationsspezifischen Klasse haben. Da sehe ich aber keine Notwendigkeit für. Für so kompliziert halte ich das mit den Queues nicht.
Den fett markierten Text verstehe ich nicht. Welches VI bekommt die Änderung an der Klasse nicht mit? Warum sollte das übergeordnete VI eine Änderung in der Klasse mitbekommen?

Ich hab mal folgendes überlegt:
Das mit dem Listener-Management könnte man über ein Array of Queue machen. Jeder der Daten haben will, muss der Klasse eine Queue (Referenz auf Queue) übergeben (das geht). Diese Queue wird dann nur von diesem einen Anmelder ausgelesen. Die RS232-Klasse merkt sich die Queues in einer Liste (also in einem Array). Das Management, welche empfangenen Daten über welche Queue weitergesendet werden müssen, liegt innerhalb der RS232-Klasse.

[*grübel*]

Man kann auch zusammen mit den Sendedaten eine Queue an die RS232-Klasse übergeben. Die Antwort auf diese Sendung geht dann an diese Queue.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Designproblem: RS232 Kommunikation - IchSelbst - 16.02.2009 20:12
Designproblem: RS232 Kommunikation - eg - 16.02.2009, 20:38
Designproblem: RS232 Kommunikation - eg - 18.02.2009, 10:48
Designproblem: RS232 Kommunikation - eg - 18.02.2009, 13:07

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  RS232 / VISA - Alternativer Ansatz für Kommunikation ? fidel 21 17.044 18.12.2006 13:17
Letzter Beitrag: tron
  Voraussetzung zur Kommunikation über RS232 / GPIB / USB-Port jameson 6 6.142 27.09.2006 08:43
Letzter Beitrag: jameson

Gehe zu: