16.08.2013 Aufrufe

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

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.

7.4. MODELLIERUNG VON DATENSEQUENZEN 171<br />

dabei vollständig von dem konkreten <strong>Daten</strong>typ der einzelnen Folgenelemente, d.h. es werden<br />

von der Sequenzklasse keine spezielleren Sequenzen <strong>für</strong> Bild- oder Regionenfolgen abgeleitet.<br />

Die Modellierung orientiert sich dabei weitestgehend an den Entwurfskriterien <strong>für</strong> <strong>Daten</strong>sequenzen,<br />

<strong>die</strong> in den Abschnitten 4.2 (Attribute <strong>und</strong> Aktionen), 5.1 (Zeitcharakteristik) <strong>und</strong> 6.3<br />

(funktionale Beschreibung <strong>und</strong> Programmsteuerung) zusammengetragen wurden. Eine Instanz<br />

der Sequenzklasse repräsentiert dabei ein diskretes Sensorsignal. Dieses wird im wesentlichen<br />

charakterisiert durch <strong>die</strong> Gesamtheit der aufeinanderfolgenden <strong>Daten</strong>werte sowie durch <strong>Daten</strong>flußbeziehungen<br />

<strong>und</strong> Programmsteuerungsrelationen zu anderen Objekten, welche sich aus der<br />

Einbindung der <strong>Daten</strong>folge in einen <strong>Daten</strong>flußgraphen ergeben.<br />

7.4.1 Das Objektmodell<br />

...<br />

...<br />

Functor<br />

updateFunc<br />

0..1<br />

depFuncList<br />

*<br />

StreamFunctor sendNetFunc<br />

...<br />

0..1<br />

logFileFunc<br />

...<br />

0..1<br />

CallFunctorRelation<br />

syncMode: bool<br />

active: bool<br />

definedMode: enum<br />

Identifikation<br />

name: string<br />

hostname: string<br />

depth: integer<br />

Sequence<br />

Bearbeitungsstatus<br />

activeCycleNum: integer<br />

currentCycleIdx: integer<br />

complCycleNum: integer<br />

currentCycleTime: TimeAbs<br />

complCycleTime: TimeAbs<br />

<strong>Daten</strong>zugriffe<br />

getValue (refTime=now,index=0)<br />

getValueTest (cycleTime,index=0)<br />

getValueWait (cycleTime,index=0)<br />

getValueRequ (cycleTime,index,syncMode)<br />

getValueInterp(dataTime,syncMode,requMode)<br />

Aktualisierung<br />

setValue (cycleTime,value)<br />

setUndefValue (cycleTime)<br />

Standardfunktoren<br />

logValuesTo (fileStream)<br />

logValues (onOff: bool)<br />

sendValuesTo (netStream)<br />

sendValues (onOff: bool)<br />

Konstruktoren<br />

Sequence (name,depth,initValue)<br />

Sequence (name,updateFunc,depth,initValue)<br />

Sequence (name,stream,depth,initValue)<br />

Interne Methoden<br />

doUpdate (cycleTime)<br />

waitForUpdate (cycleTime)<br />

getElem (internalIndex)<br />

addElem (cycleTime, value)<br />

propElem (cycleTime)<br />

doInterpolation (dataTime)<br />

1<br />

values<br />

1..<br />

...<br />

...<br />

SequenceValue<br />

...<br />

...<br />

ActionState<br />

actionStateList methodId: enum<br />

cycleTime: TimeAbs<br />

* state: enum<br />

interpFunc<br />

0..1<br />

*<br />

InterpolateFunctor<br />

Abbildung 7.4: ËÕÙÒ -Klassendiagramm mit den wichtigsten Attributen <strong>und</strong> Methoden.<br />

Attribute <strong>und</strong> Objektreferenzen<br />

Ein diskretes Sensorsignal wird in erster Linie durch seine Werte, <strong>die</strong> nacheinander eintreffen,<br />

charakterisiert. Das in Abschnitt 4.2 definierte Sequenzmodell stellt <strong>die</strong> Gr<strong>und</strong>lage <strong>für</strong> <strong>die</strong> ob-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!