Skip to content

Commit

Permalink
Added the RobotStateMachine as a property in the Robot class
Browse files Browse the repository at this point in the history
  • Loading branch information
thomasfruehwirth committed Nov 26, 2020
1 parent 049c0b6 commit 82fe01d
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 56 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 8 additions & 4 deletions Uml2OpcuaTransformationTests/Robots.notation
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
<element xmi:type="uml:Property" href="Robots.uml#_E06CwAo8Eeu10fo7E1imQg"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_E1bnMQo8Eeu10fo7E1imQg"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_od_tUC_nEeufivA6H7ZsGQ" type="Property_ClassAttributeLabel">
<element xmi:type="uml:Property" href="Robots.uml#_odW0IC_nEeufivA6H7ZsGQ"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_od_tUS_nEeufivA6H7ZsGQ"/>
</children>
<styles xmi:type="notation:TitleStyle" xmi:id="_lw2q9AoyEeurM_VmJbT_Ug"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_lw2q9QoyEeurM_VmJbT_Ug"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_lw2q9goyEeurM_VmJbT_Ug"/>
Expand Down Expand Up @@ -44,7 +48,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_lw3SBAoyEeurM_VmJbT_Ug"/>
</children>
<element xmi:type="uml:Class" href="Robots.uml#_lwoBcAoyEeurM_VmJbT_Ug"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_lw2D4QoyEeurM_VmJbT_Ug" x="214" y="85" width="361" height="137"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_lw2D4QoyEeurM_VmJbT_Ug" x="214" y="85" width="361" height="157"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_nMKyYAoyEeurM_VmJbT_Ug" type="Class_Shape_CN">
<children xmi:type="notation:DecorationNode" xmi:id="_nMLZcAoyEeurM_VmJbT_Ug" type="Class_NameLabel_CN"/>
Expand Down Expand Up @@ -149,7 +153,7 @@
<element xmi:type="uml:Generalization" href="Robots.uml#_qOGSUAoyEeurM_VmJbT_Ug"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qOZ0UgoyEeurM_VmJbT_Ug" points="[401, 400, -643984, -643984]$[550, 320, -643984, -643984]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qQ02MAoyEeurM_VmJbT_Ug" id="(1.0,0.36)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qQ02MQoyEeurM_VmJbT_Ug" id="(0.0,0.5547445255474452)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qQ02MQoyEeurM_VmJbT_Ug" id="(0.0,0.4840764331210191)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_re5y4AoyEeurM_VmJbT_Ug" type="Generalization_Edge" source="_nMKyYAoyEeurM_VmJbT_Ug" target="_lw2D4AoyEeurM_VmJbT_Ug">
<children xmi:type="notation:DecorationNode" xmi:id="_re6Z8goyEeurM_VmJbT_Ug" type="Generalization_StereotypeLabel">
Expand All @@ -160,7 +164,7 @@
<element xmi:type="uml:Generalization" href="Robots.uml#_reotIAoyEeurM_VmJbT_Ug"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_re6Z8QoyEeurM_VmJbT_Ug" points="[425, 200, -643984, -643984]$[600, 272, -643984, -643984]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rfhd8AoyEeurM_VmJbT_Ug" id="(1.0,0.56)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rfhd8QoyEeurM_VmJbT_Ug" id="(0.0,0.26277372262773724)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rfhd8QoyEeurM_VmJbT_Ug" id="(0.0,0.22929936305732485)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_rE-g4Ao7Eeu10fo7E1imQg" type="Association_Edge" source="_lw2D4AoyEeurM_VmJbT_Ug" target="_mknUEAo7Eeu10fo7E1imQg">
<children xmi:type="notation:DecorationNode" xmi:id="_rFBkMAo7Eeu10fo7E1imQg" type="Association_StereotypeLabel">
Expand Down Expand Up @@ -190,7 +194,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_rE-g4Qo7Eeu10fo7E1imQg"/>
<element xmi:type="uml:Association" href="Robots.uml#_rEOS8Ao7Eeu10fo7E1imQg"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rE-g4go7Eeu10fo7E1imQg" points="[650, 320, -643984, -643984]$[782, 300, -643984, -643984]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rG8PwAo7Eeu10fo7E1imQg" id="(1.0,0.40875912408759124)"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rG8PwAo7Eeu10fo7E1imQg" id="(1.0,0.35668789808917195)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rG820Ao7Eeu10fo7E1imQg" id="(0.0,0.38461538461538464)"/>
</edges>
</notation:Diagram>
Expand Down
1 change: 1 addition & 0 deletions Uml2OpcuaTransformationTests/Robots.uml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<ownedAttribute xmi:type="uml:Property" xmi:id="_E06CwAo8Eeu10fo7E1imQg" name="number_of_axes">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
</ownedAttribute>
<ownedAttribute xmi:type="uml:Property" xmi:id="_odW0IC_nEeufivA6H7ZsGQ" name="state" type="_BytCQA37EeuQ042lsnNw9A"/>
<ownedOperation xmi:type="uml:Operation" xmi:id="_4QaVgAo9Eeu10fo7E1imQg" name="moveToPosition">
<ownedParameter xmi:type="uml:Parameter" xmi:id="_Cy3AkAo-Eeu10fo7E1imQg" name="position">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
Expand Down
113 changes: 61 additions & 52 deletions Uml2OpcuaTransformationTests/Robots.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,36 @@
<Uri>http://robots.auto.tuwien.ac.at</Uri>
</NamespaceUris>
<Aliases>
<Alias Alias="TransitionEventType">i=2311</Alias>
<Alias Alias="ToState">i=52</Alias>
<Alias Alias="FiniteStateMachineType">i=2771</Alias>
<Alias Alias="InitialStateType">i=2309</Alias>
<Alias Alias="HasProperty">i=46</Alias>
<Alias Alias="BaseDataVariableType">i=63</Alias>
<Alias Alias="ModellingRule_Mandatory">i=78</Alias>
<Alias Alias="StateType">i=2307</Alias>
<Alias Alias="HasSubtype">i=45</Alias>
<Alias Alias="PropertyType">i=68</Alias>
<Alias Alias="HasComponent">i=47</Alias>
<Alias Alias="FromState">i=51</Alias>
<Alias Alias="InitialStateType">i=2039</Alias>
<Alias Alias="Argument_Encoding_DefaultXml">i=297</Alias>
<Alias Alias="HasTypeDefinition">i=40</Alias>
<Alias Alias="HasModellingRule">i=37</Alias>
<Alias Alias="FiniteStateMachineType">i=2771</Alias>
<Alias Alias="HasEffect">i=54</Alias>
<Alias Alias="Argument">i=296</Alias>
<Alias Alias="TransitionType">i=2310</Alias>
<Alias Alias="BaseDataVariableType">i=63</Alias>
<Alias Alias="ModellingRule_MandatoryPlaceholder">i=11510</Alias>
<Alias Alias="Argument">i=296</Alias>
<Alias Alias="PropertyType">i=68</Alias>
<Alias Alias="ToState">i=52</Alias>
<Alias Alias="Int32">i=6</Alias>
<Alias Alias="FromState">i=51</Alias>
<Alias Alias="TransitionEventType">i=2311</Alias>
<Alias Alias="HasSubtype">i=45</Alias>
<Alias Alias="StateType">i=2307</Alias>
<Alias Alias="Double">i=11</Alias>
<Alias Alias="HasProperty">i=46</Alias>
<Alias Alias="Argument_Encoding_DefaultXml">i=297</Alias>
<Alias Alias="BaseObjectType">i=58</Alias>
<Alias Alias="Int32">i=6</Alias>
<Alias Alias="HasEffect">i=54</Alias>
<Alias Alias="HasModellingRule">i=37</Alias>
<Alias Alias="HasTypeDefinition">i=40</Alias>
</Aliases>
<UAMethod BrowseName="stop" NodeId="ns=1;s=stop" ParentNodeId="ns=1;s=AxisType">
<DisplayName>stop</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=AxisType</Reference>
</References>
</UAMethod>
<UAVariable BrowseName="number_of_axes" NodeId="ns=1;s=number_of_axes" ParentNodeId="ns=1;s=RobotType" DataType="Int32">
<DisplayName>number_of_axes</DisplayName>
<References>
Expand All @@ -35,6 +42,14 @@
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotType</Reference>
</References>
</UAVariable>
<UAObject BrowseName="state" NodeId="ns=1;s=state" ParentNodeId="ns=1;s=RobotType">
<DisplayName>state</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=1;s=RobotStateMachineType</Reference>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotType</Reference>
</References>
</UAObject>
<UAObject BrowseName="axis" NodeId="ns=1;s=axis" ParentNodeId="ns=1;s=RobotType">
<DisplayName>axis</DisplayName>
<References>
Expand All @@ -43,11 +58,11 @@
<Reference ReferenceType="HasModellingRule">ModellingRule_MandatoryPlaceholder</Reference>
</References>
</UAObject>
<UAVariable BrowseName="OutputArguments" NodeId="ns=1;s=getCurrentPositionOutputArguments" ParentNodeId="ns=1;s=getCurrentPosition" ArrayDimensions="1" DataType="Argument" ValueRank="1">
<DisplayName>OutputArguments</DisplayName>
<UAVariable BrowseName="InputArguments" NodeId="ns=1;s=moveToPositionInputArguments" ParentNodeId="ns=1;s=moveToPosition" ArrayDimensions="1" DataType="Argument" ValueRank="1">
<DisplayName>InputArguments</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=getCurrentPosition</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=moveToPosition</Reference>
<Reference ReferenceType="HasTypeDefinition">PropertyType</Reference>
</References>
<Value>
Expand All @@ -58,7 +73,7 @@
</types:TypeId>
<types:Body>
<types:Argument>
<types:Name>currentPosition</types:Name>
<types:Name>position</types:Name>
<types:DataType>
<types:Identifier>Double</types:Identifier>
</types:DataType>
Expand All @@ -69,11 +84,11 @@
</types:ListOfExtensionObject>
</Value>
</UAVariable>
<UAVariable BrowseName="InputArguments" NodeId="ns=1;s=moveToPositionInputArguments" ParentNodeId="ns=1;s=moveToPosition" ArrayDimensions="1" DataType="Argument" ValueRank="1">
<DisplayName>InputArguments</DisplayName>
<UAVariable BrowseName="OutputArguments" NodeId="ns=1;s=getCurrentPositionOutputArguments" ParentNodeId="ns=1;s=getCurrentPosition" ArrayDimensions="1" DataType="Argument" ValueRank="1">
<DisplayName>OutputArguments</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=moveToPosition</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=getCurrentPosition</Reference>
<Reference ReferenceType="HasTypeDefinition">PropertyType</Reference>
</References>
<Value>
Expand All @@ -84,7 +99,7 @@
</types:TypeId>
<types:Body>
<types:Argument>
<types:Name>position</types:Name>
<types:Name>currentPosition</types:Name>
<types:DataType>
<types:Identifier>Double</types:Identifier>
</types:DataType>
Expand All @@ -95,11 +110,12 @@
</types:ListOfExtensionObject>
</Value>
</UAVariable>
<UAMethod BrowseName="stopMovement" NodeId="ns=1;s=stopMovement" ParentNodeId="ns=1;s=RobotType">
<DisplayName>stopMovement</DisplayName>
<UAMethod BrowseName="moveToPosition" NodeId="ns=1;s=moveToPosition" ParentNodeId="ns=1;s=RobotType">
<DisplayName>moveToPosition</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotType</Reference>
<Reference ReferenceType="HasProperty">ns=1;s=moveToPositionInputArguments</Reference>
</References>
</UAMethod>
<UAMethod BrowseName="getCurrentPosition" NodeId="ns=1;s=getCurrentPosition" ParentNodeId="ns=1;s=RobotType">
Expand All @@ -110,19 +126,11 @@
<Reference ReferenceType="HasProperty">ns=1;s=getCurrentPositionOutputArguments</Reference>
</References>
</UAMethod>
<UAMethod BrowseName="moveToPosition" NodeId="ns=1;s=moveToPosition" ParentNodeId="ns=1;s=RobotType">
<DisplayName>moveToPosition</DisplayName>
<UAMethod BrowseName="stopMovement" NodeId="ns=1;s=stopMovement" ParentNodeId="ns=1;s=RobotType">
<DisplayName>stopMovement</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotType</Reference>
<Reference ReferenceType="HasProperty">ns=1;s=moveToPositionInputArguments</Reference>
</References>
</UAMethod>
<UAMethod BrowseName="stop" NodeId="ns=1;s=stop" ParentNodeId="ns=1;s=AxisType">
<DisplayName>stop</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=AxisType</Reference>
</References>
</UAMethod>
<UAObjectType BrowseName="AxisType" NodeId="ns=1;s=AxisType">
Expand All @@ -143,9 +151,10 @@
<References>
<Reference IsForward="false" ReferenceType="HasSubtype">BaseObjectType</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=number_of_axes</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=state</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=axis</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=getCurrentPosition</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=moveToPosition</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=getCurrentPosition</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=stopMovement</Reference>
</References>
</UAObjectType>
Expand All @@ -163,6 +172,14 @@
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotStateMachineType</Reference>
</References>
</UAObject>
<UAObject BrowseName="Moving" NodeId="ns=1;s=Moving" ParentNodeId="ns=1;s=RobotStateMachineType">
<DisplayName>Moving</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">StateType</Reference>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotStateMachineType</Reference>
</References>
</UAObject>
<UAObject BrowseName="Stopped" NodeId="ns=1;s=Stopped" ParentNodeId="ns=1;s=RobotStateMachineType">
<DisplayName>Stopped</DisplayName>
<References>
Expand All @@ -171,12 +188,15 @@
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotStateMachineType</Reference>
</References>
</UAObject>
<UAObject BrowseName="Moving" NodeId="ns=1;s=Moving" ParentNodeId="ns=1;s=RobotStateMachineType">
<DisplayName>Moving</DisplayName>
<UAObject BrowseName="Stopped_to_Moving" NodeId="ns=1;s=Stopped_to_Moving" ParentNodeId="ns=1;s=RobotStateMachineType">
<DisplayName>Stopped_to_Moving</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">StateType</Reference>
<Reference ReferenceType="HasTypeDefinition">TransitionType</Reference>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotStateMachineType</Reference>
<Reference ReferenceType="FromState">ns=1;s=Stopped</Reference>
<Reference ReferenceType="ToState">ns=1;s=Moving</Reference>
<Reference ReferenceType="HasEffect">TransitionEventType</Reference>
</References>
</UAObject>
<UAObject BrowseName="InitialState_to_Stopped" NodeId="ns=1;s=InitialState_to_Stopped" ParentNodeId="ns=1;s=RobotStateMachineType">
Expand All @@ -201,24 +221,13 @@
<Reference ReferenceType="HasEffect">TransitionEventType</Reference>
</References>
</UAObject>
<UAObject BrowseName="Stopped_to_Moving" NodeId="ns=1;s=Stopped_to_Moving" ParentNodeId="ns=1;s=RobotStateMachineType">
<DisplayName>Stopped_to_Moving</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">TransitionType</Reference>
<Reference ReferenceType="HasModellingRule">ModellingRule_Mandatory</Reference>
<Reference IsForward="false" ReferenceType="HasComponent">ns=1;s=RobotStateMachineType</Reference>
<Reference ReferenceType="FromState">ns=1;s=Stopped</Reference>
<Reference ReferenceType="ToState">ns=1;s=Moving</Reference>
<Reference ReferenceType="HasEffect">TransitionEventType</Reference>
</References>
</UAObject>
<UAObjectType BrowseName="RobotStateMachineType" NodeId="ns=1;s=RobotStateMachineType">
<DisplayName>RobotStateMachineType</DisplayName>
<References>
<Reference IsForward="false" ReferenceType="HasSubtype">FiniteStateMachineType</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=InitialState</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=Moving</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=Stopped</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=Moving</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=Moving_to_Stopped</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=Stopped_to_Moving</Reference>
<Reference ReferenceType="HasComponent">ns=1;s=InitialState_to_Stopped</Reference>
Expand Down

0 comments on commit 82fe01d

Please sign in to comment.