1
|
<?xml version="1.0" standalone="no"?>
|
2
|
<!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
|
3
|
"http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
|
4
|
<entity name="junk" class="ptolemy.actor.TypedCompositeActor">
|
5
|
<property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
|
6
|
</property>
|
7
|
<property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[596, 350]">
|
8
|
</property>
|
9
|
<property name="_vergilLocation" class="ptolemy.actor.gui.LocationAttribute" value="[104, 127]">
|
10
|
</property>
|
11
|
<property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={13, 155, 809, 460}, maximized=false}">
|
12
|
</property>
|
13
|
<property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.0">
|
14
|
</property>
|
15
|
<property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{298.0, 175.0}">
|
16
|
</property>
|
17
|
<property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
|
18
|
<property name="text" class="ptolemy.kernel.util.StringAttribute" value="This example illustrates an extended FSM that copies the first 6 input values to the output, and then subsequently outputs only the value 5. Internally, it uses a variable named count to count the inputs. Right click on the FSMActor and select Open Actor to see the extended FSM.">
|
19
|
</property>
|
20
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[15.0, 165.0]">
|
21
|
</property>
|
22
|
</property>
|
23
|
<property name="Annotation2" class="ptolemy.vergil.kernel.attributes.TextAttribute">
|
24
|
<property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.4,1.0}">
|
25
|
</property>
|
26
|
<property name="text" class="ptolemy.kernel.util.StringAttribute" value="Author: Edward A. Lee">
|
27
|
</property>
|
28
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[25.0, 275.0]">
|
29
|
</property>
|
30
|
</property>
|
31
|
<property name="SR Director" class="ptolemy.domains.sr.kernel.SRDirector">
|
32
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[65.0, 35.0]">
|
33
|
</property>
|
34
|
</property>
|
35
|
<entity name="FSMActor" class="ptolemy.domains.modal.kernel.FSMActor">
|
36
|
<property name="_library" class="ptolemy.moml.LibraryAttribute">
|
37
|
<configure>
|
38
|
<entity name="StateLibrary" class="ptolemy.kernel.CompositeEntity"><input source="ptolemy/configs/basicUtilities.xml"></input><entity name="State" class="ptolemy.domains.modal.kernel.State"><property name="_centerName" class="ptolemy.kernel.util.Attribute"></property></entity></entity>
|
39
|
</configure>
|
40
|
</property>
|
41
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[45.0, 100.0]">
|
42
|
</property>
|
43
|
<property name="count" class="ptolemy.data.expr.Parameter" value="5">
|
44
|
<property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
|
45
|
</property>
|
46
|
<property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
|
47
|
<property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
|
48
|
</property>
|
49
|
</property>
|
50
|
<property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
|
51
|
<configure>
|
52
|
<svg>
|
53
|
<text x="20" style="font-size:14; font-family:SansSerif; fill:blue" y="20">-P-</text>
|
54
|
</svg>
|
55
|
</configure>
|
56
|
</property>
|
57
|
<property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
|
58
|
</property>
|
59
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[20.0, 40.0]">
|
60
|
</property>
|
61
|
</property>
|
62
|
<property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={436, 146, 813, 511}, maximized=false}">
|
63
|
</property>
|
64
|
<property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[600, 400]">
|
65
|
</property>
|
66
|
<property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.0">
|
67
|
</property>
|
68
|
<property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{300.0, 200.0}">
|
69
|
</property>
|
70
|
<property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
|
71
|
<property name="text" class="ptolemy.kernel.util.StringAttribute" value="The transition from the init state to counting, which is taken on the first firing, sets the count variable to zero and produces no output (the output is absent). The transition from the counting state back to itself increment the count variable, and also produces the value of the count variable (before the increment) on the output. The transition from counting to final occurs in the firing after the count variable reaches value 5. From then on, the value of the output will be absent.">
|
72
|
</property>
|
73
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[25.0, 200.0]">
|
74
|
</property>
|
75
|
</property>
|
76
|
<port name="out" class="ptolemy.actor.TypedIOPort">
|
77
|
<property name="output"/>
|
78
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[400.0, 105.0]">
|
79
|
</property>
|
80
|
</port>
|
81
|
<entity name="init" class="ptolemy.domains.modal.kernel.State">
|
82
|
<property name="isInitialState" class="ptolemy.data.expr.Parameter" value="true">
|
83
|
</property>
|
84
|
<property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
|
85
|
</property>
|
86
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[90.0, 105.0]">
|
87
|
</property>
|
88
|
</entity>
|
89
|
<entity name="counting" class="ptolemy.domains.modal.kernel.State">
|
90
|
<property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
|
91
|
</property>
|
92
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[200.0, 105.0]">
|
93
|
</property>
|
94
|
</entity>
|
95
|
<entity name="final" class="ptolemy.domains.modal.kernel.State">
|
96
|
<property name="isFinalState" class="ptolemy.data.expr.Parameter" value="true">
|
97
|
</property>
|
98
|
<property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
|
99
|
</property>
|
100
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[320.0, 105.0]">
|
101
|
</property>
|
102
|
</entity>
|
103
|
<relation name="relation" class="ptolemy.domains.modal.kernel.Transition">
|
104
|
<property name="guardExpression" class="ptolemy.kernel.util.StringAttribute" value="true">
|
105
|
</property>
|
106
|
<property name="outputActions" class="ptolemy.domains.modal.kernel.OutputActionsAttribute">
|
107
|
</property>
|
108
|
<property name="setActions" class="ptolemy.domains.modal.kernel.CommitActionsAttribute" value="count = 0">
|
109
|
</property>
|
110
|
<property name="exitAngle" class="ptolemy.data.expr.Parameter" value="0.6283185307179586">
|
111
|
</property>
|
112
|
<property name="gamma" class="ptolemy.data.expr.Parameter" value="0.1159264812650849">
|
113
|
</property>
|
114
|
</relation>
|
115
|
<relation name="relation2" class="ptolemy.domains.modal.kernel.Transition">
|
116
|
<property name="guardExpression" class="ptolemy.kernel.util.StringAttribute" value="count >= 5">
|
117
|
</property>
|
118
|
<property name="outputActions" class="ptolemy.domains.modal.kernel.OutputActionsAttribute" value="out = count">
|
119
|
</property>
|
120
|
<property name="exitAngle" class="ptolemy.data.expr.Parameter" value="0.6283185307179586">
|
121
|
</property>
|
122
|
<property name="gamma" class="ptolemy.data.expr.Parameter" value="0.07301062858210906">
|
123
|
</property>
|
124
|
</relation>
|
125
|
<relation name="relation3" class="ptolemy.domains.modal.kernel.Transition">
|
126
|
<property name="guardExpression" class="ptolemy.kernel.util.StringAttribute" value="count < 5">
|
127
|
</property>
|
128
|
<property name="outputActions" class="ptolemy.domains.modal.kernel.OutputActionsAttribute" value="out = count">
|
129
|
</property>
|
130
|
<property name="setActions" class="ptolemy.domains.modal.kernel.CommitActionsAttribute" value="count = count + 1">
|
131
|
</property>
|
132
|
<property name="exitAngle" class="ptolemy.data.expr.Parameter" value="2.356194490192345">
|
133
|
</property>
|
134
|
<property name="gamma" class="ptolemy.data.expr.Parameter" value="-2.9287254313479147">
|
135
|
</property>
|
136
|
</relation>
|
137
|
<link port="init.outgoingPort" relation="relation"/>
|
138
|
<link port="counting.incomingPort" relation="relation"/>
|
139
|
<link port="counting.incomingPort" relation="relation3"/>
|
140
|
<link port="counting.outgoingPort" relation="relation2"/>
|
141
|
<link port="counting.outgoingPort" relation="relation3"/>
|
142
|
<link port="final.incomingPort" relation="relation2"/>
|
143
|
</entity>
|
144
|
<entity name="NonStrictDisplay" class="ptolemy.domains.sr.lib.gui.NonStrictDisplay">
|
145
|
<property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={598, 421, 484, 208}, maximized=false}">
|
146
|
</property>
|
147
|
<property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute">
|
148
|
</property>
|
149
|
<property name="_location" class="ptolemy.kernel.util.Location" value="[155.0, 100.0]">
|
150
|
</property>
|
151
|
</entity>
|
152
|
<relation name="relation" class="ptolemy.actor.TypedIORelation">
|
153
|
</relation>
|
154
|
<link port="FSMActor.out" relation="relation"/>
|
155
|
<link port="NonStrictDisplay.input" relation="relation"/>
|
156
|
</entity>
|