support event stimuli without enabling mode list, support InterProcessStimulus with enabling mode list, revised CustomEventTriggerTransformer (consolidation with changes made my interProcessStimulus)

Signed-off-by: Sebastain Reiser <sebastian.reiser@de.bosch.com>
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/stimuli/StimuliTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/stimuli/StimuliTransformer.xtend
index d7962e4..dbf3e6a 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/stimuli/StimuliTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/stimuli/StimuliTransformer.xtend
@@ -30,6 +30,9 @@
 import org.eclipse.app4mc.amalthea.model.InterProcessStimulus
 import templates.m2m.utils.CounterUtils
 import org.eclipse.app4mc.amalthea.model.EventStimulus
+import templates.m2m.sw.ModeValueDisjunctionTransformer
+import templates.m2m.sw.CallGraphTransformer
+import com.inchron.realtime.root.model.ActivationItem
 
 @Singleton
 class StimuliTransformer extends AbstractAmaltheaInchronTransformer {
@@ -38,6 +41,8 @@
 
 	@Inject TimeTransformer timeUtilsTransformer
 	@Inject FrequencyDomainTransformer frequencyDomainTransformer
+	@Inject ModeValueDisjunctionTransformer modeValueDisjunctionTransformer
+	@Inject CallGraphTransformer callGraphTransformer
 
 	
 	def create inchronStimulationFactory.createStimulationScenario createStimulationScenario(StimuliModel amltStimuliModel, Model inchronModel){
@@ -64,6 +69,10 @@
 		inchronStimulationScenario.generators.add(inchronRandomStimuliGenerator)
 	}
 	
+	def create inchronModelFactory.createActivationItem createActivationItem(Stimulus stimulus){
+		
+	}
+	
 	
 	def create inchronStimulationFactory.createRandomStimuliGenerator createRandomStimuliGenerator(
 		PeriodicStimulus amltStimulus) {
@@ -81,9 +90,9 @@
 		inchronCallGraph.graphEntries.add(inchronCallSequence)
 		
 		var inchronActivationItem = inchronModelFactory.createActivationItem
-		inchronActivationItem.name = "ActivationItem"
-		inchronCallSequence.calls.add(inchronActivationItem)
+		inchronActivationItem.name = "ActivationItem_"+ amltStimulus.name
 		inchronActivationItem.connection = inchronActivationConnection
+		inchronCallSequence.calls.add(inchronActivationItem)
 		it.targets = inchronCallGraph
 
 		// TODO: check if the right frequency can be fetched (below solution is good at present. In long run clarify this topic in detail)
@@ -131,4 +140,51 @@
 		inchronActivationConnection.activations.add(it)
 	}
 	
-}
+	def create inchronModelFactory.createFunction createDummyFunction(Stimulus amltStimulus, ActivationItem inchronActivationItem){
+		it.name="Dummy_"+ getStimulusName(amltStimulus)
+ 		val inchronCallGraph=inchronModelFactory.createCallGraph	 
+ 		it.callGraph=inchronCallGraph
+ 		
+ 		var amltCondition= getEnableValueList(amltStimulus)
+		if(amltCondition!==null){
+			val inchronModeSwitch = inchronModelFactory.createModeSwitch
+			inchronModeSwitch.name ="EventStimulusCondition"
+			val inchronModeSwitchEntry=inchronModelFactory.createModeSwitchEntry
+
+			//	Adding entry with condition
+ 			inchronModeSwitch.entries.add(inchronModeSwitchEntry)
+			var inchronConditon=modeValueDisjunctionTransformer.createModeCondition(amltCondition)
+			inchronModeSwitchEntry.condition = inchronConditon
+			
+			//add activation item to call sequence within mode switch's call sequence
+			val inchronCallSequence_ActivationItem=inchronModelFactory.createCallSequence
+			inchronCallSequence_ActivationItem.calls.add(inchronActivationItem)
+			it.callGraph.graphEntries.add(inchronCallSequence_ActivationItem)
+			inchronModeSwitchEntry.graphEntries.add(inchronCallSequence_ActivationItem)
+							
+			//add ModeCondition to the Inchron Model: at root --> global condition
+			if(inchronConditon.eContainer===null){
+				getInchronRoot().globalModeConditions.add(inchronConditon)
+			}
+			//add mode evaluation item before mode switch
+			callGraphTransformer.createDummyCallSequenceWithModeSwitchEvaluation(inchronModeSwitch, it.callGraph);
+			
+			//add mode switch to dummy function call graph
+		 	it.callGraph.graphEntries.add(inchronModeSwitch)
+			
+		} else {
+			val inchronCallSequence_ActivationItem=inchronModelFactory.createCallSequence
+			it.callGraph.graphEntries.add(inchronCallSequence_ActivationItem)	
+		}
+ 	}
+	 
+	 private def dispatch getStimulusName(Stimulus stimulus){return "Stimulus"}
+	 private def dispatch getStimulusName(EventStimulus stimulus){return stimulus.name}
+	 private def dispatch getStimulusName(InterProcessStimulus stimulus){return stimulus.name}
+	 
+	 
+	 private def dispatch getEnableValueList(Stimulus stimulus){return null}
+	 private def dispatch getEnableValueList(EventStimulus stimulus){return stimulus.enablingModeValueList}
+	 private def dispatch getEnableValueList(InterProcessStimulus stimulus){return stimulus.enablingModeValueList}
+
+}
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/CallGraphTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/CallGraphTransformer.xtend
index 02485c8..c623c8a 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/CallGraphTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/CallGraphTransformer.xtend
@@ -29,54 +29,49 @@
 	
 	@Inject GraphEntryBaseTransformer graphEntryBaseTransformer
 	
-		def void transformCallGraph(CallGraph amltGraph, Process amltTask,
+	def void transformCallGraph(CallGraph amltGraph, Process amltTask,
 		Map<Process,  com.inchron.realtime.root.model.Process> amltProcess_inchronProcessMap) {
 		
 		val com.inchron.realtime.root.model.Process inchronProcess = amltProcess_inchronProcessMap.get(amltTask)
 
-
 		val inchronCallGraph = inchronModelFactory.createCallGraph
 		inchronProcess.callGraph = inchronCallGraph
 		
-		amltGraph?.graphEntries?.forEach[amltGraphEntry|
-				
-				var inchronGraphEntryBase=	graphEntryBaseTransformer.transformGraphEntryBase(amltGraphEntry, amltTask,
-					amltProcess_inchronProcessMap)
-					
-					/*
-					 * Based on the requirement from Inchron to use the latest Mode values:
-					 * -- it is required to create a "Dummy CallSequence" and associate ModeConditionEvaluation of each ModeSwitchEntry object 
-					 */ 
-					 if(inchronGraphEntryBase instanceof ModeSwitch){
-						createDummyCallSequenceWitchModeSwitchEvaluation(inchronGraphEntryBase, inchronCallGraph)
-					 }
-					//Adding ModeSwitch
-					inchronCallGraph.graphEntries.add(inchronGraphEntryBase)
-		]
-
+		amltGraph?.graphEntries?.forEach[amltGraphEntry|{
+			var inchronGraphEntryBase=	graphEntryBaseTransformer.transformGraphEntryBase(amltGraphEntry, amltTask,
+				amltProcess_inchronProcessMap)
+				/*
+				 * Based on the requirement from Inchron to use the latest Mode values:
+				 * -- it is required to create a "Dummy CallSequence" and associate ModeConditionEvaluation of each ModeSwitchEntry object 
+				 */ 
+				 if(inchronGraphEntryBase instanceof ModeSwitch){
+					createDummyCallSequenceWithModeSwitchEvaluation(inchronGraphEntryBase, inchronCallGraph)
+				 }
+				//Adding ModeSwitch
+				inchronCallGraph.graphEntries.add(inchronGraphEntryBase)
+		}]		
+	}
 		
-		}
-		
-		public def void createDummyCallSequenceWitchModeSwitchEvaluation(ModeSwitch inchronModeSwitch, com.inchron.realtime.root.model.CallGraph inchronCallGraph) {
+	public def void createDummyCallSequenceWithModeSwitchEvaluation(ModeSwitch inchronModeSwitch, com.inchron.realtime.root.model.CallGraph inchronCallGraph) {
 
-				var dummyCallSequence=inchronModelFactory.createCallSequence
-				dummyCallSequence.name = "CallSequence_For_ModeConditionEvaluation"
+			var dummyCallSequence=inchronModelFactory.createCallSequence
+			dummyCallSequence.name = "CallSequence_For_ModeConditionEvaluation"
+			
+			val dummyCallSequenceItems=new ArrayList
+			
+			inchronModeSwitch.entries.forEach[inchronModeSwitchEntry|
+				val inchronModeCondition=inchronModeSwitchEntry.condition
 				
-				val dummyCallSequenceItems=new ArrayList
-				
-				inchronModeSwitch.entries.forEach[inchronModeSwitchEntry|
-					val inchronModeCondition=inchronModeSwitchEntry.condition
+				var inchronModeConditionEvaluation=inchronModelFactory.createModeConditionEvaluation
+				inchronModeConditionEvaluation.condition=inchronModeCondition
+				dummyCallSequenceItems.add(inchronModeConditionEvaluation)
+			]
+			
+			if(dummyCallSequenceItems.size>0){
+				dummyCallSequence.calls.addAll(dummyCallSequenceItems)
+				//Adding DummyCallSequence containing ModeConditionEvaluation
+				inchronCallGraph.graphEntries.add(dummyCallSequence);
+			}
 					
-					var inchronModeConditionEvaluation=inchronModelFactory.createModeConditionEvaluation
-					inchronModeConditionEvaluation.condition=inchronModeCondition
-					dummyCallSequenceItems.add(inchronModeConditionEvaluation)
-				]
-				
-				if(dummyCallSequenceItems.size>0){
-					dummyCallSequence.calls.addAll(dummyCallSequenceItems)
-					//Adding DummyCallSequence containing ModeConditionEvaluation
-					inchronCallGraph.graphEntries.add(dummyCallSequence);
-				}
-						
-		}
+	}
 }
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/CustomEventTriggerTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/CustomEventTriggerTransformer.xtend
deleted file mode 100644
index f3c93c0..0000000
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/CustomEventTriggerTransformer.xtend
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018-2019 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package templates.m2m.sw
-
-import com.google.inject.Inject
-import com.inchron.realtime.root.model.ActivationConnection
-import com.inchron.realtime.root.model.Component
-import com.inchron.realtime.root.model.FunctionCall
-import java.util.LinkedHashMap
-import org.eclipse.app4mc.amalthea.model.CustomEventTrigger
-import org.eclipse.app4mc.amalthea.model.EventStimulus
-import org.eclipse.app4mc.amalthea.model.Process
-import templates.AbstractAmaltheaInchronTransformer
-import templates.utils.AmaltheaModelNagivationUtils
-import templates.utils.AmltCacheModel
-import com.google.inject.Singleton
-
-@Singleton
-class CustomEventTriggerTransformer extends AbstractAmaltheaInchronTransformer {
-	
-	var AmltCacheModel cacheModel
-	
-		@Inject ModeValueDisjunctionTransformer modeValueDisjunctionTransformer
-		@Inject CallGraphTransformer callGraphTransformer
-		
-	public def FunctionCall transformCustomEventTrigger(Component inchronComponent, Process amltTask,
-		 CustomEventTrigger amltCustomEventTrigger){
-		 	
-	 	cacheModel = customObjsStore.getInstance(AmltCacheModel)
-			
-		val amltCustomEvent= amltCustomEventTrigger.event
-		
-		val amltStimulusInchronActivationConnectionsMap=new LinkedHashMap<EventStimulus, ActivationConnection>
-			
-		if(amltCustomEvent !==null){
-			val amltCustomEventBackReferences=AmaltheaModelNagivationUtils.getBackReferences(amltCustomEvent,true);
-			
-			for (amltCustomEventBackReference : amltCustomEventBackReferences) {
-				
-				if(amltCustomEventBackReference instanceof EventStimulus){
-					//listing the tasks which are stimulated by EventStimulus
-					val inchronActivationConnection=createActivationConnection(amltCustomEventBackReference)
-				
-						amltStimulusInchronActivationConnectionsMap.put(amltCustomEventBackReference, inchronActivationConnection)
-					
-				}
-			}
-		}
-			
-		
-		val inchronDummyFunction=inchronModelFactory.createFunction
-		
-		inchronDummyFunction.name="Dummy_CustomEventTriggerFunction_"+amltCustomEventTrigger.hashCode
-		//Adding Function to Inchron Component
-		inchronComponent.functions.add(inchronDummyFunction)
-	
-	 	val inchronCallGraph=inchronModelFactory.createCallGraph
-	 
-	 	inchronDummyFunction.callGraph=inchronCallGraph
-	 
-	 	val inchronModeSwitch=inchronModelFactory.createModeSwitch
-	 
-	
- 
-		//Transforming mode entries with condition
-		//############# now creating ActivationItem and associating ActivationConnection objects  
- 
-		amltStimulusInchronActivationConnectionsMap.forEach[amltEventStimulus, inchronActivationConnection|{
- 	
-			val inchronModeSwitchEntry=inchronModelFactory.createModeSwitchEntry
-				
-			//Adding entry with condition
-	 		inchronModeSwitch.entries.add(inchronModeSwitchEntry)
-		
-			var amltCondition=amltEventStimulus.enablingModeValueList
-		
-			if(amltCondition!==null){
-				var inchronConditon=modeValueDisjunctionTransformer.createModeCondition(amltCondition,amltTask)
-				
-				inchronModeSwitchEntry.condition = inchronConditon
-				
-				if(inchronConditon.eContainer===null){
-					//Adding ModeCondition to the Inchron Model
-					getInchronRoot().globalModeConditions.add(inchronConditon)
-				}
-			}
-						
-			val inchronCallSequence=inchronModelFactory.createCallSequence
-		 	 
-		 	val inchronActivationItem=inchronModelFactory.createActivationItem
-		 	 
-		 	inchronActivationItem.connection=inchronActivationConnection
-		 	
-		 	inchronCallSequence.calls.add(inchronActivationItem)
-		 	 
-		 	  //Adding callSequence to default entry
-			inchronModeSwitchEntry.graphEntries.add(inchronCallSequence)
-			
- 		}]
-		/*
-		 * Based on the requirement from Inchron to use the latest Mode values:
-		 * -- it is required to create a "Dummy CallSequence" and associate ModeConditionEvaluation of each ModeSwitchEntry object 
-		 */ 
-		callGraphTransformer.createDummyCallSequenceWitchModeSwitchEvaluation(inchronModeSwitch, inchronCallGraph);
-		 		
-		//Adding ModeSwitch
-		inchronCallGraph.graphEntries.add(inchronModeSwitch)
-		 	
-		var FunctionCall inchronFunctionCall=inchronModelFactory.createFunctionCall
-		 
-		inchronFunctionCall.function=inchronDummyFunction
-		 
-		inchronFunctionCall.name="call_"+inchronDummyFunction.name
-		 
-		return inchronFunctionCall
-	 
-	}
-		
-	protected def create inchronModelFactory.createActivationConnection createActivationConnection(EventStimulus amltCustomEventBackReference) {
-		
-		val amltTasks=amltCustomEventBackReference.affectedProcesses
-				
-		it.name = "EventStimulus_"+amltCustomEventBackReference.name
-						
-		getInchronRoot().connections.add(it)
-						 		
- 		amltTasks.forEach[amltStimulatedTask|{
-	 		var inchronActivateProcess = inchronModelFactory.createActivateProcess
-					
-			inchronActivateProcess.target = cacheModel.amltProcess_inchronProcessMap.get(amltStimulatedTask)
-					
-			it.activations.add(inchronActivateProcess)
- 		}]
-	}
-		
-		 
-		
- 
-}
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/GraphEntryBaseTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/GraphEntryBaseTransformer.xtend
index a5998a3..be89ced 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/GraphEntryBaseTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/GraphEntryBaseTransformer.xtend
@@ -30,6 +30,7 @@
 import templates.m2m.stimuli.StimuliTransformer
 import templates.m2m.utils.CounterUtils
 import templates.utils.AmltCacheModel
+import org.eclipse.app4mc.amalthea.model.Stimulus
 
 @Singleton
 class GraphEntryBaseTransformer extends AbstractAmaltheaInchronTransformer {
@@ -41,6 +42,8 @@
 	@Inject ModeSwitchTransformer modeSwitchTransformer
 	
 	@Inject StimuliTransformer stimuliTransformer
+	
+	@Inject ModeValueDisjunctionTransformer modeValueDisjunctionTransformer
 
 	def create inchronModelFactory.createFunction createFunction(java.lang.Process amltProcess, Runnable amltRunnable) {
 
@@ -73,20 +76,13 @@
 	}
 	
 	protected def create inchronModelFactory.createCallSequence createCallSequence(CallSequence amltGraphEntry, org.eclipse.app4mc.amalthea.model.Process amltTask, Process inchronProcess, Map<org.eclipse.app4mc.amalthea.model.Process, Process> amltProcess_inchronProcessMap) {
-		
+
 		it.name = "CS"
-		
-		
 		amltGraphEntry.calls.forEach [ amltCallSequenceItem |
-		
 			if (amltCallSequenceItem instanceof TaskRunnableCall) {
-		
 				var amltRunnable = amltCallSequenceItem.runnable
-		
 				var inchronComponent = cacheModel.getInchronComponent(amltTask)
-		
 				var inchronFunction = runnableTransformer.createFunction(inchronComponent, amltTask, amltRunnable)
-		
 				var inchronFunctionCall = inchronModelFactory.createFunctionCall
 				inchronFunctionCall.function = inchronFunction
 				inchronFunctionCall.name = "call_" + inchronFunction.name
@@ -98,29 +94,38 @@
 				}
 				
 				it.calls.add(inchronFunctionCall) 
-				
 			} else if (amltCallSequenceItem instanceof InterProcessTrigger) {
-		
+				// in the call sequence of the process, create ActivateProcess
+				// create ActivationItem -> ActivationConnection -> ActivationAction (ActivateProcess)
+				// In Amalthea -> It is handled with InterProcessStimulus being refered by InterProcessTrigger -> Stimulus is referred inside a Task
+				 
+				val amltInterProcessTrigger = (amltCallSequenceItem as InterProcessTrigger)
+				val amltModeValueDisjunction = amltInterProcessTrigger.stimulus?.enablingModeValueList
 				var inchronActivationItem = inchronModelFactory.createActivationItem
-		
-				inchronActivationItem.name = "ActivationItem"
-				
-				if (amltCallSequenceItem.counter !== null){
-					inchronActivationItem.period = CounterUtils.getPrescalerAsInteger(amltCallSequenceItem.counter)
-					inchronActivationItem.offset = CounterUtils.getOffsetAsInteger(amltCallSequenceItem.counter)
+				inchronActivationItem.name = "ActivationItem_" + amltInterProcessTrigger.stimulus.name
+				if (amltModeValueDisjunction !== null){
+					modeValueDisjunctionTransformer.createModeCondition(amltModeValueDisjunction)
+					val inchronDummyFunction=stimuliTransformer.createDummyFunction(amltInterProcessTrigger.stimulus as Stimulus, inchronActivationItem)
+					var inchronComponent = cacheModel.getInchronComponent(amltTask)
+					inchronComponent.functions.add(inchronDummyFunction)
+					if (amltCallSequenceItem.counter !== null){
+						inchronActivationItem.period = CounterUtils.getPrescalerAsInteger(amltCallSequenceItem.counter)
+						inchronActivationItem.offset = CounterUtils.getOffsetAsInteger(amltCallSequenceItem.counter)
+					}
+					var dummyFunctionCall = inchronModelFactory.createFunctionCall
+					dummyFunctionCall.function = inchronDummyFunction
+					it.calls.add(dummyFunctionCall)
+				} else {
+					if (amltCallSequenceItem.counter !== null){
+						inchronActivationItem.period = CounterUtils.getPrescalerAsInteger(amltCallSequenceItem.counter)
+						inchronActivationItem.offset = CounterUtils.getOffsetAsInteger(amltCallSequenceItem.counter)
+					}
+					it.calls.add(inchronActivationItem)
 				}
-				
-				
-				it.calls.add(inchronActivationItem)
 		
-				val inchronActivationConnection = stimuliTransformer.createActivationConnection((amltCallSequenceItem as InterProcessTrigger).stimulus)
-		
+				val inchronActivationConnection = stimuliTransformer.createActivationConnection(amltInterProcessTrigger.stimulus as Stimulus)
 				inchronActivationItem.connection = inchronActivationConnection
 		
-		
-			// in the call sequence of the process, create ActivateProcess
-			// create ActivationItem -> ActivationConnection -> ActivationAction (ActivateProcess)
-			// In Amalthea -> It is handled with InterProcessStimulus being refered by InterProcessTrigger -> Stimulus is referred inside a Task 
 			} else if (amltCallSequenceItem instanceof SchedulePoint) {
 			}
 		
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeLabelTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeLabelTransformer.xtend
index 83b3895..ceae20d 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeLabelTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeLabelTransformer.xtend
@@ -44,6 +44,12 @@
 				
 			}]
 			
+			if (amltModeLabel.initialValue !== null){
+				it.initialMode = createMode(amltModeLabel.initialValue, it)
+			} else if (amltModeLabel?.mode?.literals.get(0) !==null) {
+				it.initialMode = createMode(amltModeLabel.mode.literals.get(0), it)
+			}
+			
 		 cacheModel.addInchronModeGroup(it)
 		}
 		
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeSwitchTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeSwitchTransformer.xtend
index 39046d0..5dc97fa 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeSwitchTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeSwitchTransformer.xtend
@@ -78,7 +78,7 @@
 			
 				var amltCondition=amltModeSwitchEntry.condition
 					if(amltCondition!==null){
-						var inchronConditon=modeValueDisjunctionTransformer.createModeCondition(amltCondition,amltTask)
+						var inchronConditon=modeValueDisjunctionTransformer.createModeCondition(amltCondition)
 						
 						inchronModeSwitchEntry.condition = inchronConditon
 						
@@ -105,7 +105,7 @@
 	 * Based on the requirement from Inchron to use the latest Mode values:
 	 * -- it is required to create a "Dummy CallSequence" and associate ModeConditionEvaluation of each ModeSwitchEntry object 
 	 */ 
-	 callGraphTransformer.createDummyCallSequenceWitchModeSwitchEvaluation(inchronModeSwitch, inchronCallGraph);
+	 callGraphTransformer.createDummyCallSequenceWithModeSwitchEvaluation(inchronModeSwitch, inchronCallGraph);
 					 
 		 //Adding ModeSwitch
 	 inchronCallGraph.graphEntries.add(inchronModeSwitch)
@@ -155,7 +155,7 @@
 					
 					var amltCondition=amltEntry.condition
 					if(amltCondition!==null){
-						var inchronConditon=modeValueDisjunctionTransformer.createModeCondition(amltCondition,amltTask)
+						var inchronConditon=modeValueDisjunctionTransformer.createModeCondition(amltCondition)
 						
 						inchronModeSwitchEntry.condition = inchronConditon
 						
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeValueDisjunctionTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeValueDisjunctionTransformer.xtend
index 6ca919b..9dc2939 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeValueDisjunctionTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ModeValueDisjunctionTransformer.xtend
@@ -15,29 +15,25 @@
 
 package templates.m2m.sw;
 
+import com.google.inject.Inject
+import com.google.inject.Singleton
 import com.inchron.realtime.root.model.Mode
 import org.eclipse.app4mc.amalthea.model.ModeLiteral
 import org.eclipse.app4mc.amalthea.model.ModeValue
 import org.eclipse.app4mc.amalthea.model.ModeValueConjunction
 import org.eclipse.app4mc.amalthea.model.ModeValueDisjunction
-import org.eclipse.app4mc.amalthea.model.Process
 import templates.AbstractAmaltheaInchronTransformer
 import templates.utils.AmltCacheModel
-import com.google.inject.Inject
-import com.google.inject.Singleton
 
 @Singleton
 public class ModeValueDisjunctionTransformer extends AbstractAmaltheaInchronTransformer {
 
-var AmltCacheModel cacheModel
+	@Inject ModeLabelTransformer modeLabelTransformer 
+	var AmltCacheModel cacheModel
 
-@Inject ModeLabelTransformer modeLabelTransformer 
-
-	public def create inchronModelFactory.createModeCondition createModeCondition(ModeValueDisjunction amltModeValueDisjunction,Process amltTask ){		
+	public def create inchronModelFactory.createModeCondition createModeCondition(ModeValueDisjunction amltModeValueDisjunction){		
 		cacheModel = customObjsStore.getInstance(AmltCacheModel)
-		
-		it.name="ModeCondition_"+amltTask.name+"_"+it.hashCode
-			
+		it.name="ModeCondition_"+"_"+it.hashCode
 		amltModeValueDisjunction?.entries?.forEach[amltModeValueDisjunctionEntry|{
 			
 			val inchronModeConjunction=inchronModelFactory.createModeConjunction
@@ -58,10 +54,10 @@
 				}]
 			}
 		}]
+		inchronRoot.globalModeConditions.add(it)
 	}
 		
 		
-		
 	public def Mode  getInchronMode(ModeLiteral amltModeLiteral ){
 		
 		val amltModeName=amltModeLiteral?.containingMode?.name
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/RunnableItemTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/RunnableItemTransformer.xtend
index 559d810..cb779fa 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/RunnableItemTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/RunnableItemTransformer.xtend
@@ -34,6 +34,7 @@
 import templates.m2m.sw.runnableItem.ChannelAccessTransformer
 import templates.m2m.sw.runnableItem.RunnableCallTransformer
 import templates.m2m.sw.runnableItem.TicksTransformer
+import templates.m2m.sw.runnableItem.CustomEventTriggerTransformer
 
 @Singleton
 class RunnableItemTransformer extends AbstractAmaltheaInchronTransformer{
@@ -60,8 +61,8 @@
 				var inchronFunctionCall =  modeSwitchTransformer.transformRunnableModeSwitch(inchronComponent, amltTask,amltRunnableItem)				 
 				 list.add(inchronFunctionCall)
 			} else if(amltRunnableItem instanceof CustomEventTrigger){
-				var inchronFunctionCall =  customEventTriggerTransformer.transformCustomEventTrigger(inchronComponent, amltTask,amltRunnableItem)				 
-				 list.add(inchronFunctionCall)
+				val inchronCallSequenceItems =  customEventTriggerTransformer.transformCustomEventTrigger(inchronComponent, amltRunnableItem)
+				inchronCallSequenceItems.forEach[inchronCallSequenceItem | list.add(inchronCallSequenceItem)]
 			} else if(amltRunnableItem instanceof ModeLabelAccess){
 				if(amltRunnableItem.access.equals(LabelAccessEnum.WRITE)){
 					var inchronModeSwitchPoint=inchronModelFactory.createModeSwitchPoint					
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/CustomEventTriggerTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/CustomEventTriggerTransformer.xtend
index 469fe3b..b233bf4 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/CustomEventTriggerTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/runnableItem/CustomEventTriggerTransformer.xtend
@@ -15,9 +15,81 @@
 
 package templates.m2m.sw.runnableItem
 
-import templates.AbstractAmaltheaInchronTransformer
+import com.google.inject.Inject
 import com.google.inject.Singleton
+import com.inchron.realtime.root.model.ActivationConnection
+import com.inchron.realtime.root.model.CallSequenceItem
+import com.inchron.realtime.root.model.Component
+import com.inchron.realtime.root.model.FunctionCall
+import java.util.LinkedHashMap
+import java.util.LinkedList
+import java.util.List
+import org.eclipse.app4mc.amalthea.model.CustomEventTrigger
+import org.eclipse.app4mc.amalthea.model.EventStimulus
+import templates.AbstractAmaltheaInchronTransformer
+import templates.m2m.stimuli.StimuliTransformer
+import templates.utils.AmaltheaModelNagivationUtils
+import templates.utils.AmltCacheModel
 
 @Singleton
 class CustomEventTriggerTransformer extends AbstractAmaltheaInchronTransformer {
-}
+	
+	var AmltCacheModel cacheModel
+	
+		@Inject StimuliTransformer stimuliTransformer
+		
+	public def List<CallSequenceItem> transformCustomEventTrigger(Component inchronComponent, CustomEventTrigger amltCustomEventTrigger){
+		 			 	
+	 	cacheModel = customObjsStore.getInstance(AmltCacheModel)
+			
+	 	val inchronCallSequenceItems = new LinkedList<CallSequenceItem>
+		val amltCustomEvent= amltCustomEventTrigger.event		
+		val amltStimulusInchronActivationConnectionsMap=new LinkedHashMap<EventStimulus, ActivationConnection>
+			
+		if(amltCustomEvent !==null){
+			val amltCustomEventBackReferences=AmaltheaModelNagivationUtils.getBackReferences(amltCustomEvent,true);
+			for (amltCustomEventBackReference : amltCustomEventBackReferences) {
+				if(amltCustomEventBackReference instanceof EventStimulus){
+					val inchronActivationConnection = stimuliTransformer.createActivationConnection(amltCustomEventBackReference as EventStimulus)
+					amltStimulusInchronActivationConnectionsMap.put(amltCustomEventBackReference, inchronActivationConnection)			
+				}
+			}
+		}
+				
+ 
+		//Transforming mode entries with condition
+		//############# now creating ActivationItem and associating ActivationConnection objects  
+		amltStimulusInchronActivationConnectionsMap.forEach[amltEventStimulus, inchronActivationConnection|{
+
+		 	val inchronActivationItem=inchronModelFactory.createActivationItem
+		 	inchronActivationItem.name = "ActivationItem_"+ amltEventStimulus.name
+		 	inchronActivationItem.connection=inchronActivationConnection;
+		 	
+		 	if (amltEventStimulus.enablingModeValueList !== null){
+				/*
+				 * Based on the requirement from Inchron to use the latest Mode values:
+				 * -- it is required to create a "Dummy CallSequence" and associate ModeConditionEvaluation of each ModeSwitchEntry object 
+				 */ 
+				val inchronDummyFunction=stimuliTransformer.createDummyFunction(amltEventStimulus, inchronActivationItem)
+				inchronComponent.functions.add(inchronDummyFunction)
+				
+				var FunctionCall inchronFunctionCall=inchronModelFactory.createFunctionCall
+				inchronFunctionCall.function=inchronDummyFunction
+				inchronFunctionCall.name="call_"+inchronDummyFunction.name
+				inchronCallSequenceItems.add(inchronFunctionCall)
+		 	} else {
+				inchronCallSequenceItems.add(inchronActivationItem) 		
+		 	}
+		 	
+			
+ 		}]
+
+		return inchronCallSequenceItems
+	 
+	}
+	
+
+ 
+		
+ 
+}
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/input/CustomEventTrigger.amxmi b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/input/CustomEventTrigger.amxmi
new file mode 100644
index 0000000..20c3409
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/input/CustomEventTrigger.amxmi
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <swModel>
+    <tasks name="TaskLauncher" stimuli="PeriodicStimulus1ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+      <callGraph>
+        <graphEntries xsi:type="am:CallSequence" name="">
+          <calls xsi:type="am:TaskRunnableCall" runnable="RunnableLauncher?type=Runnable"/>
+        </graphEntries>
+      </callGraph>
+    </tasks>
+    <tasks name="TaskWorkerConditional" stimuli="EventStimulus_Conditional?type=EventStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+      <callGraph>
+        <graphEntries xsi:type="am:CallSequence" name="">
+          <calls xsi:type="am:TaskRunnableCall" runnable="RunnableWorker?type=Runnable"/>
+        </graphEntries>
+      </callGraph>
+    </tasks>
+    <tasks name="TaskWorkerUnconditional" stimuli="EventStimulus_Unconditional?type=EventStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+      <callGraph>
+        <graphEntries xsi:type="am:CallSequence" name="">
+          <calls xsi:type="am:TaskRunnableCall" runnable="RunnableWorker?type=Runnable"/>
+        </graphEntries>
+      </callGraph>
+    </tasks>
+    <runnables name="RunnableWorker" callback="false" service="false">
+      <runnableItems xsi:type="am:Ticks">
+        <default xsi:type="am:DiscreteValueConstant" value="100"/>
+      </runnableItems>
+    </runnables>
+    <runnables name="RunnableLauncher" callback="false" service="false">
+      <runnableItems xsi:type="am:Ticks">
+        <default xsi:type="am:DiscreteValueConstant" value="10"/>
+      </runnableItems>
+      <runnableItems xsi:type="am:CustomEventTrigger" event="CustomEvent_2_to_3?type=CustomEvent"/>
+      <runnableItems xsi:type="am:Ticks">
+        <default xsi:type="am:DiscreteValueConstant" value="10"/>
+      </runnableItems>
+    </runnables>
+    <modes name="modeCondition">
+      <literals name="State1"/>
+      <literals name="State2"/>
+    </modes>
+    <modeLabels name="ModeLabelA" displayName="" initialValue="modeCondition/State1?type=ModeLiteral"/>
+    <modeLabels name="ModeLabelB" displayName="" initialValue="modeCondition/State2?type=ModeLiteral"/>
+  </swModel>
+  <hwModel>
+    <definitions xsi:type="am:ProcessingUnitDefinition" name="C0_Type" puType="CPU"/>
+    <structures name="System" structureType="System">
+      <structures name="ECU" structureType="ECU">
+        <structures name="mC" structureType="Microcontroller">
+          <modules xsi:type="am:ProcessingUnit" name="C0" frequencyDomain="clock_C0?type=FrequencyDomain" definition="C0_Type?type=ProcessingUnitDefinition"/>
+        </structures>
+      </structures>
+    </structures>
+    <domains xsi:type="am:FrequencyDomain" name="clock_C0" clockGating="false">
+      <defaultValue value="240.0" unit="MHz"/>
+    </domains>
+  </hwModel>
+  <osModel>
+    <operatingSystems name="OS">
+      <taskSchedulers name="SchedC0">
+        <schedulingAlgorithm xsi:type="am:OSEK"/>
+      </taskSchedulers>
+    </operatingSystems>
+  </osModel>
+  <stimuliModel>
+    <stimuli xsi:type="am:PeriodicStimulus" name="PeriodicStimulus1ms">
+      <offset value="0" unit="ms"/>
+      <recurrence value="1" unit="ms"/>
+    </stimuli>
+    <stimuli xsi:type="am:EventStimulus" name="EventStimulus_Unconditional" triggeringEvents="CustomEvent_2_to_3?type=CustomEvent"/>
+    <stimuli xsi:type="am:EventStimulus" name="EventStimulus_Conditional" triggeringEvents="CustomEvent_2_to_3?type=CustomEvent">
+      <enablingModeValueList>
+        <entries xsi:type="am:ModeValueConjunction">
+          <entries valueProvider="ModeLabelA?type=ModeLabel" value="modeCondition/State1?type=ModeLiteral"/>
+          <entries valueProvider="ModeLabelB?type=ModeLabel" value="modeCondition/State2?type=ModeLiteral"/>
+        </entries>
+      </enablingModeValueList>
+    </stimuli>
+  </stimuliModel>
+  <eventModel>
+    <events xsi:type="am:CustomEvent" name="CustomEvent_2_to_3" description="" eventType=""/>
+  </eventModel>
+  <mappingModel>
+    <schedulerAllocation scheduler="SchedC0?type=TaskScheduler" responsibility="C0?type=ProcessingUnit"/>
+    <taskAllocation task="TaskLauncher?type=Task" scheduler="SchedC0?type=TaskScheduler"/>
+    <taskAllocation task="TaskWorkerConditional?type=Task" scheduler="SchedC0?type=TaskScheduler"/>
+    <taskAllocation task="TaskWorkerUnconditional?type=Task" scheduler="SchedC0?type=TaskScheduler"/>
+  </mappingModel>
+</am:Amalthea>
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/output/CustomEventTrigger.iprx b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/output/CustomEventTrigger.iprx
new file mode 100644
index 0000000..4f14587
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/output/CustomEventTrigger.iprx
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="ASCII"?>
+<root:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:model="http://inchron.com/realtime/root/2.98.5/model" xmlns:root="http://inchron.com/realtime/root/2.98.5" xmlns:stimulation="http://inchron.com/realtime/root/2.98.5/model/stimulation">
+  <model xsi:type="model:Model" name="Model" defaultScenario="//@model/@stimulationScenarios.0">
+    <clocks name="clock_C0" users="//@model/@cpus.0 //@model/@stimulationScenarios.0/@generators.0">
+      <frequency value="240.0"/>
+      <range value="1" unit="s"/>
+      <startTimeFixed/>
+      <startTimeMin/>
+      <startTimeMax/>
+      <startValue/>
+    </clocks>
+    <cpus name="mC" clock="//@model/@clocks.0" cpuModel="generic">
+      <cores name="C0">
+        <connectedSlave/>
+      </cores>
+      <memoryRegions name="ram" base="16777216" flags="290" pages="1" sections="data:bss:stack:heap"/>
+      <memoryRegions name="rom" base="33554432" flags="275" pages="1" sections="text"/>
+    </cpus>
+    <connections xsi:type="model:ActivationConnection" name="EventStimulus_Unconditional" activators="//@model/@systems.0/@components.0/@functions.0/@callGraph/@graphEntries.0/@calls.1">
+      <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.2"/>
+    </connections>
+    <connections xsi:type="model:ActivationConnection" name="EventStimulus_Conditional" activators="//@model/@systems.0/@components.0/@functions.1/@callGraph/@graphEntries.1/@entries.0/@graphEntries.0/@calls.0">
+      <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.1"/>
+    </connections>
+    <generalInfo creator="Amlt2Inchron 0.9.3 Wed May 08 09:10:35 CEST 2019" version="1"/>
+    <globalModeConditions name="ModeCondition__1266224518">
+      <conjunctions modes="//@model/@globalModeGroups.0/@modes.0 //@model/@globalModeGroups.1/@modes.1"/>
+    </globalModeConditions>
+    <globalModeGroups name="ModeLabelA" initialMode="//@model/@globalModeGroups.0/@modes.0">
+      <modes name="State1"/>
+      <modes name="State2" value="1"/>
+    </globalModeGroups>
+    <globalModeGroups name="ModeLabelB" initialMode="//@model/@globalModeGroups.1/@modes.1">
+      <modes name="State1"/>
+      <modes name="State2" value="1"/>
+    </globalModeGroups>
+    <stimulationScenarios name="DefaultScenario">
+      <generators xsi:type="stimulation:RandomStimuliGenerator" name="PeriodicStimulus1ms" clock="//@model/@clocks.0">
+        <connections xsi:type="model:ActivationConnection" name="PeriodicStimulus1ms" activators="//@model/@stimulationScenarios.0/@generators.0/@targets/@graphEntries.0/@calls.0">
+          <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.0"/>
+        </connections>
+        <targets>
+          <graphEntries xsi:type="model:CallSequence" name="CS">
+            <calls xsi:type="model:ActivationItem" name="ActivationItem_PeriodicStimulus1ms" connection="//@model/@stimulationScenarios.0/@generators.0/@connections.0"/>
+          </graphEntries>
+        </targets>
+        <minInterArrivalTime/>
+        <period value="1" unit="ms"/>
+        <startOffset unit="ms"/>
+        <startOffsetVariation/>
+        <variation/>
+      </generators>
+    </stimulationScenarios>
+    <systems xsi:type="model:GenericSystem" name="OS_SYSTEM">
+      <components name="OS_SWC">
+        <functions name="RunnableLauncher-TaskLauncher">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="10" unit="T"/>
+                  <max value="10" unit="T"/>
+                  <mean value="10" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+              <calls xsi:type="model:ActivationItem" name="ActivationItem_EventStimulus_Unconditional" connection="//@model/@connections.0"/>
+              <calls xsi:type="model:FunctionCall" name="call_Dummy_EventStimulus_Conditional" function="//@model/@systems.0/@components.0/@functions.1"/>
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="10" unit="T"/>
+                  <max value="10" unit="T"/>
+                  <mean value="10" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="Dummy_EventStimulus_Conditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CallSequence_For_ModeConditionEvaluation">
+              <calls xsi:type="model:ModeConditionEvaluation" condition="//@model/@globalModeConditions.0"/>
+            </graphEntries>
+            <graphEntries xsi:type="model:ModeSwitch" name="EventStimulusCondition">
+              <entries condition="//@model/@globalModeConditions.0">
+                <graphEntries xsi:type="model:CallSequence">
+                  <calls xsi:type="model:ActivationItem" name="ActivationItem_EventStimulus_Conditional" connection="//@model/@connections.1"/>
+                </graphEntries>
+              </entries>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="RunnableWorker-TaskWorkerUnconditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="100" unit="T"/>
+                  <max value="100" unit="T"/>
+                  <mean value="100" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="RunnableWorker-TaskWorkerConditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="100" unit="T"/>
+                  <max value="100" unit="T"/>
+                  <mean value="100" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+      </components>
+      <rtosModel name="generic" returnType="void"/>
+      <rtosConfig name="OS">
+        <schedulables xsi:type="model:Scheduler" name="OS_ISRDummy" cpuCores="//@model/@cpus.0/@cores.0">
+          <schedulables xsi:type="model:Scheduler" name="SchedC0" cpuCores="//@model/@cpus.0/@cores.0">
+            <schedulables xsi:type="model:Process" name="TaskLauncher">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableLauncher-TaskLauncher" function="//@model/@systems.0/@components.0/@functions.0"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <schedulables xsi:type="model:Process" name="TaskWorkerConditional">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableWorker-TaskWorkerConditional" function="//@model/@systems.0/@components.0/@functions.3"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <schedulables xsi:type="model:Process" name="TaskWorkerUnconditional">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableWorker-TaskWorkerUnconditional" function="//@model/@systems.0/@components.0/@functions.2"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <timeSlice/>
+            <period/>
+            <maxRetard/>
+            <maxAdvance/>
+          </schedulables>
+          <timeSlice/>
+          <period/>
+          <maxRetard/>
+          <maxAdvance/>
+        </schedulables>
+      </rtosConfig>
+    </systems>
+  </model>
+  <settings>
+    <editor/>
+    <model/>
+    <tool/>
+  </settings>
+</root:Root>
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/output/CustomEventTrigger2.iprx b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/output/CustomEventTrigger2.iprx
new file mode 100644
index 0000000..293442b
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/CustomEventTrigger/output/CustomEventTrigger2.iprx
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="ASCII"?>
+<root:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:model="http://inchron.com/realtime/root/2.98.5/model" xmlns:root="http://inchron.com/realtime/root/2.98.5" xmlns:stimulation="http://inchron.com/realtime/root/2.98.5/model/stimulation">
+  <model xsi:type="model:Model" name="Model" defaultScenario="//@model/@stimulationScenarios.0">
+    <clocks name="clock_C0" users="//@model/@cpus.0 //@model/@stimulationScenarios.0/@generators.0">
+      <frequency value="240.0"/>
+      <range value="1" unit="s"/>
+      <startTimeFixed/>
+      <startTimeMin/>
+      <startTimeMax/>
+      <startValue/>
+    </clocks>
+    <cpus name="mC" clock="//@model/@clocks.0" cpuModel="generic">
+      <cores name="C0">
+        <connectedSlave/>
+      </cores>
+      <memoryRegions name="ram" base="16777216" flags="290" pages="1" sections="data:bss:stack:heap"/>
+      <memoryRegions name="rom" base="33554432" flags="275" pages="1" sections="text"/>
+    </cpus>
+    <connections xsi:type="model:ActivationConnection" name="EventStimulus_Unconditional" activators="//@model/@systems.0/@components.0/@functions.1/@callGraph/@graphEntries.0/@calls.1">
+      <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.2"/>
+    </connections>
+    <connections xsi:type="model:ActivationConnection" name="EventStimulus_Conditional" activators="//@model/@systems.0/@components.0/@functions.2/@callGraph/@graphEntries.2/@calls.0">
+      <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.1"/>
+    </connections>
+    <generalInfo creator="Amlt2Inchron 0.9.3 Mon Apr 29 15:57:09 CEST 2019" version="1"/>
+    <globalModeConditions name="ModeCondition_1026506187">
+      <conjunctions modes="//@model/@globalModeGroups.0/@modes.0 //@model/@globalModeGroups.1/@modes.1"/>
+    </globalModeConditions>
+    <globalModeGroups name="ModeLabelA" initialMode="//@model/@globalModeGroups.0/@modes.0">
+      <modes name="State1"/>
+      <modes name="State2" value="1"/>
+    </globalModeGroups>
+    <globalModeGroups name="ModeLabelB" initialMode="//@model/@globalModeGroups.1/@modes.1">
+      <modes name="State1"/>
+      <modes name="State2" value="1"/>
+    </globalModeGroups>
+    <stimulationScenarios name="DefaultScenario">
+      <generators xsi:type="stimulation:RandomStimuliGenerator" name="PeriodicStimulus1ms" clock="//@model/@clocks.0">
+        <connections xsi:type="model:ActivationConnection" name="PeriodicStimulus1ms" activators="//@model/@stimulationScenarios.0/@generators.0/@targets/@graphEntries.0/@calls.0">
+          <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.0"/>
+        </connections>
+        <targets>
+          <graphEntries xsi:type="model:CallSequence" name="CS">
+            <calls xsi:type="model:ActivationItem" name="ActivationItem_PeriodicStimulus1ms" connection="//@model/@stimulationScenarios.0/@generators.0/@connections.0"/>
+          </graphEntries>
+        </targets>
+        <minInterArrivalTime/>
+        <period value="1" unit="ms"/>
+        <startOffset unit="ms"/>
+        <startOffsetVariation/>
+        <variation/>
+      </generators>
+    </stimulationScenarios>
+    <systems xsi:type="model:GenericSystem" name="OS_SYSTEM">
+      <components name="OS_SWC">
+        <functions name="RunnableWorker-TaskWorkerUnconditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="100" unit="T"/>
+                  <max value="100" unit="T"/>
+                  <mean value="100" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="RunnableLauncher-TaskLauncher">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="10" unit="T"/>
+                  <max value="10" unit="T"/>
+                  <mean value="10" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+              <calls xsi:type="model:ActivationItem" name="ActivationItem_EventStimulus_Unconditional" connection="//@model/@connections.0"/>
+              <calls xsi:type="model:FunctionCall" name="call_Dummy_EventStimulus_Conditional" function="//@model/@systems.0/@components.0/@functions.2"/>
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="10" unit="T"/>
+                  <max value="10" unit="T"/>
+                  <mean value="10" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="Dummy_EventStimulus_Conditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CallSequence_For_ModeConditionEvaluation">
+              <calls xsi:type="model:ModeConditionEvaluation" condition="//@model/@globalModeConditions.0"/>
+            </graphEntries>
+            <graphEntries xsi:type="model:ModeSwitch" name="EventStimulusCondition">
+              <entries condition="//@model/@globalModeConditions.0"/>
+            </graphEntries>
+            <graphEntries xsi:type="model:CallSequence">
+              <calls xsi:type="model:ActivationItem" name="ActivationItem_EventStimulus_Conditional" connection="//@model/@connections.1"/>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="RunnableWorker-TaskWorkerConditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="100" unit="T"/>
+                  <max value="100" unit="T"/>
+                  <mean value="100" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+      </components>
+      <rtosModel name="generic" returnType="void"/>
+      <rtosConfig name="OS">
+        <schedulables xsi:type="model:Scheduler" name="OS_ISRDummy" cpuCores="//@model/@cpus.0/@cores.0">
+          <schedulables xsi:type="model:Scheduler" name="SchedC0" cpuCores="//@model/@cpus.0/@cores.0">
+            <schedulables xsi:type="model:Process" name="TaskLauncher">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableLauncher-TaskLauncher" function="//@model/@systems.0/@components.0/@functions.1"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <schedulables xsi:type="model:Process" name="TaskWorkerConditional">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableWorker-TaskWorkerConditional" function="//@model/@systems.0/@components.0/@functions.3"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <schedulables xsi:type="model:Process" name="TaskWorkerUnconditional">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableWorker-TaskWorkerUnconditional" function="//@model/@systems.0/@components.0/@functions.0"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <timeSlice/>
+            <period/>
+            <maxRetard/>
+            <maxAdvance/>
+          </schedulables>
+          <timeSlice/>
+          <period/>
+          <maxRetard/>
+          <maxAdvance/>
+        </schedulables>
+      </rtosConfig>
+    </systems>
+  </model>
+  <settings>
+    <editor/>
+    <model/>
+    <tool/>
+  </settings>
+</root:Root>
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/InterProcessTrigger/input/InterProcessTrigger.amxmi b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/InterProcessTrigger/input/InterProcessTrigger.amxmi
new file mode 100644
index 0000000..713b761
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/InterProcessTrigger/input/InterProcessTrigger.amxmi
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <swModel>
+    <tasks name="TaskLauncher" stimuli="PeriodicStimulus1ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+      <callGraph>
+        <graphEntries xsi:type="am:CallSequence" name="">
+          <calls xsi:type="am:InterProcessTrigger" stimulus="InterProcessStimulus_Unconditional?type=InterProcessStimulus"/>
+          <calls xsi:type="am:InterProcessTrigger" stimulus="InterProcessStimulus_Conditional?type=InterProcessStimulus"/>
+        </graphEntries>
+      </callGraph>
+    </tasks>
+    <tasks name="TaskWorkerUnconditional" stimuli="InterProcessStimulus_Unconditional?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+      <callGraph>
+        <graphEntries xsi:type="am:CallSequence" name="">
+          <calls xsi:type="am:TaskRunnableCall" runnable="RunnableWorker?type=Runnable"/>
+        </graphEntries>
+      </callGraph>
+    </tasks>
+    <tasks name="TaskWorkerUnconditional2" stimuli="InterProcessStimulus_Unconditional?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+      <callGraph>
+        <graphEntries xsi:type="am:CallSequence" name="">
+          <calls xsi:type="am:TaskRunnableCall" runnable="RunnableWorker?type=Runnable"/>
+        </graphEntries>
+      </callGraph>
+    </tasks>
+    <tasks name="TaskWorkerConditional" stimuli="InterProcessStimulus_Conditional?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+      <callGraph>
+        <graphEntries xsi:type="am:CallSequence" name="">
+          <calls xsi:type="am:TaskRunnableCall" runnable="RunnableWorker?type=Runnable"/>
+        </graphEntries>
+      </callGraph>
+    </tasks>
+    <runnables name="RunnableWorker" callback="false" service="false">
+      <runnableItems xsi:type="am:Ticks">
+        <default xsi:type="am:DiscreteValueConstant" value="100"/>
+      </runnableItems>
+    </runnables>
+    <modes name="myMode">
+      <literals name="State1"/>
+      <literals name="State2"/>
+    </modes>
+    <modeLabels name="ModeLabelA" displayName="" initialValue="myMode/State1?type=ModeLiteral"/>
+  </swModel>
+  <hwModel>
+    <definitions xsi:type="am:ProcessingUnitDefinition" name="C0_Type" puType="CPU"/>
+    <structures name="System" structureType="System">
+      <structures name="ECU" structureType="ECU">
+        <structures name="mC" structureType="Microcontroller">
+          <modules xsi:type="am:ProcessingUnit" name="C0" frequencyDomain="clock_C0?type=FrequencyDomain" definition="C0_Type?type=ProcessingUnitDefinition"/>
+        </structures>
+      </structures>
+    </structures>
+    <domains xsi:type="am:FrequencyDomain" name="clock_C0" clockGating="false">
+      <defaultValue value="240.0" unit="MHz"/>
+    </domains>
+  </hwModel>
+  <osModel>
+    <operatingSystems name="OS">
+      <taskSchedulers name="SchedC0">
+        <schedulingAlgorithm xsi:type="am:OSEK"/>
+      </taskSchedulers>
+    </operatingSystems>
+  </osModel>
+  <stimuliModel>
+    <stimuli xsi:type="am:PeriodicStimulus" name="PeriodicStimulus1ms">
+      <offset value="0" unit="ms"/>
+      <recurrence value="1" unit="ms"/>
+    </stimuli>
+    <stimuli xsi:type="am:InterProcessStimulus" name="InterProcessStimulus_Unconditional"/>
+    <stimuli xsi:type="am:InterProcessStimulus" name="InterProcessStimulus_Conditional">
+      <enablingModeValueList>
+        <entries xsi:type="am:ModeValueConjunction">
+          <entries valueProvider="ModeLabelA?type=ModeLabel" value="myMode/State1?type=ModeLiteral"/>
+        </entries>
+      </enablingModeValueList>
+    </stimuli>
+  </stimuliModel>
+  <eventModel/>
+  <mappingModel>
+    <schedulerAllocation scheduler="SchedC0?type=TaskScheduler" responsibility="C0?type=ProcessingUnit"/>
+    <taskAllocation task="TaskLauncher?type=Task" scheduler="SchedC0?type=TaskScheduler"/>
+    <taskAllocation task="TaskWorkerUnconditional?type=Task" scheduler="SchedC0?type=TaskScheduler"/>
+    <taskAllocation task="TaskWorkerUnconditional2?type=Task" scheduler="SchedC0?type=TaskScheduler"/>
+    <taskAllocation task="TaskWorkerConditional?type=Task" scheduler="SchedC0?type=TaskScheduler"/>
+  </mappingModel>
+</am:Amalthea>
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/InterProcessTrigger/output/InterProcessTrigger.iprx b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/InterProcessTrigger/output/InterProcessTrigger.iprx
new file mode 100644
index 0000000..7bb93d1
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.product/testModels/InterProcessTrigger/output/InterProcessTrigger.iprx
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="ASCII"?>
+<root:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:model="http://inchron.com/realtime/root/2.98.5/model" xmlns:root="http://inchron.com/realtime/root/2.98.5" xmlns:stimulation="http://inchron.com/realtime/root/2.98.5/model/stimulation">
+  <model xsi:type="model:Model" name="Model" defaultScenario="//@model/@stimulationScenarios.0">
+    <clocks name="clock_C0" users="//@model/@cpus.0 //@model/@stimulationScenarios.0/@generators.0">
+      <frequency value="240.0"/>
+      <range value="1" unit="s"/>
+      <startTimeFixed/>
+      <startTimeMin/>
+      <startTimeMax/>
+      <startValue/>
+    </clocks>
+    <cpus name="mC" clock="//@model/@clocks.0" cpuModel="generic">
+      <cores name="C0">
+        <connectedSlave/>
+      </cores>
+      <memoryRegions name="ram" base="16777216" flags="290" pages="1" sections="data:bss:stack:heap"/>
+      <memoryRegions name="rom" base="33554432" flags="275" pages="1" sections="text"/>
+    </cpus>
+    <connections xsi:type="model:ActivationConnection" name="InterProcessStimulus_Conditional" activators="//@model/@systems.0/@components.0/@functions.2/@callGraph/@graphEntries.1/@entries.0/@graphEntries.0/@calls.0">
+      <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.3"/>
+    </connections>
+    <connections xsi:type="model:ActivationConnection" name="InterProcessStimulus_Unconditional" activators="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.0/@callGraph/@graphEntries.0/@calls.0">
+      <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.2"/>
+      <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.1"/>
+    </connections>
+    <generalInfo creator="Amlt2Inchron 0.9.3 Wed May 08 09:03:28 CEST 2019" version="1"/>
+    <globalModeConditions name="ModeCondition__233309087">
+      <conjunctions modes="//@model/@globalModeGroups.0/@modes.0"/>
+    </globalModeConditions>
+    <globalModeGroups name="ModeLabelA" initialMode="//@model/@globalModeGroups.0/@modes.0">
+      <modes name="State1"/>
+      <modes name="State2" value="1"/>
+    </globalModeGroups>
+    <stimulationScenarios name="DefaultScenario">
+      <generators xsi:type="stimulation:RandomStimuliGenerator" name="PeriodicStimulus1ms" clock="//@model/@clocks.0">
+        <connections xsi:type="model:ActivationConnection" name="PeriodicStimulus1ms" activators="//@model/@stimulationScenarios.0/@generators.0/@targets/@graphEntries.0/@calls.0">
+          <activations xsi:type="model:ActivateProcess" target="//@model/@systems.0/@rtosConfig/@schedulables.0/@schedulables.0/@schedulables.0"/>
+        </connections>
+        <targets>
+          <graphEntries xsi:type="model:CallSequence" name="CS">
+            <calls xsi:type="model:ActivationItem" name="ActivationItem_PeriodicStimulus1ms" connection="//@model/@stimulationScenarios.0/@generators.0/@connections.0"/>
+          </graphEntries>
+        </targets>
+        <minInterArrivalTime/>
+        <period value="1" unit="ms"/>
+        <startOffset unit="ms"/>
+        <startOffsetVariation/>
+        <variation/>
+      </generators>
+    </stimulationScenarios>
+    <systems xsi:type="model:GenericSystem" name="OS_SYSTEM">
+      <components name="OS_SWC">
+        <functions name="RunnableWorker-TaskWorkerConditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="100" unit="T"/>
+                  <max value="100" unit="T"/>
+                  <mean value="100" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="RunnableWorker-TaskWorkerUnconditional2">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="100" unit="T"/>
+                  <max value="100" unit="T"/>
+                  <mean value="100" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="Dummy_InterProcessStimulus_Conditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CallSequence_For_ModeConditionEvaluation">
+              <calls xsi:type="model:ModeConditionEvaluation" condition="//@model/@globalModeConditions.0"/>
+            </graphEntries>
+            <graphEntries xsi:type="model:ModeSwitch" name="EventStimulusCondition">
+              <entries condition="//@model/@globalModeConditions.0">
+                <graphEntries xsi:type="model:CallSequence">
+                  <calls xsi:type="model:ActivationItem" name="ActivationItem_InterProcessStimulus_Conditional" connection="//@model/@connections.0"/>
+                </graphEntries>
+              </entries>
+            </graphEntries>
+          </callGraph>
+        </functions>
+        <functions name="RunnableWorker-TaskWorkerUnconditional">
+          <callGraph>
+            <graphEntries xsi:type="model:CallSequence" name="CS">
+              <calls xsi:type="model:ResourceConsumption" name="RC">
+                <timeDistribution alpha="0.0" beta="0.0">
+                  <min value="100" unit="T"/>
+                  <max value="100" unit="T"/>
+                  <mean value="100" unit="T"/>
+                  <sigma unit="T"/>
+                </timeDistribution>
+              </calls>
+            </graphEntries>
+          </callGraph>
+        </functions>
+      </components>
+      <rtosModel name="generic" returnType="void"/>
+      <rtosConfig name="OS">
+        <schedulables xsi:type="model:Scheduler" name="OS_ISRDummy" cpuCores="//@model/@cpus.0/@cores.0">
+          <schedulables xsi:type="model:Scheduler" name="SchedC0" cpuCores="//@model/@cpus.0/@cores.0">
+            <schedulables xsi:type="model:Process" name="TaskLauncher">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:ActivationItem" name="ActivationItem_InterProcessStimulus_Unconditional" connection="//@model/@connections.1"/>
+                  <calls xsi:type="model:FunctionCall" function="//@model/@systems.0/@components.0/@functions.2"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <schedulables xsi:type="model:Process" name="TaskWorkerUnconditional">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableWorker-TaskWorkerUnconditional" function="//@model/@systems.0/@components.0/@functions.3"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <schedulables xsi:type="model:Process" name="TaskWorkerUnconditional2">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableWorker-TaskWorkerUnconditional2" function="//@model/@systems.0/@components.0/@functions.1"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <schedulables xsi:type="model:Process" name="TaskWorkerConditional">
+              <callGraph>
+                <graphEntries xsi:type="model:CallSequence" name="CS">
+                  <calls xsi:type="model:FunctionCall" name="call_RunnableWorker-TaskWorkerConditional" function="//@model/@systems.0/@components.0/@functions.0"/>
+                </graphEntries>
+              </callGraph>
+            </schedulables>
+            <timeSlice/>
+            <period/>
+            <maxRetard/>
+            <maxAdvance/>
+          </schedulables>
+          <timeSlice/>
+          <period/>
+          <maxRetard/>
+          <maxAdvance/>
+        </schedulables>
+      </rtosConfig>
+    </systems>
+  </model>
+  <settings>
+    <editor/>
+    <model/>
+    <tool/>
+  </settings>
+</root:Root>