Skip to content

Commit

Permalink
Initial sketch of manifest-based naming and multi A2L
Browse files Browse the repository at this point in the history
Fixes #63.
  • Loading branch information
pmai committed Jun 19, 2024
1 parent 9f958ae commit 96f1d60
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 20 deletions.
25 changes: 19 additions & 6 deletions docs/examples/fmi_ls_xcp_manifest_example.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,22 @@
<fmiLayeredStandardManifest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../schema/fmi3LayeredStandardXcpManifest.xsd"
xmlns:fmi-ls="http://fmi-standard.org/fmi-ls-manifest"
fmi-ls:fmi-ls-name="org.fmi-standard.fmi-ls-xcp"
fmi-ls:fmi-ls-version="1.0.0-rc.4"
fmi-ls:fmi-ls-description="Layered standard based on FMI 2.0 and FMI 3.0 for describing and implementing XCP support for FMUs, which can either provide an XCP service or allow direct memory access via A2L files."
containsXcpService="true"
supportsDirectMemoryAccessViaA2L="true"/>
xmlns:fmi-ls="http://fmi-standard.org/fmi-ls-manifest"
fmi-ls:fmi-ls-name="org.fmi-standard.fmi-ls-xcp"
fmi-ls:fmi-ls-version="1.0.0-rc.4"
fmi-ls:fmi-ls-description="Layered standard based on FMI 2.0 and FMI 3.0 for describing and implementing XCP support for FMUs, which can either provide an XCP service or allow direct memory access via A2L files.">
<access identifier="foo"
containsXcpService="true"
supportsDirectMemoryAccessViaA2L="true"
EnableXcpOnTcpIpVariable="top.EnableXcpOnTcpIp"
EnableXcpOnUdpIpVariable="top.EnableXcpOnUdpIp"
TcpListenIpAddressVariable="top.TcpListenIpAddress"
TcpListenPortNumberVariable="top.TcpListenPortNumber"
UdpListenIpAddressVariable="top.UdpListenIpAddress"
UdpListenPortNumberVariable="top.UdpListenPortNumber"/>
<access identifier="bar"
containsXcpService="true"
supportsDirectMemoryAccessViaA2L="false"
EnableXcpOnTcpIpVariable="org.fmi_standard.fmi_ls_xcp.EnableXcpOnTcpIp"
TcpListenPortNumberVariable="org.fmi_standard.fmi_ls_xcp.TcpListenPortNumber"/>
</fmiLayeredStandardManifest>
83 changes: 69 additions & 14 deletions schema/fmi3LayeredStandardXcpManifest.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,78 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</xs:annotation>
<xs:element name="fmiLayeredStandardManifest">
<xs:complexType>
<xs:sequence>
<xs:element name="access" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="identifier" type="xs:string" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
Identifier used to construct the A2L file name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="containsXcpService" type="xs:boolean" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
If true, the FMU provides its own XCP slave implementation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsDirectMemoryAccessViaA2L" type="xs:boolean" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
If true, the FMU allows direct memory access from the outside via its A2L file. In most cases this mechanism will be used by an external XCP service provided by the importer.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="EnableXcpOnTcpIpVariable" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
If supplied, specifies the name of the FMU variable that provides the EnableXcpOnTcpIp configuration capability. If not supplied, no such variable exists.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="EnableXcpOnUdpIpVariable" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
If supplied, specifies the name of the FMU variable that provides the EnableXcpOnUcpIp configuration capability. If not supplied, no such variable exists.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TcpListenPortNumberVariable" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
If supplied, specifies the name of the FMU variable that provides the TcpListenPortNumber configuration capability. If not supplied, no such variable exists.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="UdpListenPortNumberVariable" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
If supplied, specifies the name of the FMU variable that provides the UdpListenPortNumber configuration capability. If not supplied, no such variable exists.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TcpListenIpAddressVariable" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
If supplied, specifies the name of the FMU variable that provides the TcpListenIpAddress configuration capability. If not supplied, no such variable exists.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="UdpListenIpAddressVariable" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation xml:lang="en">
If supplied, specifies the name of the FMU variable that provides the UdpListenIpAddress configuration capability. If not supplied, no such variable exists.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="fmi-ls:fmi-ls-name" use="required" fixed="org.fmi-standard.fmi-ls-xcp"/>
<xs:attribute ref="fmi-ls:fmi-ls-version" use="required"/>
<xs:attribute ref="fmi-ls:fmi-ls-description" use="required" fixed="Layered standard based on FMI 2.0 and FMI 3.0 for describing and implementing XCP support for FMUs, which can either provide an XCP service or allow direct memory access via A2L files."/>
<xs:attribute name="containsXcpService" type="xs:boolean" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
If true, the FMU provides its own XCP slave implementation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsDirectMemoryAccessViaA2L" type="xs:boolean" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
If true, the FMU allows direct memory access from the outside via its A2L file. In most cases this mechanism will be used by an external XCP service provided by the importer.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

0 comments on commit 96f1d60

Please sign in to comment.