183 lines
5.1 KiB
JSON
183 lines
5.1 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"description": "JSON Schema for SunSpec information model definition",
|
|
"type": "object",
|
|
"required": ["id", "group"],
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535
|
|
},
|
|
"group": {
|
|
"$ref": "#/definitions/group"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"desc": {
|
|
"type": "string"
|
|
},
|
|
"detail": {
|
|
"type": "string"
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
},
|
|
"comments": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
|
|
},
|
|
"definitions": {
|
|
"group": {
|
|
"type": "object",
|
|
"required": ["name", "type"],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": ["group", "sync"]
|
|
},
|
|
"count": {
|
|
"type": ["integer", "string"],
|
|
"default": 1
|
|
},
|
|
"points": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/point"
|
|
}
|
|
},
|
|
"groups": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/group"
|
|
}
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"desc": {
|
|
"type": "string"
|
|
},
|
|
"detail": {
|
|
"type": "string"
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
},
|
|
"comments": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"point": {
|
|
"type": "object",
|
|
"required": ["name", "type", "size"],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": ["int16", "int32", "int64", "raw16", "uint16", "uint32", "uint64" ,"acc16", "acc32",
|
|
"acc64", "bitfield16", "bitfield32", "bitfield64", "enum16", "enum32", "float32",
|
|
"float64", "string", "sf", "pad", "ipaddr", "ipv6addr", "eui48", "sunssf", "count"]
|
|
},
|
|
"value": {
|
|
"type": ["integer", "string"]
|
|
},
|
|
"count": {
|
|
"type": "integer"
|
|
},
|
|
"size": {
|
|
"type": "integer"
|
|
},
|
|
"sf": {
|
|
"type": ["integer", "string"],
|
|
"minimum": -10,
|
|
"maximum": 10
|
|
},
|
|
"units": {
|
|
"type": "string"
|
|
},
|
|
"access": {
|
|
"type": "string",
|
|
"enum": ["R", "RW"],
|
|
"default": "R"
|
|
},
|
|
"mandatory": {
|
|
"type": "string",
|
|
"enum": ["M", "O"],
|
|
"default": "O"
|
|
},
|
|
"static": {
|
|
"type": "string",
|
|
"enum": ["D", "S"],
|
|
"default": "D"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"desc": {
|
|
"type": "string"
|
|
},
|
|
"detail": {
|
|
"type": "string"
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
},
|
|
"comments": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"symbols": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/symbol"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"symbol": {
|
|
"type": "object",
|
|
"required": ["name", "value"],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"value": {},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"desc": {
|
|
"type": "string"
|
|
},
|
|
"detail": {
|
|
"type": "string"
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
},
|
|
"comments": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|