同步仿真框架并接入AMESim气动组件
This commit is contained in:
1 parent
420bafeb4e
commit
db4bdb4b70
109 files changed
+26920
-420
No files matched your search
@@ -0,0 +1,304 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://systemsimulation.local/schemas/component-catalog-v1.schema.json",
|
||||
"title": "SystemSimulation Component Catalog v1",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"libraries"
|
||||
],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"const": 1
|
||||
},
|
||||
"libraries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/library"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"machineId": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9_]*$"
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
||||
},
|
||||
"category": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"label",
|
||||
"order"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "#/$defs/machineId"
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"order": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"portVariable": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"name",
|
||||
"role",
|
||||
"connectionRule",
|
||||
"label",
|
||||
"quantity",
|
||||
"unit",
|
||||
"resultVisible",
|
||||
"order"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z][A-Za-z0-9_]*$"
|
||||
},
|
||||
"role": {
|
||||
"enum": [
|
||||
"effort",
|
||||
"flow",
|
||||
"stream",
|
||||
"signal"
|
||||
]
|
||||
},
|
||||
"connectionRule": {
|
||||
"enum": [
|
||||
"equal",
|
||||
"sumToZero",
|
||||
"streamMix",
|
||||
"directed"
|
||||
]
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"quantity": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"unit": {
|
||||
"type": "string"
|
||||
},
|
||||
"resultVisible": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"order": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"name",
|
||||
"kind",
|
||||
"domain",
|
||||
"nominalRole",
|
||||
"positiveFlowDirection",
|
||||
"variables",
|
||||
"side",
|
||||
"order"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"$ref": "#/$defs/machineId"
|
||||
},
|
||||
"kind": {
|
||||
"enum": [
|
||||
"physical",
|
||||
"signal"
|
||||
]
|
||||
},
|
||||
"domain": {
|
||||
"$ref": "#/$defs/machineId"
|
||||
},
|
||||
"nominalRole": {
|
||||
"enum": [
|
||||
"inlet",
|
||||
"outlet",
|
||||
"bidirectional",
|
||||
"input",
|
||||
"output"
|
||||
]
|
||||
},
|
||||
"positiveFlowDirection": {
|
||||
"enum": [
|
||||
"intoComponent",
|
||||
null
|
||||
]
|
||||
},
|
||||
"variables": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/portVariable"
|
||||
}
|
||||
},
|
||||
"side": {
|
||||
"enum": [
|
||||
"left",
|
||||
"right"
|
||||
]
|
||||
},
|
||||
"order": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"parameter": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"name",
|
||||
"label",
|
||||
"quantity",
|
||||
"unit",
|
||||
"default",
|
||||
"minimumExclusive"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z][A-Za-z0-9_]*$"
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"quantity": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"unit": {
|
||||
"type": "string"
|
||||
},
|
||||
"default": {
|
||||
"type": "number"
|
||||
},
|
||||
"minimum": {
|
||||
"type": "number"
|
||||
},
|
||||
"maximum": {
|
||||
"type": "number"
|
||||
},
|
||||
"minimumExclusive": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"component": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"type",
|
||||
"modelType",
|
||||
"modelVersion",
|
||||
"label",
|
||||
"symbol",
|
||||
"order",
|
||||
"category",
|
||||
"ports",
|
||||
"parameters"
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"$ref": "#/$defs/machineId"
|
||||
},
|
||||
"modelType": {
|
||||
"$ref": "#/$defs/machineId"
|
||||
},
|
||||
"modelVersion": {
|
||||
"$ref": "#/$defs/version"
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"symbol": {
|
||||
"$ref": "#/$defs/machineId"
|
||||
},
|
||||
"order": {
|
||||
"type": "integer"
|
||||
},
|
||||
"category": {
|
||||
"$ref": "#/$defs/category"
|
||||
},
|
||||
"ports": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/port"
|
||||
}
|
||||
},
|
||||
"parameters": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/parameter"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"library": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"label",
|
||||
"version",
|
||||
"sourcePackage",
|
||||
"temporary",
|
||||
"order",
|
||||
"categories",
|
||||
"components"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"$ref": "#/$defs/machineId"
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"version": {
|
||||
"$ref": "#/$defs/version"
|
||||
},
|
||||
"sourcePackage": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"temporary": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"order": {
|
||||
"type": "integer"
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/category"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/component"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
||||
<xs:simpleType name="NonEmptyString">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="PositiveDouble">
|
||||
<xs:restriction base="xs:double">
|
||||
<xs:minExclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="System">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Simulation">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="tStart" type="xs:double" use="required"/>
|
||||
<xs:attribute name="tStop" type="xs:double" use="required"/>
|
||||
<xs:attribute name="step" type="PositiveDouble" use="required"/>
|
||||
<xs:attribute name="maxStep" type="PositiveDouble" use="required"/>
|
||||
<xs:attribute name="method" type="NonEmptyString" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="Components">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Component" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Port" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="value" type="xs:double" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="id" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="type" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="componentType" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="x" type="xs:double" use="required"/>
|
||||
<xs:attribute name="y" type="xs:double" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="Connections">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Connection" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="id" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="source" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="sourcePort" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="target" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="targetPort" type="NonEmptyString" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="schemaVersion" use="required" fixed="1"/>
|
||||
<xs:attribute name="unitSystem" use="required" fixed="SI"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
||||
<xs:simpleType name="NonEmptyString">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:whiteSpace value="collapse"/>
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="PositiveDouble">
|
||||
<xs:restriction base="xs:double">
|
||||
<xs:minExclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="PortKind">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="physical"/>
|
||||
<xs:enumeration value="signal"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="PortNominalRole">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="inlet"/>
|
||||
<xs:enumeration value="outlet"/>
|
||||
<xs:enumeration value="bidirectional"/>
|
||||
<xs:enumeration value="input"/>
|
||||
<xs:enumeration value="output"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="PortSide">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="left"/>
|
||||
<xs:enumeration value="right"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="EndpointRole">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="source"/>
|
||||
<xs:enumeration value="target"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="NodeRotation">
|
||||
<xs:restriction base="xs:integer">
|
||||
<xs:enumeration value="0"/>
|
||||
<xs:enumeration value="90"/>
|
||||
<xs:enumeration value="180"/>
|
||||
<xs:enumeration value="270"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="System">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Simulation">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="tStart" type="xs:double" use="required"/>
|
||||
<xs:attribute name="tStop" type="xs:double" use="required"/>
|
||||
<xs:attribute name="step" type="PositiveDouble" use="required"/>
|
||||
<xs:attribute name="maxStep" type="PositiveDouble" use="required"/>
|
||||
<xs:attribute name="method" type="NonEmptyString" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="Components">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Component" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Port" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="kind" type="PortKind" use="required"/>
|
||||
<xs:attribute name="domain" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="nominalRole" type="PortNominalRole" use="required"/>
|
||||
<xs:attribute name="positiveFlowDirection" use="optional" fixed="intoComponent"/>
|
||||
<xs:attribute name="side" type="PortSide" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="value" type="xs:double" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="id" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="type" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="componentType" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="x" type="xs:double" use="required"/>
|
||||
<xs:attribute name="y" type="xs:double" use="required"/>
|
||||
<xs:attribute name="rotation" type="NodeRotation" use="optional" default="0"/>
|
||||
<xs:attribute name="mirrored" type="xs:boolean" use="optional" default="false"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="Connections">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Connection" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Endpoint" minOccurs="2" maxOccurs="2">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="component" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="port" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="role" type="EndpointRole" use="optional"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="id" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="kind" type="PortKind" use="required"/>
|
||||
<xs:attribute name="domain" type="NonEmptyString" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
|
||||
<xs:attribute name="name" type="NonEmptyString" use="required"/>
|
||||
<xs:attribute name="schemaVersion" use="required" fixed="2"/>
|
||||
<xs:attribute name="unitSystem" use="required" fixed="SI"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
Reference in new issue
Block a user