09.06.2013 Aufrufe

Entwicklung eines Kontrollsystems für die Strahllagemessung am ...

Entwicklung eines Kontrollsystems für die Strahllagemessung am ...

Entwicklung eines Kontrollsystems für die Strahllagemessung am ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

36 5 DAS KLASSENKONZEPT<br />

5 Das Klassenkonzept<br />

In <strong>die</strong>sem Kapitel wird das <strong>für</strong> das Kontrollsystem verwendete Klassenkonzept<br />

beschrieben. Einen Überblick über <strong>die</strong> Klassenhierarchie zeigt <strong>die</strong><br />

Abb. 12. Insges<strong>am</strong>t existieren 23 verschiedene Klassen, <strong>die</strong> über 300 verschiedene<br />

Funktionen enthalten. Der ges<strong>am</strong>te Quelltext des <strong>Kontrollsystems</strong><br />

besteht aus mehr als 25.000 Zeilen 43 (ohne das Pthread-Interface und ohne<br />

alle Initialisierungsdateien), so daß es wenig Sinn macht, Klasse <strong>für</strong> Klasse<br />

<strong>die</strong> verschiedenen Funktionen zu erläutern. Stattdessen werden hier <strong>die</strong><br />

wichtigsten Grundzüge erklärt.<br />

5.1 Die Klassen <strong>für</strong> den Feldbus<br />

Der Feldbus wird in dem Strahllage-Kontrollsystem durch <strong>die</strong> Klasse CBus<br />

repräsentiert. Die Klasse stellt dem Benutzer Routinen zum Schreiben und<br />

Lesen von beliebigen Adressen auf dem Bus zur Verfügung. Dabei erfolgt der<br />

Zugriff synchron, d. h. der Progr<strong>am</strong>mablauf wird erst nach dem Erreichen<br />

der Antwort wieder fortgesetzt. Das hat scheinbar den Nachteil, daß viel<br />

Zeit mit dem Warten auf eine Antwort verschwendet wird, wobei doch in<br />

der Zwischenzeit Aufgaben wie das Konvertieren oder Sichern von Daten auf<br />

Datenspeicher oder auch <strong>die</strong> Ausgabe von wichtigen Systeminformationen<br />

<strong>für</strong> den Benutzer durchgeführt werden könnten.<br />

Scheinbar deshalb, weil ja nur <strong>die</strong>ser eine Thread unterbrochen wird. Durch<br />

<strong>die</strong> Nebenläufigkeit können alle anderen Threads weiterarbeiten, sie werden<br />

nicht blockiert, so daß es sich also in Wirklichkeit um keinen Nachteil handelt.<br />

Im Gegenteil, <strong>die</strong> synchrone Abarbeitung in einem Thread hat den Vorteil,<br />

daß eine genaue Fehlerzuordnung möglich ist. So kann unmittelbar nach dem<br />

Aufruf überprüft werden, ob bei der Übertragung ein Fehler entstanden ist.<br />

Die Busklasse definiert einen Fehlertyp (BusError), der verschiedene Fehler,<br />

wie z.B. Prüfsummenfehler (Parity / CRC), einen Timeout (keine Antwort)<br />

oder auch den Status “beschäftigt” beschreiben kann. Der Benutzer der Klasse<br />

kann nach der Übertragung den Fehlerstatus abfragen und eine eventuelle<br />

Neuübertragung auslösen. Um dem Benutzer <strong>die</strong>se Arbeit abzunehmen, wird<br />

in der Busklasse eine Standardfehlerfunktion (DefaultBusErrorFunction)<br />

deklariert, <strong>die</strong> bei Auftreten <strong>eines</strong> Übertragungsfehlers aufgerufen wird. Diese<br />

löst eine Rückübertragung der Daten aus und behebt so den entstandenen<br />

Fehler.<br />

Nur wenn wiederholt Fehler auftreten, wird an das aufrufende Progr<strong>am</strong>m<br />

eine Fehlermeldung weitergegeben. D<strong>am</strong>it wird <strong>die</strong> Benutzung der Busklasse<br />

43 Zum Vergleich: Der TEX-Quelltext <strong>die</strong>ser Diplomarbeit enthält etwa 3000 Zeilen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!