13
Universeller Sequenzer für das Universeller Sequenzer für das CS CS Framework Framework Inhalt 1. Zielsetzung 2. Anforderungen 3. Die Sequenzer- Klassenbibliothek

Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Embed Size (px)

Citation preview

Page 1: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Universeller Sequenzer für das Universeller Sequenzer für das CS CS FrameworkFramework

Inhalt1. Zielsetzung

2. Anforderungen

3. Die Sequenzer-Klassenbibliothek

Page 2: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

ZielsetzungZielsetzung

• Erweiterung des bestehenden CS Frameworks um eine generische Sequenzer-Klassenbibliothek

• Anwendungsgebiete: - Inbetriebnahme und Konfiguration von Experimentaufbauten

- Test- und Diagnose-Software

• Kapselung der allgemeinen Ablaufsteuerung durch die Klassenbibliothek

• Entwurfsmuster für den Entwickler zur Anpassung an spezielle Anwendungen

reduzierter Programmieraufwand durch bereits vorhandene Basisklassen („konfigurieren statt programmieren“)

• Konfigurierbarkeit zur Laufzeit der Anwendung

Page 3: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Anforderungen Anforderungen

• Zusammenfassen einzelner Ereignisgesteuerter Funktionsaufrufe zu elementaren Sequenzen

• konfigurierbare Kontrollstrukturen zur Ablaufsteuerung innerhalb einer Sequenz (Wiederholung, Verzweigung)

• Kompatibilität mit beliebigen CS-Klassen

• modulare Sequenzen (Wiederverwendbarkeit)

• Parallelisierung bzw. Nebenläufigkeit von Sequenzen

• Reservierungsmechanismus zur Synchronisation nebenläufiger Sequenzen

Page 4: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Integration in das Integration in das CS CS FrameworkFramework

Page 5: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Funktionen der Funktionen der CSCS-Sequenzerklassen-Sequenzerklassen

CSSeqExec CSList

CSDuT

CSProxy

CS-Prozessklassen

CSSeqControl

CSProxy

steuern editieren

liest Steuer- undAusführungsanweisungen

initiiert elementare

Sequenzen liefertErgebnisse

• Statusabfrage und Steuerung des Sequenzers • Konfiguration und Ergebnisse der Listenelemente

• stellen Funktionen über Ereignisse zur Verfügung, z.B. Zugriff auf externe Geräte

• speichert Verarbeitungslogik zusammen hängender elementarer Sequenzenin einer doppelt verketteten Liste

• definiert elementare Sequenzen Reihenfolge der Ereignisse und Analysemethoden zur Ergebnisfindung

• reserviert CS-Prozesse und verwaltet die Reservierungen• führt mehrere elementare Sequenzen nebenläufig aus und synchronisiert diese

• führt die Listeninhalte aus• verfügt über 2 Betriebsmodi (auto/single)• ermöglicht Schachtelung

ruft Funktionenper Ereignis auf

liefertRückgabe

erfragt Namender elementarenSequenzen

• realisiert die Reservierung beliebiger CS-Prozesse

• realisiert die Reservierung beliebiger CS-Prozesse

reserviert

reserviert

leitet Ergebnisse weiter

leitet Ergebnisse weiter

vom Entwickler zu implementieren bzw. anzupassendurch den Benutzer zu konfigurieren kann bei Bedarf ausgetauscht werden

Page 6: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Beziehungen zwischen den CS-Basisklassen Beziehungen zwischen den CS-Basisklassen und den Sequenzerklassenund den Sequenzerklassen

CS-Basisklassen

CS-Sequenzerklassen

Page 7: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Elementare Sequenzen - CSDuTElementare Sequenzen - CSDuT

• Sequentielle Verarbeitung von Ereignissen• Muss durch Entwickler im Quellcode hinterlegt werden.• Für den Benutzer eine untrennbare bzw. „atomare“ Aktion• Mehrere elementare Sequenzen können asynchron ausgeführt

werden.• Wechselseitige Zugriffe auf gleiche Prozesse werden durch

Reservierungen synchronisiert.

Reservierung derbeteiligten Prozesse

Start eines neuenthreads

Warten aufReservierungen

Verarbeitung der EreignisseReservierungen

erfolgreich

Reservierungenfehlgeschlagen

Ergebnisseerstellen

Aufheben der Reservierungenund Rückgabe des Ergebnissesan aufrufenden Sequenzer

TIMEOUT

Reservierungenerhalten

Page 8: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Realisierung im Realisierung im CS CS FrameworkFramework

Page 9: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Listengesteuerter Sequenzer - CSSeqExecListengesteuerter Sequenzer - CSSeqExec

Sequenzer1<<CSSeqExec>>

Testobjekt1<<MyDuT1>>

Testobjekt2<<MyDuT2>>

Stellvertreter1<<CSProxy>>

Stellvertreter2<<CSProxy>>

Prozess1<<CSProcess1>>

Prozess2<<CSProcess2>>

Liste1<<CSList>>

Stellvertreter3<<CSProxy>>

Prozess3<<CSProcess2>>

Schleifen-deklaration

Step#1• Testobjekt1• Sequenz1• Bedingung

Step#2_0• Testobjekt2• Sequenz1

Step#2_1• Testobjekt2• Sequenz2

FOR/WHILE

• Liste repräsentiert Schleifenanweisung

• Listenelemente können durch Verzweigungen miteinander verknüpft werden

TRUE FALSE

Page 10: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Realisierung im Realisierung im CS CS FrameworkFramework

• Zustandsmaschine:Zustandsmaschine:- VerarbeitungVerarbeitung

der Listeder Liste• Ereignisschleife:Ereignisschleife:

- Interaktion mitInteraktion mitBenutzer undBenutzer undanderen Prozesseanderen Prozesse

Zustandsdiagramm der Klasse CSSeqExec

Page 11: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Hierarchische SequenzerHierarchische Sequenzer

Sequenzer1<<CSSeqExec>>

Liste1<<CSList>>

Sequenzer2<<CSSeqExec>>

Liste2<<CSList>>

Testobjekt1<<MyDuT1>>

Testobjekt2<<MyDuT2>>

Testobjekt3<<MyDuT1>>

Testobjekt4<<MyDuT2>>

Sequenzer3<<CSSeqExec>>

Liste3<<CSList>>

• Hierarchische Gliederung ermöglicht geschachtelte Schleifen und Wiederverwendbarkeit vorhandener Listen

Page 12: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Nebenläufige SequenzerNebenläufige Sequenzer

Sequenzer1<<CSSeqExec>>

Liste1<<CSList>>

Sequenzer2<<CSSeqExec>>

Liste2<<CSList>>

Testobjekt1<<MyDuT1>>

Testobjekt2<<MyDuT2>>

Stellvertreter4<<CSProxy>>

Stellvertreter1<<CSProxy>>

Stellvertreter2<<CSProxy>>

Prozess1<<CSProcess1>>

Prozess2<<CSProcess2>>

Stellvertreter3<<CSProxy>>

Prozess3<<CSProcess2>>

• Asynchron arbeitende Sequenzer greifen auf dieselben Testobjekte zu

jede elementare Sequenz wird in einem separatem „thread“ abgearbeitet

• Reservierung der Prozesse synchronisiert „threads“

• Reservierung der Testobjekte innerhalb einer Liste ermöglicht Priorisierung der Sequenzer

Page 13: Universeller Sequenzer für das CS Framework Inhalt 1.Zielsetzung 2.Anforderungen 3.Die Sequenzer-Klassenbibliothek

Das Sequenzer GUI - CSSeqControl Das Sequenzer GUI - CSSeqControl

Listeninhalt

Status desSequenzers

Ergebnisseder Listen-elemente

Konfigurationder Listen-elemente

Sequenzer-steuerung