Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
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-