| <?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.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
| <swModel> |
| <tasks name="doA" stimuli="A_Stimuli_EventBased?type=EventStimulus" preemption="cooperative" multipleTaskActivationLimit="0"> |
| <activityGraph> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true"> |
| <items xsi:type="am:RunnableCall" runnable="runnA?type=Runnable"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks name="doB" stimuli="B_Stimuli_25ms?type=PeriodicStimulus" preemption="cooperative" multipleTaskActivationLimit="0"> |
| <activityGraph> |
| <items xsi:type="am:ModeSwitch"> |
| <entries name="conditionTrue"> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true"> |
| <items xsi:type="am:RunnableCall" runnable="runnB?type=Runnable"/> |
| </items> |
| <condition> |
| <entries xsi:type="am:ModeConditionConjunction"> |
| <entries xsi:type="am:ModeValueCondition" label="executionMode?type=ModeLabel" value="ModeB" relation="EQUAL"/> |
| <entries xsi:type="am:ModeValueCondition" label="countX?type=ModeLabel" value="3" relation="GREATER_THAN"/> |
| <entries xsi:type="am:ModeValueCondition" label="countY?type=ModeLabel" value="3" relation="GREATER_THAN"/> |
| </entries> |
| </condition> |
| </entries> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks name="genY" stimuli="genTrigger?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0"> |
| <activityGraph> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true"> |
| <items xsi:type="am:RunnableCall" runnable="counterForY?type=Runnable"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks name="genX" stimuli="genTrigger?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0"> |
| <activityGraph> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true"> |
| <items xsi:type="am:RunnableCall" runnable="counterForX?type=Runnable"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <runnables name="runnA" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="10000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables name="runnB" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:ModeLabelAccess" data="countX?type=ModeLabel" access="decrement" step="3"/> |
| <items xsi:type="am:ModeLabelAccess" data="countY?type=ModeLabel" access="decrement" step="3"/> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="10000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables name="counterForY" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="10000"/> |
| </items> |
| <items xsi:type="am:ModeLabelAccess" data="countY?type=ModeLabel" access="increment" step="1"/> |
| <items xsi:type="am:CustomEventTrigger" event="check?type=CustomEvent"/> |
| </activityGraph> |
| </runnables> |
| <runnables name="counterForX" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="10000"/> |
| </items> |
| <items xsi:type="am:ModeLabelAccess" data="countX?type=ModeLabel" access="increment" step="1"/> |
| <items xsi:type="am:CustomEventTrigger" event="check?type=CustomEvent"/> |
| </activityGraph> |
| </runnables> |
| <modes xsi:type="am:EnumMode" name="ExecutionMode"> |
| <literals name="ModeA"/> |
| <literals name="ModeB"/> |
| </modes> |
| <modes xsi:type="am:NumericMode" name="CountingX"/> |
| <modes xsi:type="am:NumericMode" name="CountingY"/> |
| <modeLabels name="executionMode" displayName="" mode="ExecutionMode?type=EnumMode" initialValue="ModeA"/> |
| <modeLabels name="countY" displayName="" mode="CountingY?type=NumericMode" initialValue="-1"/> |
| <modeLabels name="countX" mode="CountingX?type=NumericMode" initialValue="-1"/> |
| </swModel> |
| <stimuliModel> |
| <stimuli xsi:type="am:EventStimulus" name="A_Stimuli_EventBased" triggeringEvents="check?type=CustomEvent"> |
| <setModeValueList> |
| <entries label="countX?type=ModeLabel" value="0"/> |
| <entries label="countY?type=ModeLabel" value="0"/> |
| </setModeValueList> |
| <executionCondition> |
| <entries xsi:type="am:ModeConditionConjunction"> |
| <entries xsi:type="am:ModeValueCondition" label="executionMode?type=ModeLabel" value="ModeA" relation="EQUAL"/> |
| <entries xsi:type="am:ModeValueCondition" label="countX?type=ModeLabel" value="2" relation="GREATER_THAN"/> |
| <entries xsi:type="am:ModeValueCondition" label="countY?type=ModeLabel" value="4" relation="GREATER_THAN"/> |
| </entries> |
| </executionCondition> |
| </stimuli> |
| <stimuli xsi:type="am:RelativePeriodicStimulus" name="genTrigger"> |
| <nextOccurrence xsi:type="am:TimeBoundaries"> |
| <lowerBound value="10" unit="ms"/> |
| <upperBound value="50" unit="ms"/> |
| </nextOccurrence> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" name="B_Stimuli_25ms"> |
| <recurrence value="25" unit="ms"/> |
| </stimuli> |
| </stimuliModel> |
| <eventModel> |
| <events xsi:type="am:CustomEvent" name="check" description="" eventType=""/> |
| </eventModel> |
| </am:Amalthea> |