@microtronics/studio-cli 0.3.5 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/studio-cli.d.ts +1267 -0
- package/out/api.d.ts.map +1 -1
- package/out/api.js +11 -1
- package/out/dde/coreDefinitions.d.ts.map +1 -0
- package/out/dde/coreDefinitions.js +533 -0
- package/out/dde/dde.d.ts.map +1 -0
- package/out/dde/dde.js +178 -0
- package/out/dde/dynamic-dde.schema.json +835 -0
- package/out/dde/fileGenerators/xml.d.ts.map +1 -0
- package/out/dde/fileGenerators/xml.js +205 -0
- package/out/dde/yamlDdePreCompiler.d.ts.map +1 -0
- package/out/dde/yamlDdePreCompiler.js +900 -0
- package/out/defaultFiles.d.ts.map +1 -0
- package/out/defaultFiles.js +84 -0
- package/out/dependencies.d.ts.map +1 -1
- package/out/dependencies.js +41 -6
- package/out/diagnostics.d.ts.map +1 -0
- package/out/diagnostics.js +10 -0
- package/out/helper.d.ts.map +1 -0
- package/out/helper.js +22 -0
- package/out/main.js +13 -0
- package/out/manifest.d.ts.map +1 -1
- package/out/manifest.js +7 -0
- package/package.json +69 -63
|
@@ -0,0 +1,835 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Dynamic DDE Schema",
|
|
4
|
+
"description": "Describe your data structure",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"dde": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"default": "1.0.0",
|
|
11
|
+
"readOnly": true,
|
|
12
|
+
"description": "Version of the dde schema"
|
|
13
|
+
},
|
|
14
|
+
"cloudProject": {
|
|
15
|
+
"type": "boolean"
|
|
16
|
+
},
|
|
17
|
+
"constants": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"description": "Here you can declare your constants that can be used across the yaml."
|
|
20
|
+
},
|
|
21
|
+
"state": {
|
|
22
|
+
"$ref": "#/$defs/stateContainer"
|
|
23
|
+
},
|
|
24
|
+
"result": {
|
|
25
|
+
"$ref": "#/$defs/resultContainer"
|
|
26
|
+
},
|
|
27
|
+
"volatile": {
|
|
28
|
+
"$ref": "#/$defs/volatileContainer"
|
|
29
|
+
},
|
|
30
|
+
"timeseries": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"description": "",
|
|
33
|
+
"additionalProperties": false,
|
|
34
|
+
"maxProperties": 9,
|
|
35
|
+
"properties": {
|
|
36
|
+
"_id": false,
|
|
37
|
+
"id": false,
|
|
38
|
+
"_stamp": false,
|
|
39
|
+
"stamp": false,
|
|
40
|
+
"tag": false,
|
|
41
|
+
"_uid": false,
|
|
42
|
+
"customer_id": false,
|
|
43
|
+
"site_id": false,
|
|
44
|
+
"_rec_flags__": false,
|
|
45
|
+
"applog": false
|
|
46
|
+
},
|
|
47
|
+
"patternProperties": {
|
|
48
|
+
"^(?!.*^field\\d+$)(?!.*^ch\\d+$)[a-zA-Z_][0-9a-zA-Z_]*$": {
|
|
49
|
+
"$ref": "#/$defs/timeseriesFields"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"aloha": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"description": "Special container to transport live data during put-into-operation procedures.",
|
|
56
|
+
"$ref": "#/$defs/alohaContainer"
|
|
57
|
+
},
|
|
58
|
+
"setting": {
|
|
59
|
+
"$ref": "#/$defs/settingContainer"
|
|
60
|
+
},
|
|
61
|
+
"command": {
|
|
62
|
+
"$ref": "#/$defs/commandContainer"
|
|
63
|
+
},
|
|
64
|
+
"storage": {
|
|
65
|
+
"$ref": "#/$defs/serverStorageContainer"
|
|
66
|
+
},
|
|
67
|
+
"relations": {
|
|
68
|
+
"$ref": "#/$defs/serverRelationsContainer"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"patternProperties": {
|
|
72
|
+
"^(?!.*^field\\d+$)(?!.*^ch\\d+$)(?!(dde|cloudProject|constants|state|result|volatile|timeseries|aloha|setting|command|storage|relations))[a-zA-Z_][0-9a-zA-Z_]*$": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"$ref": "#/$defs/configurationFields"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"allOf": [
|
|
78
|
+
{
|
|
79
|
+
"if": {
|
|
80
|
+
"properties": {
|
|
81
|
+
"cloudProject": {
|
|
82
|
+
"const": false
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"then": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"additionalProperties": false,
|
|
89
|
+
"properties": {
|
|
90
|
+
"dde": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"default": "1.0.0",
|
|
93
|
+
"readOnly": true,
|
|
94
|
+
"description": "Version of the dde schema"
|
|
95
|
+
},
|
|
96
|
+
"cloudProject": {
|
|
97
|
+
"type": "boolean"
|
|
98
|
+
},
|
|
99
|
+
"constants": {
|
|
100
|
+
"type": "object",
|
|
101
|
+
"description": "Here you can declare your constants that can be used across the yaml."
|
|
102
|
+
},
|
|
103
|
+
"state": {
|
|
104
|
+
"$ref": "#/$defs/stateContainer"
|
|
105
|
+
},
|
|
106
|
+
"result": {
|
|
107
|
+
"$ref": "#/$defs/resultContainer"
|
|
108
|
+
},
|
|
109
|
+
"volatile": {
|
|
110
|
+
"$ref": "#/$defs/volatileContainer"
|
|
111
|
+
},
|
|
112
|
+
"timeseries": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"description": "",
|
|
115
|
+
"additionalProperties": false,
|
|
116
|
+
"maxProperties": 9,
|
|
117
|
+
"properties": {
|
|
118
|
+
"_id": false,
|
|
119
|
+
"id": false,
|
|
120
|
+
"_stamp": false,
|
|
121
|
+
"stamp": false,
|
|
122
|
+
"tag": false,
|
|
123
|
+
"_uid": false,
|
|
124
|
+
"customer_id": false,
|
|
125
|
+
"site_id": false,
|
|
126
|
+
"_rec_flags__": false,
|
|
127
|
+
"applog": false
|
|
128
|
+
},
|
|
129
|
+
"patternProperties": {
|
|
130
|
+
"^(?!.*^field\\d+$)(?!.*^ch\\d+$)[a-zA-Z_][0-9a-zA-Z_]*$": {
|
|
131
|
+
"$ref": "#/$defs/timeseriesFields"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"aloha": {
|
|
136
|
+
"type": "object",
|
|
137
|
+
"description": "Special container to transport live data during put-into-operation procedures.",
|
|
138
|
+
"$ref": "#/$defs/alohaContainer"
|
|
139
|
+
},
|
|
140
|
+
"setting": {
|
|
141
|
+
"$ref": "#/$defs/settingContainer"
|
|
142
|
+
},
|
|
143
|
+
"command": {
|
|
144
|
+
"$ref": "#/$defs/commandContainer"
|
|
145
|
+
},
|
|
146
|
+
"storage": {
|
|
147
|
+
"$ref": "#/$defs/serverStorageContainer"
|
|
148
|
+
},
|
|
149
|
+
"relations": {
|
|
150
|
+
"$ref": "#/$defs/serverRelationsContainer"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"$defs": {
|
|
157
|
+
"stateContainer": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"title": "state - Transferred from the device",
|
|
160
|
+
"description": "Use this container for low frequent state changes.",
|
|
161
|
+
"$ref": "#/$defs/configurationFields"
|
|
162
|
+
},
|
|
163
|
+
"resultContainer": {
|
|
164
|
+
"type": "object",
|
|
165
|
+
"title": "result - Transferred from the device",
|
|
166
|
+
"description": "Use this container for higher frequent changes.\ne.g. responses to an executed command.",
|
|
167
|
+
"$ref": "#/$defs/configurationFields"
|
|
168
|
+
},
|
|
169
|
+
"volatileContainer": {
|
|
170
|
+
"type": "object",
|
|
171
|
+
"title": "volatile - Transferred from the device",
|
|
172
|
+
"description": "Container is not persisted on the device.\nCommon use case would be a transaction response.\nIf you want to persist this data, use 'DDE_volatile_persist()'",
|
|
173
|
+
"$ref": "#/$defs/configurationFields"
|
|
174
|
+
},
|
|
175
|
+
"alohaContainer": {
|
|
176
|
+
"type": "object",
|
|
177
|
+
"title": "aloha - Transferred from the device",
|
|
178
|
+
"description": "A special container to transport live data during put-into-operation procedures",
|
|
179
|
+
"$ref": "#/$defs/configurationFields"
|
|
180
|
+
},
|
|
181
|
+
"settingContainer": {
|
|
182
|
+
"type": "object",
|
|
183
|
+
"title": "setting - Transferred to the device",
|
|
184
|
+
"description": "Use this container for low frequent changes.\ne.g. application settings like a transfer interval",
|
|
185
|
+
"$ref": "#/$defs/configurationFields"
|
|
186
|
+
},
|
|
187
|
+
"commandContainer": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"title": "command - Transferred to the device",
|
|
190
|
+
"description": "Use this container for high frequent changes.\ne.g. changing the state of an physical output",
|
|
191
|
+
"$ref": "#/$defs/configurationFields"
|
|
192
|
+
},
|
|
193
|
+
"serverStorageContainer": {
|
|
194
|
+
"type": "object",
|
|
195
|
+
"title": "storage - Server only",
|
|
196
|
+
"description": "Use this container to store any POV or BLO related settings.",
|
|
197
|
+
"$ref": "#/$defs/configurationFields"
|
|
198
|
+
},
|
|
199
|
+
"serverRelationsContainer": {
|
|
200
|
+
"type": "object",
|
|
201
|
+
"title": "relations - Server only",
|
|
202
|
+
"description": "Use this container to store any field related configuration.",
|
|
203
|
+
"$ref": "#/$defs/configurationFields"
|
|
204
|
+
},
|
|
205
|
+
"configurationFields": {
|
|
206
|
+
"type": "object",
|
|
207
|
+
"description": "Fields of the container.",
|
|
208
|
+
"additionalProperties": false,
|
|
209
|
+
"$ref": "#/$defs/reservedNamesFieldNames",
|
|
210
|
+
"properties": {},
|
|
211
|
+
"patternProperties": {
|
|
212
|
+
"^(?!.*^field\\d+$)(?!.*^ch\\d+$)[a-zA-Z_][0-9a-zA-Z_]*$": {
|
|
213
|
+
"allOf": [
|
|
214
|
+
{
|
|
215
|
+
"$ref": "#/$defs/defaultFieldProperties"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"$ref": "#/$defs/configArrayDefinition"
|
|
219
|
+
}
|
|
220
|
+
]
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"timeseriesFields": {
|
|
225
|
+
"type": "object",
|
|
226
|
+
"description": "Fields of the container.",
|
|
227
|
+
"additionalProperties": false,
|
|
228
|
+
"$ref": "#/$defs/reservedNamesFieldNames",
|
|
229
|
+
"patternProperties": {
|
|
230
|
+
"^(?!.*^field\\d+$)(?!.*^ch\\d+$)[a-zA-Z_][0-9a-zA-Z_]*$": {
|
|
231
|
+
"allOf": [
|
|
232
|
+
{
|
|
233
|
+
"$ref": "#/$defs/defaultFieldProperties"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"type": "object",
|
|
237
|
+
"properties": {
|
|
238
|
+
"channelMode": {
|
|
239
|
+
"type": ["string", "number"],
|
|
240
|
+
"description": "Defines how values are treated up on aggregation.\nApplies to numeric fields only",
|
|
241
|
+
"anyOf": [
|
|
242
|
+
{
|
|
243
|
+
"const": "digital",
|
|
244
|
+
"description": "Treatment as digital value. The raw value should be 0 or 1."
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"const": "day-counter",
|
|
248
|
+
"description": "A counter which is reset once per day"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"const": "interval-counter",
|
|
252
|
+
"description": "A Counter which is reset on each recording"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"const": "analog",
|
|
256
|
+
"description": "(default) - A 'normal' measurement value. E.g. temperature"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"const": "infinite-counter",
|
|
260
|
+
"description": "A counter which is never reset, e.g. water- or electricity meter."
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
264
|
+
}
|
|
265
|
+
]
|
|
266
|
+
},
|
|
267
|
+
"chartAlarmLow": {
|
|
268
|
+
"title": "Chart Alarm Low",
|
|
269
|
+
"$ref": "#/$defs/chartAlarmWarn"
|
|
270
|
+
},
|
|
271
|
+
"chartAlarmHigh": {
|
|
272
|
+
"title": "Chart Alarm High",
|
|
273
|
+
"$ref": "#/$defs/chartAlarmWarn"
|
|
274
|
+
},
|
|
275
|
+
"chartWarningLow": {
|
|
276
|
+
"title": "Chart Warning Low",
|
|
277
|
+
"$ref": "#/$defs/chartAlarmWarn"
|
|
278
|
+
},
|
|
279
|
+
"chartWarningHigh": {
|
|
280
|
+
"title": "Chart Warning High",
|
|
281
|
+
"$ref": "#/$defs/chartAlarmWarn"
|
|
282
|
+
},
|
|
283
|
+
"chartHysteresis": {
|
|
284
|
+
"title": "Chart Hysteresis",
|
|
285
|
+
"type": ["number", "string"],
|
|
286
|
+
"description": "The server uses this property to show a hysteresis in charts.\nThe value is in %.\n'chartWarningX' and/or 'chartAlarmX' needed.",
|
|
287
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
288
|
+
},
|
|
289
|
+
"chartTriggerThreshold": {
|
|
290
|
+
"title": "Chart Trigger Threshold",
|
|
291
|
+
"type": ["number", "string"],
|
|
292
|
+
"description": "The server uses this property to show a trigger threshold in charts.",
|
|
293
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
294
|
+
},
|
|
295
|
+
"chartTriggerRelation": {
|
|
296
|
+
"title": "Chart Trigger Relation",
|
|
297
|
+
"type": ["string"],
|
|
298
|
+
"description": "Defines if the 'chartTriggerThreshold' displays as overshoot or undershoot",
|
|
299
|
+
"anyOf": [
|
|
300
|
+
{
|
|
301
|
+
"title": "Greater or equal",
|
|
302
|
+
"description": "Highlights the measurement value if it is greater or equal the 'chartTriggerThreshold'.",
|
|
303
|
+
"const": "greater-or-equal"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"title": "Less or equal",
|
|
307
|
+
"description": "Highlights the measurement value if it is less or equal the 'chartTriggerThreshold'.",
|
|
308
|
+
"const": "less-or-equal"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
"chartSetPoint": {
|
|
316
|
+
"title": "Chart Set Point",
|
|
317
|
+
"type": ["string"],
|
|
318
|
+
"description": "Used to report the actual state of the referenced value.\nThe server will display a pending information if the value is not transmitted yet.",
|
|
319
|
+
"$ref": "#/$defs/setPointRelationPattern"
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"dependencies": {
|
|
323
|
+
"chartTriggerRelation": ["chartTriggerThreshold"]
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"$ref": "#/$defs/timeseriesArrayDefinition"
|
|
328
|
+
}
|
|
329
|
+
]
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"reservedNamesFieldNames": {
|
|
334
|
+
"type": "object",
|
|
335
|
+
"properties": {
|
|
336
|
+
"_id": false,
|
|
337
|
+
"id": false,
|
|
338
|
+
"_stamp": false,
|
|
339
|
+
"stamp": false,
|
|
340
|
+
"tag": false,
|
|
341
|
+
"_uid": false,
|
|
342
|
+
"customer_id": false,
|
|
343
|
+
"site_id": false,
|
|
344
|
+
"_rec_flags__": false,
|
|
345
|
+
"applog": false
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
"defaultFieldProperties": {
|
|
349
|
+
"type": "object",
|
|
350
|
+
"additionalProperties": false,
|
|
351
|
+
"properties": {
|
|
352
|
+
"type": {
|
|
353
|
+
"$ref": "#/$defs/dataTypes"
|
|
354
|
+
},
|
|
355
|
+
"title": {
|
|
356
|
+
"type": "string",
|
|
357
|
+
"description": "Title to describe the fields content within the portal"
|
|
358
|
+
},
|
|
359
|
+
"description": {
|
|
360
|
+
"type": "string",
|
|
361
|
+
"description": "Description what this field is about."
|
|
362
|
+
},
|
|
363
|
+
"array": {
|
|
364
|
+
"type": "number",
|
|
365
|
+
"description": "Length of the array",
|
|
366
|
+
"minimum": 1,
|
|
367
|
+
"inclusiveMaximum": 1024
|
|
368
|
+
},
|
|
369
|
+
"unit": {
|
|
370
|
+
"type": "string",
|
|
371
|
+
"description": "Unit information to be shown in the default POV.\nE.g. kg"
|
|
372
|
+
},
|
|
373
|
+
"hex": {
|
|
374
|
+
"type": "boolean",
|
|
375
|
+
"description": "Server side progressing. Declares if this field should be displayed as HEX string.\nThe API will als process the field as HEX."
|
|
376
|
+
},
|
|
377
|
+
"decimalPlaces": {
|
|
378
|
+
"$ref": "#/$defs/decimalPlaces"
|
|
379
|
+
},
|
|
380
|
+
"writePermission": {
|
|
381
|
+
"description": "User level required for editing.\nApplies for down containers only.",
|
|
382
|
+
"anyOf": [
|
|
383
|
+
{
|
|
384
|
+
"$ref": "#/$defs/userLevel"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"const": "read-only",
|
|
388
|
+
"title": "Read only",
|
|
389
|
+
"description": "Field can not be edited."
|
|
390
|
+
}
|
|
391
|
+
]
|
|
392
|
+
},
|
|
393
|
+
"readPermission": {
|
|
394
|
+
"description": "User level required for viewing.",
|
|
395
|
+
"$ref": "#/$defs/userLevel"
|
|
396
|
+
},
|
|
397
|
+
"bytes": true,
|
|
398
|
+
"fields": true,
|
|
399
|
+
"length": true,
|
|
400
|
+
"defaultValue": true,
|
|
401
|
+
"channelMode": true,
|
|
402
|
+
"scale": true,
|
|
403
|
+
"offset": true,
|
|
404
|
+
"chartMinimum": true,
|
|
405
|
+
"chartMaximum": true,
|
|
406
|
+
"chartAlarmLow": true,
|
|
407
|
+
"chartAlarmHigh": true,
|
|
408
|
+
"chartWarningLow": true,
|
|
409
|
+
"chartWarningHigh": true,
|
|
410
|
+
"chartHysteresis": true,
|
|
411
|
+
"chartTriggerThreshold": true,
|
|
412
|
+
"chartTriggerRelation": true,
|
|
413
|
+
"chartSetPoint": true,
|
|
414
|
+
"utilsTransferInterval": true,
|
|
415
|
+
"shadowFields": {
|
|
416
|
+
"type": "object",
|
|
417
|
+
"deprecated": true,
|
|
418
|
+
"title": "DEPRECATED",
|
|
419
|
+
"description": "Allows defining multiple fields within the same memory space",
|
|
420
|
+
"$ref": "#/$defs/configurationFields"
|
|
421
|
+
},
|
|
422
|
+
"bitmask": {
|
|
423
|
+
"type": "string",
|
|
424
|
+
"title": "Bitmask",
|
|
425
|
+
"description": "Defines what bits of the according data type are used for storage.",
|
|
426
|
+
"anyOf": [
|
|
427
|
+
{
|
|
428
|
+
"default": "\"0x\"",
|
|
429
|
+
"pattern": "^0x[0-9A-F ]+$",
|
|
430
|
+
"description": "Bitmask defined as hexadecimal.\nDefines what bits of the according data type are used for storage."
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"default": "\"0b\"",
|
|
434
|
+
"pattern": "^0b[0-1 ]+$",
|
|
435
|
+
"description": "Bitmask defined as binary\nDefines what bits of the according data type are used for storage."
|
|
436
|
+
}
|
|
437
|
+
]
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
"required": ["type"],
|
|
441
|
+
"allOf": [
|
|
442
|
+
{
|
|
443
|
+
"if": {
|
|
444
|
+
"description": "Force the byte amount if datatype is bytes",
|
|
445
|
+
"properties": {
|
|
446
|
+
"type": {
|
|
447
|
+
"enum": ["binary"]
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
"then": {
|
|
452
|
+
"properties": {
|
|
453
|
+
"bytes": {
|
|
454
|
+
"type": "number",
|
|
455
|
+
"description": "Number of bytes"
|
|
456
|
+
},
|
|
457
|
+
"defaultValue": {
|
|
458
|
+
"type": "string",
|
|
459
|
+
"description": "default value as hex",
|
|
460
|
+
"pattern": "^0x[0-9A-F ]+$"
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"required": ["bytes"]
|
|
464
|
+
},
|
|
465
|
+
"else": {
|
|
466
|
+
"properties": {
|
|
467
|
+
"bytes": false
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"if": {
|
|
473
|
+
"description": "Special handling for string types",
|
|
474
|
+
"properties": {
|
|
475
|
+
"type": {
|
|
476
|
+
"enum": ["astring", "nstring", "cstring", "wstring", "ustring"]
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"then": {
|
|
481
|
+
"properties": {
|
|
482
|
+
"length": {
|
|
483
|
+
"type": "number",
|
|
484
|
+
"description": "Length of the string",
|
|
485
|
+
"minimum": 1
|
|
486
|
+
},
|
|
487
|
+
"defaultValue": {
|
|
488
|
+
"type": "string"
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
"required": ["length"]
|
|
492
|
+
}
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"if": {
|
|
496
|
+
"properties": {
|
|
497
|
+
"type": {
|
|
498
|
+
"enum": [
|
|
499
|
+
"int8",
|
|
500
|
+
"int16",
|
|
501
|
+
"int32",
|
|
502
|
+
"int64",
|
|
503
|
+
"uint8",
|
|
504
|
+
"uint16",
|
|
505
|
+
"uint32",
|
|
506
|
+
"float16",
|
|
507
|
+
"float32",
|
|
508
|
+
"float64"
|
|
509
|
+
]
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
"then": {
|
|
514
|
+
"properties": {
|
|
515
|
+
"decimalPlaces": {
|
|
516
|
+
"$ref": "#/$defs/decimalPlaces"
|
|
517
|
+
},
|
|
518
|
+
"defaultValue": {
|
|
519
|
+
"type": ["number", "string"],
|
|
520
|
+
"description": "Default value for this field.",
|
|
521
|
+
"pattern": "^NaN$"
|
|
522
|
+
},
|
|
523
|
+
"chartMinimum": {
|
|
524
|
+
"type": ["number", "string"],
|
|
525
|
+
"description": "Disables auto scaling of lower range in POV charts.",
|
|
526
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
527
|
+
},
|
|
528
|
+
"chartMaximum": {
|
|
529
|
+
"type": ["number", "string"],
|
|
530
|
+
"description": "Disables auto scaling of higher range in POV charts.",
|
|
531
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
532
|
+
},
|
|
533
|
+
"scale": {
|
|
534
|
+
"type": ["number", "string"],
|
|
535
|
+
"title": "Scale the raw value",
|
|
536
|
+
"description": "Server side progressing. Applies to POV and API.\nscaled = raw x scale + offset",
|
|
537
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
538
|
+
},
|
|
539
|
+
"offset": {
|
|
540
|
+
"type": ["number", "string"],
|
|
541
|
+
"title": "Add an offset to the raw value",
|
|
542
|
+
"description": "Server side progressing. Applies to POV and API.\nscaled = raw x scale + offset",
|
|
543
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
544
|
+
},
|
|
545
|
+
"utilsTransferInterval": {
|
|
546
|
+
"title": "Transfer Interval",
|
|
547
|
+
"type": ["boolean"],
|
|
548
|
+
"description": "Indicates the server that this field should be used for the remaining time until next connections.\nField value has to be in seconds."
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
"else": {
|
|
553
|
+
"properties": {
|
|
554
|
+
"decimalPlaces": false,
|
|
555
|
+
"chartMinimum": false,
|
|
556
|
+
"chartMaximum": false,
|
|
557
|
+
"scale": false,
|
|
558
|
+
"offset": false
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
"if": {
|
|
564
|
+
"description": "Enable regex relation validation if the string starts with @",
|
|
565
|
+
"properties": {
|
|
566
|
+
"title": {
|
|
567
|
+
"pattern": "^(?=@)"
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
},
|
|
571
|
+
"then": {
|
|
572
|
+
"properties": {
|
|
573
|
+
"title": {
|
|
574
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"if": {
|
|
581
|
+
"description": "Enable regex relation validation if the string starts with @",
|
|
582
|
+
"properties": {
|
|
583
|
+
"unit": {
|
|
584
|
+
"pattern": "^(?=@)"
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
},
|
|
588
|
+
"then": {
|
|
589
|
+
"properties": {
|
|
590
|
+
"unit": {
|
|
591
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
]
|
|
597
|
+
},
|
|
598
|
+
"dataTypes": {
|
|
599
|
+
"type": "string",
|
|
600
|
+
"description": "Datatype of the field",
|
|
601
|
+
"anyOf": [
|
|
602
|
+
{
|
|
603
|
+
"const": "int8",
|
|
604
|
+
"title": "int8",
|
|
605
|
+
"description": "Signed integer 8bit\nRange: -128 … 127"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"const": "int16",
|
|
609
|
+
"title": "int16",
|
|
610
|
+
"description": "Signed integer 16bit\nRange: -32768 … 32767"
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"const": "int32",
|
|
614
|
+
"title": "int32",
|
|
615
|
+
"description": "Signed integer 32bit\nRange: -\u202D2147483648 … \u202D2147483647\u202C"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"const": "int64",
|
|
619
|
+
"title": "int64",
|
|
620
|
+
"description": "Signed integer 64bit\nRange: -9.223e+15 … \u202D9.223e+15\nDLO natively supports s32 (a 'cell') only. Therefore s64\n- is implemented as binary buffer\n- u8[8] does not support maths"
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"const": "uint8",
|
|
624
|
+
"title": "uint8",
|
|
625
|
+
"description": "Unsigned integer 8bit\nRange: 0 … 255 (0xff)"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"const": "uint16",
|
|
629
|
+
"title": "uint16",
|
|
630
|
+
"description": "Unsigned integer 16bit\nRange: 0 … 65535 (0xffff)"
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"const": "uint32",
|
|
634
|
+
"title": "uint32",
|
|
635
|
+
"description": "Unsigned integer 32bit\nRange: 0 … \u202D4294967295\u202C (0xffffffff)\nLimited support in DLO due to s32 cell size."
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"const": "float16",
|
|
639
|
+
"title": "float16",
|
|
640
|
+
"description": "Floating point 16bit\nRange: ±9.76e-4 … ±1.048e+6\n- half precision \n- 3 significant digits"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"const": "float32",
|
|
644
|
+
"title": "float32",
|
|
645
|
+
"description": "Floating point 32bit\nRange: ±1.18e−38 … ±3.4e+38\n- single precision \n- approx. 7 significant digits"
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
"const": "float64",
|
|
649
|
+
"title": "float64",
|
|
650
|
+
"description": "Floating point 64bit\nRange: ±2.23e−308 … ±1.80e+308\n- double precision \n- approx. 16 significant digits\nDLO natively supports f32 (a 'Float:cell') only. Therefore f64\n- is implemented as binary buffer\n- u8[8] does not support maths"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"const": "binary",
|
|
654
|
+
"title": "binary",
|
|
655
|
+
"description": "Binary blob.\nPacks 4 bytes per 'cell'. Uses always a full multiple of 'cells' for storage."
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"const": "stamp32",
|
|
659
|
+
"title": "stamp32",
|
|
660
|
+
"description": "Timestamp UTC.\nResolution: 1 second\nSeconds since 1999-12-31 00:00:00 UTC"
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"const": "stamp40",
|
|
664
|
+
"title": "stamp40",
|
|
665
|
+
"description": "Timestamp UTC extended accuracy.\nResolution: 1/256 second\nSeconds since 1999-12-31 00:00:00 UTC"
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"const": "array",
|
|
669
|
+
"title": "Array",
|
|
670
|
+
"description": "Array of parameters."
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"const": "astring",
|
|
674
|
+
"title": "astring",
|
|
675
|
+
"description": "ANSI CP-1252 stored as 8bit ANSI.\nCharacter codes 0x01 … 0xFF are by default assigned to CP-1252 (0x00 is reserved for terminating zero).\n"
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"const": "nstring",
|
|
679
|
+
"title": "nstring"
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"const": "cstring",
|
|
683
|
+
"title": "cstring",
|
|
684
|
+
"description": "ANSI with custom codepage stored as binary."
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"const": "wstring",
|
|
688
|
+
"title": "wstring",
|
|
689
|
+
"description": "Unicode utf-32 stored as utf-8.\nUse this type only if Unicode is required and your DLO routines insist on utf-32 encoded strings.\n"
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"const": "ustring",
|
|
693
|
+
"title": "ustring",
|
|
694
|
+
"description": "Unicode utf-8 stored as utf-8.\nUse this type only if Unicode is required and your DLO routines (such as display drivers) are able to deal with utf-8 encoded strings.\n"
|
|
695
|
+
}
|
|
696
|
+
]
|
|
697
|
+
},
|
|
698
|
+
"userLevel": {
|
|
699
|
+
"type": "string",
|
|
700
|
+
"description": "Datatype of the field",
|
|
701
|
+
"anyOf": [
|
|
702
|
+
{
|
|
703
|
+
"const": "UL1",
|
|
704
|
+
"title": "UL1 - Customer operator",
|
|
705
|
+
"description": "Customer operator"
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"const": "UL2",
|
|
709
|
+
"title": "UL2 - Customer administrator",
|
|
710
|
+
"description": "Customer administrator"
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
"const": "UL3",
|
|
714
|
+
"title": "UL3 - Provider operator",
|
|
715
|
+
"description": "Provider operator"
|
|
716
|
+
},
|
|
717
|
+
{
|
|
718
|
+
"const": "UL4",
|
|
719
|
+
"title": "UL4 - Provider administrator",
|
|
720
|
+
"description": "Provider administrator"
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"const": "UL6",
|
|
724
|
+
"title": "UL6 - Rights administrator",
|
|
725
|
+
"description": "Rights administrator"
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"const": "UL7",
|
|
729
|
+
"title": "UL7 - Administrator",
|
|
730
|
+
"description": "Administrator"
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"pattern": "UL([7-9]|[1-9][0-9])"
|
|
734
|
+
}
|
|
735
|
+
]
|
|
736
|
+
},
|
|
737
|
+
"configArrayDefinition": {
|
|
738
|
+
"if": {
|
|
739
|
+
"description": "Handle array definition",
|
|
740
|
+
"properties": {
|
|
741
|
+
"type": {
|
|
742
|
+
"const": "array"
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
},
|
|
746
|
+
"then": {
|
|
747
|
+
"properties": {
|
|
748
|
+
"fields": {
|
|
749
|
+
"$ref": "#/$defs/configurationFields"
|
|
750
|
+
},
|
|
751
|
+
"length": {
|
|
752
|
+
"type": "number",
|
|
753
|
+
"description": "Size of the array",
|
|
754
|
+
"minimum": 1,
|
|
755
|
+
"inclusiveMaximum": 1024
|
|
756
|
+
},
|
|
757
|
+
"array": false,
|
|
758
|
+
"title": false
|
|
759
|
+
},
|
|
760
|
+
"required": ["length", "fields"]
|
|
761
|
+
},
|
|
762
|
+
"else": {
|
|
763
|
+
"properties": {
|
|
764
|
+
"fields": false
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
"timeseriesArrayDefinition": {
|
|
769
|
+
"if": {
|
|
770
|
+
"description": "Handle array definition",
|
|
771
|
+
"properties": {
|
|
772
|
+
"type": {
|
|
773
|
+
"const": "array"
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"then": {
|
|
778
|
+
"properties": {
|
|
779
|
+
"fields": {
|
|
780
|
+
"$ref": "#/$defs/timeseriesFields"
|
|
781
|
+
},
|
|
782
|
+
"length": {
|
|
783
|
+
"type": "number",
|
|
784
|
+
"description": "Size of the array",
|
|
785
|
+
"minimum": 1,
|
|
786
|
+
"inclusiveMaximum": 1024
|
|
787
|
+
},
|
|
788
|
+
"array": false,
|
|
789
|
+
"title": false
|
|
790
|
+
},
|
|
791
|
+
"required": ["length", "fields"]
|
|
792
|
+
},
|
|
793
|
+
"else": {
|
|
794
|
+
"properties": {
|
|
795
|
+
"fields": false
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
},
|
|
799
|
+
"decimalPlaces": {
|
|
800
|
+
"type": ["number", "string"],
|
|
801
|
+
"description": "Number of decimal places to show.\nApplies to POV and API",
|
|
802
|
+
"minimum": 0,
|
|
803
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
804
|
+
},
|
|
805
|
+
"relationLinkPattern": {
|
|
806
|
+
"anyOf": [
|
|
807
|
+
{
|
|
808
|
+
"pattern": "^@([a-zA-Z0-9_]).[a-zA-Z0-9\\[\\]{}._+]+(?<!\\.)$"
|
|
809
|
+
}
|
|
810
|
+
]
|
|
811
|
+
},
|
|
812
|
+
"setPointRelationPattern": {
|
|
813
|
+
"anyOf": [
|
|
814
|
+
{
|
|
815
|
+
"pattern": "^@([a-zA-Z0-9_]).[a-zA-Z0-9\\[\\]{}._]+(?<!\\.)$"
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"const": "\"@setting.\"",
|
|
819
|
+
"description": "Relation link to container setting",
|
|
820
|
+
"title": "Relation link to container setting"
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"const": "\"@command.\"",
|
|
824
|
+
"description": "Relation link to container control",
|
|
825
|
+
"title": "Relation link to container control"
|
|
826
|
+
}
|
|
827
|
+
]
|
|
828
|
+
},
|
|
829
|
+
"chartAlarmWarn": {
|
|
830
|
+
"type": ["number", "string"],
|
|
831
|
+
"description": "The server uses this property to show the threshold in charts and gauges.\nImportant: This does not activate any alarming. This must be done in the DLO.",
|
|
832
|
+
"$ref": "#/$defs/relationLinkPattern"
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|