blob: 14bc4529ed4151df56d72560d1e5d0d838c0a5a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
package org.scilab.modules.xcos
/* Encoded Scilab values */
class Binary
{
/* RFC 2045 Base64 encoded double[] values (space separated) */
String base64
}
/* A point is a position on the diagram */
class Point
{
/* X coordinate */
double x
/* Y coordinate */
double y
}
/* Rectangular coordinates of the object */
class Geometry
{
/* X coordinate */
double x
/* Y coordinate */
double y
/* Height of the object */
double height
/* Width of the object */
double width
}
/* The kind of a port */
enum PortKind
{
in, out, ein, eout
}
/* Shared definition for both a Diagram and a SuperBlock (eg. a Block) */
abstract class Layer
{
/* Scilab scripts added at current layer */
String[] context
/* contained objects */
contains BaseObject[] child opposite parent
}
/* Shared definition for an object contained in a Layer */
abstract class BaseObject {
/* Unique IDentifier : usually on the universally unique identifier (UUID) form */
id String uid
/* The diagram (to ease in memory representation) */
refers Diagram[1..1] parentDiagram
/* parent Layer to navigate back */
container Layer[1..1] parent opposite child
}
/* A diagram is the top-level object of a model. It contains simulation parameters and the hierarchical data-flow and event-flow graphs. */
class Diagram extends Layer
{
/* title of a diagram */
String title
/* Latest saved path */
String path
/* Simulation settings */
contains SimulationConfig properties
/* Simulation debug level */
int debugLevel
/* Version of the diagram */
String version
}
/* Simulation settings */
class SimulationConfig
{
/* Simulation final time (starting at 0) */
double finalTime
double absoluteTolerance
double relativeTolerance
double timeTolerance
double deltaT
double realtimeScale
double solver
double deltaH
}
/* */
class Block extends BaseObject, Layer
{
contains Geometry geometry
String description
String label
String style
String interfaceFunction
String[] expression
contains Binary exprs
int[] nzcross
int[] nmode
contains Binary equations
String functionName
int functionAPI
boolean dependsOnU
boolean dependsOnT
char blocktype
contains Port[] in
contains Port[] out
contains Port[] ein
contains Port[] eout
double[] rpar
int[] ipar
contains Binary opar
double[] state
double[] dstate
contains Binary odstate
}
class Port
{
id String uid
int[] datatype
double firing
refers Block sourceBlock
PortKind kind
boolean implicit
refers Link connectedSignal
String style
String label
}
class Link extends BaseObject
{
refers Port sourcePort
refers Port destinationPort
contains Geometry geometry
contains Point[] controlPoint
String style
String label
double lineWidth
double lineHeight
int color
}
class Annotation extends BaseObject
{
contains Geometry geometry
String description
String font
String fontSize
String style
}
/****************************************************************************************
* An executable representation can be exported only if the diagram has been "compiled" *
****************************************************************************************/
/*
*
*/
class CompiledRepresentation
{
}
|