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 

Datenkommunikation mittels QSM



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!

31.03.2015, 23:25
Beitrag #4

teegee Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Jan 2015

2014
2003
EN


Sonstige
RE: Datenkommunikation mittels QSM
Ok, ich sehe 2 Loesungen fuer deine Messinstrumente
1) Ein VI pro Instrument.
Das muss dann eine action engine sein, die Aktionen wie "Init", "Config", "Measure" und "Close" bereit stellt und sich diverse Attribute und Eigenschaften merken kann. Dann kannst du in deiner consumer schleife "Measure" implementieren und ueber booleans entscheiden, welche Instrumente abgefragt werden. Alternativ kannst du in der comsumer schleife "MeasureInstrumentA", "MeasureInstrumentB", ... implementieren und die entsprechenden Aktionen in der GUI enqueuen. In jedem Fall musst du eine case structure oder aehnliches bereit stellen, die die Entscheidungen trifft. Das ist ok, wenn du 100% sicher bist, dass spaeter keine neuen Instrumente hinzugefuegt werden.

2) Eine Klasse pro Instrument, die alle von BaseInstrument abgeleitet sind.
In dem Fall werden eine "Init", "Config", "Measure" und "Close" states eigene Sub-VIs und die Attribute merkst du dir in dem cluster der Klasse. Mit dieser Loesung kannst du im consumer einen "Measure" state haben, der dank dynamic dispatch das richtige Instrument abfragt. Das ist flexibler und einfacher zu erweitern, aber etwas schwieriger zu verstehen, falls man unerfahren in Objektorientierter programmierung ist.

Und dann haben wir natuerlich noch die "active object" Loesung, von der du anscheinend nicht weg kommst. Wenn du unbedingt mit Events kommunizieren willst, musst du sicher stellen, dass all deine Instrumente auf Events lauschen. Dass geht nur, wenn sie alle gleichzeitig laufen. Das ist der grosse Unterschied zwischen "active object" und den oben erwaehnten Alternativen.
Loesung 1) ist relativ einfach von action engine in state machine verwandelt, in dem du einfach eine while schleife um deine case structure baust und einen "Idle" case einfuegst, in dem auf Events hoerst. Nach der Messung musst du dann die Messwerte per Event an die GUI zurueck schicken, um sie darzustellen. Das ersetzt dann schon fast die consumer schleife im Main und ist von der Idee sehr aehnlich zum Actor Framework.
Loesung 2) ist etwas komplizierter - vor allem, wenn du *nicht* das GDS benutzt. Drum werd ich da jetzt nicht genauer drauf eingehen.

Was du jetzt zuerst entscheiden musst ist: Wie kommunizierst du mit den Instrumenten?
- Events in beide Richtungen (Anfrage und Ergebnis)
- Sub-VI Aufrufe, die direkt das Ergebnis zurueckliefern
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Datenkommunikation mittels QSM - MKay - 30.03.2015, 16:18
RE: Datenkommunikation mittels QSM - teegee - 31.03.2015 23:25

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Möglichkeiten der Datenkommunikation Josh-Beuth 8 7.101 13.10.2015 00:12
Letzter Beitrag: rolfk
  Datenkommunikation mit externem Matlab Script Server möglich? Caretaker 0 3.339 15.07.2014 10:16
Letzter Beitrag: Caretaker
  Datenkommunikation mit MATLAB mmh87 8 8.831 23.03.2010 00:16
Letzter Beitrag: mmh87
  Daten per Datenkommunikation versenden Labview-Laie 4 5.955 14.03.2010 11:34
Letzter Beitrag: Y-P

Gehe zu: