Selaa lähdekoodia

Example project with arduino lib created

scholtyssek86@googlemail.com 11 vuotta sitten
vanhempi
commit
17815bac5b

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 252 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/.cproject


+ 41 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/.project

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.yakindu.sct.examples.c.arduinoTrafficLightLib</name>
+	<comment></comment>
+	<projects>
+		<project>ArduinoCore</project>
+	</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.arduinoTrafficLightLib/.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.1
+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.arduinoTrafficLightLib/.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.arduinoTrafficLightLib/.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.arduinoTrafficLightLib/.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.arduinoTrafficLightLib/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.arduinoTrafficLightLib/model/TrafficLight.sgen

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

+ 32 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/src/arduino.h

@@ -0,0 +1,32 @@
+extern "C" void __cxa_pure_virtual()
+{
+  cli();
+  for (;;);
+}
+
+__extension__ typedef int __guard __attribute__((mode (__DI__)));
+
+void * operator new(size_t size)
+{
+  return malloc(size);
+}
+
+void operator delete(void * ptr)
+{
+  free(ptr);
+}
+
+void * operator new[](size_t size)
+{
+    return malloc(size);
+}
+
+void operator delete[](void * ptr)
+{
+	if (ptr)
+		free(ptr);
+}
+
+int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}
+void __cxa_guard_release (__guard *g) {*(char *)g = 1;}
+void __cxa_guard_abort (__guard *) {}

+ 4 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/src/license

@@ -0,0 +1,4 @@
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html

+ 169 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/src/main.c

@@ -0,0 +1,169 @@
+/*
+ * TrafficLight example for YAKINDU SCT
+ *
+ * based on official example: org.yakindu.sct.examples.c.arduinoTrafficLight
+ *
+ * Changes:
+ * - use the Arduino core library for pin and time handling
+ * - enable debugging with printf() (see uart.c; it uses the Arduino HardwareSerial)
+ * - new implementation for timers based on Arduinos millis() function -> no extra timer is used
+ * - call runCylce in every iteration of the main loop
+ *
+ * Author:
+ * Axel Utech <axel.utech@gmail.com>
+ *
+ * Notes:
+ * Arduino Core library is from https://github.com/allgood38/Arduino-Blink-Eclipse-Project
+ * notes about the original example:
+ * 	http://scholtyssek.blogspot.de/2013/10/yakindu-statechart-tools-arduino.html
+ */
+
+#include <stdio.h>
+#include <wiring.h>
+
+#include "statetimer.h"
+#include "uart.h"
+
+#include "sc_types.h"
+#include "TrafficlightRequired.h"
+#include "Trafficlight.h"
+
+const uint8_t ledPinTrafficRed = 13;      	// the number of the red LED pin
+const uint8_t ledPinTrafficYellow = 12;		// the number of the yellow LED pin
+const uint8_t ledPinTrafficGreen = 11;		// the number of the green LED pin
+
+const uint8_t ledPinPedestrianRed = 9;		// the number of the red LED pin
+const uint8_t ledPinPedestrianGreen = 8;	// the number of the green LED pin
+const uint8_t ledPinPedestrianWaitLight = 10;
+
+const uint8_t btnOnOff = 3;
+/*
+ * Interrupt ID for the pin
+ * see http://arduino.cc/en/Reference/AttachInterrupt
+ */
+const uint8_t btnOnOffIsrID = 1;
+
+const uint8_t btnPedestrian = 2;
+const uint8_t btnPedestrianIsrId = 0;
+
+volatile uint8_t raiseOnOffEventFlag = 0;
+volatile uint8_t raisePedestrianRequestFlag = 0;
+
+Trafficlight handle;
+
+// helper to call setTimer()
+void trafficlight_setTimer(const sc_eventid evid, sc_integer time_ms,
+		const sc_boolean periodic) {
+	printf("set timer id: %p timeout: %i periodic: %i\n", evid, time_ms, periodic);
+
+	setTimer(&handle, evid, time_ms, periodic,
+			(raiseEventCallback_t)trafficlight_raiseTimeEvent);
+}
+
+void trafficlight_unsetTimer(const sc_eventid evid) {
+	printf("unset timer id: %p\n", evid);
+	unsetTimer(evid);
+}
+
+static void setTrafficLights() {
+	/*
+	 * pedestrian waiting light
+	 */
+	digitalWrite(ledPinPedestrianWaitLight,
+			trafficlightIfacePedestrianLight_get_wait(&handle));
+
+	/**
+	 * Pedestrian light
+	 */
+	digitalWrite(ledPinPedestrianGreen,
+			trafficlightIfacePedestrianLight_get_green(&handle));
+	digitalWrite(ledPinPedestrianRed,
+			trafficlightIfacePedestrianLight_get_red(&handle));
+
+	/*
+	 *  traffic light
+	 */
+	digitalWrite(ledPinTrafficRed,
+			trafficlightIfaceTrafficLight_get_red(&handle));
+	digitalWrite(ledPinTrafficYellow,
+			trafficlightIfaceTrafficLight_get_yellow(&handle));
+	digitalWrite(ledPinTrafficGreen,
+			trafficlightIfaceTrafficLight_get_green(&handle));
+}
+
+static void btnOnOffISR(void) {
+	raiseOnOffEventFlag = 1;
+}
+
+static void btnPedestrianISR(void) {
+	raisePedestrianRequestFlag = 1;
+}
+
+int main(void) {
+	init();
+
+	setup();
+
+	for (;;)
+		loop();
+
+	return 0;
+}
+
+
+void setup() {
+	uartInit(9600);
+	printf("Setup begin!\n");
+
+	pinMode(ledPinPedestrianWaitLight, OUTPUT);
+	pinMode(ledPinPedestrianGreen, OUTPUT);
+	pinMode(ledPinPedestrianRed, OUTPUT);
+	pinMode(ledPinTrafficRed, OUTPUT);
+	pinMode(ledPinTrafficYellow, OUTPUT);
+	pinMode(ledPinTrafficGreen, OUTPUT);
+
+	pinMode(btnOnOff, INPUT);
+	digitalWrite(btnOnOff, HIGH);
+	attachInterrupt(btnOnOffIsrID, btnOnOffISR, FALLING);
+
+	pinMode(btnPedestrian, INPUT);
+	digitalWrite(btnPedestrian, HIGH);
+	attachInterrupt(btnPedestrianIsrId, btnPedestrianISR, FALLING);
+
+	initTimers();
+
+	trafficlight_init(&handle);
+	trafficlight_enter(&handle);
+
+	printf("Setup ready!\n");
+}
+
+static void checkTimersWrapper(void){
+	static unsigned long lastCallTime = 0;
+	unsigned long now = millis();
+
+	int deltaT_ms = now - lastCallTime;
+	lastCallTime = now;
+
+	if(deltaT_ms)
+		checkTimers(deltaT_ms);
+}
+
+void loop() {
+	if(raiseOnOffEventFlag){
+		raiseOnOffEventFlag = 0;
+		printf("Raise onOff\n");
+		trafficlightIface_raise_onOff(&handle);
+	}
+	if(raisePedestrianRequestFlag){
+		raisePedestrianRequestFlag = 0;
+		printf("raise pedestrian request\n");
+		trafficlightIface_raise_pedestrianRequest(&handle);
+	}
+
+	checkTimersWrapper();
+
+	trafficlight_runCycle(&handle);
+	setTrafficLights();
+}
+

+ 129 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/src/statetimer.c

@@ -0,0 +1,129 @@
+/*
+ * Timer API for YAKINDU SCT
+ *
+ *
+ * Usage:
+ * The state machine calls *_setTimer() which must be provided by the main code.
+ * The code calls setTimer() to put the timer into the queue.
+ *
+ * The mainloop calls checkTimers() regularly and provides the time in milliseconds since
+ * the last call. If a timer has a timeout a callback function is raised. This callback can
+ * be a function of the state machine (*_raiseTimeEvent()).
+ *
+ * Author:
+ * Axel Utech <axel.utech@gmail.com>
+ *
+ */
+
+#include "sc_types.h"
+#include "statetimer.h"
+
+// internal representation for one timer
+struct timer {
+	// data from statemachines
+	void* statemachineHandle;
+	sc_eventid evid;
+	sc_integer time_ms;
+	sc_boolean periodic;
+	// pointer to callback function for raising the event
+	raiseEventCallback_t callback_fun;
+
+	// internal values
+	// current timeout time for the event
+	sc_integer timeout_ms;
+	// 1 if this timer is currently in use
+	uint8_t in_use;
+};
+
+#define NUM_MAX_TIMERS 10
+static struct timer timers[NUM_MAX_TIMERS];
+
+// must be called before all other timer functions
+void initTimers(void) {
+	uint8_t i;
+	for (i = 0; i < NUM_MAX_TIMERS; ++i) {
+		timers[i].in_use = 0;
+	}
+}
+
+// calculate new timeout for a timer
+static void setTimeout(struct timer *tim) {
+	tim->timeout_ms = tim->time_ms;
+	tim->in_use = 1;
+}
+
+/**
+ * Queue a timer event
+ *
+ * \param handle	Statemachine handle for the callback
+ * \param evid 		Event-ID for the timer
+ * \param time_ms 	timout time for the timer
+ * \param periodic	true if the timer should be repeated
+ * \param callback	Pointer to a callback functions with is called after each timeout
+ *
+ */
+void setTimer(void* handle, const sc_eventid evid, const sc_integer time_ms,
+		const sc_boolean periodic, raiseEventCallback_t callback) {
+	uint8_t i;
+	for (i = 0; i < NUM_MAX_TIMERS; ++i) {
+		if (timers[i].in_use)
+			continue;
+
+		timers[i].statemachineHandle = handle;
+		timers[i].evid = evid;
+		timers[i].time_ms = time_ms;
+		timers[i].periodic = periodic;
+		timers[i].callback_fun = callback;
+		setTimeout(&timers[i]);
+		return;
+	}
+	//error: no free timer
+}
+
+/**
+ * Dequeue a timer
+ *
+ * \param evid 		Event-ID for the timer
+ */
+void unsetTimer(const sc_eventid evid) {
+	int8_t i;
+	for (i = 0; i < NUM_MAX_TIMERS; ++i) {
+		if (timers[i].evid != evid || !(timers[i].in_use))
+			continue;
+		timers[i].in_use = 0;
+	}
+}
+
+// helper: called if the timer timed out
+static void dispatchTimerEvent(struct timer *tim) {
+	if (tim->callback_fun)
+		tim->callback_fun(tim->statemachineHandle, tim->evid);
+
+	if (tim->periodic)
+		setTimeout(tim);
+	else
+		tim->in_use = 0;
+}
+
+/**
+ * Checks if a timer has a timeout.
+ *
+ * \param deltaT_ms Time in milliseconds since the last call.
+ */
+void checkTimers(sc_integer deltaT_ms) {
+	uint8_t i;
+
+	if(deltaT_ms <= 0)
+		return;
+
+	for (i = 0; i < NUM_MAX_TIMERS; ++i) {
+		if (!timers[i].in_use)
+			continue;
+
+		timers[i].timeout_ms -= deltaT_ms;
+		if (timers[i].timeout_ms > 0)
+			continue;
+
+		dispatchTimerEvent(&timers[i]);
+	}
+}

+ 26 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/src/statetimer.h

@@ -0,0 +1,26 @@
+
+#ifndef STATETIMER_H_
+#define STATETIMER_H_
+
+#include "sc_types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void (*raiseEventCallback_t)(void* handle, sc_eventid evid);
+
+void setTimer(void* handle, const sc_eventid evid, const sc_integer time_ms,
+		const sc_boolean periodic, raiseEventCallback_t callback);
+
+void unsetTimer(const sc_eventid evid);
+
+void checkTimers(sc_integer deltaT_ms);
+void initTimers(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STATETIMER_H_ */

+ 42 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/src/uart.cpp

@@ -0,0 +1,42 @@
+/*
+ * Wrapper to make printf() usable with the Arduino Serial implementation
+ *
+ * Author:
+ * Axel Utech <axel.utech@gmail.com>
+ *
+ */
+
+#include <stdio.h>
+//#include "arduino.h"
+#include <wiring.h>
+#include <HardwareSerial.h>
+
+static FILE uartout = {0};
+
+// create a output function
+// This works because Serial.write, although of
+// type virtual, already exists.
+static int uart_putchar(char c, FILE *stream) {
+	Serial.write(c);
+	return 0;
+}
+
+/**
+ * sets up the necessary pointers
+ *
+ * \warning Must be called before all printf statements!
+ *
+ * \param baud Baudrate for the communication (see Serial.begin())
+ */
+extern "C" void uartInit(long baud) {
+	// Start the UART
+	Serial.begin(baud);
+
+	// fill in the UART file descriptor with pointer to writer.
+	fdev_setup_stream(&uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE);
+//	fdev_setup_stream(&uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE);
+
+	// The uart is the standard output device STDOUT.
+	stdout = &uartout;
+}
+

+ 20 - 0
examples/org.yakindu.sct.examples.c.arduinoTrafficLightLib/src/uart.h

@@ -0,0 +1,20 @@
+
+#ifndef UART_H_
+#define UART_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <avr/pgmspace.h>
+
+// Macro to send strings stored in program memory space
+#define printf(format, ...) printf_P(PSTR(format), ## __VA_ARGS__)
+
+void uartInit(long baud);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* UART_H_ */