Browse Source

First Version of the arduino based trafficlight example comitted.

scholtyssek86@googlemail.com 12 years ago
parent
commit
d8691423a7

File diff suppressed because it is too large
+ 274 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/.cproject


+ 40 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/.project

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.yakindu.sct.examples.c.arduinoTrafficLight</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<triggers>clean,full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.yakindu.sct.builder.SCTBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+		<nature>de.innot.avreclipse.core.avrnature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.yakindu.sct.builder.SCTNature</nature>
+	</natures>
+</projectDescription>

+ 49 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/.settings/de.innot.avreclipse.core.prefs

@@ -0,0 +1,49 @@
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/ClockFrequency=16000000
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/ExtRAMSize=0
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/ExtendedRAM=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/MCUType=atmega328p
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/UseEEPROM=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/UseExtendedRAMforHeap=true
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/BitBangDelay=
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/Bitclock=
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/EEPROMFile=
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/EEPROMFromConfig=true
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/FlashFile=
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/FlashFromConfig=true
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/NoChipErase=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/NoSigCheck=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/NoVerify=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/NoWrite=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/OtherOptions=
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/ProgrammerID=programmerconfig.1
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/UseCounter=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/WriteEEPROM=false
+avrtarget/de.innot.avreclipse.configuration.app.debug.1617337132/avrdude/WriteFlash=true
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/ClockFrequency=16000000
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/ExtRAMSize=0
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/ExtendedRAM=false
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/MCUType=atmega328p
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/UseEEPROM=false
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/UseExtendedRAMforHeap=true
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/BitBangDelay=
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/Bitclock=
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/EEPROMFile=
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/EEPROMFromConfig=true
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/FlashFile=
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/FlashFromConfig=true
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/Fuses/ByteValues=255\:222\:5
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/Fuses/FileName=
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/Fuses/MCUid=atmega328p
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/Fuses/UseFile=false
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/Fuses/Write=false
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/NoChipErase=true
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/NoSigCheck=true
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/NoVerify=true
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/NoWrite=false
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/OtherOptions=
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/ProgrammerID=programmerconfig.4
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/UseCounter=false
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/WriteEEPROM=false
+avrtarget/de.innot.avreclipse.configuration.app.release.818758969/avrdude/WriteFlash=true
+avrtarget/perConfig=true
+eclipse.preferences.version=1

+ 67 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/.settings/org.eclipse.cdt.codan.core.prefs

@@ -0,0 +1,67 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.codan.checkers.errnoreturn=Warning
+org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
+org.eclipse.cdt.codan.checkers.errreturnvalue=Error
+org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.checkers.noreturn=Error
+org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false}
+org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning
+org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true}
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false}
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false}
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")}
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}

+ 2 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/.settings/org.eclipse.core.resources.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/TrafficLight.sct=UTF-8

+ 2 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/.settings/org.eclipse.ltk.core.refactoring.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false

+ 551 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/model/TrafficLight.sct

@@ -0,0 +1,551 @@
+<?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="_wn6McNmpEeKW8uGfYfOYLw" specification="interface TrafficLight:&#xA;var red:boolean&#xA;var yellow:boolean&#xA;var green:boolean&#xA;&#xA;interface PedestrianLight:&#xA;var red:boolean&#xA;var green:boolean&#xA;var wait:boolean&#xA;&#xA;interface:&#xA;&#x9;in event pedestrianRequest&#x9;&#xA;&#x9;in event onOff" name="Trafficlight">
+    <regions xmi:id="_wn6zgtmpEeKW8uGfYfOYLw" name="main region">
+      <vertices xsi:type="sgraph:State" xmi:id="_TqNXsN8zEeKZg70HbF_LxQ" name="on" incomingTransitions="_fsT3oN8zEeKZg70HbF_LxQ _w8GkcN8zEeKZg70HbF_LxQ">
+        <outgoingTransitions xmi:id="_wRFRgN8zEeKZg70HbF_LxQ" specification="onOff" target="_tRFEMN8zEeKZg70HbF_LxQ"/>
+        <regions xmi:id="_TqTeUN8zEeKZg70HbF_LxQ" name="r1">
+          <vertices xsi:type="sgraph:State" xmi:id="_y4V-ANmpEeKW8uGfYfOYLw" specification="entry/ TrafficLight.red=false;&#xA;TrafficLight.yellow = false;&#xA;TrafficLight.green = true;&#xA;PedestrianLight.wait =false" name="StreetGreen" incomingTransitions="_1hZD4NmpEeKW8uGfYfOYLw">
+            <outgoingTransitions xmi:id="_rW4KkOMTEeK0GJsVgKoTBg" specification="pedestrianRequest" target="_jAa18OMTEeK0GJsVgKoTBg"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_yAoS4NmpEeKW8uGfYfOYLw" specification="entry/ TrafficLight.red=true;&#xA;TrafficLight.yellow = true;&#xA;TrafficLight.green = false;&#xA;PedestrianLight.wait =false" name="StreetRedYellow" incomingTransitions="_7tKpEOL-EeKfCYBq4Lxlzw">
+            <outgoingTransitions xmi:id="_1hZD4NmpEeKW8uGfYfOYLw" specification="after 2s" target="_y4V-ANmpEeKW8uGfYfOYLw"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_wn8Bp9mpEeKW8uGfYfOYLw" specification="entry/ TrafficLight.red=true;&#xA;TrafficLight.yellow = false;&#xA;TrafficLight.green = false;&#xA;PedestrianLight.wait =false" name="StreetRed" incomingTransitions="_h6ctYOMIEeKfCYBq4Lxlzw">
+            <outgoingTransitions xmi:id="_2Sl2wOL-EeKfCYBq4Lxlzw" specification="after 2s" target="_nd3eMOL-EeKfCYBq4Lxlzw"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_nd3eMOL-EeKfCYBq4Lxlzw" specification="entry/ PedestrianLight.red=false;&#xA;PedestrianLight.green=true;&#xA;PedestrianLight.wait =false" name="PedestrianGreen" incomingTransitions="_2Sl2wOL-EeKfCYBq4Lxlzw">
+            <outgoingTransitions xmi:id="_mIOEcOL_EeKfCYBq4Lxlzw" specification="after 7s" target="_uVsRoOL-EeKfCYBq4Lxlzw"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_uVsRoOL-EeKfCYBq4Lxlzw" specification="entry/ PedestrianLight.red=true;&#xA;PedestrianLight.green=false;&#xA;PedestrianLight.wait =false" name="PedestrianRed" incomingTransitions="_mIOEcOL_EeKfCYBq4Lxlzw _6cbkgOL_EeKfCYBq4Lxlzw">
+            <outgoingTransitions xmi:id="_7tKpEOL-EeKfCYBq4Lxlzw" specification="after  500ms" target="_yAoS4NmpEeKW8uGfYfOYLw"/>
+          </vertices>
+          <vertices xsi:type="sgraph:Entry" xmi:id="_wDh3AOL_EeKfCYBq4Lxlzw">
+            <outgoingTransitions xmi:id="_6cbkgOL_EeKfCYBq4Lxlzw" specification="" target="_uVsRoOL-EeKfCYBq4Lxlzw"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_fCheAOMIEeKfCYBq4Lxlzw" specification="entry/ TrafficLight.red=false;&#xA;TrafficLight.yellow = true;&#xA;TrafficLight.green = false;&#xA;PedestrianLight.wait =false" name="StreetAttention" incomingTransitions="_sWyIYOMTEeK0GJsVgKoTBg">
+            <outgoingTransitions xmi:id="_h6ctYOMIEeKfCYBq4Lxlzw" specification="after 2s" target="_wn8Bp9mpEeKW8uGfYfOYLw"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_jAa18OMTEeK0GJsVgKoTBg" specification="exit/ PedestrianLight.wait =false" name="PedestrianRequesting" incomingTransitions="_rW4KkOMTEeK0GJsVgKoTBg">
+            <outgoingTransitions xmi:id="_sWyIYOMTEeK0GJsVgKoTBg" specification="after 5s" target="_fCheAOMIEeKfCYBq4Lxlzw"/>
+            <regions xmi:id="_lCcYEOMTEeK0GJsVgKoTBg" name="r2">
+              <vertices xsi:type="sgraph:State" xmi:id="_nCyfMOMTEeK0GJsVgKoTBg" specification="entry/ PedestrianLight.wait =true" name="waitOn" incomingTransitions="_ov124OMTEeK0GJsVgKoTBg _qPJtgOMTEeK0GJsVgKoTBg">
+                <outgoingTransitions xmi:id="_pRo8YOMTEeK0GJsVgKoTBg" specification="after 500ms" target="_nkO_YOMTEeK0GJsVgKoTBg"/>
+              </vertices>
+              <vertices xsi:type="sgraph:State" xmi:id="_nkO_YOMTEeK0GJsVgKoTBg" specification="entry/ PedestrianLight.wait =false" name="waitOff" incomingTransitions="_pRo8YOMTEeK0GJsVgKoTBg">
+                <outgoingTransitions xmi:id="_qPJtgOMTEeK0GJsVgKoTBg" specification="after 500ms" target="_nCyfMOMTEeK0GJsVgKoTBg"/>
+              </vertices>
+              <vertices xsi:type="sgraph:Entry" xmi:id="_oSd-YOMTEeK0GJsVgKoTBg">
+                <outgoingTransitions xmi:id="_ov124OMTEeK0GJsVgKoTBg" specification="" target="_nCyfMOMTEeK0GJsVgKoTBg"/>
+              </vertices>
+            </regions>
+          </vertices>
+        </regions>
+      </vertices>
+      <vertices xsi:type="sgraph:Entry" xmi:id="_fMpgIN8zEeKZg70HbF_LxQ">
+        <outgoingTransitions xmi:id="_fsT3oN8zEeKZg70HbF_LxQ" specification="" target="_TqNXsN8zEeKZg70HbF_LxQ"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_tRFEMN8zEeKZg70HbF_LxQ" specification="entry/ TrafficLight.red=false;&#xA;TrafficLight.yellow = false;&#xA;TrafficLight.green = false;&#xA;PedestrianLight.red = false;&#xA;PedestrianLight.green = false;&#xA;PedestrianLight.wait = false" name="off" incomingTransitions="_wRFRgN8zEeKZg70HbF_LxQ">
+        <outgoingTransitions xmi:id="_w8GkcN8zEeKZg70HbF_LxQ" specification="onOff" target="_TqNXsN8zEeKZg70HbF_LxQ"/>
+        <regions xmi:id="_tRIHgN8zEeKZg70HbF_LxQ" name="r1">
+          <vertices xsi:type="sgraph:Entry" xmi:id="_yL1G8N8zEeKZg70HbF_LxQ">
+            <outgoingTransitions xmi:id="_Jz0r8N80EeKZg70HbF_LxQ" specification="" target="_FkEG8N80EeKZg70HbF_LxQ"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_FkEG8N80EeKZg70HbF_LxQ" specification="entry/ TrafficLight.yellow = true;&#xA;PedestrianLight.wait = true" name="YellowOn" incomingTransitions="_Jz0r8N80EeKZg70HbF_LxQ _Kns_8N80EeKZg70HbF_LxQ">
+            <outgoingTransitions xmi:id="_KKopcN80EeKZg70HbF_LxQ" specification="after 500ms" target="_Gp34cN80EeKZg70HbF_LxQ"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_Gp34cN80EeKZg70HbF_LxQ" specification="entry/ TrafficLight.yellow = false;&#xA;PedestrianLight.wait = false" name="YellowOff" incomingTransitions="_KKopcN80EeKZg70HbF_LxQ">
+            <outgoingTransitions xmi:id="_Kns_8N80EeKZg70HbF_LxQ" specification="after  500ms" target="_FkEG8N80EeKZg70HbF_LxQ"/>
+          </vertices>
+        </regions>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_wn6zgNmpEeKW8uGfYfOYLw" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_wn6McNmpEeKW8uGfYfOYLw" measurementUnit="Pixel">
+    <children xmi:id="_wn6zg9mpEeKW8uGfYfOYLw" type="Region" element="_wn6zgtmpEeKW8uGfYfOYLw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_wn7akNmpEeKW8uGfYfOYLw" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_wn7akdmpEeKW8uGfYfOYLw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_wn7aktmpEeKW8uGfYfOYLw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_wn7ak9mpEeKW8uGfYfOYLw" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_Tq57QN8zEeKZg70HbF_LxQ" type="State" element="_TqNXsN8zEeKZg70HbF_LxQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_Tq7wcN8zEeKZg70HbF_LxQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_Tq7wcd8zEeKZg70HbF_LxQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_Tq8XgN8zEeKZg70HbF_LxQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_Tq8Xgd8zEeKZg70HbF_LxQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_Tq8-kN8zEeKZg70HbF_LxQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Tq8-kd8zEeKZg70HbF_LxQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_Tq9loN8zEeKZg70HbF_LxQ" type="StateFigureCompartment">
+            <children xmi:id="_TrDsQN8zEeKZg70HbF_LxQ" type="Region" element="_TqTeUN8zEeKZg70HbF_LxQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_TrETUN8zEeKZg70HbF_LxQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_TrETUd8zEeKZg70HbF_LxQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_TrETUt8zEeKZg70HbF_LxQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_TrETU98zEeKZg70HbF_LxQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_y4ZBUNmpEeKW8uGfYfOYLw" type="State" element="_y4V-ANmpEeKW8uGfYfOYLw">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_y4aPcNmpEeKW8uGfYfOYLw" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_y4aPcdmpEeKW8uGfYfOYLw"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_y4aPctmpEeKW8uGfYfOYLw"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_y4aPc9mpEeKW8uGfYfOYLw" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_y4aPdNmpEeKW8uGfYfOYLw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_y4aPddmpEeKW8uGfYfOYLw"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_y4aPdtmpEeKW8uGfYfOYLw" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_y4ZBUdmpEeKW8uGfYfOYLw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_y4ZBUtmpEeKW8uGfYfOYLw"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_y4aPd9mpEeKW8uGfYfOYLw" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_y4ZBU9mpEeKW8uGfYfOYLw" x="32" y="35" width="198" height="88"/>
+                </children>
+                <children xmi:id="_yAqIENmpEeKW8uGfYfOYLw" type="State" element="_yAoS4NmpEeKW8uGfYfOYLw">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_yArWMNmpEeKW8uGfYfOYLw" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_yArWMdmpEeKW8uGfYfOYLw"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_yArWMtmpEeKW8uGfYfOYLw"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_yArWM9mpEeKW8uGfYfOYLw" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_yArWNNmpEeKW8uGfYfOYLw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yArWNdmpEeKW8uGfYfOYLw"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_yArWNtmpEeKW8uGfYfOYLw" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_yAqvINmpEeKW8uGfYfOYLw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_yAqvIdmpEeKW8uGfYfOYLw"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_yAr9QNmpEeKW8uGfYfOYLw" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yAqvItmpEeKW8uGfYfOYLw" x="22" y="190" width="198" height="88"/>
+                </children>
+                <children xmi:id="_wn8BqdmpEeKW8uGfYfOYLw" type="State" element="_wn8Bp9mpEeKW8uGfYfOYLw">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_wn8osNmpEeKW8uGfYfOYLw" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_wn8osdmpEeKW8uGfYfOYLw"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_wn8ostmpEeKW8uGfYfOYLw"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_wn8os9mpEeKW8uGfYfOYLw" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_wn8otNmpEeKW8uGfYfOYLw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wn9PwNmpEeKW8uGfYfOYLw"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_wn9PwdmpEeKW8uGfYfOYLw" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_wn8BqtmpEeKW8uGfYfOYLw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_wn8Bq9mpEeKW8uGfYfOYLw"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_wn9PwtmpEeKW8uGfYfOYLw" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wn9Pw9mpEeKW8uGfYfOYLw" x="33" y="732" width="196" height="88"/>
+                </children>
+                <children xmi:id="_nd4FQOL-EeKfCYBq4Lxlzw" type="State" element="_nd3eMOL-EeKfCYBq4Lxlzw">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_nd5TYOL-EeKfCYBq4Lxlzw" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_nd5TYeL-EeKfCYBq4Lxlzw"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_nd5TYuL-EeKfCYBq4Lxlzw"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_nd5TY-L-EeKfCYBq4Lxlzw" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_nd56cOL-EeKfCYBq4Lxlzw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_nd56ceL-EeKfCYBq4Lxlzw"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_nd6hgOL-EeKfCYBq4Lxlzw" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_nd4FQeL-EeKfCYBq4Lxlzw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_nd4FQuL-EeKfCYBq4Lxlzw"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_nd6hgeL-EeKfCYBq4Lxlzw" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_nd4FQ-L-EeKfCYBq4Lxlzw" x="28" y="585" width="224" height="101"/>
+                </children>
+                <children xmi:id="_uVtfwOL-EeKfCYBq4Lxlzw" type="State" element="_uVsRoOL-EeKfCYBq4Lxlzw">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_uVtfxOL-EeKfCYBq4Lxlzw" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_uVtfxeL-EeKfCYBq4Lxlzw"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_uVtfxuL-EeKfCYBq4Lxlzw"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_uVuG0OL-EeKfCYBq4Lxlzw" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_uVuG0eL-EeKfCYBq4Lxlzw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_uVuG0uL-EeKfCYBq4Lxlzw"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_uVut4OL-EeKfCYBq4Lxlzw" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_uVtfweL-EeKfCYBq4Lxlzw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_uVtfwuL-EeKfCYBq4Lxlzw"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_uVvU8OL-EeKfCYBq4Lxlzw" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_uVtfw-L-EeKfCYBq4Lxlzw" x="28" y="417" width="224" height="88"/>
+                </children>
+                <children xmi:id="_wDmIcOL_EeKfCYBq4Lxlzw" type="Entry" element="_wDh3AOL_EeKfCYBq4Lxlzw">
+                  <children xmi:id="_wDnWkOL_EeKfCYBq4Lxlzw" type="BorderItemLabelContainer">
+                    <children xsi:type="notation:DecorationNode" xmi:id="_wDnWk-L_EeKfCYBq4Lxlzw" type="BorderItemLabel">
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_wDnWlOL_EeKfCYBq4Lxlzw"/>
+                      <layoutConstraint xsi:type="notation:Location" xmi:id="_wDnWleL_EeKfCYBq4Lxlzw"/>
+                    </children>
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_wDnWkeL_EeKfCYBq4Lxlzw" fontName="Verdana" lineColor="4210752"/>
+                    <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDnWkuL_EeKfCYBq4Lxlzw"/>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_wDmIceL_EeKfCYBq4Lxlzw" fontName="Verdana" lineColor="4210752"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wDmIcuL_EeKfCYBq4Lxlzw" x="322" y="451" width="15" height="15"/>
+                </children>
+                <children xmi:id="_fCjTMOMIEeKfCYBq4Lxlzw" type="State" element="_fCheAOMIEeKfCYBq4Lxlzw">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_fCjTNOMIEeKfCYBq4Lxlzw" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_fCjTNeMIEeKfCYBq4Lxlzw"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_fCjTNuMIEeKfCYBq4Lxlzw"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_fCjTN-MIEeKfCYBq4Lxlzw" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_fCjTOOMIEeKfCYBq4Lxlzw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_fCjTOeMIEeKfCYBq4Lxlzw"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_fCj6QOMIEeKfCYBq4Lxlzw" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_fCjTMeMIEeKfCYBq4Lxlzw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_fCjTMuMIEeKfCYBq4Lxlzw"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_fCj6QeMIEeKfCYBq4Lxlzw" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_fCjTM-MIEeKfCYBq4Lxlzw" x="492" y="702" width="198" height="88"/>
+                </children>
+                <children xmi:id="_jAbdAOMTEeK0GJsVgKoTBg" type="State" element="_jAa18OMTEeK0GJsVgKoTBg">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_jAcEEOMTEeK0GJsVgKoTBg" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_jAcEEeMTEeK0GJsVgKoTBg"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_jAcEEuMTEeK0GJsVgKoTBg"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_jAcEE-MTEeK0GJsVgKoTBg" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_jAcEFOMTEeK0GJsVgKoTBg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jAcEFeMTEeK0GJsVgKoTBg"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_jAcEFuMTEeK0GJsVgKoTBg" type="StateFigureCompartment">
+                    <children xmi:id="_lCfbYOMTEeK0GJsVgKoTBg" type="Region" element="_lCcYEOMTEeK0GJsVgKoTBg">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_lCgpgOMTEeK0GJsVgKoTBg" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_lChQkOMTEeK0GJsVgKoTBg"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_lChQkeMTEeK0GJsVgKoTBg"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_lChQkuMTEeK0GJsVgKoTBg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_nCzGQOMTEeK0GJsVgKoTBg" type="State" element="_nCyfMOMTEeK0GJsVgKoTBg">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_nCztUOMTEeK0GJsVgKoTBg" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_nCztUeMTEeK0GJsVgKoTBg"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_nCztUuMTEeK0GJsVgKoTBg"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_nCztU-MTEeK0GJsVgKoTBg" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_nCztVOMTEeK0GJsVgKoTBg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_nCztVeMTEeK0GJsVgKoTBg"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_nCztVuMTEeK0GJsVgKoTBg" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_nCzGQeMTEeK0GJsVgKoTBg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_nCzGQuMTEeK0GJsVgKoTBg"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_nCztV-MTEeK0GJsVgKoTBg" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_nCzGQ-MTEeK0GJsVgKoTBg" x="48" y="-35"/>
+                        </children>
+                        <children xmi:id="_nkPmcOMTEeK0GJsVgKoTBg" type="State" element="_nkO_YOMTEeK0GJsVgKoTBg">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_nkQNgOMTEeK0GJsVgKoTBg" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_nkQNgeMTEeK0GJsVgKoTBg"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_nkQNguMTEeK0GJsVgKoTBg"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_nkQ0kOMTEeK0GJsVgKoTBg" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_nkQ0keMTEeK0GJsVgKoTBg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_nkQ0kuMTEeK0GJsVgKoTBg"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_nkQ0k-MTEeK0GJsVgKoTBg" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_nkPmceMTEeK0GJsVgKoTBg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_nkPmcuMTEeK0GJsVgKoTBg"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_nkQ0lOMTEeK0GJsVgKoTBg" name="isHorizontal" booleanValue="true"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_nkPmc-MTEeK0GJsVgKoTBg" x="38" y="85"/>
+                        </children>
+                        <children xmi:id="_oSfMgOMTEeK0GJsVgKoTBg" type="Entry" element="_oSd-YOMTEeK0GJsVgKoTBg">
+                          <children xmi:id="_oSfMg-MTEeK0GJsVgKoTBg" type="BorderItemLabelContainer">
+                            <children xsi:type="notation:DecorationNode" xmi:id="_oSfzkOMTEeK0GJsVgKoTBg" type="BorderItemLabel">
+                              <styles xsi:type="notation:ShapeStyle" xmi:id="_oSfzkeMTEeK0GJsVgKoTBg"/>
+                              <layoutConstraint xsi:type="notation:Location" xmi:id="_oSfzkuMTEeK0GJsVgKoTBg"/>
+                            </children>
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_oSfMhOMTEeK0GJsVgKoTBg" fontName="Verdana" lineColor="4210752"/>
+                            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_oSfMheMTEeK0GJsVgKoTBg"/>
+                          </children>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_oSfMgeMTEeK0GJsVgKoTBg" fontName="Verdana" lineColor="4210752"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_oSfMguMTEeK0GJsVgKoTBg" x="143" y="-70"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_lChQk-MTEeK0GJsVgKoTBg"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_lCfbYeMTEeK0GJsVgKoTBg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_lCfbYuMTEeK0GJsVgKoTBg"/>
+                    </children>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_jAbdAeMTEeK0GJsVgKoTBg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_jAbdAuMTEeK0GJsVgKoTBg"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_jAcEF-MTEeK0GJsVgKoTBg" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_jAbdA-MTEeK0GJsVgKoTBg" x="452" y="45" width="408" height="303"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_TrETVN8zEeKZg70HbF_LxQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_TrDsQd8zEeKZg70HbF_LxQ" fontName="Verdana" italic="true" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_TrDsQt8zEeKZg70HbF_LxQ"/>
+            </children>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_Tq57Qd8zEeKZg70HbF_LxQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_Tq57Qt8zEeKZg70HbF_LxQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Tq9lod8zEeKZg70HbF_LxQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Tq57Q98zEeKZg70HbF_LxQ" y="63" width="971" height="1097"/>
+        </children>
+        <children xmi:id="_fMquQN8zEeKZg70HbF_LxQ" type="Entry" element="_fMpgIN8zEeKZg70HbF_LxQ">
+          <children xmi:id="_fMr8YN8zEeKZg70HbF_LxQ" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_fMr8Y98zEeKZg70HbF_LxQ" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_fMr8ZN8zEeKZg70HbF_LxQ"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_fMr8Zd8zEeKZg70HbF_LxQ"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_fMr8Yd8zEeKZg70HbF_LxQ" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_fMr8Yt8zEeKZg70HbF_LxQ"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_fMquQd8zEeKZg70HbF_LxQ" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_fMquQt8zEeKZg70HbF_LxQ" x="334" y="18" width="15" height="15"/>
+        </children>
+        <children xmi:id="_tRLK0N8zEeKZg70HbF_LxQ" type="State" element="_tRFEMN8zEeKZg70HbF_LxQ">
+          <children xsi:type="notation:DecorationNode" xmi:id="_tRLx4N8zEeKZg70HbF_LxQ" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_tRLx4d8zEeKZg70HbF_LxQ"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_tRLx4t8zEeKZg70HbF_LxQ"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_tRLx498zEeKZg70HbF_LxQ" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_tRLx5N8zEeKZg70HbF_LxQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_tRLx5d8zEeKZg70HbF_LxQ"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_tRLx5t8zEeKZg70HbF_LxQ" type="StateFigureCompartment">
+            <children xmi:id="_tROOIN8zEeKZg70HbF_LxQ" type="Region" element="_tRIHgN8zEeKZg70HbF_LxQ">
+              <children xsi:type="notation:DecorationNode" xmi:id="_tROOI98zEeKZg70HbF_LxQ" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_tROOJN8zEeKZg70HbF_LxQ"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_tROOJd8zEeKZg70HbF_LxQ"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_tROOJt8zEeKZg70HbF_LxQ" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_yL1uAN8zEeKZg70HbF_LxQ" type="Entry" element="_yL1G8N8zEeKZg70HbF_LxQ">
+                  <children xmi:id="_yL28IN8zEeKZg70HbF_LxQ" type="BorderItemLabelContainer">
+                    <children xsi:type="notation:DecorationNode" xmi:id="_yL28I98zEeKZg70HbF_LxQ" type="BorderItemLabel">
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_yL28JN8zEeKZg70HbF_LxQ"/>
+                      <layoutConstraint xsi:type="notation:Location" xmi:id="_yL28Jd8zEeKZg70HbF_LxQ"/>
+                    </children>
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_yL28Id8zEeKZg70HbF_LxQ" fontName="Verdana" lineColor="4210752"/>
+                    <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yL28It8zEeKZg70HbF_LxQ"/>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_yL1uAd8zEeKZg70HbF_LxQ" fontName="Verdana" lineColor="4210752"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_yL1uAt8zEeKZg70HbF_LxQ" x="126" y="-23"/>
+                </children>
+                <children xmi:id="_FkF8IN80EeKZg70HbF_LxQ" type="State" element="_FkEG8N80EeKZg70HbF_LxQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_FkGjMN80EeKZg70HbF_LxQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_FkGjMd80EeKZg70HbF_LxQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_FkGjMt80EeKZg70HbF_LxQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_FkGjM980EeKZg70HbF_LxQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_FkGjNN80EeKZg70HbF_LxQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_FkGjNd80EeKZg70HbF_LxQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_FkGjNt80EeKZg70HbF_LxQ" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_FkF8Id80EeKZg70HbF_LxQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_FkF8It80EeKZg70HbF_LxQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_FkGjN980EeKZg70HbF_LxQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_FkF8I980EeKZg70HbF_LxQ" x="28" y="27"/>
+                </children>
+                <children xmi:id="_Gp6UsN80EeKZg70HbF_LxQ" type="State" element="_Gp34cN80EeKZg70HbF_LxQ">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_Gp7i0N80EeKZg70HbF_LxQ" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_Gp7i0d80EeKZg70HbF_LxQ"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_Gp7i0t80EeKZg70HbF_LxQ"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Gp8J4N80EeKZg70HbF_LxQ" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_Gp8J4d80EeKZg70HbF_LxQ" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Gp8J4t80EeKZg70HbF_LxQ"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Gp8w8N80EeKZg70HbF_LxQ" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_Gp6Usd80EeKZg70HbF_LxQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_Gp6Ust80EeKZg70HbF_LxQ"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Gp9YAN80EeKZg70HbF_LxQ" name="isHorizontal" booleanValue="true"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Gp6Us980EeKZg70HbF_LxQ" x="23" y="182"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_tROOJ98zEeKZg70HbF_LxQ"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_tROOId8zEeKZg70HbF_LxQ" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_tROOIt8zEeKZg70HbF_LxQ"/>
+            </children>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_tRLK0d8zEeKZg70HbF_LxQ" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_tRLK0t8zEeKZg70HbF_LxQ"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_tRLx598zEeKZg70HbF_LxQ" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_tRLK098zEeKZg70HbF_LxQ" x="1024" y="348" width="316" height="441"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wn7alNmpEeKW8uGfYfOYLw"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_wn6zhNmpEeKW8uGfYfOYLw" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wn7aldmpEeKW8uGfYfOYLw" x="230" y="10" width="1376" height="1198"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_wn921NmpEeKW8uGfYfOYLw" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_wn921tmpEeKW8uGfYfOYLw" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_wn9219mpEeKW8uGfYfOYLw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_wn922NmpEeKW8uGfYfOYLw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_wn922dmpEeKW8uGfYfOYLw" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wn922tmpEeKW8uGfYfOYLw"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_wn-d4NmpEeKW8uGfYfOYLw" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_wn6zgdmpEeKW8uGfYfOYLw"/>
+    <edges xmi:id="_1ha5ENmpEeKW8uGfYfOYLw" type="Transition" element="_1hZD4NmpEeKW8uGfYfOYLw" source="_yAqIENmpEeKW8uGfYfOYLw" target="_y4ZBUNmpEeKW8uGfYfOYLw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_1hcHMNmpEeKW8uGfYfOYLw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_1hcHMdmpEeKW8uGfYfOYLw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_1hcHMtmpEeKW8uGfYfOYLw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_1hbgINmpEeKW8uGfYfOYLw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_1hbgItmpEeKW8uGfYfOYLw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_1hbgIdmpEeKW8uGfYfOYLw" points="[5, 24, -8, -86]$[61, 118, 48, 8]"/>
+    </edges>
+    <edges xmi:id="_fsVs0N8zEeKZg70HbF_LxQ" type="Transition" element="_fsT3oN8zEeKZg70HbF_LxQ" source="_fMquQN8zEeKZg70HbF_LxQ" target="_Tq57QN8zEeKZg70HbF_LxQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_fsWT4d8zEeKZg70HbF_LxQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_fsWT4t8zEeKZg70HbF_LxQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_fsWT498zEeKZg70HbF_LxQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_fsVs0d8zEeKZg70HbF_LxQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_fsWT4N8zEeKZg70HbF_LxQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_fsVs0t8zEeKZg70HbF_LxQ" points="[0, 7, -4, -68]$[6, 71, 2, -4]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_fsZ-QN8zEeKZg70HbF_LxQ" id="(0.35118110236220473,0.00945179584120983)"/>
+    </edges>
+    <edges xmi:id="_wRGfoN8zEeKZg70HbF_LxQ" type="Transition" element="_wRFRgN8zEeKZg70HbF_LxQ" source="_Tq57QN8zEeKZg70HbF_LxQ" target="_tRLK0N8zEeKZg70HbF_LxQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_wRHGsN8zEeKZg70HbF_LxQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_wRHGsd8zEeKZg70HbF_LxQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_wRHGst8zEeKZg70HbF_LxQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_wRGfod8zEeKZg70HbF_LxQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_wRGfo98zEeKZg70HbF_LxQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_wRGfot8zEeKZg70HbF_LxQ" points="[13, 9, -63, -48]$[71, 53, -5, -4]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_wRIU0N8zEeKZg70HbF_LxQ" id="(0.9874015748031496,0.30812854442344045)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_wRIU0d8zEeKZg70HbF_LxQ" id="(0.015822784810126583,0.12826603325415678)"/>
+    </edges>
+    <edges xmi:id="_w8HykN8zEeKZg70HbF_LxQ" type="Transition" element="_w8GkcN8zEeKZg70HbF_LxQ" source="_tRLK0N8zEeKZg70HbF_LxQ" target="_Tq57QN8zEeKZg70HbF_LxQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_w8IZoN8zEeKZg70HbF_LxQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_w8IZod8zEeKZg70HbF_LxQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_w8IZot8zEeKZg70HbF_LxQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_w8Hykd8zEeKZg70HbF_LxQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_w8Hyk98zEeKZg70HbF_LxQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_w8Hykt8zEeKZg70HbF_LxQ" points="[0, 6, 90, 3]$[-85, -252, 5, -255]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_w8JnwN8zEeKZg70HbF_LxQ" id="(0.005649717514124294,0.608058608058608)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_w8Jnwd8zEeKZg70HbF_LxQ" id="(0.9969104016477858,0.5004557885141294)"/>
+    </edges>
+    <edges xmi:id="_Jz1TAN80EeKZg70HbF_LxQ" type="Transition" element="_Jz0r8N80EeKZg70HbF_LxQ" source="_yL1uAN8zEeKZg70HbF_LxQ" target="_FkF8IN80EeKZg70HbF_LxQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Jz16Et80EeKZg70HbF_LxQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Jz16E980EeKZg70HbF_LxQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Jz16FN80EeKZg70HbF_LxQ" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Jz1TAd80EeKZg70HbF_LxQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Jz16Ed80EeKZg70HbF_LxQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Jz16EN80EeKZg70HbF_LxQ" points="[1, 7, -14, -62]$[9, 43, -6, -26]"/>
+    </edges>
+    <edges xmi:id="_KKp3kN80EeKZg70HbF_LxQ" type="Transition" element="_KKopcN80EeKZg70HbF_LxQ" source="_FkF8IN80EeKZg70HbF_LxQ" target="_Gp6UsN80EeKZg70HbF_LxQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_KKp3lN80EeKZg70HbF_LxQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_KKp3ld80EeKZg70HbF_LxQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_KKp3lt80EeKZg70HbF_LxQ" x="-7" y="36"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_KKp3kd80EeKZg70HbF_LxQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_KKp3k980EeKZg70HbF_LxQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_KKp3kt80EeKZg70HbF_LxQ" points="[-5, 24, 12, -39]$[-14, 63, 3, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_O6Wg4N80EeKZg70HbF_LxQ" id="(0.16666666666666666,0.9423076923076923)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_KKrFsN80EeKZg70HbF_LxQ" id="(0.18686868686868688,0.0)"/>
+    </edges>
+    <edges xmi:id="_Knu1IN80EeKZg70HbF_LxQ" type="Transition" element="_Kns_8N80EeKZg70HbF_LxQ" source="_Gp6UsN80EeKZg70HbF_LxQ" target="_FkF8IN80EeKZg70HbF_LxQ">
+      <children xsi:type="notation:DecorationNode" xmi:id="_KnvcMd80EeKZg70HbF_LxQ" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_KnvcMt80EeKZg70HbF_LxQ"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_KnvcM980EeKZg70HbF_LxQ" x="6" y="39"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Knu1Id80EeKZg70HbF_LxQ" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_KnvcMN80EeKZg70HbF_LxQ" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Knu1It80EeKZg70HbF_LxQ" points="[-1, -3, 25, 78]$[-18, -57, 8, 24]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_MlpTUN80EeKZg70HbF_LxQ" id="(0.8481012658227848,0.07692307692307693)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_OQYW0N80EeKZg70HbF_LxQ" id="(0.8461538461538461,0.9038461538461539)"/>
+    </edges>
+    <edges xmi:id="_2So6EOL-EeKfCYBq4Lxlzw" type="Transition" element="_2Sl2wOL-EeKfCYBq4Lxlzw" source="_wn8BqdmpEeKW8uGfYfOYLw" target="_nd4FQOL-EeKfCYBq4Lxlzw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_2SphIOL-EeKfCYBq4Lxlzw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_2SphIeL-EeKfCYBq4Lxlzw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_2SphIuL-EeKfCYBq4Lxlzw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_2So6EeL-EeKfCYBq4Lxlzw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_2So6E-L-EeKfCYBq4Lxlzw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_2So6EuL-EeKfCYBq4Lxlzw" points="[1, -41, 7, 87]$[1, -85, 7, 43]"/>
+    </edges>
+    <edges xmi:id="_7tLQIOL-EeKfCYBq4Lxlzw" type="Transition" element="_7tKpEOL-EeKfCYBq4Lxlzw" source="_uVtfwOL-EeKfCYBq4Lxlzw" target="_yAqIENmpEeKW8uGfYfOYLw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_7tL3MOL-EeKfCYBq4Lxlzw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_7tL3MeL-EeKfCYBq4Lxlzw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_7tL3MuL-EeKfCYBq4Lxlzw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_7tLQIeL-EeKfCYBq4Lxlzw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_7tLQI-L-EeKfCYBq4Lxlzw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_7tLQIuL-EeKfCYBq4Lxlzw" points="[3, -35, -8, 112]$[14, -165, 3, -18]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_7tNFUOL-EeKfCYBq4Lxlzw" id="(0.5606060606060606,0.22727272727272727)"/>
+    </edges>
+    <edges xmi:id="_mIP5oOL_EeKfCYBq4Lxlzw" type="Transition" element="_mIOEcOL_EeKfCYBq4Lxlzw" source="_nd4FQOL-EeKfCYBq4Lxlzw" target="_uVtfwOL-EeKfCYBq4Lxlzw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_mIRHwOL_EeKfCYBq4Lxlzw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_mIRHweL_EeKfCYBq4Lxlzw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_mIRHwuL_EeKfCYBq4Lxlzw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_mIP5oeL_EeKfCYBq4Lxlzw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_mIQgsOL_EeKfCYBq4Lxlzw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_mIP5ouL_EeKfCYBq4Lxlzw" points="[1, -8, -33, 204]$[27, -170, -7, 42]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_mIVZMOL_EeKfCYBq4Lxlzw" id="(0.4732142857142857,0.039603960396039604)"/>
+    </edges>
+    <edges xmi:id="_6cfO4OL_EeKfCYBq4Lxlzw" type="Transition" element="_6cbkgOL_EeKfCYBq4Lxlzw" source="_wDmIcOL_EeKfCYBq4Lxlzw" target="_uVtfwOL-EeKfCYBq4Lxlzw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_6cgdAOL_EeKfCYBq4Lxlzw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_6cgdAeL_EeKfCYBq4Lxlzw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_6cgdAuL_EeKfCYBq4Lxlzw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_6cfO4eL_EeKfCYBq4Lxlzw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_6cf18OL_EeKfCYBq4Lxlzw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_6cfO4uL_EeKfCYBq4Lxlzw" points="[-7, 0, 90, 8]$[-92, -41, 5, -33]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_6ciSMOL_EeKfCYBq4Lxlzw" id="(0.9330357142857143,0.3977272727272727)"/>
+    </edges>
+    <edges xmi:id="_h6d7gOMIEeKfCYBq4Lxlzw" type="Transition" element="_h6ctYOMIEeKfCYBq4Lxlzw" source="_fCjTMOMIEeKfCYBq4Lxlzw" target="_wn8BqdmpEeKW8uGfYfOYLw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_h6d7hOMIEeKfCYBq4Lxlzw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_h6d7heMIEeKfCYBq4Lxlzw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_h6d7huMIEeKfCYBq4Lxlzw" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_h6d7geMIEeKfCYBq4Lxlzw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_h6d7g-MIEeKfCYBq4Lxlzw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_h6d7guMIEeKfCYBq4Lxlzw" points="[-73, 42, 311, -174]$[-379, 217, 5, 1]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_h6fJoOMIEeKfCYBq4Lxlzw" id="(0.9744897959183674,0.09090909090909091)"/>
+    </edges>
+    <edges xmi:id="_ov3sEOMTEeK0GJsVgKoTBg" type="Transition" element="_ov124OMTEeK0GJsVgKoTBg" source="_oSfMgOMTEeK0GJsVgKoTBg" target="_nCzGQOMTEeK0GJsVgKoTBg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_ov4TIeMTEeK0GJsVgKoTBg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_ov4TIuMTEeK0GJsVgKoTBg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_ov4TI-MTEeK0GJsVgKoTBg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_ov3sEeMTEeK0GJsVgKoTBg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_ov4TIOMTEeK0GJsVgKoTBg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_ov3sEuMTEeK0GJsVgKoTBg" points="[-2, 7, 23, -69]$[-27, 53, -2, -23]"/>
+    </edges>
+    <edges xmi:id="_pRqxkOMTEeK0GJsVgKoTBg" type="Transition" element="_pRo8YOMTEeK0GJsVgKoTBg" source="_nCzGQOMTEeK0GJsVgKoTBg" target="_nkPmcOMTEeK0GJsVgKoTBg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_pRrYoeMTEeK0GJsVgKoTBg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_pRrYouMTEeK0GJsVgKoTBg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_pRrYo-MTEeK0GJsVgKoTBg" y="43"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_pRqxkeMTEeK0GJsVgKoTBg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_pRrYoOMTEeK0GJsVgKoTBg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_pRqxkuMTEeK0GJsVgKoTBg" points="[18, -6, -105, -6]$[123, -23, 0, -23]"/>
+    </edges>
+    <edges xmi:id="_qPLisOMTEeK0GJsVgKoTBg" type="Transition" element="_qPJtgOMTEeK0GJsVgKoTBg" source="_nkPmcOMTEeK0GJsVgKoTBg" target="_nCzGQOMTEeK0GJsVgKoTBg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_qPLitOMTEeK0GJsVgKoTBg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_qPLiteMTEeK0GJsVgKoTBg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_qPLituMTEeK0GJsVgKoTBg" x="-1" y="46"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_qPLiseMTEeK0GJsVgKoTBg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_qPLis-MTEeK0GJsVgKoTBg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_qPLisuMTEeK0GJsVgKoTBg" points="[-17, 2, 106, 2]$[-120, 24, 3, 24]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_4gqrUOMTEeK0GJsVgKoTBg" id="(0.7565217391304347,0.034482758620689655)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_3AUS4OMTEeK0GJsVgKoTBg" id="(0.7017543859649122,0.9310344827586207)"/>
+    </edges>
+    <edges xmi:id="_rW5YsOMTEeK0GJsVgKoTBg" type="Transition" element="_rW4KkOMTEeK0GJsVgKoTBg" source="_y4ZBUNmpEeKW8uGfYfOYLw" target="_jAbdAOMTEeK0GJsVgKoTBg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_rW5YtOMTEeK0GJsVgKoTBg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_rW5YteMTEeK0GJsVgKoTBg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_rW5YtuMTEeK0GJsVgKoTBg" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_rW5YseMTEeK0GJsVgKoTBg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_rW5Ys-MTEeK0GJsVgKoTBg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_rW5YsuMTEeK0GJsVgKoTBg" points="[97, 12, -311, -40]$[410, 29, 2, -23]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_rW708OMTEeK0GJsVgKoTBg" id="(0.3024054982817869,0.11374407582938388)"/>
+    </edges>
+    <edges xmi:id="_sWzWgOMTEeK0GJsVgKoTBg" type="Transition" element="_sWyIYOMTEeK0GJsVgKoTBg" source="_jAbdAOMTEeK0GJsVgKoTBg" target="_fCjTMOMIEeKfCYBq4Lxlzw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_sWz9keMTEeK0GJsVgKoTBg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_sWz9kuMTEeK0GJsVgKoTBg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_sWz9k-MTEeK0GJsVgKoTBg" x="-1" y="-36"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_sWzWgeMTEeK0GJsVgKoTBg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_sWz9kOMTEeK0GJsVgKoTBg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_sWzWguMTEeK0GJsVgKoTBg" points="[0, 10, 5, -400]$[92, 413, 97, 3]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_sW1ywOMTEeK0GJsVgKoTBg" id="(0.375,0.9966996699669967)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_6FEdUOMTEeK0GJsVgKoTBg" id="(0.6111111111111112,0.011363636363636364)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 10 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/model/TrafficLight.sgen

@@ -0,0 +1,10 @@
+GeneratorModel for yakindu::c {
+
+	statechart Trafficlight {
+
+		feature Outlet {
+			targetProject = "org.yakindu.sct.examples.c.arduinoTrafficLight"
+			targetFolder = "src-gen"
+		}
+	}
+}

+ 22 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/src/CycleRunner.cpp

@@ -0,0 +1,22 @@
+#include "include/CycleRunner.h"
+
+CycleRunner::CycleRunner(Trafficlight *sc_handle){
+	this->handle = sc_handle;
+}
+
+/**
+ * The cycleRunner uses timer0 for his cycle-time-calculation (every second)
+ */
+void CycleRunner::start(void){
+	TCCR0B |= (1<<CS02) | (1<<CS00);	// prescaler 1024
+	TCNT0 = 0;	// Startvalue ->1s to overflow
+	TIMSK0 |= (1<<TOIE0);
+}
+
+void CycleRunner::stop(void){
+	TCCR0B = 0;
+}
+
+void CycleRunner::runCycle(void){
+	trafficlight_runCycle(handle);
+}

+ 171 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/src/Main.cpp

@@ -0,0 +1,171 @@
+/*
+ * Main.cpp
+ *
+ *  Created on: 20.06.2013
+ *      Author: scholtyssek
+ */
+
+#include "TrafficlightRequired.h"
+#include "Trafficlight.h"
+#include "include/Timer.h"
+#include "include/CycleRunner.h"
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <util/delay.h>
+#include <stdio.h>
+//#include "Arduino.h"
+
+const uint8_t ledPinTrafficRed = DDB5;      	// the number of the red LED pin
+const uint8_t ledPinTrafficYellow = DDB4;		// the number of the yellow LED pin
+const uint8_t ledPinTrafficGreen = DDB3;		// the number of the green LED pin
+
+const uint8_t ledPinPedestrianRed = DDB1;		// the number of the red LED pin
+const uint8_t ledPinPedestrianGreen = DDB0;		// the number of the green LED pin
+const uint8_t ledPinPedestrianWaitLight = DDB2;
+Timer *timer;
+CycleRunner *cycleRunner;
+volatile uint8_t raiseOnOffEventFlag = 0;
+volatile uint8_t raisePedestrianRequestFlag = 0;
+
+uint8_t counter = 0;
+uint8_t runCycleFlag = 0;
+uint8_t timerRaiseEventFlag = 0;
+Trafficlight handle;
+
+void trafficlight_setTimer(const sc_eventid evid, sc_integer time_ms,
+		const sc_boolean periodic) {
+	timer->trafficlight_setTimer(evid, time_ms, periodic);
+}
+
+void trafficlight_unsetTimer(const sc_eventid evid) {
+	timer->trafficlight_unsetTimer(evid);
+}
+
+void setLight(uint8_t port, uint8_t pin, sc_boolean value) {
+	if (value) {
+		PORTB |= (1 << pin);
+	} else {
+		PORTB &= ~(1 << pin);
+	}
+}
+
+void setTrafficLights() {
+	/*
+	 * pedestrian waiting light
+	 */
+	setLight(PORTB, ledPinPedestrianWaitLight,
+			trafficlightIfacePedestrianLight_get_wait(&handle));
+
+	/**
+	 * Pedestrian light
+	 */
+	setLight(PORTB, ledPinPedestrianGreen,
+			trafficlightIfacePedestrianLight_get_green(&handle));
+	setLight(PORTB, ledPinPedestrianRed,
+			trafficlightIfacePedestrianLight_get_red(&handle));
+
+	/*
+	 *  traffic light
+	 */
+	setLight(PORTB, ledPinTrafficRed,
+			trafficlightIfaceTrafficLight_get_red(&handle));
+	setLight(PORTB, ledPinTrafficYellow,
+			trafficlightIfaceTrafficLight_get_yellow(&handle));
+	setLight(PORTB, ledPinTrafficGreen,
+			trafficlightIfaceTrafficLight_get_green(&handle));
+}
+
+void initializePorts() {
+	/* set output for pin 13, 12, 11 */
+	DDRB |= (1 << ledPinTrafficRed) | (1 << ledPinTrafficYellow)
+			| (1 << ledPinTrafficGreen);
+	DDRB |= (1 << ledPinPedestrianRed) | (1 << ledPinPedestrianGreen);
+	DDRB |= (1 << ledPinPedestrianWaitLight);
+	PORTB = 0x00;
+}
+
+void initializeInterrupts() {
+	// onOff request
+	EICRA |= (1 << ISC01);
+	EIMSK |= (1 << INT0);
+	DDRD &= ~(1 << DDD2);
+	PORTD |= (1 << DDD2);
+
+	// pedestrian request
+	EICRA |= (1 << ISC11);
+	EIMSK |= (1 << INT1);
+	DDRD &= ~(1 << DDD3);
+	PORTD |= (1 << DDD3);
+	sei();
+}
+
+void initialize() {
+	initializePorts();
+	initializeInterrupts();
+}
+
+int main(void) {
+	initialize();
+
+	timer = new Timer(&handle);
+	trafficlight_init(&handle);
+	trafficlight_enter(&handle);
+	cycleRunner = new CycleRunner(&handle);
+	cycleRunner->start();	// the cyclerunner checks for state transitions
+
+	while (1) {
+		setTrafficLights();
+
+		if (runCycleFlag) {
+			runCycleFlag = 0;
+			cycleRunner->runCycle();
+		}
+
+		if (timerRaiseEventFlag) {
+			timerRaiseEventFlag = 0;
+			timer->raiseTimeEvent();
+		}
+
+		if (raiseOnOffEventFlag) {
+			raiseOnOffEventFlag = 0;
+			trafficlightIface_raise_onOff(&handle);
+		}
+
+		if (raisePedestrianRequestFlag) {
+			raisePedestrianRequestFlag = 0;
+			trafficlightIface_raise_pedestrianRequest(&handle);
+		}
+	}
+	return 0;
+}
+
+/*
+ * the cycleRunner is triggered by this timerinterrupt
+ */ISR(TIMER0_OVF_vect) {
+	runCycleFlag = 1;
+}
+
+// Timer ISR that triggers checking for expired time events
+ISR(TIMER1_OVF_vect) {
+//	TCNT1 = 59286;	// startvalue for 100ms
+	TCNT1 = 64911;	// startvalue for 10ms
+
+	if ((counter++) >= timer->getTimerOverflowCount()) {
+		counter = 0;
+		timerRaiseEventFlag = 1;
+	}
+}
+
+/**
+ * OnOff switch for the trafficLight
+ */
+ISR(INT0_vect) {
+	raiseOnOffEventFlag = 1;
+}
+
+/**
+ * pedestrian request triggers INT1 interrupt
+ */
+ISR(INT1_vect) {
+	raisePedestrianRequestFlag = 1;
+}

+ 19 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/src/TimeEvent.cpp

@@ -0,0 +1,19 @@
+/*
+ * TimeEvent.cpp
+ *
+ *  Created on: 10.07.2013
+ *      Author: scholtyssek
+ */
+#include "include/TimeEvent.h"
+
+	TimeEvent::TimeEvent(){
+
+	}
+	TimeEvent::TimeEvent(sc_eventid eventId, sc_integer timeMs, sc_boolean periodic){
+		this->eventId = eventId;
+		this->timeMs = timeMs;
+		this->periodic = periodic;
+		this->timerOverflowCount = 0;
+	}
+
+

+ 99 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/src/Timer.cpp

@@ -0,0 +1,99 @@
+/*
+ * Timer.c
+ *
+ *  Created on: 20.06.2013
+ *      Author: scholtyssek
+ */
+
+#include "include/Timer.h"
+#include <stdio.h>
+
+Timer::Timer(Trafficlight *sc_handle) {
+	this->lastEventId = NULL;
+	this->timeMs = 0;
+	this->eventId = NULL;
+	this->periodic = bool_false;
+	this->sc_handle = sc_handle;
+	for(int i=0;i<TIMER_COUNT;i++){
+		events[i] = NULL;
+	}
+	initTimer();
+}
+
+void Timer::trafficlight_setTimer(const sc_eventid evid,
+		const sc_integer time_ms, const sc_boolean periodic) {
+	this->eventId = evid;
+	this->timeMs = time_ms;
+	this->periodic = periodic;
+
+
+	TimeEvent *event = new TimeEvent(evid, time_ms, periodic);
+
+	for(int i=0;i<TIMER_COUNT;i++){
+		if(events[i] == NULL){
+			events[i] = event;
+			break;
+		}
+	}
+}
+
+/**
+ * Timer1 will be used for the events
+ */
+void Timer::initTimer() {
+	//	TCCR1B = (1 << CS12) | (1 << CS10); // Prescaler 1024
+	//  TCNT1 = 2^16 - ((timeMs / 1000) * 16 * 10000000 /1024)
+	//	TCNT1 = 65536 - ((timeMs / 1000) * F_CPU / 1024 );
+
+
+	// 49911 corresponds to 1s
+	//TCNT1 = 49911;	// Startvalue for the 16-Bit Timer with CTC.
+					//	comparevalue = 2^16 - (triggerTime * quartzfrequency / Prescaler)
+					//	comparevalue = 2^16 - (1s * 16*10^6 Hz / 1024) ) = 49911
+
+	TCCR1B |= (1<<CS12); // Prescaler 256
+//	TCNT1 = 59286; 	// 	comparevalue = 2^16 - (0.1s * 16*10^6 Hz / 256) ) = 59286
+//					// corresponds 99,9999ms, but here is an error because the calculated counter startvalue has to be integer
+//	this->overflowCount = (timeMs / 100);
+	TCNT1 = 64911; // comparevalue for 10ms
+	this->overflowCount = (timeMs / 10);
+
+	TIMSK1 |= (1 << TOIE1);	// overflow interrupt
+}
+
+/**
+ * Returns the counted overflows for this counter. An overflow is released every 100ms.
+ */
+sc_integer Timer::getTimerOverflowCount(){
+	return this->overflowCount;
+}
+
+void Timer::trafficlight_unsetTimer(const sc_eventid evid) {
+//	TCCR1B = 0; // turn off the timer
+	for(int i=0;i<TIMER_COUNT;i++){
+		if(events[i]->getEventId() == evid){
+			delete events[i];
+			events[i] = NULL;
+			break;
+		}
+	}
+}
+
+
+void Timer::raiseTimeEvent() {
+	for(int i=0;i<TIMER_COUNT;i++){
+		if(events[i] == NULL)
+			continue;
+
+		if((events[i]->getTimeMs()/10) <= events[i]->getTimerOverflowCount()){
+			trafficlight_raiseTimeEvent(sc_handle, events[i]->getEventId());
+			events[i]->setTimerOverflowCount(0);
+		}
+
+		events[i]->setTimerOverflowCount(events[i]->getTimerOverflowCount() + 1);
+	}
+}
+
+Timer::~Timer() {
+
+}

+ 25 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/src/include/CycleRunner.h

@@ -0,0 +1,25 @@
+/*
+ * CycleRunner.h
+ *
+ *  Created on: 25.06.2013
+ *      Author: scholtyssek
+ */
+
+#ifndef CYCLERUNNER_H_
+#define CYCLERUNNER_H_
+
+#include "sc_types.h"
+#include <avr/interrupt.h>
+#include "../src-gen/Trafficlight.h"
+
+class CycleRunner{
+	public:
+		CycleRunner(Trafficlight *sc_handle);
+		void start(void);
+		void stop(void);
+		void runCycle(void);
+
+	private:
+		Trafficlight *handle;
+};
+#endif /* CYCLERUNNER_H_ */

+ 46 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/src/include/TimeEvent.h

@@ -0,0 +1,46 @@
+/*
+ * TimeEvent.h
+ *
+ *  Created on: 10.07.2013
+ *      Author: scholtyssek
+ */
+
+#ifndef TIMEEVENT_H_
+#define TIMEEVENT_H_
+
+#include "sc_types.h"
+
+class TimeEvent{
+	public:
+		TimeEvent();
+		TimeEvent(sc_eventid eventId, sc_integer timeMs, sc_boolean periodic);
+
+		sc_eventid getEventId() const {
+			return eventId;
+		}
+
+		bool isPeriodic() const {
+			return periodic;
+		}
+
+		sc_integer getTimeMs() const {
+			return timeMs;
+		}
+
+		sc_integer getTimerOverflowCount() const {
+			return timerOverflowCount;
+		}
+
+		void setTimerOverflowCount(sc_integer timerOverflowCount) {
+			this->timerOverflowCount = timerOverflowCount;
+		}
+
+	private:
+		sc_eventid eventId;
+		sc_integer timeMs;
+		sc_integer timerOverflowCount;
+		sc_boolean periodic;
+	};
+
+
+#endif /* TIMEEVENT_H_ */

+ 42 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLight/src/include/Timer.h

@@ -0,0 +1,42 @@
+/*
+ * T.h
+ *
+ *  Created on: 24.06.2013
+ *      Author: scholtyssek
+ */
+
+#ifndef T_H_
+#define T_H_
+
+#include "sc_types.h"
+#include "TimeEvent.h"
+#include "../src-gen/Trafficlight.h"
+#include "avr/interrupt.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+
+class Timer{
+	public:
+		Timer();
+		Timer(Trafficlight *sc_handle);
+		void trafficlight_setTimer(const sc_eventid evid,
+				const sc_integer time_ms, const sc_boolean periodic);
+		void trafficlight_unsetTimer(const sc_eventid evid);
+		void initTimer();
+		void raiseTimeEvent();
+		sc_integer getTimerOverflowCount();
+		static const sc_integer TIMER_COUNT = 5;
+	private:
+		~Timer();
+		sc_eventid eventId;
+		sc_eventid lastEventId;
+		sc_integer timeMs;
+		sc_boolean periodic;
+		Trafficlight *sc_handle;
+		volatile uint16_t overflowCount;
+		TimeEvent* events[TIMER_COUNT]; // maximum 5 parallel TimeEvents
+	};
+
+
+#endif /* T_H_ */