Skip to content

Commit b8571d3

Browse files
Alexander Zaftbirkenfeld
authored andcommitted
rfcs: add RFCs for schemata and systems
1 parent e4ea861 commit b8571d3

14 files changed

+1149
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
kind: Command
3+
name: go
4+
version: 1
5+
argument: none
6+
result: none
7+
description: |
8+
start an action. If this is present, changing the target parameter should not initiate any action.
9+
10+
---
11+
kind: Command
12+
name: shutdown
13+
version: 1
14+
argument: none
15+
result: none
16+
description: |
17+
Shut down the hardware (not the SECNode). When this command is sent, and the
18+
status is DISABLED, it is safe to switch off the related device.
19+
20+
---
21+
kind: Command
22+
name: reset
23+
version: 1
24+
argument: none
25+
result: none
26+
description: |
27+
Put the module in a state predefined by the implementation.
28+
29+
---
30+
kind: Command
31+
name: clear_errors
32+
version: 1
33+
argument: none
34+
result: none
35+
description: |
36+
Tries to clear up the error state. May be called when status is ERROR.
37+
38+
---
39+
kind: Command
40+
name: control_off
41+
version: 1
42+
argument: none
43+
result: none
44+
description: |
45+
Turn off active control on this module.
46+
47+
---
48+
kind: Command
49+
name: stop
50+
version: 1
51+
argument: none
52+
result: none
53+
description: |
54+
Stop the current value-changing operation. If not driving, no effect.
55+
56+
---
57+
kind: Command
58+
name: hold
59+
version: 1
60+
optional: true
61+
argument: none
62+
result: none
63+
description: |
64+
Cease movement, be ready to continue soon, target value is kept.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
kind: Interface
2+
name: Communicator
3+
version: 1
4+
description: |
5+
A base SECoP interface class for modules who communicate directly with
6+
the hardware.
7+
commands:
8+
- communicate:
9+
argument: str
10+
result: str
11+
description: |
12+
Communicate with the hardware directly.
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
---
2+
kind: Datatype
3+
name: double
4+
version: 1
5+
description: floating point value
6+
dataty: double
7+
members:
8+
min:
9+
dataty: int
10+
optional: true
11+
max:
12+
dataty: int
13+
optional: true
14+
unit:
15+
dataty: string
16+
optional: true
17+
absolute_resolution:
18+
dataty: double
19+
optional: true
20+
relative_resolution:
21+
default: 1.2e-7
22+
dataty: double
23+
optional: true
24+
fmtstr:
25+
dataty: string
26+
default: "%.6g"
27+
optional: true
28+
29+
---
30+
kind: Datatype
31+
name: scaled
32+
version: 1
33+
description: scaled floating point transported as integer
34+
dataty: int
35+
members:
36+
min:
37+
dataty: int
38+
max:
39+
dataty: int
40+
scale:
41+
dataty: double
42+
unit:
43+
dataty: string
44+
optional: true
45+
absolute_resolution:
46+
dataty: double
47+
optional: true
48+
relative_resolution:
49+
default: 1.2e-7
50+
dataty: double
51+
optional: true
52+
fmtstr:
53+
dataty: string
54+
default: "%.6g"
55+
optional: true
56+
57+
---
58+
kind: Datatype
59+
name: int
60+
version: 1
61+
description: |
62+
An int
63+
dataty: int
64+
members:
65+
min:
66+
dataty: int
67+
max:
68+
dataty: int
69+
unit:
70+
dataty: string
71+
optional: true
72+
73+
---
74+
kind: Datatype
75+
name: bool
76+
version: 1
77+
description: a boolean value
78+
dataty:
79+
bool
80+
members: {}
81+
82+
---
83+
kind: Datatype
84+
name: enum
85+
version: 1
86+
description: Collection of predefined values mapped to integers.
87+
dataty: todo
88+
#- string
89+
#- int
90+
members:
91+
members:
92+
dataty:
93+
dict:
94+
key: string # TODO: how to define this nicely?
95+
value: int
96+
97+
---
98+
kind: Datatype
99+
name: string
100+
version: 1
101+
description: |
102+
A string
103+
dataty: str
104+
members:
105+
minchars:
106+
optional: true
107+
dataty: int
108+
maxchars:
109+
optional: true
110+
dataty: int
111+
isUTF8:
112+
optional: true
113+
dataty: bool
114+
115+
---
116+
kind: Datatype
117+
name: blob
118+
version: 1
119+
description: base64 encoded string for binary types
120+
dataty: ??? #TODO
121+
members:
122+
maxbytes:
123+
dataty: int
124+
minbytes:
125+
dataty: int
126+
default: 0
127+
optional: true
128+
129+
---
130+
kind: Datatype
131+
name: array
132+
version: 1
133+
description: Multiple values of the same type
134+
dataty:
135+
list
136+
members:
137+
members:
138+
dataty: datainfo # TODO: cleanly define the recursion
139+
maxlen:
140+
dataty: int
141+
minlen:
142+
default: 0
143+
dataty: int
144+
optional: true
145+
146+
---
147+
kind: Datatype
148+
name: tuple
149+
version: 1
150+
description: finite sequence of variously typed items
151+
dataty:
152+
list
153+
members:
154+
members:
155+
dataty:
156+
- datainfo
157+
158+
---
159+
kind: Datatype
160+
name: struct
161+
version: 1
162+
description: mixed type collection of values
163+
dataty: TODO
164+
members:
165+
members:
166+
dataty:
167+
dict:
168+
key: string
169+
value: datainfo
170+
optional:
171+
dataty:
172+
- string
173+
optional: true
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
kind: Interface
3+
name: Drivable
4+
version: 1
5+
# All accessibles from the base are "inherited".
6+
base: Writable:1
7+
description: |
8+
A base SECoP interface class for modules whose values changes "slowly",
9+
so that the change can be stopped.
10+
commands:
11+
- stop:1
12+
- hold:1
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
kind: Feature
3+
name: HasOffset
4+
version: 1
5+
description: |
6+
This feature is indicating that the value and target parameters are raw values, which
7+
need to be corrected by an offset. A module with the feature `HasOffset` must have
8+
a parameter `offset`, which indicates to all clients that values are to be converted
9+
by the following formulas:
10+
11+
ECS value = SECoP value + offset
12+
13+
SECoP target = ECS target - offset
14+
parameters:
15+
- offset:1
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
kind: Parameter
3+
name: value
4+
version: 1
5+
datainfo: numeric
6+
readonly: true
7+
description: |
8+
The value parameter.
9+
10+
---
11+
kind: Parameter
12+
name: status
13+
version: 1
14+
datainfo: tuple of status-code, message
15+
readonly: true
16+
description: |
17+
The status parameter.
18+
19+
---
20+
kind: Parameter
21+
name: target
22+
version: 1
23+
datainfo: numeric
24+
readonly: false
25+
description: |
26+
The target value for the module. By setting this parameter, a move
27+
operation is started.
28+
29+
---
30+
kind: Parameter
31+
name: pollinterval
32+
version: 1
33+
datainfo: double
34+
readonly: false
35+
description: |
36+
Hint for polling interval in seconds.
37+
38+
---
39+
kind: Parameter
40+
name: offset
41+
version: 1
42+
datainfo: numeric
43+
readonly: false
44+
description: |
45+
Offset parameter for the HasOffset feature.
46+
47+
---
48+
kind: Parameter
49+
name: target_limits
50+
version: 1
51+
datainfo: tuple numeric, numeric
52+
readonly: true
53+
description: |
54+
Changeble user-defined limits for the target parameter of a module.
55+
Has to respect the limits of the target parameter itself.
56+
57+
---
58+
kind: Parameter
59+
name: ramp
60+
version: 1
61+
datainfo: numeric
62+
readonly: false
63+
description: |
64+
Desired ramp. Unit is main-unit/min.
65+
66+
---
67+
kind: Parameter
68+
name: setpoint
69+
version: 1
70+
datainfo: numeric
71+
readonly: true
72+
description: |
73+
ramping setpoint
74+
75+
---
76+
kind: Parameter
77+
name: time_to_target
78+
version: 1
79+
datainfo: numeric
80+
readonly: true
81+
description: |
82+
Expected time to reach the target in seconds
83+
84+
---
85+
kind: Parameter
86+
name: controlled_by
87+
version: 1
88+
datainfo: string
89+
readonly: false
90+
description: |
91+
indicates the module this modules value is controlled by.
92+
93+
---
94+
kind: Parameter
95+
name: control_active
96+
version: 1
97+
datainfo: boolean
98+
readonly: true
99+
description: |
100+
Indicates whether this module is actively controlling.

0 commit comments

Comments
 (0)