added config stylesheet and example config

This commit is contained in:
paul-loedige 2020-12-14 15:03:17 +01:00
parent 9c3fb298e5
commit 40ab1b3676
2 changed files with 146 additions and 0 deletions

24
config.xml Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<DeviceList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="config.xsd">
<Device name="example">
<Value type="boolean"/>
<Protocol type="DI">
<Port>
<Pin>GPIO_2</Pin>
</Port>
</Protocol>
</Device>
<Device name="example2">
<Value type="int" unit="°C">
<Conversion type="Offset" value="1.2" />
<Conversion type="Factor" value="2.5" />
</Value>
<Protocol type="AI">
<Port>
<Pin>GPIO_3</Pin>
</Port>
</Protocol>
</Device>
</DeviceList>

122
config.xsd Normal file
View File

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- available protocols types -->
<xs:simpleType name="ProtocolType">
<xs:restriction base="xs:string">
<xs:enumeration value="DI"/>
<xs:enumeration value="DO"/>
<xs:enumeration value="AI"/>
<xs:enumeration value="AO"/>
</xs:restriction>
</xs:simpleType>
<!-- available value types -->
<xs:simpleType name="ValueType">
<xs:restriction base="xs:string">
<xs:enumeration value="int"/>
<xs:enumeration value="float"/>
<xs:enumeration value="boolean"/>
</xs:restriction>
</xs:simpleType>
<!-- available conversion types -->
<xs:simpleType name="ConversionType">
<xs:restriction base="xs:string">
<xs:enumeration value="Factor"/>
<xs:enumeration value="Offset"/>
</xs:restriction>
</xs:simpleType>
<!-- available Pins -->
<xs:simpleType name="Pin">
<xs:restriction base="xs:string">
<xs:enumeration value="GPIO_2"/>
<xs:enumeration value="GPIO_3"/>
<xs:enumeration value="GPIO_4"/>
<xs:enumeration value="GPIO_5"/>
<xs:enumeration value="GPIO_6"/>
<xs:enumeration value="GPIO_7"/>
<xs:enumeration value="GPIO_8"/>
<xs:enumeration value="GPIO_9"/>
<xs:enumeration value="GPIO_10"/>
<xs:enumeration value="GPIO_11"/>
<xs:enumeration value="GPIO_12"/>
<xs:enumeration value="GPIO_13"/>
<xs:enumeration value="GPIO_14"/>
<xs:enumeration value="GPIO_15"/>
<xs:enumeration value="GPIO_16"/>
<xs:enumeration value="GPIO_17"/>
<xs:enumeration value="GPIO_18"/>
<xs:enumeration value="GPIO_19"/>
<xs:enumeration value="GPIO_20"/>
<xs:enumeration value="GPIO_21"/>
<xs:enumeration value="GPIO_22"/>
<xs:enumeration value="GPIO_23"/>
<xs:enumeration value="GPIO_24"/>
<xs:enumeration value="GPIO_25"/>
<xs:enumeration value="GPIO_26"/>
<xs:enumeration value="GPIO_27"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="DeviceList">
<xs:complexType>
<xs:sequence>
<xs:element ref="Device" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="UniqueDevice">
<xs:selector xpath="Device"/>
<xs:field xpath="@name"/>
</xs:unique>
<xs:unique name="UniquePin">
<xs:selector xpath="Device"/>
<xs:field xpath="Protocol/Port/Pin"/>
</xs:unique>
</xs:element>
<xs:element name="Device">
<xs:complexType>
<xs:sequence>
<xs:element ref="Value" minOccurs="1" maxOccurs="1"/>
<xs:element ref="Protocol" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Protocol">
<xs:complexType>
<xs:sequence>
<xs:element ref="Port" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="type" type="ProtocolType" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Value">
<xs:complexType>
<xs:sequence>
<xs:element ref="Conversion" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" type="ValueType" use="required"/>
<xs:attribute name="unit" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Conversion">
<xs:complexType>
<xs:attribute name="type" type="ConversionType" use="required"/>
<xs:attribute name="value" type="xs:float" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Port">
<xs:complexType>
<xs:sequence>
<xs:element name="Pin" type="Pin" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>