add exercises
This commit is contained in:
parent
8a24549cdb
commit
2fb8318506
11 changed files with 2706 additions and 0 deletions
|
|
@ -3,6 +3,48 @@ GeneratorModel for yakindu::python {
|
||||||
const PROJECT : string = "StartingPoint"
|
const PROJECT : string = "StartingPoint"
|
||||||
const FOLDER : string = "srcgen"
|
const FOLDER : string = "srcgen"
|
||||||
|
|
||||||
|
statechart A {
|
||||||
|
feature Outlet {
|
||||||
|
targetProject = PROJECT
|
||||||
|
targetFolder = FOLDER
|
||||||
|
libraryTargetFolder = "lib"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
statechart B {
|
||||||
|
feature Outlet {
|
||||||
|
targetProject = PROJECT
|
||||||
|
targetFolder = FOLDER
|
||||||
|
libraryTargetFolder = "lib"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
statechart C {
|
||||||
|
feature Outlet {
|
||||||
|
targetProject = PROJECT
|
||||||
|
targetFolder = FOLDER
|
||||||
|
libraryTargetFolder = "lib"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
statechart D {
|
||||||
|
feature Outlet {
|
||||||
|
targetProject = PROJECT
|
||||||
|
targetFolder = FOLDER
|
||||||
|
libraryTargetFolder = "lib"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
statechart E {
|
||||||
|
feature Outlet {
|
||||||
|
targetProject = PROJECT
|
||||||
|
targetFolder = FOLDER
|
||||||
|
libraryTargetFolder = "lib"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
statechart LockController {
|
statechart LockController {
|
||||||
feature Outlet {
|
feature Outlet {
|
||||||
targetProject = PROJECT
|
targetProject = PROJECT
|
||||||
|
|
|
||||||
111
StartingPoint/exercises/A.ysc
Normal file
111
StartingPoint/exercises/A.ysc
Normal file
|
|
@ -0,0 +1,111 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
|
||||||
|
<sgraph:Statechart xmi:id="_Zj_B0I-JEe6T3aFB4BWOHg" specification="@EventDriven
@SuperSteps(no)

interface:
	out event x
	out event y" name="A">
|
||||||
|
<regions xmi:id="_ZkFIc4-JEe6T3aFB4BWOHg" name="main region">
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_ZkFIdI-JEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_ZkFIdY-JEe6T3aFB4BWOHg" target="_ZkFvgI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_ZkFvgI-JEe6T3aFB4BWOHg" name="StateA" incomingTransitions="_ZkFIdY-JEe6T3aFB4BWOHg _3l5WQI-JEe6T3aFB4BWOHg _5ooqEI-JEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_3l5WQI-JEe6T3aFB4BWOHg" specification="after 1s / raise x" target="_ZkFvgI-JEe6T3aFB4BWOHg"/>
|
||||||
|
<outgoingTransitions xmi:id="_5ooqEI-JEe6T3aFB4BWOHg" specification="after 2s / raise y" target="_ZkFvgI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
</sgraph:Statechart>
|
||||||
|
<notation:Diagram xmi:id="_ZkIy0I-JEe6T3aFB4BWOHg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_Zj_B0I-JEe6T3aFB4BWOHg" measurementUnit="Pixel">
|
||||||
|
<children xmi:id="_ZkIy0Y-JEe6T3aFB4BWOHg" type="Region" element="_ZkFIc4-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy0o-JEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy04-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy1I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy1Y-JEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xmi:id="_ZkIy1o-JEe6T3aFB4BWOHg" type="Entry" element="_ZkFIdI-JEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_ZkIy14-JEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy2I-JEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy2Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy2o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy24-JEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy3I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy3Y-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_ZkIy3o-JEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy34-JEe6T3aFB4BWOHg" x="89" y="84" width="15" height="15"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_ZkIy4I-JEe6T3aFB4BWOHg" type="State" element="_ZkFvgI-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy4Y-JEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy4o-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy44-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_ZkIy5I-JEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy5Y-JEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy5o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_ZkIy54-JEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy6I-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_ZkIy6Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIy6o-JEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy64-JEe6T3aFB4BWOHg" x="84" y="146" width="99" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_-jdlUI-JEe6T3aFB4BWOHg" type="Note" fontName="Verdana" description="Explain: why is event 'y' never raised?" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_-jezcI-JEe6T3aFB4BWOHg" type="DiagramName">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_-jezcY-JEe6T3aFB4BWOHg" type="Description">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:TextStyle" xmi:id="_-jdlUY-JEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:LineTypeStyle" xmi:id="_-jdlUo-JEe6T3aFB4BWOHg"/>
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_-jdlU4-JEe6T3aFB4BWOHg" x="55" y="323" width="285" height="56"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy-I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy-Y-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy-o-JEe6T3aFB4BWOHg" x="25" y="15" width="400" height="446"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy-4-JEe6T3aFB4BWOHg" type="StatechartText" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy_I-JEe6T3aFB4BWOHg" type="StatechartName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy_Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy_o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy_4-JEe6T3aFB4BWOHg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAY-JEe6T3aFB4BWOHg" x="10" y="10" width="200" height="400"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIzAo-JEe6T3aFB4BWOHg" name="inlineDefinitionSection"/>
|
||||||
|
<styles xsi:type="notation:DiagramStyle" xmi:id="_ZkIzA4-JEe6T3aFB4BWOHg"/>
|
||||||
|
<edges xmi:id="_ZkIzBI-JEe6T3aFB4BWOHg" type="Transition" element="_ZkFIdY-JEe6T3aFB4BWOHg" source="_ZkIy1o-JEe6T3aFB4BWOHg" target="_ZkIy4I-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIzBY-JEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIzBo-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIzB4-JEe6T3aFB4BWOHg" x="5" y="2"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_ZkIzCI-JEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_ZkIzCY-JEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_ZkIzCo-JEe6T3aFB4BWOHg" points="[-2, 6, -39, -75]$[-2, 55, -39, -26]"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_3l7ygI-JEe6T3aFB4BWOHg" type="Transition" element="_3l5WQI-JEe6T3aFB4BWOHg" source="_ZkIy4I-JEe6T3aFB4BWOHg" target="_ZkIy4I-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_3l7yhI-JEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_3l7yhY-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_3l7yho-JEe6T3aFB4BWOHg" x="-1" y="-16"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_3l7ygY-JEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_3l7yg4-JEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_3l7ygo-JEe6T3aFB4BWOHg" points="[4, -3, 5, -3]$[4, -3, 5, -3]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_3l9AoI-JEe6T3aFB4BWOHg" id="(0.9393939393939394,0.05660377358490566)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_3l9AoY-JEe6T3aFB4BWOHg" id="(0.9292929292929293,0.05660377358490566)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_5op4MI-JEe6T3aFB4BWOHg" type="Transition" element="_5ooqEI-JEe6T3aFB4BWOHg" source="_ZkIy4I-JEe6T3aFB4BWOHg" target="_ZkIy4I-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_5oqfQY-JEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_5oqfQo-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_5oqfQ4-JEe6T3aFB4BWOHg" x="-3" y="17"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_5op4MY-JEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_5oqfQI-JEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_5op4Mo-JEe6T3aFB4BWOHg" points="[97, -34, 78, -33]$[159, -34, 140, -33]$[159, -109, 140, -108]$[73, -109, 54, -108]$[73, -47, 54, -46]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_5ortYI-JEe6T3aFB4BWOHg" id="(0.020202020202020204,0.8867924528301887)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_5ortYY-JEe6T3aFB4BWOHg" id="(0.21212121212121213,0.8679245283018868)"/>
|
||||||
|
</edges>
|
||||||
|
</notation:Diagram>
|
||||||
|
</xmi:XMI>
|
||||||
169
StartingPoint/exercises/B.ysc
Normal file
169
StartingPoint/exercises/B.ysc
Normal file
|
|
@ -0,0 +1,169 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
|
||||||
|
<sgraph:Statechart xmi:id="_Zj_B0I-JEe6T3aFB4BWOHg" specification="@EventDriven
@SuperSteps(no)

interface:
	out event outer
	out event inner" name="B">
|
||||||
|
<regions xmi:id="_ZkFIc4-JEe6T3aFB4BWOHg" name="main region">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_Hn1_0I-eEe6T3aFB4BWOHg" name="Outer" incomingTransitions="_LFvDAI-eEe6T3aFB4BWOHg _N5BC8I-eEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_N5BC8I-eEe6T3aFB4BWOHg" specification="after 3s / raise outer" target="_Hn1_0I-eEe6T3aFB4BWOHg"/>
|
||||||
|
<regions xmi:id="_JRh6cI-eEe6T3aFB4BWOHg" name="r1">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_ZkFvgI-JEe6T3aFB4BWOHg" name="Inner" incomingTransitions="_ZkFIdY-JEe6T3aFB4BWOHg _3l5WQI-JEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_3l5WQI-JEe6T3aFB4BWOHg" specification="after 2s / raise inner" target="_ZkFvgI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_ZkFIdI-JEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_ZkFIdY-JEe6T3aFB4BWOHg" target="_ZkFvgI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_KstfAI-eEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_LFvDAI-eEe6T3aFB4BWOHg" specification="" target="_Hn1_0I-eEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
</sgraph:Statechart>
|
||||||
|
<notation:Diagram xmi:id="_ZkIy0I-JEe6T3aFB4BWOHg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_Zj_B0I-JEe6T3aFB4BWOHg" measurementUnit="Pixel">
|
||||||
|
<children xmi:id="_ZkIy0Y-JEe6T3aFB4BWOHg" type="Region" element="_ZkFIc4-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy0o-JEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy04-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy1I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy1Y-JEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_-jdlUI-JEe6T3aFB4BWOHg" type="Note" fontName="Verdana" description="Explain: why does the output event trace look like this:
 2s: inner
 3s: outer
 5s: inner
 6s: outer
 ...

Specifically, why do both 'inner' and 'outer' occur at 3-second intervals?" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_-jezcI-JEe6T3aFB4BWOHg" type="DiagramName">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_-jezcY-JEe6T3aFB4BWOHg" type="Description">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:TextStyle" xmi:id="_-jdlUY-JEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:LineTypeStyle" xmi:id="_-jdlUo-JEe6T3aFB4BWOHg"/>
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_-jdlU4-JEe6T3aFB4BWOHg" x="133" y="478" width="489" height="154"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_Hn31AI-eEe6T3aFB4BWOHg" type="State" element="_Hn1_0I-eEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_Hn31BI-eEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_Hn31BY-eEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_Hn4cEI-eEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_Hn4cEY-eEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_Hn4cEo-eEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_Hn4cE4-eEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_Hn4cFI-eEe6T3aFB4BWOHg" type="StateFigureCompartment">
|
||||||
|
<children xmi:id="_JRjIkI-eEe6T3aFB4BWOHg" type="Region" element="_JRh6cI-eEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_JRjIk4-eEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_JRjIlI-eEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_JRjIlY-eEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_JRjIlo-eEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xmi:id="_ZkIy4I-JEe6T3aFB4BWOHg" type="State" element="_ZkFvgI-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy4Y-JEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy4o-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy44-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_ZkIy5I-JEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy5Y-JEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy5o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_ZkIy54-JEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy6I-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_ZkIy6Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIy6o-JEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy64-JEe6T3aFB4BWOHg" x="45" y="61" width="99" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_ZkIy1o-JEe6T3aFB4BWOHg" type="Entry" element="_ZkFIdI-JEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_ZkIy14-JEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy2I-JEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy2Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy2o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy24-JEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy3I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy3Y-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_ZkIy3o-JEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy34-JEe6T3aFB4BWOHg" x="50" y="-1" width="15" height="15"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_JRjIl4-eEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_JRjIkY-eEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_JRjIko-eEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_Hn31AY-eEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_Hn31Ao-eEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_Hn4cFY-eEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_Hn31A4-eEe6T3aFB4BWOHg" x="74" y="28" width="373" height="327"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_KsuGEI-eEe6T3aFB4BWOHg" type="Entry" element="_KstfAI-eEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_KsuGFI-eEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_KsuGF4-eEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_KsuGGI-eEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_KsuGGY-eEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_KsuGFY-eEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_KsuGFo-eEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_KsuGEY-eEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_KsuGEo-eEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_KsuGE4-eEe6T3aFB4BWOHg" x="23" y="75"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy-I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy-Y-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy-o-JEe6T3aFB4BWOHg" x="205" y="10" width="762" height="707"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy-4-JEe6T3aFB4BWOHg" type="StatechartText" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy_I-JEe6T3aFB4BWOHg" type="StatechartName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy_Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy_o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy_4-JEe6T3aFB4BWOHg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAY-JEe6T3aFB4BWOHg" x="10" y="10" width="200" height="400"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIzAo-JEe6T3aFB4BWOHg" name="inlineDefinitionSection"/>
|
||||||
|
<styles xsi:type="notation:DiagramStyle" xmi:id="_ZkIzA4-JEe6T3aFB4BWOHg"/>
|
||||||
|
<edges xmi:id="_ZkIzBI-JEe6T3aFB4BWOHg" type="Transition" element="_ZkFIdY-JEe6T3aFB4BWOHg" source="_ZkIy1o-JEe6T3aFB4BWOHg" target="_ZkIy4I-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIzBY-JEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIzBo-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIzB4-JEe6T3aFB4BWOHg" x="5" y="2"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_ZkIzCI-JEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_ZkIzCY-JEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_ZkIzCo-JEe6T3aFB4BWOHg" points="[-2, 6, -39, -75]$[-2, 55, -39, -26]"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_3l7ygI-JEe6T3aFB4BWOHg" type="Transition" element="_3l5WQI-JEe6T3aFB4BWOHg" source="_ZkIy4I-JEe6T3aFB4BWOHg" target="_ZkIy4I-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_3l7yhI-JEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_3l7yhY-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_3l7yho-JEe6T3aFB4BWOHg" x="-1" y="-16"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_3l7ygY-JEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_3l7yg4-JEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_3l7ygo-JEe6T3aFB4BWOHg" points="[4, -3, 5, -3]$[4, -3, 5, -3]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_3l9AoI-JEe6T3aFB4BWOHg" id="(0.9393939393939394,0.05660377358490566)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_3l9AoY-JEe6T3aFB4BWOHg" id="(0.9292929292929293,0.05660377358490566)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_LFwRII-eEe6T3aFB4BWOHg" type="Transition" element="_LFvDAI-eEe6T3aFB4BWOHg" source="_KsuGEI-eEe6T3aFB4BWOHg" target="_Hn31AI-eEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_LFwRJI-eEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_LFwRJY-eEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_LFwRJo-eEe6T3aFB4BWOHg" x="-4" y="10"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_LFwRIY-eEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_LFwRI4-eEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_LFwRIo-eEe6T3aFB4BWOHg" points="[4, -6, -56, 1]$[44, -6, -16, 1]"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_LFyGUI-eEe6T3aFB4BWOHg" id="(0.04507042253521127,0.14473684210526316)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_N5BqAI-eEe6T3aFB4BWOHg" type="Transition" element="_N5BC8I-eEe6T3aFB4BWOHg" source="_Hn31AI-eEe6T3aFB4BWOHg" target="_Hn31AI-eEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N5BqBI-eEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N5BqBY-eEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N5BqBo-eEe6T3aFB4BWOHg" x="12" y="-19"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_N5BqAY-eEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N5BqA4-eEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_N5BqAo-eEe6T3aFB4BWOHg" points="[24, -20, 24, -20]$[24, -20, 24, -20]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_N5C4II-eEe6T3aFB4BWOHg" id="(0.935656836461126,0.10091743119266056)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_N5C4IY-eEe6T3aFB4BWOHg" id="(0.935656836461126,0.10091743119266056)"/>
|
||||||
|
</edges>
|
||||||
|
</notation:Diagram>
|
||||||
|
</xmi:XMI>
|
||||||
173
StartingPoint/exercises/C.ysc
Normal file
173
StartingPoint/exercises/C.ysc
Normal file
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
|
||||||
|
<sgraph:Statechart xmi:id="_Zj_B0I-JEe6T3aFB4BWOHg" specification="@EventDriven
@SuperSteps(no)

interface:
	var x: integer = 0" name="C">
|
||||||
|
<regions xmi:id="_EAlFCI_LEe6T3aFB4BWOHg" name="main region">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_EAlFCY_LEe6T3aFB4BWOHg" name="Temp" incomingTransitions="_EAlr1I_LEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_EAlFC4_LEe6T3aFB4BWOHg" specification="[x==0]" target="_EAlFGY_LEe6T3aFB4BWOHg"/>
|
||||||
|
<outgoingTransitions xmi:id="_EAlFEo_LEe6T3aFB4BWOHg" specification="[x==1]" target="_EAlFG4_LEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_EAlFGY_LEe6T3aFB4BWOHg" name="Zero" incomingTransitions="_EAlFC4_LEe6T3aFB4BWOHg"/>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_EAlFG4_LEe6T3aFB4BWOHg" name="One" incomingTransitions="_EAlFEo_LEe6T3aFB4BWOHg"/>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_EAlr0I_LEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_EAlr0Y_LEe6T3aFB4BWOHg" specification="" target="_EAlr0o_LEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_EAlr0o_LEe6T3aFB4BWOHg" name="Initial" incomingTransitions="_EAlr0Y_LEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_EAlr1I_LEe6T3aFB4BWOHg" specification="after 1s / x += 1" target="_EAlFCY_LEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
</sgraph:Statechart>
|
||||||
|
<notation:Diagram xmi:id="_ZkIy0I-JEe6T3aFB4BWOHg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_Zj_B0I-JEe6T3aFB4BWOHg" measurementUnit="Pixel">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy-4-JEe6T3aFB4BWOHg" type="StatechartText" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy_I-JEe6T3aFB4BWOHg" type="StatechartName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy_Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy_o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy_4-JEe6T3aFB4BWOHg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAY-JEe6T3aFB4BWOHg" x="10" y="10" width="200" height="400"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_EAlEwI_LEe6T3aFB4BWOHg" type="Region" element="_EAlFCI_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlEwY_LEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlEwo_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlEw4_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_EAlExI_LEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xmi:id="_EAlExY_LEe6T3aFB4BWOHg" type="State" element="_EAlFCY_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlExo_LEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlEx4_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlEyI_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlEyY_LEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_EAlEyo_LEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlEy4_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlEzI_LEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlEzY_LEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlEzo_LEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_EAlEz4_LEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE0I_LEe6T3aFB4BWOHg" x="275" y="86" width="68" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_EAlE0Y_LEe6T3aFB4BWOHg" type="State" element="_EAlFGY_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlE0o_LEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE04_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlE1I_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlE1Y_LEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_EAlE1o_LEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE14_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlE2I_LEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE2Y_LEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlE2o_LEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_EAlE24_LEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE3I_LEe6T3aFB4BWOHg" x="491" y="47" width="40" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_EAlE3Y_LEe6T3aFB4BWOHg" type="State" element="_EAlFG4_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlE3o_LEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE34_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlE4I_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlE4Y_LEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_EAlE4o_LEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE44_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlE5I_LEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE5Y_LEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlE5o_LEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_EAlE54_LEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE6I_LEe6T3aFB4BWOHg" x="496" y="159" width="40" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_EAlE6Y_LEe6T3aFB4BWOHg" type="Entry" element="_EAlr0I_LEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_EAlE6o_LEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlE64_LEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE7I_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlE7Y_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE7o_LEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE74_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE8I_LEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_EAlE8Y_LEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE8o_LEe6T3aFB4BWOHg" x="66" y="27" width="15" height="15"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_EAlE84_LEe6T3aFB4BWOHg" type="State" element="_EAlr0o_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlE9I_LEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE9Y_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlE9o_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlE94_LEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_EAlE-I_LEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE-Y_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_EAlE-o_LEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlE-4_LEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlE_I_LEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_EAlE_Y_LEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlE_o_LEe6T3aFB4BWOHg" x="61" y="79" width="50" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_EAlE_4_LEe6T3aFB4BWOHg" type="Note" fontName="Verdana" description="1) What behavior would you intuitively expect?
2) Run the simulation. What actually happens?
3) Replace the 'Temp' state by a 'Choice'-element (see Palette on the right). Does that fix it?" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_EAlFAI_LEe6T3aFB4BWOHg" type="DiagramName">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_EAlFAY_LEe6T3aFB4BWOHg" type="Description">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:TextStyle" xmi:id="_EAlFAo_LEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:LineTypeStyle" xmi:id="_EAlFA4_LEe6T3aFB4BWOHg"/>
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlFBI_LEe6T3aFB4BWOHg" x="36" y="246" width="536" height="88"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlFBY_LEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlFBo_LEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_EAlFB4_LEe6T3aFB4BWOHg" x="150" y="57" width="626" height="390"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIzAo-JEe6T3aFB4BWOHg" name="inlineDefinitionSection"/>
|
||||||
|
<styles xsi:type="notation:DiagramStyle" xmi:id="_ZkIzA4-JEe6T3aFB4BWOHg"/>
|
||||||
|
<edges xmi:id="_EAlr3o_LEe6T3aFB4BWOHg" type="Transition" element="_EAlr0Y_LEe6T3aFB4BWOHg" source="_EAlE6Y_LEe6T3aFB4BWOHg" target="_EAlE84_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlr34_LEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlr4I_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlr4Y_LEe6T3aFB4BWOHg" x="6"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_EAlr4o_LEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlr44_LEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_EAlr5I_LEe6T3aFB4BWOHg" points="[1, 6, -12, -65]$[1, 45, -12, -26]"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_EAlr5Y_LEe6T3aFB4BWOHg" type="Transition" element="_EAlFC4_LEe6T3aFB4BWOHg" source="_EAlExY_LEe6T3aFB4BWOHg" target="_EAlE0Y_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlr5o_LEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlr54_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlr6I_LEe6T3aFB4BWOHg" x="13" y="-35"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_EAlr6Y_LEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlr6o_LEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_EAlr64_LEe6T3aFB4BWOHg" points="[5, -5, -164, 45]$[78, -5, -91, 45]$[78, -54, -91, -4]$[153, -54, -16, -4]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_EAlr7I_LEe6T3aFB4BWOHg" id="(0.94,0.39622641509433965)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_EAlr7Y_LEe6T3aFB4BWOHg" id="(0.4,0.18867924528301888)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_EAlr7o_LEe6T3aFB4BWOHg" type="Transition" element="_EAlFEo_LEe6T3aFB4BWOHg" source="_EAlExY_LEe6T3aFB4BWOHg" target="_EAlE3Y_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlr74_LEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlr8I_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlr8Y_LEe6T3aFB4BWOHg" x="12" y="30"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_EAlr8o_LEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlr84_LEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_EAlr9I_LEe6T3aFB4BWOHg" points="[10, -2, -173, -63]$[85, -2, -98, -63]$[85, 46, -98, -15]$[163, 46, -20, -15]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_EAlr9Y_LEe6T3aFB4BWOHg" id="(0.86,0.7169811320754716)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_EAlr9o_LEe6T3aFB4BWOHg" type="Transition" element="_EAlr1I_LEe6T3aFB4BWOHg" source="_EAlE84_LEe6T3aFB4BWOHg" target="_EAlExY_LEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_EAlr94_LEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_EAlr-I_LEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_EAlr-Y_LEe6T3aFB4BWOHg" x="10" y="-17"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_EAlr-o_LEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_EAlr-4_LEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_EAlr_I_LEe6T3aFB4BWOHg" points="[4, -2, -198, -7]$[168, -2, -34, -7]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_EAlr_Y_LEe6T3aFB4BWOHg" id="(0.92,0.5283018867924528)"/>
|
||||||
|
</edges>
|
||||||
|
</notation:Diagram>
|
||||||
|
</xmi:XMI>
|
||||||
316
StartingPoint/exercises/D.ysc
Normal file
316
StartingPoint/exercises/D.ysc
Normal file
|
|
@ -0,0 +1,316 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
|
||||||
|
<sgraph:Statechart xmi:id="_Zj_B0I-JEe6T3aFB4BWOHg" specification="@EventDriven
@SuperSteps(no)

interface:
	var x: integer = 0" name="D">
|
||||||
|
<regions xmi:id="_N9tACY_MEe6T3aFB4BWOHg" name="main region">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_QsHt0I_MEe6T3aFB4BWOHg" name="Orthogonal" incomingTransitions="_k403sI_MEe6T3aFB4BWOHg">
|
||||||
|
<regions xmi:id="_QsIU4o_MEe6T3aFB4BWOHg" name="r1">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_N9tACo_MEe6T3aFB4BWOHg" name="Temp" incomingTransitions="_N9tm54_MEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_N9tm0Y_MEe6T3aFB4BWOHg" specification="[x==0]" target="_N9tm34_MEe6T3aFB4BWOHg"/>
|
||||||
|
<outgoingTransitions xmi:id="_N9tm2I_MEe6T3aFB4BWOHg" specification="[x==1]" target="_N9tm4Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_N9tm44_MEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_N9tm5I_MEe6T3aFB4BWOHg" specification="" target="_N9tm5Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_N9tm4Y_MEe6T3aFB4BWOHg" name="One" incomingTransitions="_N9tm2I_MEe6T3aFB4BWOHg"/>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_N9tm5Y_MEe6T3aFB4BWOHg" name="Initial" incomingTransitions="_N9tm5I_MEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_N9tm54_MEe6T3aFB4BWOHg" specification="after 1s / x += 1" target="_N9tACo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_N9tm34_MEe6T3aFB4BWOHg" name="Zero" incomingTransitions="_N9tm0Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
</regions>
|
||||||
|
<regions xmi:id="_QsIU44_MEe6T3aFB4BWOHg" name="r2">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_TQfIAI_MEe6T3aFB4BWOHg" name="S" incomingTransitions="_TwoAoI_MEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_U0c1II_MEe6T3aFB4BWOHg" specification="after 5s" target="_WFfmQI_MEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_TdK5II_MEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_TwoAoI_MEe6T3aFB4BWOHg" specification="" target="_TQfIAI_MEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_WFfmQI_MEe6T3aFB4BWOHg" name="T" incomingTransitions="_U0c1II_MEe6T3aFB4BWOHg"/>
|
||||||
|
</regions>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_kkXqoI_MEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_k403sI_MEe6T3aFB4BWOHg" specification="" target="_QsHt0I_MEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
</sgraph:Statechart>
|
||||||
|
<notation:Diagram xmi:id="_ZkIy0I-JEe6T3aFB4BWOHg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_Zj_B0I-JEe6T3aFB4BWOHg" measurementUnit="Pixel">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy-4-JEe6T3aFB4BWOHg" type="StatechartText" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy_I-JEe6T3aFB4BWOHg" type="StatechartName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy_Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy_o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy_4-JEe6T3aFB4BWOHg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAY-JEe6T3aFB4BWOHg" x="10" y="10" width="200" height="400"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_N9s_wY_MEe6T3aFB4BWOHg" type="Region" element="_N9tACY_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9s_wo_MEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_w4_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9s_xI_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_N9s_xY_MEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_N9tAAI_MEe6T3aFB4BWOHg" type="Note" fontName="Verdana" description="1) Run the simulation. What happens at time == 5s ?
2) Explain." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_N9tAAY_MEe6T3aFB4BWOHg" type="DiagramName">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_N9tAAo_MEe6T3aFB4BWOHg" type="Description">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:TextStyle" xmi:id="_N9tAA4_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:LineTypeStyle" xmi:id="_N9tABI_MEe6T3aFB4BWOHg"/>
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9tABY_MEe6T3aFB4BWOHg" x="424" y="411" width="337" height="88"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_QsI78I_MEe6T3aFB4BWOHg" type="State" element="_QsHt0I_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_QsJjAI_MEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_QsJjAY_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_QsJjAo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_QsJjA4_MEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_QsJjBI_MEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_QsJjBY_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_QsJjBo_MEe6T3aFB4BWOHg" type="StateFigureCompartment">
|
||||||
|
<children xmi:id="_QsKxII_MEe6T3aFB4BWOHg" type="Region" element="_QsIU4o_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_QsKxI4_MEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_QsLYMI_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_QsLYMY_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_QsLYMo_MEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xmi:id="_N9s_xo_MEe6T3aFB4BWOHg" type="State" element="_N9tACo_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9s_x4_MEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_yI_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9s_yY_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_yo_MEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_N9s_y4_MEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_zI_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_zY_MEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_zo_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9s_z4_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_N9s_0I_MEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_0Y_MEe6T3aFB4BWOHg" x="236" y="88" width="68" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_N9s_6o_MEe6T3aFB4BWOHg" type="Entry" element="_N9tm44_MEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_N9s_64_MEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9s_7I_MEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_7Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9s_7o_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_74_MEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_8I_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_8Y_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_N9s_8o_MEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_84_MEe6T3aFB4BWOHg" x="27" y="29" width="15" height="15"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_N9s_3o_MEe6T3aFB4BWOHg" type="State" element="_N9tm4Y_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9s_34_MEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_4I_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9s_4Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_4o_MEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_N9s_44_MEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_5I_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_5Y_MEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_5o_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9s_54_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_N9s_6I_MEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_6Y_MEe6T3aFB4BWOHg" x="457" y="161" width="40" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_N9s_9I_MEe6T3aFB4BWOHg" type="State" element="_N9tm5Y_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9s_9Y_MEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_9o_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9s_94_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_-I_MEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_N9s_-Y_MEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_-o_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_-4_MEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s__I_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9s__Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_N9s__o_MEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s__4_MEe6T3aFB4BWOHg" x="22" y="81" width="50" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_N9s_0o_MEe6T3aFB4BWOHg" type="State" element="_N9tm34_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9s_04_MEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_1I_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9s_1Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_1o_MEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_N9s_14_MEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_2I_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_N9s_2Y_MEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9s_2o_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9s_24_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_N9s_3I_MEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9s_3Y_MEe6T3aFB4BWOHg" x="452" y="49" width="40" height="53"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_QsLYM4_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_QsKxIY_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_QsKxIo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_QsLYNI_MEe6T3aFB4BWOHg" type="Region" element="_QsIU44_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_QsLYN4_MEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_QsLYOI_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_QsLYOY_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_QsLYOo_MEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xmi:id="_TQfvEI_MEe6T3aFB4BWOHg" type="State" element="_TQfIAI_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_TQfvFI_MEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_TQfvFY_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_TQfvFo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_TQfvF4_MEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_TQfvGI_MEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_TQfvGY_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_TQfvGo_MEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_TQfvEY_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_TQfvEo_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_TQfvG4_MEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_TQfvE4_MEe6T3aFB4BWOHg" x="110" y="84" width="40" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_TdMHQI_MEe6T3aFB4BWOHg" type="Entry" element="_TdK5II_MEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_TdMHRI_MEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_TdMHR4_MEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_TdMHSI_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_TdMHSY_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_TdMHRY_MEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_TdMHRo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_TdMHQY_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_TdMHQo_MEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_TdMHQ4_MEe6T3aFB4BWOHg" x="122" y="48" width="15" height="15"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_WFgNUI_MEe6T3aFB4BWOHg" type="State" element="_WFfmQI_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_WFg0YI_MEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_WFg0YY_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_WFg0Yo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_WFg0Y4_MEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_WFg0ZI_MEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_WFg0ZY_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_WFg0Zo_MEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_WFgNUY_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_WFgNUo_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_WFg0Z4_MEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_WFgNU4_MEe6T3aFB4BWOHg" x="110" y="196" width="40" height="53"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_QsLYO4_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_QsLYNY_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_QsLYNo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_QsI78Y_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_QsI78o_MEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_QsJjB4_MEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_QsI784_MEe6T3aFB4BWOHg" x="80" y="9" width="1046" height="365"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_kkY4wI_MEe6T3aFB4BWOHg" type="Entry" element="_kkXqoI_MEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_kkY4xI_MEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_kkY4x4_MEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_kkY4yI_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_kkZf0I_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_kkY4xY_MEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_kkY4xo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_kkY4wY_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_kkY4wo_MEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_kkY4w4_MEe6T3aFB4BWOHg" x="34" y="42"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9tABo_MEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9tAB4_MEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_N9tACI_MEe6T3aFB4BWOHg" x="66" y="24" width="1228" height="586"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIzAo-JEe6T3aFB4BWOHg" name="inlineDefinitionSection"/>
|
||||||
|
<styles xsi:type="notation:DiagramStyle" xmi:id="_ZkIzA4-JEe6T3aFB4BWOHg"/>
|
||||||
|
<edges xmi:id="_N9uN4I_MEe6T3aFB4BWOHg" type="Transition" element="_N9tm5I_MEe6T3aFB4BWOHg" source="_N9s_6o_MEe6T3aFB4BWOHg" target="_N9s_9I_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9uN4Y_MEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9uN4o_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9uN44_MEe6T3aFB4BWOHg" x="6"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_N9uN5I_MEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9uN5Y_MEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_N9uN5o_MEe6T3aFB4BWOHg" points="[1, 6, -12, -65]$[1, 45, -12, -26]"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_N9uN54_MEe6T3aFB4BWOHg" type="Transition" element="_N9tm0Y_MEe6T3aFB4BWOHg" source="_N9s_xo_MEe6T3aFB4BWOHg" target="_N9s_0o_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9uN6I_MEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9uN6Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9uN6o_MEe6T3aFB4BWOHg" x="13" y="-35"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_N9uN64_MEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9uN7I_MEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_N9uN7Y_MEe6T3aFB4BWOHg" points="[5, -5, -164, 45]$[78, -5, -91, 45]$[78, -54, -91, -4]$[153, -54, -16, -4]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_N9uN7o_MEe6T3aFB4BWOHg" id="(0.94,0.39622641509433965)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_N9uN74_MEe6T3aFB4BWOHg" id="(0.4,0.18867924528301888)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_N9uN8I_MEe6T3aFB4BWOHg" type="Transition" element="_N9tm2I_MEe6T3aFB4BWOHg" source="_N9s_xo_MEe6T3aFB4BWOHg" target="_N9s_3o_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9uN8Y_MEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9uN8o_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9uN84_MEe6T3aFB4BWOHg" x="12" y="30"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_N9uN9I_MEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9uN9Y_MEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_N9uN9o_MEe6T3aFB4BWOHg" points="[10, -2, -173, -63]$[85, -2, -98, -63]$[85, 46, -98, -15]$[163, 46, -20, -15]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_N9uN94_MEe6T3aFB4BWOHg" id="(0.86,0.7169811320754716)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_N9uN-I_MEe6T3aFB4BWOHg" type="Transition" element="_N9tm54_MEe6T3aFB4BWOHg" source="_N9s_9I_MEe6T3aFB4BWOHg" target="_N9s_xo_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_N9uN-Y_MEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_N9uN-o_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_N9uN-4_MEe6T3aFB4BWOHg" x="10" y="-17"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_N9uN_I_MEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_N9uN_Y_MEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_N9uN_o_MEe6T3aFB4BWOHg" points="[4, -2, -198, -7]$[168, -2, -34, -7]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_N9uN_4_MEe6T3aFB4BWOHg" id="(0.92,0.5283018867924528)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_TwpOwI_MEe6T3aFB4BWOHg" type="Transition" element="_TwoAoI_MEe6T3aFB4BWOHg" source="_TdMHQI_MEe6T3aFB4BWOHg" target="_TQfvEI_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_Twp10I_MEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_Twp10Y_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_Twp10o_MEe6T3aFB4BWOHg" x="-10" y="6"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_TwpOwY_MEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_TwpOw4_MEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_TwpOwo_MEe6T3aFB4BWOHg" points="[1, 6, -9, -33]$[1, 29, -9, -10]"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_TwrD8I_MEe6T3aFB4BWOHg" id="(0.7377049180327869,0.18867924528301888)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_U0eDQI_MEe6T3aFB4BWOHg" type="Transition" element="_U0c1II_MEe6T3aFB4BWOHg" source="_TQfvEI_MEe6T3aFB4BWOHg" target="_WFgNUI_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_U0eDRI_MEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_U0eDRY_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_U0eDRo_MEe6T3aFB4BWOHg" x="-1" y="42"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_U0eDQY_MEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_U0eDQ4_MEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_U0eDQo_MEe6T3aFB4BWOHg" points="[-12, 9, -1, -85]$[-12, 68, -1, -26]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_U0fRYI_MEe6T3aFB4BWOHg" id="(0.775,0.8301886792452831)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_k403sY_MEe6T3aFB4BWOHg" type="Transition" element="_k403sI_MEe6T3aFB4BWOHg" source="_kkY4wI_MEe6T3aFB4BWOHg" target="_QsI78I_MEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_k41ewI_MEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_k41ewY_MEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_k41ewo_MEe6T3aFB4BWOHg" y="10"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_k403so_MEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_k403tI_MEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_k403s4_MEe6T3aFB4BWOHg" points="[5, -5, -57, 0]$[39, -12, -23, -7]"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_k42F0I_MEe6T3aFB4BWOHg" id="(0.02198852772466539,0.0958904109589041)"/>
|
||||||
|
</edges>
|
||||||
|
</notation:Diagram>
|
||||||
|
</xmi:XMI>
|
||||||
227
StartingPoint/exercises/E.ysc
Normal file
227
StartingPoint/exercises/E.ysc
Normal file
|
|
@ -0,0 +1,227 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
|
||||||
|
<sgraph:Statechart xmi:id="_Zj_B0I-JEe6T3aFB4BWOHg" specification="@EventDriven
@SuperSteps(no)

interface:
	out event x
	out event y
	var v: integer = 0" name="E">
|
||||||
|
<regions xmi:id="_ZkFIc4-JEe6T3aFB4BWOHg" name="main region">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="__L4BcI-PEe6T3aFB4BWOHg" name="OrthogonalState" incomingTransitions="_ezrVoI-QEe6T3aFB4BWOHg">
|
||||||
|
<regions xmi:id="__L5Pko-PEe6T3aFB4BWOHg" name="r1">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_ZkFvgI-JEe6T3aFB4BWOHg" name="StateA" incomingTransitions="_ZkFIdY-JEe6T3aFB4BWOHg _3l5WQI-JEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_3l5WQI-JEe6T3aFB4BWOHg" specification="[v==0] / raise x" target="_ZkFvgI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_ZkFIdI-JEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_ZkFIdY-JEe6T3aFB4BWOHg" target="_ZkFvgI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
<regions xmi:id="__L5Pk4-PEe6T3aFB4BWOHg" name="r2">
|
||||||
|
<vertices xsi:type="sgraph:State" xmi:id="_JbfQEI-QEe6T3aFB4BWOHg" name="StateB" incomingTransitions="_KR1pQI-QEe6T3aFB4BWOHg _MhLOoI-QEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_MhLOoI-QEe6T3aFB4BWOHg" specification="after 1s / raise y" target="_JbfQEI-QEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_Jzb2AI-QEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_KR1pQI-QEe6T3aFB4BWOHg" specification="" target="_JbfQEI-QEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
</vertices>
|
||||||
|
<vertices xsi:type="sgraph:Entry" xmi:id="_ePcnMI-QEe6T3aFB4BWOHg">
|
||||||
|
<outgoingTransitions xmi:id="_ezrVoI-QEe6T3aFB4BWOHg" specification="" target="__L4BcI-PEe6T3aFB4BWOHg"/>
|
||||||
|
</vertices>
|
||||||
|
</regions>
|
||||||
|
</sgraph:Statechart>
|
||||||
|
<notation:Diagram xmi:id="_ZkIy0I-JEe6T3aFB4BWOHg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_Zj_B0I-JEe6T3aFB4BWOHg" measurementUnit="Pixel">
|
||||||
|
<children xmi:id="_ZkIy0Y-JEe6T3aFB4BWOHg" type="Region" element="_ZkFIc4-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy0o-JEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy04-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy1I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy1Y-JEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_-jdlUI-JEe6T3aFB4BWOHg" type="Note" fontName="Verdana" description="When running this model, the output trace will be as follows:
 1s : x
 1s : y
 2s: x
 2s: y
 ...

1) Why does 'x' only fire when 'y' fires?
2) Why does 'x' always occur before 'y'?" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_-jezcI-JEe6T3aFB4BWOHg" type="DiagramName">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:BasicDecorationNode" xmi:id="_-jezcY-JEe6T3aFB4BWOHg" type="Description">
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:TextStyle" xmi:id="_-jdlUY-JEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:LineTypeStyle" xmi:id="_-jdlUo-JEe6T3aFB4BWOHg"/>
|
||||||
|
<element xsi:nil="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_-jdlU4-JEe6T3aFB4BWOHg" x="310" y="363" width="356" height="222"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="__L52oI-PEe6T3aFB4BWOHg" type="State" element="__L4BcI-PEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="__L6dsI-PEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="__L6dsY-PEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="__L6dso-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="__L6ds4-PEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="__L6dtI-PEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="__L6dtY-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="__L6dto-PEe6T3aFB4BWOHg" type="StateFigureCompartment">
|
||||||
|
<children xmi:id="__L7r0I-PEe6T3aFB4BWOHg" type="Region" element="__L5Pko-PEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="__L7r04-PEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="__L7r1I-PEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="__L7r1Y-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="__L7r1o-PEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xmi:id="_ZkIy4I-JEe6T3aFB4BWOHg" type="State" element="_ZkFvgI-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy4Y-JEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy4o-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy44-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_ZkIy5I-JEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy5Y-JEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy5o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_ZkIy54-JEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy6I-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_ZkIy6Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIy6o-JEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy64-JEe6T3aFB4BWOHg" x="40" y="63" width="99" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_ZkIy1o-JEe6T3aFB4BWOHg" type="Entry" element="_ZkFIdI-JEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_ZkIy14-JEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy2I-JEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy2Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy2o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy24-JEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy3I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy3Y-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_ZkIy3o-JEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy34-JEe6T3aFB4BWOHg" x="45" y="1" width="15" height="15"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="__L7r14-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="__L7r0Y-PEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="__L7r0o-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="__L7r2I-PEe6T3aFB4BWOHg" type="Region" element="__L5Pk4-PEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="__L7r24-PEe6T3aFB4BWOHg" type="RegionName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="__L7r3I-PEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="__L7r3Y-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="__L7r3o-PEe6T3aFB4BWOHg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xmi:id="_Jbf3II-QEe6T3aFB4BWOHg" type="State" element="_JbfQEI-QEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_JbgeMI-QEe6T3aFB4BWOHg" type="StateName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_JbgeMY-QEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_JbgeMo-QEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_JbgeM4-QEe6T3aFB4BWOHg" type="StateTextCompartment">
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_JbgeNI-QEe6T3aFB4BWOHg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_JbgeNY-QEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Compartment" xmi:id="_JbgeNo-QEe6T3aFB4BWOHg" type="StateFigureCompartment"/>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_Jbf3IY-QEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_Jbf3Io-QEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_JbgeN4-QEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_Jbf3I4-QEe6T3aFB4BWOHg" x="95" y="63" width="58" height="53"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_JzcdEI-QEe6T3aFB4BWOHg" type="Entry" element="_Jzb2AI-QEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_JzcdFI-QEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_JzdEII-QEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_JzdEIY-QEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_JzdEIo-QEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_JzcdFY-QEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_JzcdFo-QEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_JzcdEY-QEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_JzcdEo-QEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_JzcdE4-QEe6T3aFB4BWOHg" x="116" y="17"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="__L7r34-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="__L7r2Y-PEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="__L7r2o-PEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="__L52oY-PEe6T3aFB4BWOHg" fontName="Verdana" fillColor="15720400" lineColor="12632256"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="__L52oo-PEe6T3aFB4BWOHg"/>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="__L6dt4-PEe6T3aFB4BWOHg" name="isHorizontal" booleanValue="true"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="__L52o4-PEe6T3aFB4BWOHg" x="55" y="26" width="828" height="289"/>
|
||||||
|
</children>
|
||||||
|
<children xmi:id="_ePd1UI-QEe6T3aFB4BWOHg" type="Entry" element="_ePcnMI-QEe6T3aFB4BWOHg">
|
||||||
|
<children xmi:id="_ePecYI-QEe6T3aFB4BWOHg" type="BorderItemLabelContainer">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ePecY4-QEe6T3aFB4BWOHg" type="BorderItemLabel">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ePecZI-QEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ePecZY-QEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ePecYY-QEe6T3aFB4BWOHg" fontName="Verdana" lineColor="4210752"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ePecYo-QEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ePd1UY-QEe6T3aFB4BWOHg" fontName="Verdana" fillColor="0" lineColor="16777215"/>
|
||||||
|
<styles xsi:type="notation:NamedStyle" xmi:id="_ePd1Uo-QEe6T3aFB4BWOHg" name="allowColors"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ePd1U4-QEe6T3aFB4BWOHg" x="22" y="116"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy-I-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy-Y-JEe6T3aFB4BWOHg" fontName="Verdana" fillColor="16448250" lineColor="12632256"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIy-o-JEe6T3aFB4BWOHg" x="205" y="10" width="1040" height="667"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy-4-JEe6T3aFB4BWOHg" type="StatechartText" fontName="Verdana" lineColor="4210752">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIy_I-JEe6T3aFB4BWOHg" type="StatechartName">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIy_Y-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIy_o-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<children xsi:type="notation:Shape" xmi:id="_ZkIy_4-JEe6T3aFB4BWOHg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAI-JEe6T3aFB4BWOHg"/>
|
||||||
|
</children>
|
||||||
|
<layoutConstraint xsi:type="notation:Bounds" xmi:id="_ZkIzAY-JEe6T3aFB4BWOHg" x="10" y="10" width="200" height="400"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:BooleanValueStyle" xmi:id="_ZkIzAo-JEe6T3aFB4BWOHg" name="inlineDefinitionSection"/>
|
||||||
|
<styles xsi:type="notation:DiagramStyle" xmi:id="_ZkIzA4-JEe6T3aFB4BWOHg"/>
|
||||||
|
<edges xmi:id="_ZkIzBI-JEe6T3aFB4BWOHg" type="Transition" element="_ZkFIdY-JEe6T3aFB4BWOHg" source="_ZkIy1o-JEe6T3aFB4BWOHg" target="_ZkIy4I-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ZkIzBY-JEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ZkIzBo-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ZkIzB4-JEe6T3aFB4BWOHg" x="5" y="2"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_ZkIzCI-JEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_ZkIzCY-JEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_ZkIzCo-JEe6T3aFB4BWOHg" points="[-2, 6, -39, -75]$[-2, 55, -39, -26]"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_3l7ygI-JEe6T3aFB4BWOHg" type="Transition" element="_3l5WQI-JEe6T3aFB4BWOHg" source="_ZkIy4I-JEe6T3aFB4BWOHg" target="_ZkIy4I-JEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_3l7yhI-JEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_3l7yhY-JEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_3l7yho-JEe6T3aFB4BWOHg" x="16" y="-16"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_3l7ygY-JEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_3l7yg4-JEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_3l7ygo-JEe6T3aFB4BWOHg" points="[4, -3, 5, -3]$[4, -3, 5, -3]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_3l9AoI-JEe6T3aFB4BWOHg" id="(0.9393939393939394,0.05660377358490566)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_3l9AoY-JEe6T3aFB4BWOHg" id="(0.9292929292929293,0.05660377358490566)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_KR2QUI-QEe6T3aFB4BWOHg" type="Transition" element="_KR1pQI-QEe6T3aFB4BWOHg" source="_JzcdEI-QEe6T3aFB4BWOHg" target="_Jbf3II-QEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_KR2QVI-QEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_KR2QVY-QEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_KR23YI-QEe6T3aFB4BWOHg" x="-14" y="10"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_KR2QUY-QEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_KR2QU4-QEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_KR2QUo-QEe6T3aFB4BWOHg" points="[3, 6, 16, -50]$[3, 39, 16, -17]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_KR4FgI-QEe6T3aFB4BWOHg" id="(0.13333333333333333,0.4666666666666667)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_KR4skI-QEe6T3aFB4BWOHg" id="(0.18032786885245902,0.32075471698113206)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_MhLOoY-QEe6T3aFB4BWOHg" type="Transition" element="_MhLOoI-QEe6T3aFB4BWOHg" source="_Jbf3II-QEe6T3aFB4BWOHg" target="_Jbf3II-QEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_MhLOpY-QEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_MhLOpo-QEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_MhLOp4-QEe6T3aFB4BWOHg" x="12" y="11"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_MhLOoo-QEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_MhLOpI-QEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_MhLOo4-QEe6T3aFB4BWOHg" points="[4, 2, 4, 2]$[4, 2, 4, 2]"/>
|
||||||
|
<sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_MhL1sI-QEe6T3aFB4BWOHg" id="(0.9310344827586207,0.7924528301886793)"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_MhL1sY-QEe6T3aFB4BWOHg" id="(0.9310344827586207,0.7924528301886793)"/>
|
||||||
|
</edges>
|
||||||
|
<edges xmi:id="_ezrVoY-QEe6T3aFB4BWOHg" type="Transition" element="_ezrVoI-QEe6T3aFB4BWOHg" source="_ePd1UI-QEe6T3aFB4BWOHg" target="__L52oI-PEe6T3aFB4BWOHg">
|
||||||
|
<children xsi:type="notation:DecorationNode" xmi:id="_ezr8sI-QEe6T3aFB4BWOHg" type="TransitionExpression">
|
||||||
|
<styles xsi:type="notation:ShapeStyle" xmi:id="_ezr8sY-QEe6T3aFB4BWOHg"/>
|
||||||
|
<layoutConstraint xsi:type="notation:Location" xmi:id="_ezr8so-QEe6T3aFB4BWOHg" y="10"/>
|
||||||
|
</children>
|
||||||
|
<styles xsi:type="notation:ConnectorStyle" xmi:id="_ezrVoo-QEe6T3aFB4BWOHg" routing="Rectilinear" lineColor="4210752"/>
|
||||||
|
<styles xsi:type="notation:FontStyle" xmi:id="_ezrVpI-QEe6T3aFB4BWOHg" fontName="Verdana"/>
|
||||||
|
<bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_ezrVo4-QEe6T3aFB4BWOHg" points="[6, 2, -20, 0]$[26, 2, 0, 0]"/>
|
||||||
|
<targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_ezsjwI-QEe6T3aFB4BWOHg" id="(0.0,0.34256055363321797)"/>
|
||||||
|
</edges>
|
||||||
|
</notation:Diagram>
|
||||||
|
</xmi:XMI>
|
||||||
241
StartingPoint/srcgen/a.py
Normal file
241
StartingPoint/srcgen/a.py
Normal file
|
|
@ -0,0 +1,241 @@
|
||||||
|
"""Implementation of statechart a.
|
||||||
|
Generated by itemis CREATE code generator.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import queue
|
||||||
|
import sys, os
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
|
||||||
|
from yakindu.rx import Observable
|
||||||
|
|
||||||
|
class A:
|
||||||
|
"""Implementation of the state machine A.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class State:
|
||||||
|
""" State Enum
|
||||||
|
"""
|
||||||
|
(
|
||||||
|
main_region_state_a,
|
||||||
|
null_state
|
||||||
|
) = range(2)
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
""" Declares all necessary variables including list of states, histories etc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.x = None
|
||||||
|
self.x_observable = Observable()
|
||||||
|
self.y = None
|
||||||
|
self.y_observable = Observable()
|
||||||
|
|
||||||
|
self.in_event_queue = queue.Queue()
|
||||||
|
# enumeration of all states:
|
||||||
|
self.__State = A.State
|
||||||
|
self.__state_conf_vector_changed = None
|
||||||
|
self.__state_vector = [None] * 1
|
||||||
|
for __state_index in range(1):
|
||||||
|
self.__state_vector[__state_index] = self.State.null_state
|
||||||
|
|
||||||
|
# for timed statechart:
|
||||||
|
self.timer_service = None
|
||||||
|
self.__time_events = [None] * 2
|
||||||
|
|
||||||
|
# initializations:
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
def is_active(self):
|
||||||
|
"""Checks if the state machine is active.
|
||||||
|
"""
|
||||||
|
return self.__state_vector[0] is not self.__State.null_state
|
||||||
|
|
||||||
|
def is_final(self):
|
||||||
|
"""Checks if the statemachine is final.
|
||||||
|
Always returns 'false' since this state machine can never become final.
|
||||||
|
"""
|
||||||
|
return False
|
||||||
|
|
||||||
|
def is_state_active(self, state):
|
||||||
|
"""Checks if the state is currently active.
|
||||||
|
"""
|
||||||
|
s = state
|
||||||
|
if s == self.__State.main_region_state_a:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_state_a
|
||||||
|
return False
|
||||||
|
|
||||||
|
def time_elapsed(self, event_id):
|
||||||
|
"""Add time events to in event queue
|
||||||
|
"""
|
||||||
|
if event_id in range(2):
|
||||||
|
self.in_event_queue.put(lambda: self.raise_time_event(event_id))
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
|
def raise_time_event(self, event_id):
|
||||||
|
"""Raise timed events using the event_id.
|
||||||
|
"""
|
||||||
|
self.__time_events[event_id] = True
|
||||||
|
|
||||||
|
def __execute_queued_event(self, func):
|
||||||
|
func()
|
||||||
|
|
||||||
|
def __get_next_event(self):
|
||||||
|
if not self.in_event_queue.empty():
|
||||||
|
return self.in_event_queue.get()
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __entry_action_main_region_state_a(self):
|
||||||
|
"""Entry action for state 'StateA'..
|
||||||
|
"""
|
||||||
|
#Entry action for state 'StateA'.
|
||||||
|
self.timer_service.set_timer(self, 0, (1 * 1000), False)
|
||||||
|
self.timer_service.set_timer(self, 1, (2 * 1000), False)
|
||||||
|
|
||||||
|
def __exit_action_main_region_state_a(self):
|
||||||
|
"""Exit action for state 'StateA'..
|
||||||
|
"""
|
||||||
|
#Exit action for state 'StateA'.
|
||||||
|
self.timer_service.unset_timer(self, 0)
|
||||||
|
self.timer_service.unset_timer(self, 1)
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_state_a_default(self):
|
||||||
|
"""'default' enter sequence for state StateA.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state StateA
|
||||||
|
self.__entry_action_main_region_state_a()
|
||||||
|
self.__state_vector[0] = self.State.main_region_state_a
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_default(self):
|
||||||
|
"""'default' enter sequence for region main region.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region main region
|
||||||
|
self.__react_main_region__entry_default()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_state_a(self):
|
||||||
|
"""Default exit sequence for state StateA.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state StateA
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__exit_action_main_region_state_a()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region(self):
|
||||||
|
"""Default exit sequence for region main region.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for region main region
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_state_a:
|
||||||
|
self.__exit_sequence_main_region_state_a()
|
||||||
|
|
||||||
|
def __react_main_region__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_state_a_default()
|
||||||
|
|
||||||
|
def __react(self, transitioned_before):
|
||||||
|
"""Implementation of __react function.
|
||||||
|
"""
|
||||||
|
#State machine reactions.
|
||||||
|
return transitioned_before
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_state_a_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_state_a_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state StateA.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.__time_events[0]:
|
||||||
|
self.__exit_sequence_main_region_state_a()
|
||||||
|
self.x_observable.next()
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__enter_sequence_main_region_state_a_default()
|
||||||
|
self.__react(0)
|
||||||
|
transitioned_after = 0
|
||||||
|
elif self.__time_events[1]:
|
||||||
|
self.__exit_sequence_main_region_state_a()
|
||||||
|
self.y_observable.next()
|
||||||
|
self.__time_events[1] = False
|
||||||
|
self.__enter_sequence_main_region_state_a_default()
|
||||||
|
self.__react(0)
|
||||||
|
transitioned_after = 0
|
||||||
|
#If no transition was taken
|
||||||
|
if transitioned_after == transitioned_before:
|
||||||
|
#then execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __clear_in_events(self):
|
||||||
|
"""Implementation of __clear_in_events function.
|
||||||
|
"""
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__time_events[1] = False
|
||||||
|
|
||||||
|
|
||||||
|
def __micro_step(self):
|
||||||
|
"""Implementation of __micro_step function.
|
||||||
|
"""
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_state_a:
|
||||||
|
self.__main_region_state_a_react(-1)
|
||||||
|
|
||||||
|
|
||||||
|
def run_cycle(self):
|
||||||
|
"""Implementation of run_cycle function.
|
||||||
|
"""
|
||||||
|
#Performs a 'run to completion' step.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
while condition_0:
|
||||||
|
self.__micro_step()
|
||||||
|
self.__clear_in_events()
|
||||||
|
condition_0 = False
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def enter(self):
|
||||||
|
"""Implementation of enter function.
|
||||||
|
"""
|
||||||
|
#Activates the state machine.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default enter sequence for statechart A
|
||||||
|
self.__enter_sequence_main_region_default()
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def exit(self):
|
||||||
|
"""Implementation of exit function.
|
||||||
|
"""
|
||||||
|
#Deactivates the state machine.
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default exit sequence for statechart A
|
||||||
|
self.__exit_sequence_main_region()
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def trigger_without_event(self):
|
||||||
|
"""Implementation of triggerWithoutEvent function.
|
||||||
|
"""
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
306
StartingPoint/srcgen/b.py
Normal file
306
StartingPoint/srcgen/b.py
Normal file
|
|
@ -0,0 +1,306 @@
|
||||||
|
"""Implementation of statechart b.
|
||||||
|
Generated by itemis CREATE code generator.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import queue
|
||||||
|
import sys, os
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
|
||||||
|
from yakindu.rx import Observable
|
||||||
|
|
||||||
|
class B:
|
||||||
|
"""Implementation of the state machine B.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class State:
|
||||||
|
""" State Enum
|
||||||
|
"""
|
||||||
|
(
|
||||||
|
main_region_outer,
|
||||||
|
main_region_outer_r1inner,
|
||||||
|
null_state
|
||||||
|
) = range(3)
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
""" Declares all necessary variables including list of states, histories etc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.outer = None
|
||||||
|
self.outer_observable = Observable()
|
||||||
|
self.inner = None
|
||||||
|
self.inner_observable = Observable()
|
||||||
|
|
||||||
|
self.in_event_queue = queue.Queue()
|
||||||
|
# enumeration of all states:
|
||||||
|
self.__State = B.State
|
||||||
|
self.__state_conf_vector_changed = None
|
||||||
|
self.__state_vector = [None] * 1
|
||||||
|
for __state_index in range(1):
|
||||||
|
self.__state_vector[__state_index] = self.State.null_state
|
||||||
|
|
||||||
|
# for timed statechart:
|
||||||
|
self.timer_service = None
|
||||||
|
self.__time_events = [None] * 2
|
||||||
|
|
||||||
|
# initializations:
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
def is_active(self):
|
||||||
|
"""Checks if the state machine is active.
|
||||||
|
"""
|
||||||
|
return self.__state_vector[0] is not self.__State.null_state
|
||||||
|
|
||||||
|
def is_final(self):
|
||||||
|
"""Checks if the statemachine is final.
|
||||||
|
Always returns 'false' since this state machine can never become final.
|
||||||
|
"""
|
||||||
|
return False
|
||||||
|
|
||||||
|
def is_state_active(self, state):
|
||||||
|
"""Checks if the state is currently active.
|
||||||
|
"""
|
||||||
|
s = state
|
||||||
|
if s == self.__State.main_region_outer:
|
||||||
|
return (self.__state_vector[0] >= self.__State.main_region_outer)\
|
||||||
|
and (self.__state_vector[0] <= self.__State.main_region_outer_r1inner)
|
||||||
|
if s == self.__State.main_region_outer_r1inner:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_outer_r1inner
|
||||||
|
return False
|
||||||
|
|
||||||
|
def time_elapsed(self, event_id):
|
||||||
|
"""Add time events to in event queue
|
||||||
|
"""
|
||||||
|
if event_id in range(2):
|
||||||
|
self.in_event_queue.put(lambda: self.raise_time_event(event_id))
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
|
def raise_time_event(self, event_id):
|
||||||
|
"""Raise timed events using the event_id.
|
||||||
|
"""
|
||||||
|
self.__time_events[event_id] = True
|
||||||
|
|
||||||
|
def __execute_queued_event(self, func):
|
||||||
|
func()
|
||||||
|
|
||||||
|
def __get_next_event(self):
|
||||||
|
if not self.in_event_queue.empty():
|
||||||
|
return self.in_event_queue.get()
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __entry_action_main_region_outer(self):
|
||||||
|
"""Entry action for state 'Outer'..
|
||||||
|
"""
|
||||||
|
#Entry action for state 'Outer'.
|
||||||
|
self.timer_service.set_timer(self, 0, (3 * 1000), False)
|
||||||
|
|
||||||
|
def __entry_action_main_region_outer_r1_inner(self):
|
||||||
|
"""Entry action for state 'Inner'..
|
||||||
|
"""
|
||||||
|
#Entry action for state 'Inner'.
|
||||||
|
self.timer_service.set_timer(self, 1, (2 * 1000), False)
|
||||||
|
|
||||||
|
def __exit_action_main_region_outer(self):
|
||||||
|
"""Exit action for state 'Outer'..
|
||||||
|
"""
|
||||||
|
#Exit action for state 'Outer'.
|
||||||
|
self.timer_service.unset_timer(self, 0)
|
||||||
|
|
||||||
|
def __exit_action_main_region_outer_r1_inner(self):
|
||||||
|
"""Exit action for state 'Inner'..
|
||||||
|
"""
|
||||||
|
#Exit action for state 'Inner'.
|
||||||
|
self.timer_service.unset_timer(self, 1)
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_outer_default(self):
|
||||||
|
"""'default' enter sequence for state Outer.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Outer
|
||||||
|
self.__entry_action_main_region_outer()
|
||||||
|
self.__enter_sequence_main_region_outer_r1_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_outer_r1_inner_default(self):
|
||||||
|
"""'default' enter sequence for state Inner.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Inner
|
||||||
|
self.__entry_action_main_region_outer_r1_inner()
|
||||||
|
self.__state_vector[0] = self.State.main_region_outer_r1inner
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_default(self):
|
||||||
|
"""'default' enter sequence for region main region.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region main region
|
||||||
|
self.__react_main_region__entry_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_outer_r1_default(self):
|
||||||
|
"""'default' enter sequence for region r1.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region r1
|
||||||
|
self.__react_main_region_outer_r1__entry_default()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_outer(self):
|
||||||
|
"""Default exit sequence for state Outer.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Outer
|
||||||
|
self.__exit_sequence_main_region_outer_r1()
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__exit_action_main_region_outer()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_outer_r1_inner(self):
|
||||||
|
"""Default exit sequence for state Inner.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Inner
|
||||||
|
self.__state_vector[0] = self.State.main_region_outer
|
||||||
|
self.__exit_action_main_region_outer_r1_inner()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region(self):
|
||||||
|
"""Default exit sequence for region main region.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for region main region
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_outer:
|
||||||
|
self.__exit_sequence_main_region_outer()
|
||||||
|
elif state == self.State.main_region_outer_r1inner:
|
||||||
|
self.__exit_sequence_main_region_outer_r1_inner()
|
||||||
|
self.__exit_action_main_region_outer()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_outer_r1(self):
|
||||||
|
"""Default exit sequence for region r1.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for region r1
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_outer_r1inner:
|
||||||
|
self.__exit_sequence_main_region_outer_r1_inner()
|
||||||
|
|
||||||
|
def __react_main_region_outer_r1__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_outer_r1_inner_default()
|
||||||
|
|
||||||
|
def __react_main_region__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_outer_default()
|
||||||
|
|
||||||
|
def __react(self, transitioned_before):
|
||||||
|
"""Implementation of __react function.
|
||||||
|
"""
|
||||||
|
#State machine reactions.
|
||||||
|
return transitioned_before
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_outer_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_outer_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Outer.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.__time_events[0]:
|
||||||
|
self.__exit_sequence_main_region_outer()
|
||||||
|
self.outer_observable.next()
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__enter_sequence_main_region_outer_default()
|
||||||
|
self.__react(0)
|
||||||
|
transitioned_after = 0
|
||||||
|
#If no transition was taken
|
||||||
|
if transitioned_after == transitioned_before:
|
||||||
|
#then execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_outer_r1_inner_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_outer_r1_inner_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Inner.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.__time_events[1]:
|
||||||
|
self.__exit_sequence_main_region_outer_r1_inner()
|
||||||
|
self.inner_observable.next()
|
||||||
|
self.__time_events[1] = False
|
||||||
|
self.__enter_sequence_main_region_outer_r1_inner_default()
|
||||||
|
self.__main_region_outer_react(0)
|
||||||
|
transitioned_after = 0
|
||||||
|
#If no transition was taken
|
||||||
|
if transitioned_after == transitioned_before:
|
||||||
|
#then execute local reactions.
|
||||||
|
transitioned_after = self.__main_region_outer_react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __clear_in_events(self):
|
||||||
|
"""Implementation of __clear_in_events function.
|
||||||
|
"""
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__time_events[1] = False
|
||||||
|
|
||||||
|
|
||||||
|
def __micro_step(self):
|
||||||
|
"""Implementation of __micro_step function.
|
||||||
|
"""
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_outer_r1inner:
|
||||||
|
self.__main_region_outer_r1_inner_react(-1)
|
||||||
|
|
||||||
|
|
||||||
|
def run_cycle(self):
|
||||||
|
"""Implementation of run_cycle function.
|
||||||
|
"""
|
||||||
|
#Performs a 'run to completion' step.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
while condition_0:
|
||||||
|
self.__micro_step()
|
||||||
|
self.__clear_in_events()
|
||||||
|
condition_0 = False
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def enter(self):
|
||||||
|
"""Implementation of enter function.
|
||||||
|
"""
|
||||||
|
#Activates the state machine.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default enter sequence for statechart B
|
||||||
|
self.__enter_sequence_main_region_default()
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def exit(self):
|
||||||
|
"""Implementation of exit function.
|
||||||
|
"""
|
||||||
|
#Deactivates the state machine.
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default exit sequence for statechart B
|
||||||
|
self.__exit_sequence_main_region()
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def trigger_without_event(self):
|
||||||
|
"""Implementation of triggerWithoutEvent function.
|
||||||
|
"""
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
332
StartingPoint/srcgen/c.py
Normal file
332
StartingPoint/srcgen/c.py
Normal file
|
|
@ -0,0 +1,332 @@
|
||||||
|
"""Implementation of statechart c.
|
||||||
|
Generated by itemis CREATE code generator.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import queue
|
||||||
|
import sys, os
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
|
||||||
|
|
||||||
|
class C:
|
||||||
|
"""Implementation of the state machine C.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class State:
|
||||||
|
""" State Enum
|
||||||
|
"""
|
||||||
|
(
|
||||||
|
main_region_temp,
|
||||||
|
main_region_zero,
|
||||||
|
main_region_one,
|
||||||
|
main_region_initial,
|
||||||
|
null_state
|
||||||
|
) = range(5)
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
""" Declares all necessary variables including list of states, histories etc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.x = None
|
||||||
|
|
||||||
|
self.in_event_queue = queue.Queue()
|
||||||
|
# enumeration of all states:
|
||||||
|
self.__State = C.State
|
||||||
|
self.__state_conf_vector_changed = None
|
||||||
|
self.__state_vector = [None] * 1
|
||||||
|
for __state_index in range(1):
|
||||||
|
self.__state_vector[__state_index] = self.State.null_state
|
||||||
|
|
||||||
|
# for timed statechart:
|
||||||
|
self.timer_service = None
|
||||||
|
self.__time_events = [None] * 1
|
||||||
|
|
||||||
|
# initializations:
|
||||||
|
#Default init sequence for statechart C
|
||||||
|
self.x = 0
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
def is_active(self):
|
||||||
|
"""Checks if the state machine is active.
|
||||||
|
"""
|
||||||
|
return self.__state_vector[0] is not self.__State.null_state
|
||||||
|
|
||||||
|
def is_final(self):
|
||||||
|
"""Checks if the statemachine is final.
|
||||||
|
Always returns 'false' since this state machine can never become final.
|
||||||
|
"""
|
||||||
|
return False
|
||||||
|
|
||||||
|
def is_state_active(self, state):
|
||||||
|
"""Checks if the state is currently active.
|
||||||
|
"""
|
||||||
|
s = state
|
||||||
|
if s == self.__State.main_region_temp:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_temp
|
||||||
|
if s == self.__State.main_region_zero:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_zero
|
||||||
|
if s == self.__State.main_region_one:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_one
|
||||||
|
if s == self.__State.main_region_initial:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_initial
|
||||||
|
return False
|
||||||
|
|
||||||
|
def time_elapsed(self, event_id):
|
||||||
|
"""Add time events to in event queue
|
||||||
|
"""
|
||||||
|
if event_id in range(1):
|
||||||
|
self.in_event_queue.put(lambda: self.raise_time_event(event_id))
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
|
def raise_time_event(self, event_id):
|
||||||
|
"""Raise timed events using the event_id.
|
||||||
|
"""
|
||||||
|
self.__time_events[event_id] = True
|
||||||
|
|
||||||
|
def __execute_queued_event(self, func):
|
||||||
|
func()
|
||||||
|
|
||||||
|
def __get_next_event(self):
|
||||||
|
if not self.in_event_queue.empty():
|
||||||
|
return self.in_event_queue.get()
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __entry_action_main_region_initial(self):
|
||||||
|
"""Entry action for state 'Initial'..
|
||||||
|
"""
|
||||||
|
#Entry action for state 'Initial'.
|
||||||
|
self.timer_service.set_timer(self, 0, (1 * 1000), False)
|
||||||
|
|
||||||
|
def __exit_action_main_region_initial(self):
|
||||||
|
"""Exit action for state 'Initial'..
|
||||||
|
"""
|
||||||
|
#Exit action for state 'Initial'.
|
||||||
|
self.timer_service.unset_timer(self, 0)
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_temp_default(self):
|
||||||
|
"""'default' enter sequence for state Temp.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Temp
|
||||||
|
self.__state_vector[0] = self.State.main_region_temp
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_zero_default(self):
|
||||||
|
"""'default' enter sequence for state Zero.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Zero
|
||||||
|
self.__state_vector[0] = self.State.main_region_zero
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_one_default(self):
|
||||||
|
"""'default' enter sequence for state One.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state One
|
||||||
|
self.__state_vector[0] = self.State.main_region_one
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_initial_default(self):
|
||||||
|
"""'default' enter sequence for state Initial.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Initial
|
||||||
|
self.__entry_action_main_region_initial()
|
||||||
|
self.__state_vector[0] = self.State.main_region_initial
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_default(self):
|
||||||
|
"""'default' enter sequence for region main region.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region main region
|
||||||
|
self.__react_main_region__entry_default()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_temp(self):
|
||||||
|
"""Default exit sequence for state Temp.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Temp
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_zero(self):
|
||||||
|
"""Default exit sequence for state Zero.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Zero
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_one(self):
|
||||||
|
"""Default exit sequence for state One.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state One
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_initial(self):
|
||||||
|
"""Default exit sequence for state Initial.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Initial
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__exit_action_main_region_initial()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region(self):
|
||||||
|
"""Default exit sequence for region main region.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for region main region
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_temp:
|
||||||
|
self.__exit_sequence_main_region_temp()
|
||||||
|
elif state == self.State.main_region_zero:
|
||||||
|
self.__exit_sequence_main_region_zero()
|
||||||
|
elif state == self.State.main_region_one:
|
||||||
|
self.__exit_sequence_main_region_one()
|
||||||
|
elif state == self.State.main_region_initial:
|
||||||
|
self.__exit_sequence_main_region_initial()
|
||||||
|
|
||||||
|
def __react_main_region__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_initial_default()
|
||||||
|
|
||||||
|
def __react(self, transitioned_before):
|
||||||
|
"""Implementation of __react function.
|
||||||
|
"""
|
||||||
|
#State machine reactions.
|
||||||
|
return transitioned_before
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_temp_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_temp_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Temp.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.x == 0:
|
||||||
|
self.__exit_sequence_main_region_temp()
|
||||||
|
self.__enter_sequence_main_region_zero_default()
|
||||||
|
self.__react(0)
|
||||||
|
transitioned_after = 0
|
||||||
|
elif self.x == 1:
|
||||||
|
self.__exit_sequence_main_region_temp()
|
||||||
|
self.__enter_sequence_main_region_one_default()
|
||||||
|
self.__react(0)
|
||||||
|
transitioned_after = 0
|
||||||
|
#If no transition was taken
|
||||||
|
if transitioned_after == transitioned_before:
|
||||||
|
#then execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_zero_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_zero_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Zero.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
#Always execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_one_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_one_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state One.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
#Always execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_initial_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_initial_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Initial.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.__time_events[0]:
|
||||||
|
self.__exit_sequence_main_region_initial()
|
||||||
|
self.x = self.x + 1
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__enter_sequence_main_region_temp_default()
|
||||||
|
self.__react(0)
|
||||||
|
transitioned_after = 0
|
||||||
|
#If no transition was taken
|
||||||
|
if transitioned_after == transitioned_before:
|
||||||
|
#then execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __clear_in_events(self):
|
||||||
|
"""Implementation of __clear_in_events function.
|
||||||
|
"""
|
||||||
|
self.__time_events[0] = False
|
||||||
|
|
||||||
|
|
||||||
|
def __micro_step(self):
|
||||||
|
"""Implementation of __micro_step function.
|
||||||
|
"""
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_temp:
|
||||||
|
self.__main_region_temp_react(-1)
|
||||||
|
elif state == self.State.main_region_zero:
|
||||||
|
self.__main_region_zero_react(-1)
|
||||||
|
elif state == self.State.main_region_one:
|
||||||
|
self.__main_region_one_react(-1)
|
||||||
|
elif state == self.State.main_region_initial:
|
||||||
|
self.__main_region_initial_react(-1)
|
||||||
|
|
||||||
|
|
||||||
|
def run_cycle(self):
|
||||||
|
"""Implementation of run_cycle function.
|
||||||
|
"""
|
||||||
|
#Performs a 'run to completion' step.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
while condition_0:
|
||||||
|
self.__micro_step()
|
||||||
|
self.__clear_in_events()
|
||||||
|
condition_0 = False
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def enter(self):
|
||||||
|
"""Implementation of enter function.
|
||||||
|
"""
|
||||||
|
#Activates the state machine.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default enter sequence for statechart C
|
||||||
|
self.__enter_sequence_main_region_default()
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def exit(self):
|
||||||
|
"""Implementation of exit function.
|
||||||
|
"""
|
||||||
|
#Deactivates the state machine.
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default exit sequence for statechart C
|
||||||
|
self.__exit_sequence_main_region()
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def trigger_without_event(self):
|
||||||
|
"""Implementation of triggerWithoutEvent function.
|
||||||
|
"""
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
464
StartingPoint/srcgen/d.py
Normal file
464
StartingPoint/srcgen/d.py
Normal file
|
|
@ -0,0 +1,464 @@
|
||||||
|
"""Implementation of statechart d.
|
||||||
|
Generated by itemis CREATE code generator.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import queue
|
||||||
|
import sys, os
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
|
||||||
|
|
||||||
|
class D:
|
||||||
|
"""Implementation of the state machine D.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class State:
|
||||||
|
""" State Enum
|
||||||
|
"""
|
||||||
|
(
|
||||||
|
main_region_orthogonal,
|
||||||
|
main_region_orthogonal_r1temp,
|
||||||
|
main_region_orthogonal_r1one,
|
||||||
|
main_region_orthogonal_r1initial,
|
||||||
|
main_region_orthogonal_r1zero,
|
||||||
|
main_region_orthogonal_r2s,
|
||||||
|
main_region_orthogonal_r2t,
|
||||||
|
null_state
|
||||||
|
) = range(8)
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
""" Declares all necessary variables including list of states, histories etc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.x = None
|
||||||
|
|
||||||
|
self.in_event_queue = queue.Queue()
|
||||||
|
# enumeration of all states:
|
||||||
|
self.__State = D.State
|
||||||
|
self.__state_conf_vector_changed = None
|
||||||
|
self.__state_vector = [None] * 2
|
||||||
|
for __state_index in range(2):
|
||||||
|
self.__state_vector[__state_index] = self.State.null_state
|
||||||
|
|
||||||
|
# for timed statechart:
|
||||||
|
self.timer_service = None
|
||||||
|
self.__time_events = [None] * 2
|
||||||
|
|
||||||
|
# initializations:
|
||||||
|
#Default init sequence for statechart D
|
||||||
|
self.x = 0
|
||||||
|
self.__is_executing = False
|
||||||
|
self.__state_conf_vector_position = None
|
||||||
|
|
||||||
|
def is_active(self):
|
||||||
|
"""Checks if the state machine is active.
|
||||||
|
"""
|
||||||
|
return self.__state_vector[0] is not self.__State.null_state or self.__state_vector[1] is not self.__State.null_state
|
||||||
|
|
||||||
|
def is_final(self):
|
||||||
|
"""Checks if the statemachine is final.
|
||||||
|
Always returns 'false' since this state machine can never become final.
|
||||||
|
"""
|
||||||
|
return False
|
||||||
|
|
||||||
|
def is_state_active(self, state):
|
||||||
|
"""Checks if the state is currently active.
|
||||||
|
"""
|
||||||
|
s = state
|
||||||
|
if s == self.__State.main_region_orthogonal:
|
||||||
|
return (self.__state_vector[0] >= self.__State.main_region_orthogonal)\
|
||||||
|
and (self.__state_vector[0] <= self.__State.main_region_orthogonal_r2t)
|
||||||
|
if s == self.__State.main_region_orthogonal_r1temp:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_orthogonal_r1temp
|
||||||
|
if s == self.__State.main_region_orthogonal_r1one:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_orthogonal_r1one
|
||||||
|
if s == self.__State.main_region_orthogonal_r1initial:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_orthogonal_r1initial
|
||||||
|
if s == self.__State.main_region_orthogonal_r1zero:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_orthogonal_r1zero
|
||||||
|
if s == self.__State.main_region_orthogonal_r2s:
|
||||||
|
return self.__state_vector[1] == self.__State.main_region_orthogonal_r2s
|
||||||
|
if s == self.__State.main_region_orthogonal_r2t:
|
||||||
|
return self.__state_vector[1] == self.__State.main_region_orthogonal_r2t
|
||||||
|
return False
|
||||||
|
|
||||||
|
def time_elapsed(self, event_id):
|
||||||
|
"""Add time events to in event queue
|
||||||
|
"""
|
||||||
|
if event_id in range(2):
|
||||||
|
self.in_event_queue.put(lambda: self.raise_time_event(event_id))
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
|
def raise_time_event(self, event_id):
|
||||||
|
"""Raise timed events using the event_id.
|
||||||
|
"""
|
||||||
|
self.__time_events[event_id] = True
|
||||||
|
|
||||||
|
def __execute_queued_event(self, func):
|
||||||
|
func()
|
||||||
|
|
||||||
|
def __get_next_event(self):
|
||||||
|
if not self.in_event_queue.empty():
|
||||||
|
return self.in_event_queue.get()
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __entry_action_main_region_orthogonal_r1_initial(self):
|
||||||
|
"""Entry action for state 'Initial'..
|
||||||
|
"""
|
||||||
|
#Entry action for state 'Initial'.
|
||||||
|
self.timer_service.set_timer(self, 0, (1 * 1000), False)
|
||||||
|
|
||||||
|
def __entry_action_main_region_orthogonal_r2_s(self):
|
||||||
|
"""Entry action for state 'S'..
|
||||||
|
"""
|
||||||
|
#Entry action for state 'S'.
|
||||||
|
self.timer_service.set_timer(self, 1, (5 * 1000), False)
|
||||||
|
|
||||||
|
def __exit_action_main_region_orthogonal_r1_initial(self):
|
||||||
|
"""Exit action for state 'Initial'..
|
||||||
|
"""
|
||||||
|
#Exit action for state 'Initial'.
|
||||||
|
self.timer_service.unset_timer(self, 0)
|
||||||
|
|
||||||
|
def __exit_action_main_region_orthogonal_r2_s(self):
|
||||||
|
"""Exit action for state 'S'..
|
||||||
|
"""
|
||||||
|
#Exit action for state 'S'.
|
||||||
|
self.timer_service.unset_timer(self, 1)
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_default(self):
|
||||||
|
"""'default' enter sequence for state Orthogonal.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Orthogonal
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r1_default()
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r2_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r1_temp_default(self):
|
||||||
|
"""'default' enter sequence for state Temp.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Temp
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal_r1temp
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r1_one_default(self):
|
||||||
|
"""'default' enter sequence for state One.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state One
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal_r1one
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r1_initial_default(self):
|
||||||
|
"""'default' enter sequence for state Initial.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Initial
|
||||||
|
self.__entry_action_main_region_orthogonal_r1_initial()
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal_r1initial
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r1_zero_default(self):
|
||||||
|
"""'default' enter sequence for state Zero.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state Zero
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal_r1zero
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r2_s_default(self):
|
||||||
|
"""'default' enter sequence for state S.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state S
|
||||||
|
self.__entry_action_main_region_orthogonal_r2_s()
|
||||||
|
self.__state_vector[1] = self.State.main_region_orthogonal_r2s
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r2_t_default(self):
|
||||||
|
"""'default' enter sequence for state T.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state T
|
||||||
|
self.__state_vector[1] = self.State.main_region_orthogonal_r2t
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_default(self):
|
||||||
|
"""'default' enter sequence for region main region.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region main region
|
||||||
|
self.__react_main_region__entry_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r1_default(self):
|
||||||
|
"""'default' enter sequence for region r1.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region r1
|
||||||
|
self.__react_main_region_orthogonal_r1__entry_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_r2_default(self):
|
||||||
|
"""'default' enter sequence for region r2.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region r2
|
||||||
|
self.__react_main_region_orthogonal_r2__entry_default()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_r1_temp(self):
|
||||||
|
"""Default exit sequence for state Temp.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Temp
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_r1_one(self):
|
||||||
|
"""Default exit sequence for state One.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state One
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_r1_initial(self):
|
||||||
|
"""Default exit sequence for state Initial.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Initial
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
self.__exit_action_main_region_orthogonal_r1_initial()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_r1_zero(self):
|
||||||
|
"""Default exit sequence for state Zero.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state Zero
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_r2_s(self):
|
||||||
|
"""Default exit sequence for state S.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state S
|
||||||
|
self.__state_vector[1] = self.State.main_region_orthogonal
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
self.__exit_action_main_region_orthogonal_r2_s()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_r2_t(self):
|
||||||
|
"""Default exit sequence for state T.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state T
|
||||||
|
self.__state_vector[1] = self.State.main_region_orthogonal
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
|
||||||
|
def __exit_sequence_main_region(self):
|
||||||
|
"""Default exit sequence for region main region.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for region main region
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_orthogonal_r1temp:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r1_temp()
|
||||||
|
elif state == self.State.main_region_orthogonal_r1one:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r1_one()
|
||||||
|
elif state == self.State.main_region_orthogonal_r1initial:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r1_initial()
|
||||||
|
elif state == self.State.main_region_orthogonal_r1zero:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r1_zero()
|
||||||
|
state = self.__state_vector[1]
|
||||||
|
if state == self.State.main_region_orthogonal_r2s:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r2_s()
|
||||||
|
elif state == self.State.main_region_orthogonal_r2t:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r2_t()
|
||||||
|
|
||||||
|
def __react_main_region_orthogonal_r1__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r1_initial_default()
|
||||||
|
|
||||||
|
def __react_main_region_orthogonal_r2__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r2_s_default()
|
||||||
|
|
||||||
|
def __react_main_region__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_orthogonal_default()
|
||||||
|
|
||||||
|
def __react(self, transitioned_before):
|
||||||
|
"""Implementation of __react function.
|
||||||
|
"""
|
||||||
|
#State machine reactions.
|
||||||
|
return transitioned_before
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Orthogonal.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
#Always execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_r1_temp_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_r1_temp_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Temp.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.x == 0:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r1_temp()
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r1_zero_default()
|
||||||
|
transitioned_after = 0
|
||||||
|
elif self.x == 1:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r1_temp()
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r1_one_default()
|
||||||
|
transitioned_after = 0
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_r1_one_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_r1_one_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state One.
|
||||||
|
return transitioned_before
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_r1_initial_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_r1_initial_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Initial.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.__time_events[0]:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r1_initial()
|
||||||
|
self.x = self.x + 1
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r1_temp_default()
|
||||||
|
transitioned_after = 0
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_r1_zero_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_r1_zero_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state Zero.
|
||||||
|
return transitioned_before
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_r2_s_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_r2_s_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state S.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 1:
|
||||||
|
if self.__time_events[1]:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_r2_s()
|
||||||
|
self.__time_events[1] = False
|
||||||
|
self.__enter_sequence_main_region_orthogonal_r2_t_default()
|
||||||
|
self.__main_region_orthogonal_react(0)
|
||||||
|
transitioned_after = 1
|
||||||
|
#If no transition was taken
|
||||||
|
if transitioned_after == transitioned_before:
|
||||||
|
#then execute local reactions.
|
||||||
|
transitioned_after = self.__main_region_orthogonal_react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_r2_t_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_r2_t_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state T.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
#Always execute local reactions.
|
||||||
|
transitioned_after = self.__main_region_orthogonal_react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __clear_in_events(self):
|
||||||
|
"""Implementation of __clear_in_events function.
|
||||||
|
"""
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__time_events[1] = False
|
||||||
|
|
||||||
|
|
||||||
|
def __micro_step(self):
|
||||||
|
"""Implementation of __micro_step function.
|
||||||
|
"""
|
||||||
|
transitioned = -1
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_orthogonal_r1temp:
|
||||||
|
transitioned = self.__main_region_orthogonal_r1_temp_react(transitioned)
|
||||||
|
elif state == self.State.main_region_orthogonal_r1one:
|
||||||
|
transitioned = self.__main_region_orthogonal_r1_one_react(transitioned)
|
||||||
|
elif state == self.State.main_region_orthogonal_r1initial:
|
||||||
|
transitioned = self.__main_region_orthogonal_r1_initial_react(transitioned)
|
||||||
|
elif state == self.State.main_region_orthogonal_r1zero:
|
||||||
|
transitioned = self.__main_region_orthogonal_r1_zero_react(transitioned)
|
||||||
|
if self.__state_conf_vector_position < 1:
|
||||||
|
state = self.__state_vector[1]
|
||||||
|
if state == self.State.main_region_orthogonal_r2s:
|
||||||
|
self.__main_region_orthogonal_r2_s_react(transitioned)
|
||||||
|
elif state == self.State.main_region_orthogonal_r2t:
|
||||||
|
self.__main_region_orthogonal_r2_t_react(transitioned)
|
||||||
|
|
||||||
|
|
||||||
|
def run_cycle(self):
|
||||||
|
"""Implementation of run_cycle function.
|
||||||
|
"""
|
||||||
|
#Performs a 'run to completion' step.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
while condition_0:
|
||||||
|
self.__micro_step()
|
||||||
|
self.__clear_in_events()
|
||||||
|
condition_0 = False
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def enter(self):
|
||||||
|
"""Implementation of enter function.
|
||||||
|
"""
|
||||||
|
#Activates the state machine.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default enter sequence for statechart D
|
||||||
|
self.__enter_sequence_main_region_default()
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def exit(self):
|
||||||
|
"""Implementation of exit function.
|
||||||
|
"""
|
||||||
|
#Deactivates the state machine.
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default exit sequence for statechart D
|
||||||
|
self.__exit_sequence_main_region()
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__state_vector[1] = self.State.null_state
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def trigger_without_event(self):
|
||||||
|
"""Implementation of triggerWithoutEvent function.
|
||||||
|
"""
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
325
StartingPoint/srcgen/e.py
Normal file
325
StartingPoint/srcgen/e.py
Normal file
|
|
@ -0,0 +1,325 @@
|
||||||
|
"""Implementation of statechart e.
|
||||||
|
Generated by itemis CREATE code generator.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import queue
|
||||||
|
import sys, os
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
|
||||||
|
from yakindu.rx import Observable
|
||||||
|
|
||||||
|
class E:
|
||||||
|
"""Implementation of the state machine E.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class State:
|
||||||
|
""" State Enum
|
||||||
|
"""
|
||||||
|
(
|
||||||
|
main_region_orthogonal_state,
|
||||||
|
main_region_orthogonal_state_r1state_a,
|
||||||
|
main_region_orthogonal_state_r2state_b,
|
||||||
|
null_state
|
||||||
|
) = range(4)
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
""" Declares all necessary variables including list of states, histories etc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.v = None
|
||||||
|
self.x = None
|
||||||
|
self.x_observable = Observable()
|
||||||
|
self.y = None
|
||||||
|
self.y_observable = Observable()
|
||||||
|
|
||||||
|
self.in_event_queue = queue.Queue()
|
||||||
|
# enumeration of all states:
|
||||||
|
self.__State = E.State
|
||||||
|
self.__state_conf_vector_changed = None
|
||||||
|
self.__state_vector = [None] * 2
|
||||||
|
for __state_index in range(2):
|
||||||
|
self.__state_vector[__state_index] = self.State.null_state
|
||||||
|
|
||||||
|
# for timed statechart:
|
||||||
|
self.timer_service = None
|
||||||
|
self.__time_events = [None] * 1
|
||||||
|
|
||||||
|
# initializations:
|
||||||
|
#Default init sequence for statechart E
|
||||||
|
self.v = 0
|
||||||
|
self.__is_executing = False
|
||||||
|
self.__state_conf_vector_position = None
|
||||||
|
|
||||||
|
def is_active(self):
|
||||||
|
"""Checks if the state machine is active.
|
||||||
|
"""
|
||||||
|
return self.__state_vector[0] is not self.__State.null_state or self.__state_vector[1] is not self.__State.null_state
|
||||||
|
|
||||||
|
def is_final(self):
|
||||||
|
"""Checks if the statemachine is final.
|
||||||
|
Always returns 'false' since this state machine can never become final.
|
||||||
|
"""
|
||||||
|
return False
|
||||||
|
|
||||||
|
def is_state_active(self, state):
|
||||||
|
"""Checks if the state is currently active.
|
||||||
|
"""
|
||||||
|
s = state
|
||||||
|
if s == self.__State.main_region_orthogonal_state:
|
||||||
|
return (self.__state_vector[0] >= self.__State.main_region_orthogonal_state)\
|
||||||
|
and (self.__state_vector[0] <= self.__State.main_region_orthogonal_state_r2state_b)
|
||||||
|
if s == self.__State.main_region_orthogonal_state_r1state_a:
|
||||||
|
return self.__state_vector[0] == self.__State.main_region_orthogonal_state_r1state_a
|
||||||
|
if s == self.__State.main_region_orthogonal_state_r2state_b:
|
||||||
|
return self.__state_vector[1] == self.__State.main_region_orthogonal_state_r2state_b
|
||||||
|
return False
|
||||||
|
|
||||||
|
def time_elapsed(self, event_id):
|
||||||
|
"""Add time events to in event queue
|
||||||
|
"""
|
||||||
|
if event_id in range(1):
|
||||||
|
self.in_event_queue.put(lambda: self.raise_time_event(event_id))
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
|
def raise_time_event(self, event_id):
|
||||||
|
"""Raise timed events using the event_id.
|
||||||
|
"""
|
||||||
|
self.__time_events[event_id] = True
|
||||||
|
|
||||||
|
def __execute_queued_event(self, func):
|
||||||
|
func()
|
||||||
|
|
||||||
|
def __get_next_event(self):
|
||||||
|
if not self.in_event_queue.empty():
|
||||||
|
return self.in_event_queue.get()
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __entry_action_main_region_orthogonal_state_r2_state_b(self):
|
||||||
|
"""Entry action for state 'StateB'..
|
||||||
|
"""
|
||||||
|
#Entry action for state 'StateB'.
|
||||||
|
self.timer_service.set_timer(self, 0, (1 * 1000), False)
|
||||||
|
|
||||||
|
def __exit_action_main_region_orthogonal_state_r2_state_b(self):
|
||||||
|
"""Exit action for state 'StateB'..
|
||||||
|
"""
|
||||||
|
#Exit action for state 'StateB'.
|
||||||
|
self.timer_service.unset_timer(self, 0)
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_state_default(self):
|
||||||
|
"""'default' enter sequence for state OrthogonalState.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state OrthogonalState
|
||||||
|
self.__enter_sequence_main_region_orthogonal_state_r1_default()
|
||||||
|
self.__enter_sequence_main_region_orthogonal_state_r2_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_state_r1_state_a_default(self):
|
||||||
|
"""'default' enter sequence for state StateA.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state StateA
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal_state_r1state_a
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_state_r2_state_b_default(self):
|
||||||
|
"""'default' enter sequence for state StateB.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for state StateB
|
||||||
|
self.__entry_action_main_region_orthogonal_state_r2_state_b()
|
||||||
|
self.__state_vector[1] = self.State.main_region_orthogonal_state_r2state_b
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
self.__state_conf_vector_changed = True
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_default(self):
|
||||||
|
"""'default' enter sequence for region main region.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region main region
|
||||||
|
self.__react_main_region__entry_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_state_r1_default(self):
|
||||||
|
"""'default' enter sequence for region r1.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region r1
|
||||||
|
self.__react_main_region_orthogonal_state_r1__entry_default()
|
||||||
|
|
||||||
|
def __enter_sequence_main_region_orthogonal_state_r2_default(self):
|
||||||
|
"""'default' enter sequence for region r2.
|
||||||
|
"""
|
||||||
|
#'default' enter sequence for region r2
|
||||||
|
self.__react_main_region_orthogonal_state_r2__entry_default()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_state_r1_state_a(self):
|
||||||
|
"""Default exit sequence for state StateA.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state StateA
|
||||||
|
self.__state_vector[0] = self.State.main_region_orthogonal_state
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
|
||||||
|
def __exit_sequence_main_region_orthogonal_state_r2_state_b(self):
|
||||||
|
"""Default exit sequence for state StateB.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for state StateB
|
||||||
|
self.__state_vector[1] = self.State.main_region_orthogonal_state
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
self.__exit_action_main_region_orthogonal_state_r2_state_b()
|
||||||
|
|
||||||
|
def __exit_sequence_main_region(self):
|
||||||
|
"""Default exit sequence for region main region.
|
||||||
|
"""
|
||||||
|
#Default exit sequence for region main region
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_orthogonal_state_r1state_a:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_state_r1_state_a()
|
||||||
|
state = self.__state_vector[1]
|
||||||
|
if state == self.State.main_region_orthogonal_state_r2state_b:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_state_r2_state_b()
|
||||||
|
|
||||||
|
def __react_main_region_orthogonal_state_r1__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_orthogonal_state_r1_state_a_default()
|
||||||
|
|
||||||
|
def __react_main_region_orthogonal_state_r2__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_orthogonal_state_r2_state_b_default()
|
||||||
|
|
||||||
|
def __react_main_region__entry_default(self):
|
||||||
|
"""Default react sequence for initial entry .
|
||||||
|
"""
|
||||||
|
#Default react sequence for initial entry
|
||||||
|
self.__enter_sequence_main_region_orthogonal_state_default()
|
||||||
|
|
||||||
|
def __react(self, transitioned_before):
|
||||||
|
"""Implementation of __react function.
|
||||||
|
"""
|
||||||
|
#State machine reactions.
|
||||||
|
return transitioned_before
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_state_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_state_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state OrthogonalState.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
#Always execute local reactions.
|
||||||
|
transitioned_after = self.__react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_state_r1_state_a_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_state_r1_state_a_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state StateA.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 0:
|
||||||
|
if self.v == 0:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_state_r1_state_a()
|
||||||
|
self.x_observable.next()
|
||||||
|
self.__enter_sequence_main_region_orthogonal_state_r1_state_a_default()
|
||||||
|
transitioned_after = 0
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __main_region_orthogonal_state_r2_state_b_react(self, transitioned_before):
|
||||||
|
"""Implementation of __main_region_orthogonal_state_r2_state_b_react function.
|
||||||
|
"""
|
||||||
|
#The reactions of state StateB.
|
||||||
|
transitioned_after = transitioned_before
|
||||||
|
if transitioned_after < 1:
|
||||||
|
if self.__time_events[0]:
|
||||||
|
self.__exit_sequence_main_region_orthogonal_state_r2_state_b()
|
||||||
|
self.y_observable.next()
|
||||||
|
self.__time_events[0] = False
|
||||||
|
self.__enter_sequence_main_region_orthogonal_state_r2_state_b_default()
|
||||||
|
self.__main_region_orthogonal_state_react(0)
|
||||||
|
transitioned_after = 1
|
||||||
|
#If no transition was taken
|
||||||
|
if transitioned_after == transitioned_before:
|
||||||
|
#then execute local reactions.
|
||||||
|
transitioned_after = self.__main_region_orthogonal_state_react(transitioned_before)
|
||||||
|
return transitioned_after
|
||||||
|
|
||||||
|
|
||||||
|
def __clear_in_events(self):
|
||||||
|
"""Implementation of __clear_in_events function.
|
||||||
|
"""
|
||||||
|
self.__time_events[0] = False
|
||||||
|
|
||||||
|
|
||||||
|
def __micro_step(self):
|
||||||
|
"""Implementation of __micro_step function.
|
||||||
|
"""
|
||||||
|
transitioned = -1
|
||||||
|
self.__state_conf_vector_position = 0
|
||||||
|
state = self.__state_vector[0]
|
||||||
|
if state == self.State.main_region_orthogonal_state_r1state_a:
|
||||||
|
transitioned = self.__main_region_orthogonal_state_r1_state_a_react(transitioned)
|
||||||
|
if self.__state_conf_vector_position < 1:
|
||||||
|
state = self.__state_vector[1]
|
||||||
|
if state == self.State.main_region_orthogonal_state_r2state_b:
|
||||||
|
self.__main_region_orthogonal_state_r2_state_b_react(transitioned)
|
||||||
|
|
||||||
|
|
||||||
|
def run_cycle(self):
|
||||||
|
"""Implementation of run_cycle function.
|
||||||
|
"""
|
||||||
|
#Performs a 'run to completion' step.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
while condition_0:
|
||||||
|
self.__micro_step()
|
||||||
|
self.__clear_in_events()
|
||||||
|
condition_0 = False
|
||||||
|
next_event = self.__get_next_event()
|
||||||
|
if next_event is not None:
|
||||||
|
self.__execute_queued_event(next_event)
|
||||||
|
condition_0 = True
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def enter(self):
|
||||||
|
"""Implementation of enter function.
|
||||||
|
"""
|
||||||
|
#Activates the state machine.
|
||||||
|
if self.timer_service is None:
|
||||||
|
raise ValueError('Timer service must be set.')
|
||||||
|
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default enter sequence for statechart E
|
||||||
|
self.__enter_sequence_main_region_default()
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def exit(self):
|
||||||
|
"""Implementation of exit function.
|
||||||
|
"""
|
||||||
|
#Deactivates the state machine.
|
||||||
|
if self.__is_executing:
|
||||||
|
return
|
||||||
|
self.__is_executing = True
|
||||||
|
#Default exit sequence for statechart E
|
||||||
|
self.__exit_sequence_main_region()
|
||||||
|
self.__state_vector[0] = self.State.null_state
|
||||||
|
self.__state_vector[1] = self.State.null_state
|
||||||
|
self.__state_conf_vector_position = 1
|
||||||
|
self.__is_executing = False
|
||||||
|
|
||||||
|
|
||||||
|
def trigger_without_event(self):
|
||||||
|
"""Implementation of triggerWithoutEvent function.
|
||||||
|
"""
|
||||||
|
self.run_cycle()
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue