Objekte
Objekte können beliebige Eigenschaften enthalten. Eine Eigenschaft wird unter Eigenschaften (properties) beschrieben und kann durch optionale Metadaten (propertiesMeta) spezialisiert werden.
Das nachfolgende JSON-Schema beschreibt ein Objekt mit zwei Eigenschaften.
{
"$schema": "http://json-schema.org/draft-04/schema",
"definitions": {
"CustomDatatype": {
"$schema": "http://json-schema.org/draft-04/schema",
"title": "CustomDatatype",
"type": "object",
"propertiesMeta": [
{
"name": "axisName",
"category": "Name",
"displayName": "Axis Name",
"displayPriority": 10,
"description": "",
"defaultValue": null,
"defaultValueInternal": null
},
{
"name": "axisColor",
"category": "Colors",
"displayName": "Axis color",
"displayPriority": 10,
"description": "",
"defaultValue": null,
"defaultValueInternal": {
"color": "#4794da"
}
}
],
"properties": {
"axisName": {
"type": "string"
},
"axisColor": {
"$ref": "tchmi:framework#/definitions/SolidColor"
}
},
"required": [ "axisName" ]
}
}
}
Daraus ergibt sich der folgende generische Dateneditor im Engineering.
Erläuterungen
propertiesMeta:
Die Metadaten der Eigenschaften sind optional und beschreiben die Anzeige innerhalb des generischen Dateneditors. Die Beschreibung der Metadaten erfolgt durch folgende Eigenschaften:
name
{String}: Interner Name der Eigenschaft, siehe „name“ in der Description.json.
Info: Der Name muss mit der Bezeichnung unter den Eigenschaften übereinstimmen.category
{String}: Name der Kategorie, unter die die Eigenschaft im generischen Dateneditor angezeigt wird, siehe „category“ in der Description.json.displayName
{String}: Name der Eigenschaft, der im generischen Dateneditor angezeigt wird, siehe „displayName“ in der Description.json.displayPriority
{Number}: Priorität der Anzeige, siehe „displayPriority“ in der Description.json.description
{String}: Beschreibung der Eigenschaft, siehe „description“ in der Description.json.defaultValue
: Standardwert, der im Engineering initial genutzt wird, siehe „defaultValue“ in der Description.json.defaultValueInternal
: Interner Standardwert, siehe „defaultValueInternal“ in der Description.json.
properties:
Der Name und der Datentyp der Eigenschaften des Objektes werden unter den Eigenschaften beschrieben. Der Name wird durch die Bezeichnung der Eigenschaft festgesetzt. Der Datentyp kann wie folgt beschrieben werden:
type
{String}: Standard-JSON-Datentyp der Eigenschaft oder$ref
{String, Verweis}: Referenz auf einen Framework-Datentypen. Dieser kann innerhalb des Projektes implementiert werden oder aus den bestehenden Datentypbeschreibungen des Frameworks entnommen werden.
required:
Die erforderlichen Eigenschaften (properties) werden unter „required“ aufgelistet. Die Auflistung erfolgt auf Basis des internen Namens. Wenn eine Eigenschaft des Objektes die auf erforderlich steht im Engineering nicht gesetzt wird, zeigt der generische Dateneditor eine Warnung an.