31.01.2014 Views

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 7. openETCS Meta Model<br />

can be only used at the beginning of a telegram to define a telegram hea<strong>der</strong> [85]. Therefore,<br />

they only can be modelled in the or<strong>der</strong> between the oRootNode object and the first oPacket or<br />

oAnyPacket instance. The VariableOr<strong>der</strong> relationship is used between the connection between<br />

two oVariableInstance objects. PacketOr<strong>der</strong> is valid between oAnyPacket and/or oPacket typ<strong>es</strong>,<br />

and between the last oVariableInstace and the two packet typ<strong>es</strong>.<br />

The oAnyPacket object type is different from the others because it cannot be directly found<br />

in SRS [85]. It can be used to model that at a certain point in the variable-packet or<strong>der</strong><br />

several oPacket objects are possible. The concrete set of oPacket objects is specified in the<br />

decomposition of the oAnyPacket instance. In that way, ETCS telegrams only differing from<br />

each other in a certain packet can be easier and faster modelled.<br />

7.3.7. gPacket Graph Type<br />

Similar to the gTelegram graph type, the gPacket graph type is used to specify the or<strong>der</strong> of<br />

oVariableInstance objects in a certain ETCS packet [85]. Three object typ<strong>es</strong> are provided:<br />

oRootNode defin<strong>es</strong> the start point of a packet or<strong>der</strong>.<br />

oVariableInstance defin<strong>es</strong> a certain ETCS variable of a certain type [85]. Therefore, the<br />

oVariableInstance object type holds an oVariableType object as property. The oVariableType<br />

type is not graphically used (only as property) and specifi<strong>es</strong> the type of an<br />

oVariableInstance object, which is similar to a template-mechanism [79] in object-oriented<br />

programming languag<strong>es</strong>. The oVariableType type holds several properti<strong>es</strong> for defining<br />

the attribut<strong>es</strong> of an oVariableInstance object:<br />

1. size in bits<br />

2. the variable’s r<strong>es</strong>olution [85]<br />

3. the variable’s physical unit<br />

oLeafNode determin<strong>es</strong> the last gPacket object in an or<strong>der</strong>.<br />

The advantage of defining a property of oVariableType object type is that the concrete<br />

oVariableType objects can be reused for several oVariableInstance objects.<br />

Apart from enabling the specification of variable or<strong>der</strong>s according to the ETCS specifications<br />

[85], also a possibility to model the scaling of certain variabl<strong>es</strong> is needed. Scaling means<br />

that a value of a certain variable can scale (by multiplication) the value of another. This is<br />

modelled by the additional Scaling relationship while the VariableOr<strong>der</strong> is used for specifying<br />

the oVariableInstance object or<strong>der</strong>. The full syntax is illustrated in Figure 7.12.<br />

Moreover, the ETCS language specification [85] defin<strong>es</strong> so-called iterating variabl<strong>es</strong>. This<br />

concept is similar to arrays in C/C++ [79] or other high-level programming languag<strong>es</strong>. A<br />

certain variable holds the size of an array and the following variabl<strong>es</strong> are components of an<br />

array of the specified size. An iterating variable is not modelled by a relationship but by<br />

graphical containment, as introduced in Chapter 4. Therefore, oVariableInstance objects that<br />

are iterated by another oVariableInstance object are drawn within the iterating instance. In<br />

this way, it is also possible to specify n<strong>es</strong>ted iterations.<br />

A specialisation of iterating variabl<strong>es</strong> are so-called conditional iterator variabl<strong>es</strong>. In contrast<br />

to the normal iteration concept, conditional iterators do not iterate the graphically contained<br />

96

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!