1 L0 = <http://www.simantics.org/Layer0-1.1>
\r
2 L0X = <http://www.simantics.org/Layer0X-1.1>
\r
3 G2D = <http://www.simantics.org/G2D-1.1>
\r
4 DIA = <http://www.simantics.org/Diagram-2.2>
\r
5 MOD = <http://www.simantics.org/Modeling-1.2>
\r
6 SEL = <http://www.simantics.org/SelectionView-1.2>
\r
8 CHART = <http://www.simantics.org/Charts-1.2> : L0.Ontology
\r
10 L0.HasResourceClass "org.simantics.charts.ontology.ChartResource"
\r
12 // -----------------------------------------------------------------------
\r
15 CHART.Chart <T L0.Entity : MOD.TypeWithChangeInformation
\r
16 L0.HasDescription "Abstract base type for all chart types."
\r
19 CHART.ChartGroup <T CHART.Chart : MOD.TypeWithChangeInformation
\r
20 L0.HasDescription "A grouping of several charts. Intended to be viewed in a row."
\r
21 @L0.property L0.ConsistsOf
\r
22 //TODO: [L0.ConsistsOf all Chart]
\r
24 // -----------------------------------------------------------------------
\r
25 // TimeSeriesChart and TrendSpec
\r
27 CHART.TimeSeriesChart <T CHART.Chart
\r
28 L0.HasDescription "2D chart for viewing time series data."
\r
29 @L0.singlePropertyDefault L0.HasName "Time Series Chart"
\r
30 @L0.singlePropertyDefault CHART.Chart.YAxisMode CHART.YAxisMode.MultiAxis
\r
31 @L0.singlePropertyDefault CHART.Chart.ShowMilestones true
\r
32 // @L0.singlePropertyDefault CHART.Chart.TimeFormat CHART.TimeFormat.Time
\r
33 @L0.optionalProperty CHART.Chart.TimeWindowStart
\r
34 @L0.optionalProperty CHART.Chart.TimeWindowLength
\r
35 @L0.optionalProperty CHART.Chart.TimeWindowIncrement
\r
36 @L0.assert CHART.Chart.TimeWindowStart
\r
37 _ : CHART.ObtainedDouble
\r
38 @L0.assert CHART.Chart.TimeWindowLength
\r
39 _ : CHART.ObtainedDouble
\r
40 @L0.assert CHART.Chart.TimeWindowIncrement
\r
41 _ : CHART.ObtainedDouble
\r
42 @L0.property L0.ConsistsOf
\r
43 @L0.assert CHART.Chart.trackExperimentTime false
\r
44 @L0.assert CHART.Chart.valueViewPosition
\r
45 // Default value is top-right corner
\r
46 [1.0, 0.0] : L0.DoubleArray
\r
47 @L0.assert CHART.Chart.backgroundColor
\r
48 [0.98, 0.98, 0.98, 0.8941, 0.8941, 0.9725] : L0.FloatArray
\r
49 @L0.assert CHART.Chart.showGrid true
\r
50 @L0.assert CHART.Chart.gridColor
\r
51 [0.7451, 0.7451, 0.8627] : L0.FloatArray
\r
54 CHART.Chart.YAxisMode <R L0.IsRelatedTo : L0.FunctionalRelation
\r
55 L0.HasLabel "Axis Mode"
\r
56 L0.HasRange CHART.YAxisMode
\r
57 CHART.YAxisMode <T L0.Property
\r
58 L0.HasDescription "Setting how Y-Axis is shown between plots"
\r
59 @L0.tag L0.Enumeration
\r
60 CHART.YAxisMode.SingleAxis : CHART.YAxisMode
\r
61 L0.HasLabel "Single Axis"
\r
62 CHART.YAxisMode.MultiAxis : CHART.YAxisMode
\r
63 L0.HasLabel "Multi Axis"
\r
65 // Value Format (For Y-Axis)
\r
66 //CHART.Chart.Item.ValueFormat <R L0.IsRelatedTo : L0.FunctionalRelation
\r
67 // L0.HasLabel "Value Format"
\r
68 // L0.HasRange CHART.ValueMode
\r
69 //CHART.ValueFormat <T L0.Property
\r
70 // L0.HasDescription "Setting how the value is formatted in the Y-Axis"
\r
71 // @L0.property CHART.ValueFormat.Pattern
\r
72 // @L0.tag L0.Enumeration
\r
73 //CHART.ValueFormat.Currency : CHART.ValueFormat
\r
74 // L0.HasLabel "Currency Format"
\r
75 // CHART.ValueFormat.Pattern "###,###.##############"
\r
76 //CHART.ValueFormat.Engineering : CHART.ValueFormat
\r
77 // L0.HasLabel "Engineering Format"
\r
78 // CHART.ValueFormat.Pattern "##0.###E0"
\r
79 //CHART.ValueFormat.Scientific : CHART.ValueFormat
\r
80 // L0.HasLabel "Scientific Format"
\r
81 // CHART.ValueFormat.Pattern "0.###E0"
\r
82 //CHART.ValueFormat.Pattern <R L0.HasProperty
\r
83 // L0.HasLabel "Pattern"
\r
84 // L0.HasRange L0.String
\r
86 CHART.HasColor <R L0.HasProperty : L0.FunctionalRelation
\r
88 L0.HasRange L0.Integer
\r
90 // -----------------------------------------------------------------------
\r
93 CHART.Chart.ShowMilestones <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
94 L0.HasLabel "Show Milestones"
\r
95 ==> "Boolean" --> L0.Boolean
\r
97 CHART.Chart.showGrid <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
98 L0.HasLabel "Show Grid"
\r
99 ==> "Boolean" --> L0.Boolean
\r
101 CHART.Chart.TimeWindowStart <R L0.HasProperty : L0.FunctionalRelation
\r
102 L0.HasLabel "Time Window Start"
\r
104 CHART.Chart.TimeWindowLength <R L0.HasProperty : L0.FunctionalRelation
\r
105 L0.HasLabel "Time Window Length"
\r
107 CHART.Chart.TimeWindowIncrement <R L0.HasProperty : L0.FunctionalRelation
\r
108 L0.HasDescription "Percent of how much window is grown once end is reached"
\r
109 L0.HasLabel "Time Window Increment"
\r
111 CHART.Chart.trackExperimentTime <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
112 L0.HasDescription "If true, chart hairline view shall track current experiment time."
\r
113 L0.HasLabel "Track Experiment Time"
\r
114 ==> "Boolean" --> L0.Boolean
\r
115 CHART.Chart.valueViewPosition <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
116 L0.HasDescription "Relation position [x,y] of the momentary value view. The values of x and y are between 0 and 1 where 0 means the top/left and 1 bottom/right."
\r
117 L0.HasLabel "Value View Position"
\r
118 ==> "Vector Double" --> L0.DoubleArray
\r
119 CHART.Chart.backgroundColor <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
120 L0.HasDescription "An array of (r,g,b) floating point triples to describe either a single color or a color gradient."
\r
121 L0.HasLabel "Background Colors"
\r
122 ==> "Vector Float" --> L0.FloatArray
\r
123 CHART.Chart.gridColor <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
124 L0.HasDescription "An (r,g,b) floating point triple to describe a single color."
\r
125 L0.HasLabel "Grid Color"
\r
126 ==> "Vector Float" --> L0.FloatArray
\r
128 // -----------------------------------------------------------------------
\r
130 CHART.Chart.Item <T L0.Entity : MOD.TypeWithChangeInformation
\r
131 @L0.property CHART.Chart.Item.HasSubscriptionItem
\r
132 @L0.singleProperty CHART.Chart.Item.Index
\r
133 @L0.assert CHART.Chart.Item.Index 0
\r
134 //@L0.assert L0.HasLabel ""
\r
135 // Subscription UUID
\r
136 //@L0.singlePropertyDefault CHART.Chart.Item.LineMode CHART.LineMode.LinearInterpolation
\r
137 @L0.singlePropertyDefault CHART.Chart.Item.DrawMode CHART.DrawMode.Line
\r
138 @L0.singlePropertyDefault CHART.Chart.Item.Renderer CHART.Renderer.Analog
\r
139 @L0.singlePropertyDefault CHART.Chart.Item.ScaleMode CHART.ScaleMode.AutoScale
\r
140 //@L0.optionalProperty CHART.HasScale
\r
141 //@L0.assert CHART.Hascale CHART.DefaultScale
\r
142 @L0.singleProperty CHART.Chart.Item.ScaleMode.Min
\r
143 @L0.assert CHART.Chart.Item.ScaleMode.Min 0.0
\r
144 @L0.singleProperty CHART.Chart.Item.ScaleMode.Max
\r
145 @L0.assert CHART.Chart.Item.ScaleMode.Max 120.0
\r
146 @L0.singleProperty CHART.Chart.Item.Index
\r
147 //@L0.assert CHART.Chart.Item.ValueFormat CHART.ValueFormat.Currency
\r
148 //@L0.singleProperty CHART.Chart.Item.ValueFormat
\r
149 @L0.assert L0.HasLabel
\r
151 L0.ConvertsToValueWith CHART.Functions.chartItemLabel
\r
153 >-- CHART.Chart.Item.subscriptionInfo ==> "String" --> L0.Value <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
154 L0.HasLabel "Subscription Info"
\r
155 @L0.assert CHART.Chart.Item.subscriptionInfo
\r
157 L0.ConvertsToValueWith CHART.Functions.chartItemSubscriptionInfo
\r
159 >-- CHART.Chart.Item.hidden ==> "Boolean" --> L0.Boolean <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
160 L0.HasLabel "Hidden"
\r
161 L0.HasDescription "Used for marking chart items hidden."
\r
162 @L0.assert CHART.Chart.Item.hidden false
\r
163 @L0.optionalProperty G2D.HasStrokeWidth
\r
164 @L0.optionalProperty G2D.HasColor
\r
166 CHART.Chart.Item.HasSubscriptionItem <R L0.IsRelatedTo
\r
167 --> MOD.Subscription.Item
\r
168 L0.InverseOf CHART.Chart.Item.HasChartItem <R L0.IsWeaklyRelatedTo
\r
169 --> CHART.Chart.Item
\r
171 CHART.Chart.Item.Index <R L0.HasProperty : L0.FunctionalRelation
\r
172 L0.HasLabel "Position and color index"
\r
176 //CHART.DefaultScale = { min = 0, max = 120.0 } : CHART.DoubleRange
\r
177 //CHART.Chart.Item.LineMode <R L0.IsRelatedTo : L0.FunctionalRelation
\r
178 // L0.HasLabel "Line Mode"
\r
179 // L0.HasRange CHART.LineMode
\r
180 //CHART.LineMode <T L0.Property
\r
181 // L0.HasDescription "Describes how the plot line is drawn between the dots, i.e. the data samples."
\r
182 // @L0.tag L0.Enumeration
\r
183 //CHART.LineMode.LinearInterpolation : CHART.LineMode
\r
184 // L0.HasLabel "Line"
\r
185 //CHART.LineMode.StepWise : CHART.LineMode
\r
186 // L0.HasLabel "Step"
\r
188 CHART.Chart.Item.Renderer <R L0.IsRelatedTo: L0.FunctionalRelation
\r
189 L0.HasLabel "Renderer"
\r
190 L0.HasRange CHART.Renderer
\r
191 CHART.Renderer <T L0.Property
\r
192 L0.HasDescription "Describes the renderer to use for drawing the 2d plot."
\r
193 @L0.tag L0.Enumeration
\r
194 CHART.Renderer.Binary : CHART.Renderer
\r
195 L0.HasLabel "Binary"
\r
196 CHART.Renderer.Analog : CHART.Renderer
\r
197 L0.HasLabel "Analog"
\r
200 CHART.Chart.Item.ScaleMode <R L0.IsRelatedTo : L0.FunctionalRelation
\r
201 L0.HasLabel "Scale"
\r
202 L0.HasRange CHART.ScaleMode
\r
203 CHART.ScaleMode <T L0.Property
\r
204 L0.HasDescription "The mode how a plot is scaled to the viewport."
\r
205 @L0.tag L0.Enumeration
\r
206 CHART.ScaleMode.ManualScale : CHART.ScaleMode
\r
207 L0.HasLabel "Manual scale"
\r
208 @L0.singlePropertyDefault CHART.Chart.Item.ScaleMode.Min 0.0
\r
209 @L0.singlePropertyDefault CHART.Chart.Item.ScaleMode.Max 120.0
\r
210 CHART.ScaleMode.AutoScale : CHART.ScaleMode
\r
211 L0.HasLabel "Auto scale" // Fit all samples
\r
213 CHART.Chart.Item.ScaleMode.Min <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
214 L0.HasLabel "Manual Scale Min"
\r
215 L0.HasRange L0.Double
\r
216 CHART.Chart.Item.ScaleMode.Max <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
\r
217 L0.HasLabel "Manual Scale Max"
\r
218 L0.HasRange L0.Double
\r
222 //CHART.Chart.TimeFormat <R L0.IsRelatedTo : L0.FunctionalRelation
\r
223 // L0.HasLabel "Time Format"
\r
224 // L0.HasRange CHART.TimeFormat
\r
225 //CHART.TimeFormat <T L0.Property
\r
226 // L0.HasDescription "The format how time axis is printed."
\r
227 // @L0.tag L0.Enumeration
\r
228 //CHART.TimeFormat.Time : CHART.TimeFormat
\r
229 // L0.HasLabel "Time HH:mm:ss.SSS"
\r
230 //CHART.TimeFormat.Decimal : CHART.TimeFormat
\r
231 // L0.HasLabel "Decimal"
\r
234 CHART.HasScale <R L0.HasProperty
\r
235 L0.HasLabel "Scale Values"
\r
236 L0.HasRange CHART.DoubleRange
\r
237 CHART.DoubleRange <T L0.Literal
\r
238 @L0.assert L0.HasDataType ${
\r
244 CHART.Chart.Item.DrawMode <R L0.IsRelatedTo : L0.FunctionalRelation
\r
245 L0.HasLabel "Draw Mode"
\r
246 L0.HasRange CHART.DrawMode
\r
247 CHART.DrawMode <T L0.Property
\r
248 @L0.tag L0.Enumeration
\r
250 CHART.DrawMode.DeviationAndAverage : CHART.DrawMode
\r
251 L0.HasLabel "Average and Deviation"
\r
252 CHART.DrawMode.DeviationAndLine : CHART.DrawMode
\r
253 L0.HasLabel "Line and Deviation"
\r
254 CHART.DrawMode.DeviationAndSample : CHART.DrawMode
\r
255 L0.HasLabel "Sample and Deviation"
\r
256 CHART.DrawMode.Sample : CHART.DrawMode
\r
257 L0.HasLabel "Sample"
\r
258 CHART.DrawMode.Average : CHART.DrawMode
\r
259 L0.HasLabel "Average"
\r
260 CHART.DrawMode.Line : CHART.DrawMode
\r
262 CHART.DrawMode.Deviation : CHART.DrawMode
\r
263 L0.HasLabel "Deviation"
\r
264 //CHART.DrawMode.DeviationAndMedian : CHART.DrawMode
\r
265 // L0.HasLabel "Median and Deviation"
\r
266 //CHART.DrawMode.Median : CHART.DrawMode
\r
267 // L0.HasLabel "Median"
\r
269 // -----------------------------------------------------------------------
\r
273 CHART.HasTimeSegment <R L0.HasProperty : L0.FunctionalRelation
\r
274 L0.HasRange CHART.TimeSegment
\r
276 CHART.TimeSegment <T L0.Entity
\r
277 @L0.singleProperty CHART.HasStartTime
\r
278 @L0.singleProperty CHART.HasEndTime
\r
279 CHART.HasStartTime <R L0.HasProperty : L0.FunctionalRelation
\r
280 L0.HasRange L0.Double
\r
281 CHART.HasEndTime <R L0.HasProperty : L0.FunctionalRelation
\r
282 L0.HasRange L0.Double
\r
284 CHART.HasTimePresentation <R L0.IsRelatedTo : L0.FunctionalRelation
\r
285 L0.HasRange CHART.TimePresentation
\r
286 CHART.TimePresentation <T L0.Property
\r
287 L0.HasDescription "Setting how time is shown on UI"
\r
288 @L0.tag L0.Enumeration
\r
289 CHART.TimePresentation.Absolute : CHART.TimePresentation
\r
290 CHART.TimePresentation.Relative : CHART.TimePresentation
\r
292 CHART.HasGridMode <R L0.HasProperty : L0.FunctionalRelation
\r
293 L0.HasRange CHART.GridMode
\r
294 CHART.GridMode <T L0.Property
\r
295 L0.HasDescription "The mode how grid lines are drawn"
\r
296 @L0.tag L0.Abstract
\r
297 CHART.DisabledGrid <T CHART.GridMode
\r
298 CHART.AdaptiveGrid <T CHART.GridMode
\r
299 @L0.singleProperty CHART.HasSpacing
\r
300 CHART.ManualGrid <T CHART.GridMode
\r
301 @L0.singleProperty CHART.HasXLines
\r
302 @L0.singleProperty CHART.HasYLines
\r
303 CHART.HasXLines <R L0.HasProperty : L0.FunctionalRelation
\r
304 L0.HasRange L0.Double
\r
305 CHART.HasYLines <R L0.HasProperty : L0.FunctionalRelation
\r
306 L0.HasRange L0.Double
\r
307 CHART.HasSpacing <R L0.HasProperty : L0.FunctionalRelation
\r
308 L0.HasRange L0.Double
\r
311 //---------------------------
\r
314 CHART.ChartTemplate <T L0.Entity
\r
315 CHART.HasDefaultChartTemplate <R L0.DependsOn : L0.FunctionalRelation
\r
316 CHART.ObtainedDouble <T L0.Value
\r
318 //---------------------------
\r
319 // Simple templates
\r
321 CHART.WholeHistoryChartTemplate : CHART.ChartTemplate
\r
322 L0.HasLabel "Whole history"
\r
323 CHART.Chart.TimeWindowIncrement 50.0
\r
325 CHART.Last60SecondsChartTemplate : CHART.ChartTemplate
\r
326 L0.HasLabel "Last 60 seconds"
\r
327 CHART.Chart.TimeWindowLength 60.0
\r
328 CHART.Chart.TimeWindowIncrement 50.0
\r
330 CHART.Last10MinutesChartTemplate : CHART.ChartTemplate
\r
331 L0.HasLabel "Last 10 minutes"
\r
332 CHART.Chart.TimeWindowLength 600.0
\r
333 CHART.Chart.TimeWindowIncrement 50.0
\r
336 CHART.Functions : L0.Library
\r
337 CHART.Functions.chartItemLabel : L0.ExternalValue
\r
338 CHART.Functions.chartItemSubscriptionInfo : L0.ExternalValue
\r