ASAM-EX Format Specification

Introduction

This document describes the usage of EHANDBOOK Container-Build with ASAM EX files

EHANDBOOK and ASAM EX in general

The new ETAS EHANDBOOK solution is an interactive documentation tool set, making ECU software understandable. This solution consists in 3 parts: the EHANDBOOK Container-Build tool chain for the container generation, later called EHB-CB, the container itself, which is containing the documentation data in a special format and the EHANDBOOK NAVIGATOR, the tool to work with the containers, later called EHB-NAV.

One possibility as input for EHB-CB are files in ASAM exchange format. This document describes the required structure of the ASAM files for EHB related use cases only.

For the general format and structure information of ASAM Exchange, please refer to www.asam.net. Here you can get the full specifications for -

  • ASAM CC (Container Catalog) is used for describing engineering objects:
    Definition of an XML-based format for describing engineering objects such as source code, compiled objects or documentation files, and associated meta information about the objects, such as creator, name or version. Primarily used for exchanging information between OEM and supplier.

  • ASAM FSX (Functional Specification Exchange Format) describes the functional behavior of software:
    Definition of an XML-based format for describing the functional specification of software, primarily for the purpose of generating technical documentation. The format allows documentation via prose text in multiple languages, cross-referencing, linking and mentioning of requirements. Variations of the specification can be expressed. Is complementary to MDX, which contains the interface definitions of functions. FSX is a subset of MSRSW components

  • ASAM MDX (Model Data Exchange Format) describes the software architecture and data definition of the software: Definition of an XML-based format for describing interfaces of functions, their data (variables and calibration parameters) and scheduling in ECU software. This allows the integration of such functions as object code into the overall ECU software without having access to the source code. Standard is complementary to FSX, which contains the functional description of functions. MDX is the predecessor of the AUTOSAR Software Component Template

If you have your input files in a different format, we are happy to support you with our ETAS engineering services and adapt the EHB-CB to your needs.

Here a brief overview about the ASAM concept in principle in the context of EHB:

image 3
Figure 1. ASAM EX Overview in the EHB context

Important Notices

NOTICE


Incomplete container content due to wrong or corrupt file formats

Content of the generated EHANDBOOK Container may be incomplete, if the input data used for generating the container are not compliant to the following file formats:

  • ASAM formats

    • CCX

    • FSX

    • MDX

  • Image formats

    • JPG

    • PNG

    • EPS

  • Formulas

    • TeX

  • Text formats

    • AsciiDoc (supported subset)

These container contents can not be displayed in the EHANDBOOK-NAVIGATOR. Therefore, always check the log file of the EHANDBOOK Container-Build, after generating a new container. Missing, incorrect or false content will be tracked in the log file.

After generating a new container:

  • Check the entries in the log file of the EHANDBOOK Container

Build indicating missing or incorrect container content.

  • Ensure that the data used during the import match the above specified formats.

  • Generate a new container.

  • Only provide containers for further usage in the EHANDBOOK- NAVIGATOR, if the log file contains no entries indicating any missing or incorrect content.

If it is not possible to completely clean up the log file, inform the intended user of the container about this missing, incorrect or false container content.

NOTICE


Incomplete container content due to defective or inconsistent input data

Content of the generated EHANDBOOK Container may be missing, if the input data used for generating the container is defective or inconsistent. Affected container contents cannot be displayed or will be displayed incorrectly in the EHANDBOOK-NAVIGATOR. Therefore, always check the log file of the EHANDBOOK Container-Build. Defective or inconsistent input data that have led to errors when converting will be tracked in the log file.

The content consistency is in the responsibility of the data supplier (documentation publisher). We recommend that the data supplier develop a standard procedure for pre-processing the input data outside the EHANDBOOK Container-Build tool chain to ensure the data consistency and to reduce the workload for reviewing the input data. In addition, the pre-processing should be properly documented to ensure transparency.

After generating a new container:

  1. Check the entries in the log file of the EHANDBOOK Container-Build indicating defective or inconsistent input data.

  2. If necessary, fix the incorrect or inconsistent input data.

  3. Re-build the EHANDBOOK Container.

  4. Only provide containers for further usage in the EHANDBOOK-NAVIGATOR, if the log file contains no entries, indicating any defective or inconsistent input data.

The ASAM Formats in particular

In principle, there are 3 different type of files, CCX, MDX and FSX. Per project, there is exactly on CCX file and typically per function one MDX and FSX file.
In the context of EHB, the CCX contains the table(s) of contents, all FCs with their references to FSX&MDX and the model locations. The FSX contains the text chapters with their texts and graphics and the MDX contains all label definitions and interfaces.

Component naming conventions for EHANDBOOK:

  • FC = function component, smallest software unit, which contains one Simulink or ASCET model

  • BC = base component, which contains multiple FCs

  • GC = group component, which contains multiple BCs

BCs and GCs allowing to design a hierarchical structure of the components, which is later on seen in the table of contents in NAV.

Supported ASAM Versions

EHB-CB supports ASAM CC in V3.0.0, ASAM FSX in V1.1.0 and ASAM MDX in V1.3.0. in their corresponding DTD versions. The supported encoding file format is UTF-8.

The keywords and objects of ASAM were read according to the standard, but interpreted to the needs of EHB. The support is limited to the use cases relevant to EHB and restricted to basic functionalities only.

The CCX File Structure

The CCX file structure for EHANDBOOK consists of a chain list of ABLOCKs, which refer other ABLOCKs using the AREF tag ID-REF value: <AREF ID-REF=”uniqueID-No”/>.

These ABLOCKs can be broadly classified and understood as Root ABLOCK, TOC ABLOCK, Components ABLOCKs (GC, BC, FC) and leaf ABLOCK (which is not having further reference to another ABLOCK)

image 4
Figure 2. ABLOCK Referencing Mechanism for EHB in CCX

Catalog and Root ABLOCK Usage

The CCX file starts with the CATALOG entry and a root block:

Sample Catalog entry and Root ABLOCK header in CCX
<CATALOG F-CM-TOOL-ID="$Id: catalog_V3_0_0.sl.dtd,v 1.1">
	<SHORT-NAME />
	<AREF ID-REF="EHB_Container" />
	<ABLOCKS>
		<ABLOCK ID="EHB_Container">
	...

The catalog entry has an AREF tag, which refers to the root ABLOCK.

Root ABLOCK
Referred from: <CATALOG> block with <AREF ID-REF="EHB_Container"/>
Refers to: TOC ABLOCKs/Special ABLOCKs

The Root ABLOCK provides info for the title page in EHB and refers the TOC ABLOCKS. Besides references to the TOCs, there are also some special general references to the following elements possible:

The Title Page and Project Information

The root ABLOCK contains the information about the project creation date, language, short-name, long-name, variant, etc. inside SDG tag which are used to create the title page for the container.

Sample Root ABLOCK in CCX for SD GID tags
<!-- Root ABLOCK -->
<ABLOCK ID="EHB_Container">
	<SHORT-NAME>ehbContainer</SHORT-NAME>
	<DESC />
	<SDGS>
		<SDG GID="global">
			<SD GID="view">Detailed</SD>
			<SD GID="project_class">PVER</SD>
			<SD GID="project_longname">FlexECU-G1 Turbo</SD>
			<SD GID="project_shortname">EHB_Demo_Container</SD>
			<SD GID="project_date">2019-07-31 10:39:00</SD>
			<SD GID="Project_variant">V7.1.1</SD>
			<SD GID="Project_revision">3</SD>
			<SD GID="info_pver">EHANDBOOK Demo</SD>
			<SD GID="doc_class">SWCALDOC</SD>
			<SD GID="language">DE</SD>
			<SD GID="hide_component">true</SD>
			<SD GID="condition">true</SD>
			<SD GID="confidential_level_2">false</SD>
			<SD GID="doctype_text">Software Documentation</SD>
			<SD GID="legal_note">This document contains confidential information. Disclosure is prohibited without the written consent of ETAS GmbH.</SD>
			<SD GID="MATLAB_LIB_PATH">C:\Simulink\M160</SD>
		</SDG>
	</SDGS>
</ABLOCK>

The tag <SD GID="MATLAB_LIB_PATH"> is used to include global library files for Simulink models. For details, see chapter Simulink Model Reference to external Library.

The title page, the general font styling, the company logo and the footer text are configurable in the separate CSS and branding.properties files. Please refer to the document Title Page Style Guide for EHB-CB.

Reference to TOCs

The different tables of content (TOCs), defined in separate ABLOCKS, are referenced also in the root ABLOCK.

Sample Root ABLOCK fraction with TOC references in CCX
<!-- Root ABLOCK -->
<ABLOCK ID="EHB_Container">
	<SHORT-NAME>ehbContainer</SHORT-NAME>
	<DESC />
	<AREFS>
		<AREF ID-REF="ID_00000">fcAlpha_axl</AREF>
		<AREF ID-REF="ID_00002">fcAlpha_mdl</AREF>
		<AREF ID-REF="ID_00003">architectureView_mdl</AREF>
	</AREFS>
</ABLOCK>
image 6
Figure 3. Sample view in EHB-NAV for multiple TOCs

The references of the TOC ABLOCKs are visualized in EHB-NAV Document Explorer as shown in the figure below:

This will allow multiple TOCs, either with a different content or with the same content, but structured in a different way (e.g. alphabetical order and SW structure order)

TOC ABLOCK Usage

TOC ABLOCK
Referred from: Root ABLOCK
Refers to: Component ABLOCKs (BC, GC or directly to FC)
The TOC ABLOCK refer the ABLOCKs which are components (FC, BC, GC, …)
<CATEGORY>TOC
Sample TOC ABLOCK in CCX
<ABLOCK ID="ID_00003">
	<SHORT-NAME>architectureView_mdl</SHORT-NAME>
	<LONG-NAME />
	<DESC>SW architecture view (Simulink models)</DESC>
	<CATEGORY>TOC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_001000" />
		<AREF ID-REF="ID_0000301" />
		<AREF ID-REF="ID_0000302" />
		<AREF ID-REF="ID_002000" />
	</AREFS>
</ABLOCK>

A TOC block refers other structural blocks (BCs, GCs) or directly FCs.

image 7
Figure 4. ABLOCK referencing principle in CCX for EHB

A group of components in specific order forms the TOC. For example, the components can be grouped in alphabetical order.

A TOC ABLOCK sample with no further references to structure ABLOCKS visualized in EHB-NAV Document Explorer:

image 8

Structure ABLOCK Usage

Structure ABLOCK
Referred from: TOC ABLOCK
Refers to: another structure ABLOCK – GC ABLOCK or FC ABLOCK
The BC have references to FC’s. The category of Base Component is BC.
<CATEGORY>BC or GC

A TOC ABLOCK sample with references to structure ABLOCKS visualized in EHB-NAV Document Explorer:

image9
Sample Structure ABLOCK (GC) “Air Path” in CCX
<!-- TOC Structure ABLOCK -->
<ABLOCK ID="ID_0000301">
	<SHORT-NAME>Air Path</SHORT-NAME>
	<LONG-NAME>Air Path</LONG-NAME>
	<DESC>Air Path</DESC>
	<CATEGORY>GC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_003000" />
		<AREF ID-REF="ID_004000" />
		<AREF ID-REF="ID_005000" />
		<AREF ID-REF="ID_006000" />
		<AREF ID-REF="ID_007000" />
		<AREF ID-REF="ID_007067" />
		<AREF ID-REF="ID_007077" />
	</AREFS>
</ABLOCK>

FC ABLOCK Usage

FC ABLOCK
Referred from: TOC or Component ABLOCKs – BC ABLOCK, GC ABLOCK
Refers to: leaf ABLOCK (Those ABLOCKs that refers to the actual file of information and will not refer to further ABLOCKs)
<CATEGORY>FC
Sample FC ABLOCK in CCX
<!-- FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/>
		<AREF ID-REF="ID_050022"/>
		<AREF ID-REF="ID_050033"/>
		<AREF ID-REF="ID_050044"/>
	</AREFS>
</ABLOCK>

This is the building block of CCX file, which has the references to actual files, source of information for the container. Each of the FC has <SHORT-NAME>, <LONG-NAME>, <DESC> (description) and <CATEGORY>. The category name is FC. As a TOC entry, the content of the <DESC> tag is shown in EHB-NAV later.

A FC ABLOCK sample visualized in EHB-NAV Document Explorer:

image10

FC to Files Mapping

FC ABLOCK can refer to leaf ABLOCKs, which are defining the name and location of a file (1.-5.) or a function list for a function overview (6.):

  1. MDX ABLOCK → path to MDX file

  2. FSX ABLOCK → path to FSX file

  3. Graphic ABLOCK → path to a graphic file

    1. References to static graphics

    2. References to extracted graphics from model with some information about the path and sub-model path.

  4. Model ABLOCK (AXL/MDL,SLX/C-CODE) → path to model file

  5. Other ABLOCK → path to other files for that component like XDI file, CDF,..

  6. Function Overview ABLOCK → list of FC names

All file paths specified in <FILE> must be relative to the CCX file!

Referencing method between CCX and external files

FC ABLOCK
<!-- FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/> (1)
		<AREF ID-REF="ID_050022"/> (2)
		<AREF ID-REF="ID_050033"/> (3)
		<AREF ID-REF="ID_050044"/> (4)
	</AREFS>
</ABLOCK>
1 Reference to FSX ABLOCK
2 Reference to MDX ABLOCK
3 Reference to Graphic ABLOCK
4 Reference to Model ABLOCK
FSX ABLOCK
<!-- FSX ABLOCK -->
<ABLOCK ID="ID_050011">
	<SHORT-NAME>iac_fsx</SHORT-NAME>
	<CATEGORY>TDOC</CATEGORY>
	<FILES>
		<FILE TYPE="FSX">Iac_mdl\_doc\iac.fsx</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to FSX file
MDX ABLOCK
<!-- MDX ABLOCK -->
<ABLOCK ID="ID_050022">
	<SHORT-NAME>iac_mdx</SHORT-NAME>
	<CATEGORY>TDATA-S</CATEGORY>
	<FILES>
		<FILE TYPE="MDX">Iac_mdl\_doc\iac.mdx</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to MDX file
Graphic ABLOCK
<!-- Graphic ABLOCK -->
<ABLOCK ID="ID_050033">
	<SHORT-NAME>Iac_graph1</SHORT-NAME>
	<CATEGORY>PIC-D</CATEGORY>
	<FILES>
		<FILE TYPE="JPG">Iac_mdl\_pic\iac_asSVG.svg</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to SVG file
Model ABLOCK
<!-- Model ABLOCK -->
<ABLOCK ID="ID_050044">
	<SHORT-NAME>iac_mdl</SHORT-NAME>
	<CATEGORY>MODEL</CATEGORY>
	<FILES>
		<FILE TYPE="MDL">Iac_mdl\Iac.mdl</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to Simulink model *.mdl file
image 5
Figure 5. Referencing Method between CCX and external files

MDX ABLOCK Usage

MDX ABLOCK
Referred from: FC ABLOCK / Root ABLOCK
Refers to: none
<CATEGORY>TDATA-S or TDATA-PRO
FILE TYPE=”MDX”
Sample MDX ABLOCK in CCX
<!-- MDX ABLOCK -->
<ABLOCK ID="ID_050022">
	<SHORT-NAME>iac_mdx</SHORT-NAME>
	<CATEGORY>TDATA-S</CATEGORY>
	<FILES>
		<FILE TYPE="MDX">Iac_mdl\_doc\iac.mdx</FILE>
	</FILES>
</ABLOCK>

In CCX, the FC ABLOCK is referring to its MDX file ABLOCK using AREF-ID (TDATA-S). There is also a global referring from the Root ABLOCK possible (TDATA-PRO). The relevant MDX file content is used for the model interface data and label information. To allow this, the <SHORT-NAME> of the FC ABLOCK must match to the SW-FEATURE <SHORT-NAME> in the MDX file. (Read more in chapter 4)

FSX ABLOCK Usage

FSX ABLOCK
Referred from: FC ABLOCK
Refers to: none
<CATEGORY>TDOC
FILE TYPE=”FSX”
Sample FSX ABLOCK in CCX
<!-- FSX ABLOCK -->
<ABLOCK ID="ID_050011">
	<SHORT-NAME>iac_fsx</SHORT-NAME>
	<CATEGORY>TDOC</CATEGORY>
	<FILES>
		<FILE TYPE="FSX">Iac_mdl\_doc\iac.fsx</FILE>
	</FILES>
</ABLOCK>

In CCX, the FC ABLOCK is referring to its FSX file ABLOCK using AREF-ID. The FSX file content is then used for textual information. (Read more in chapter 5)

Graphic ABLOCK Usage

Graphic ABLOCK
Referred from: FC ABLOCK
Refers to: none
<CATEGORY>PIC-D
FILE TYPE=”EPS”, “PS”, “PDF”, “JPG”, “PNG”, “BMP”, “SVG”, “GIF”
Sample Graphic ABLOCK in CCX
<!-- Graphic ABLOCK -->
<ABLOCK ID="ID_050033">
	<SHORT-NAME>Iac.Iac_mdl</SHORT-NAME>
	<CATEGORY>PIC-D</CATEGORY>
	<SDGS>
		<SDG GID="modeldata">
			<SD GID="model">ID_050044</SD>
			<SD GID="submodel-path">Iac/Iac_mdl</SD>
		</SDG>
	</SDGS>
	<FILES>
		<FILE TYPE="JPG">Iac_mdl\_pic\iac_asSVG.svg</FILE>
	</FILES>
</ABLOCK>

The FILE TYPE has to match to the strings above. Later for further processing, the file format of the file itself is considered.
In CCX, the FC ABLOCK is referring to any graphic file ABLOCK using AREF-ID. The graphic is then embedded in the textual information. The ABLOCK may also contain the sub model path to an interactive model and a link to the model file via <SD GID=model”>ID (Read more in chapter 6)

File type PDF, PS or EPS images are processed as SVG image files. Remaining file formats are copied as is.

Model ABLOCK Usage

Model ABLOCK
Referred from: FC ABLOCK
Refers to: none
<CATEGORY>MODEL
FILE TYPE ; (file extensions) =”AXL”; (.axl) / “SLX”; (.slx) / “MDL”; (.mdl) / “UGG”; (.ugg) / “C-CODE”; (.zip) (The zip should contain c and header files) /
”MATLAB”; (.zip)/”APP”; (.app)
Sample Model ABLOCK in CCX
<!-- Model ABLOCK -->
<ABLOCK ID="ID_050044">
	<SHORT-NAME>iac_mdl</SHORT-NAME>
	<CATEGORY>MODEL</CATEGORY>
	<FILES>
		<FILE TYPE="MDL">Iac_mdl\Iac.mdl</FILE>
	</FILES>
</ABLOCK>

In CCX, the FC ABLOCK is referring to its model file ABLOCK using AREF-ID. The model file is then converted into an interactive model. The model ABLOCK ID may also be referred from a graphic ABLOCK. (Read more in chapter 6.2)

CDF ABLOCK Usage

CDF ABLOCK
Referred from: FC ABLOCK or Root ABLOCK +
Refers to: none
<CATEGORY>TDATA
FILE TYPE=”CDF”
Sample CDF ABLOCK in CCX
<!-- CDF ABLOCK -->
<ABLOCK ID="ID_00004">
	<SHORT-NAME>globalCdfCdfx</SHORT-NAME>
	<LONG-NAME>globalCdfCdfx longname</LONG-NAME>
	<CATEGORY>TDATA</CATEGORY>
	<FILES>
		<FILE TYPE="CDF">_global\CDM.CDFX</FILE>
	</FILES>
</ABLOCK>

In CCX, the FC ABLOCK is referring to its CDF file ABLOCK using AREF-ID. There is also a global referring from the Root ABLOCK possible. The CDX file content is then used to show the values of parameters and system constants in EHB-NAV.

LIB ABLOCK Usage (For ASCET only)

LIB ABLOCK
Referred from: Root ABLOCK +
Refers to: none
<CATEGORY>LIB
FILE TYPE=”DIR”
Sample ASCET Lib ABLOCK in CCX
<!-- LIB ABLOCK -->
<ABLOCK ID="ID_000001">
	<SHORT-NAME>Services_ID1</SHORT-NAME>
	<LONG-NAME>Global model library</LONG-NAME>
	<CATEGORY>LIB</CATEGORY>
	<FILES>
		<FILE TYPE="DIR">..\LibDir</FILE>
	</FILES>
</ABLOCK>

In CCX, the Root ABLOCK is referring to its LIB folder ABLOCK using AREF-ID. The library folder points to a Root directory folder structure, which is containing global library files, used in all ASCET models. (Read more in chapter 7)

Function Overview ABLOCK Usage

Function Overview ABLOCK
Referred from: FSX by FIGURE-SHORT-NAME
Refers to: FC SHORT-NAME in MDX
<CATEGORY>PIC-FO
<SDG GID=“function_overview”
Sample Function Overview ABLOCK in CCX
<!-- Function Overview ABLOCK -->
<ABLOCK ID="EpmXfn">
	<SHORT-NAME>Epm Function Overview</SHORT-NAME>
	<CATEGORY>PIC-FO</CATEGORY>
	<SDGS>
		<SDG GID="function_overview">
			<SD GID="component">Epm</SD>
		</SDG>
	</SDGS>
</ABLOCK>

This ABLOCK defines a list of FCs by using the <SD GID=”component”>FC_Name tag. The <SHORT-NAME> of the ABLOCK should correspond to the FIGURE’s <SHORT-NAME> in FSX. In addition, the <SD GID FC_Name> should match to the corresponding SW-FEATURE <SHORT-NAME> in MDX. This will allow a function overview graphic at this FSX location in EHB-NAV. (Read more in chapter 6.5)

ARXML ABLOCK Usage

As an alternative to MDX, EHB-CB supports AUTOSAR Classic meta-data information as input. Here function interface descriptions has to be defined in an AUTOSAR file (.arxml), which then has be referenced in the catalog file (CCX).

 ARXML ABLOCK
Referred from: Root ABLOCK
 Refers to: ARXML containing Software interface declaration, Components, Compositions
 <CATEGORY>SWCompo
 FILE TYPE=”ARXML”

Create an ABLOCK with category SWCompo, which references to .arxml file(s) containing function interface description. Add reference to the created ABLOCK from main ABLOCK for the EHB Container

Global Arxml Reference
Figure 6. Sample ARXML ABLOCK referenced from Root ABLOCK in CCX

Alternatively AUTOSAR data (in the form of ARXML)can be referenced from a component to which it belongs.

 ARXML ABLOCK
Referred from: Component ABLOCK
 Refers to: ARXML containing Software interface declaration, Components, Compositions
 <CATEGORY>SWCD
 FILE TYPE=”ARXML”

Create an ABLOCK with category SWCD, which references to .arxl file(s) containing function interface description. Add reference to the created ABLOCK from docu unit (component). Finally reference the docu unit in main ABLOCK for EHB container

Component level Arxml
Figure 7. Sample ARXML ABLOCK referenced from a component ABLOCK in CCX
Sample MDX ABLOCK in CCX
<!-- MDX ABLOCK -->
<ABLOCK ID="ID_050022">
	<SHORT-NAME>iac_mdx</SHORT-NAME>
	<CATEGORY>TDATA-S</CATEGORY>
	<FILES>
		<FILE TYPE="MDX">Iac_mdl\_doc\iac.mdx</FILE>
	</FILES>
</ABLOCK>

In CCX, the FC ABLOCK is referring to its MDX file ABLOCK using AREF-ID (TDATA-S). There is also a global referring from the Root ABLOCK possible (TDATA-PRO). The relevant MDX file content is used for the model interface data and label information. To allow this, the <SHORT-NAME> of the FC ABLOCK must match to the SW-FEATURE <SHORT-NAME> in the MDX file. (Read more in chapter 4) == The MDX File Structure

The MDX file contains information about variables, parameters, system constants and class instances. This meta data (like imported/exported/local, compu-method, data-type, …) of labels is stored in an internal database of the EHB container.

In addition, the standard chapters Systemconstant-Parameter-Variable-Classinstance-Structure for each FC are created out of this data.

The appearance of these standard chapters can be configured in a flexible way.
All chapter-, header- and column-names or amount of columns can be specified.

For details please refer to the chapter Label table configuration in the EHB-CB User Guide.

Furthermore, the MDX content is used for properties view, label pop-up, auto-tagging and search proposal dialog in EHB-NAV.

Another NAV feature supported using MDX information is the “Function Overview”. It provides mapping between the FC’s in the whole container and how all the element labels are related. This works name based.

Example in EHB-NAV:

image12

The MDX format for EHB in detail:

All variables, parameters and system constants have to be defined in the global <SW-DATA-DICTONARY-SPEC>, their meta data will be specified in the section <SW-DATA-DEF-PROPS>.

Sample MDX snippet for the global data dictionary
<SW-DATA-DICTIONARY-SPEC>
	<SW-VARIABLES>
		<SW-VARIABLE>
			<SHORT-NAME>Amf_facRelAir_Sim</SHORT-NAME>
			<LONG-NAME>Long name Amf_facRelAir_Sim</LONG-NAME>
			<CATEGORY>VALUE</CATEGORY>
			<SW-DATA-DEF-PROPS>
				...
			</SW-DATA-DEF-PROPS>
		</SW-VARIABLE>
	</SW-VARIABLES>
	<SW-CALPRMS>
		<SW-CALPRM>
			<SHORT-NAME>Iac_degIgnOptOffset</SHORT-NAME>
			<LONG-NAME>Long name Iac_degIgnOptOffset</LONG-NAME>
			<CATEGORY>VALUE</CATEGORY>
			<SW-DATA-DEF-PROPS>
				...
			</SW-DATA-DEF-PROPS>
		</SW-CALPRM>
	</SW-CALPRMS>
</SW-DATA-DICTIONARY-SPEC>

All labels defined in the dictionary have to be unique by their <SHORT-NAME>. In addition, this name should match to the name in the a2l file to allow INCA life data visualization in NAV later on.

Per SW component, the labels defined in the dictionary, are then referred by their <SHORT-NAME> as local, exported or imported.

Sample MDX snippet for a FC with its label interfaces
<SW-COMPONENT-SPEC>
	<SW-COMPONENTS>
		<SW-FEATURE>
			<SHORT-NAME>Iac_mdl</SHORT-NAME>
			<LONG-NAME>Feature Iac</LONG-NAME>
			<CATEGORY>FCT</CATEGORY>
			<SW-FEATURE-OWNED-ELEMENT-SETS>
				<SW-FEATURE-OWNED-ELEMENT-SET>
					<SW-FEATURE-ELEMENTS>
						...
					</SW-FEATURE-ELEMENTS>
				</SW-FEATURE-OWNED-ELEMENT-SET>
			</SW-FEATURE-OWNED-ELEMENT-SETS>
			<SW-FEATURE-INTERFACES>
				<SW-FEATURE-INTERFACE>
					<SHORT-NAME>Iac_Ex_mdl</SHORT-NAME>
					<CATEGORY>EXPORT</CATEGORY>
					<SW-INTERFACE-EXPORTS>
						<SW-INTERFACE-EXPORT>
							<SW-FEATURE-ELEMENTS>
								...
							</SW-FEATURE-ELEMENTS>
						</SW-INTERFACE-EXPORT>
					</SW-INTERFACE-EXPORTS>
				</SW-FEATURE-INTERFACE>
				<SW-FEATURE-INTERFACE>
					<SHORT-NAME>Iac_Im_mdl</SHORT-NAME>
					<CATEGORY>IMPORT</CATEGORY>
					<SW-INTERFACE-IMPORTS>
						<SW-INTERFACE-IMPORT>
							<SW-FEATURE-ELEMENTS>
								...
							</SW-FEATURE-ELEMENTS>
						</SW-INTERFACE-IMPORT>
					</SW-INTERFACE-IMPORTS>
				</SW-FEATURE-INTERFACE>
			</SW-FEATURE-INTERFACES>
		</SW-FEATURE>
		...

Structures in MDX

EHANDBOOK supports configuration of structure data types for Simulink. Structures are mapped to Simulink buses and visualized in EHB-NAV in the label popup. Structures can be defined in MDX following the MDX specification. EHANDBOOK supports the following subset of MDX:

  1. STRUCTURE - SW-VARIABLE

  2. STRUCTURE - SW-CALPRM

The structure name and member names must match to the Simulink bus names. Structures are defined in the global data dictionary in the same way as other variables or parameters, but in a hierarchical construct. Variable with CATEGORY “STRUCTURE” contains <SW-VARIABLES> tag under which other variables are defined. This head SW-VARIABLE becomes the ‘structure’ and the children SW-VARIABLEs become members to it.

Sample MDX snippet for a struct in the global data dictionary
<!-- MDX Snippet for structs -->
<SW-VARIABLE>
	<SHORT-NAME>subBus</SHORT-NAME>
	<LONG-NAME>subBus longName</LONG-NAME>
	<CATEGORY>STRUCTURE</CATEGORY>
	<SW-DATA-DEF-PROPS>
		<SW-ADDR-METHOD-REF>VAR_INIT</SW-ADDR-METHOD-REF>
		<SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
	</SW-DATA-DEF-PROPS>
	<SW-VARIABLES>
		<SW-VARIABLE>
			<SHORT-NAME>chirp</SHORT-NAME>
			<LONG-NAME>chirp Signal</LONG-NAME>
			<CATEGORY>VALUE</CATEGORY>
			<SW-DATA-DEF-PROPS>
				<SW-ADDR-METHOD-REF>VAR_INIT</SW-ADDR-METHOD-REF>
				<SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
			</SW-DATA-DEF-PROPS>
		</SW-VARIABLE>
		<SW-VARIABLE>
			<SHORT-NAME>sine</SHORT-NAME>
			<LONG-NAME>sine wave</LONG-NAME>
			<CATEGORY>VALUE</CATEGORY>
			<SW-DATA-DEF-PROPS>
				<SW-ADDR-METHOD-REF>VAR_CLEARED</SW-ADDR-METHOD-REF>
				<SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
			</SW-DATA-DEF-PROPS>
		</SW-VARIABLE>
	</SW-VARIABLES>
</SW-VARIABLE>

Naming convention and rules:

In the above example SW-VARIABLE subBus becomes the ‘structure’ and SW-VARIABLE chirp and sine become its members. Internally in EHANDBOOK we store the members along with its structure name, for example “subBus.chirp” and “subBus.sine”.

The delimiter ‘.’ dot is used for combining the structure and member names.

SW-VARIABLE structure cannot contain another SW-VARIABLE structure inside it. Nesting of structures are not allowed as per the MDX specifications (see mdx_v1.3.0.xsd).

The member names of a structure can repeat with different structures. It only needs to be unique within its structure. For example, structure1.sine and structure2.sine can exist.

The referring between the structure and the FC component works also in the same way as other variables via their <SHORT-NAME>:

Sample MDX snippet for a FC with referring a structure
<SW-COMPONENT-SPEC>
	<SW-COMPONENTS>
		<SW-FEATURE>
			<SHORT-NAME>Iac_mdl</SHORT-NAME>
			<LONG-NAME>Feature Iac</LONG-NAME>
			<CATEGORY>FCT</CATEGORY>
			<SW-FEATURE-OWNED-ELEMENT-SETS>
				<SW-FEATURE-OWNED-ELEMENT-SET>
					<SW-FEATURE-ELEMENTS>
						<SW-VARIABLE-REF>subBus</SW-VARIABLE-REF>
					</SW-FEATURE-ELEMENTS>
				</SW-FEATURE-OWNED-ELEMENT-SET>
			</SW-FEATURE-OWNED-ELEMENT-SETS>

SW-VARAIBLE of category STRUCTURE are referenced to a SW-FEATURE using the <SW-FEATURE-INTERFACES> with “IMPORT”, “EXPORT” categories or <SW-FEATURE-OWNED-ELEMENT-SETS> (=local). From the above example subBus will be treated as local for the SW-FEATURE under which it is defined.

EHANDBOOK does not derive the relation between the SW-FEATURE and the structure members. Users have to explicitly add an entry of a structure.member in the REFERENCES for establishing the import/export category. For example subBus.sine won’t appear as local in the EHANBDOOK context unless the user enters subBus.sine as a SW-VARIABLE-REF.

One MDX File per FC

In CCX, the FC ABLOCK is referring to its MDX file ABLOCK using AREF-ID. The reference from the FC ABLOCK in CCX to its related content in the MDX file is done by <SHORT-NAME>. The SW-FEATURE <SHORT-NAME> in MDX must be same as the FC <SHORT-NAME> in the CCX file.

The result in EHB-NAV is the standard chapter “Systemconstant-Parameter-Variable-Classinstance-Structure “ with the corresponding table to appear, as shown below:

Referencing method between CCX and individual MDX per FC

FC ABLOCK
<!-- FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/>
		<AREF ID-REF="ID_050022"/> (1)
		<AREF ID-REF="ID_050033"/>
		<AREF ID-REF="ID_050044"/>
	</AREFS>
</ABLOCK>
1 Reference to MDX ABLOCK
MDX ABLOCK
<!-- MDX ABLOCK -->
<ABLOCK ID="ID_050022">
	<SHORT-NAME>iac_mdx</SHORT-NAME>
	<CATEGORY>TDATA-S</CATEGORY>
	<FILES>
		<FILE TYPE="MDX">Iac_mdl\_doc\iac.mdx</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to MDX File
MDX File
<!--  SW-FEATURE Snippet from MDX -->
<SW-COMPONENT-SPEC> (1)
	<SW-COMPONENTS>
		<SW-FEATURE>
			<SHORT-NAME>Iac_mdl</SHORT-NAME> (2)
			<LONG-NAME>Feature Iac</LONG-NAME>
			<CATEGORY>FCT</CATEGORY>
			<SW-FEATURE-OWNED-ELEMENT-SETS>
			...
1 See Visualisation in EHB-NAV
2 Short name matches with FC ABLOCK
navigator visualisation
Figure 8. Visualisation in EHB-NAV
image 2
Figure 9. Referencing method between CCX and individual MDX per FC

One global MDX File

Besides individual MDX files for each FC, there is also the possibility to use one common MDX file for all function components in the whole container.

This global MDX file is defined in a separate ABLOCK in CCX in the same way as for the individual ones per FC, but linked in a different way:

It has to be referenced with its ID as an additional TOC entry in the CCX in AREFS. The CATEGORY has to be TDATA-PRO, and will look as follows:

Referencing method between CCX and global MDX

Root ABLOCK
<!-- Root ABLOCK -->
<ABLOCK ID="EHB_Container">
	<SHORT-NAME>ehbContainer</SHORT-NAME>
	<AREFS>
		<AREF ID-REF="ID_00000">fcAlpha_axl</AREF>
		<AREF ID-REF="ID_00001">TDATA-PRO</AREF> (1)
		<AREF ID-REF="ID_00002">fcAlpha_mdl</AREF>
		<AREF ID-REF="ID_00003">architectureView_mdl</AREF>
		<AREF ID-REF="ID_00004">globalCdfCdfx</AREF>
	</AREFS>
</ABLOCK>
1 Reference to MDX ABLOCK
MDX ABLOCK
<!-- MDX ABLOCK -->
<ABLOCK ID="ID_00001">
	<SHORT-NAME>pavastpro</SHORT-NAME>
	<CATEGORY>TDATA-PRO</CATEGORY>
	<FILES>
		<FILE TYPE="MDX">_global\FlexEcu.xml</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to MDX File
MDX File
<!-- SW-FEATURE Snippet from MDX -->
<SW-COMPONENT-SPEC> (1)
	<SW-COMPONENTS>
		<SW-FEATURE>
			<SHORT-NAME>Iac_mdl</SHORT-NAME> (2)
			<LONG-NAME>Feature Iac</LONG-NAME>
			<CATEGORY>FCT</CATEGORY>
			<SW-FEATURE-OWNED-ELEMENT-SETS>
1 See Visualisation in EHB-NAV
2 Short name matches with FC ABLOCK
FC ABLOCK
<!-- FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac-Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/>
		<AREF ID-REF="ID_050033"/>
		<AREF ID-REF="ID_050044"/>
	</AREFS>
</ABLOCK>
navigator visualisation
Figure 10. Visualisation in EHB-NAV
image 3
Figure 11. Referencing method between CCX and global MDX

The FSX File Structure

The FSX files provides all the text content and documentation for the corresponding function component. It has also references to graphic files if any.

As the EHB solution is using its own numbering system, the original numbering of chapters and figure legends and other numbered references will be ignored

In CCX, the FSX file is defined in the FSX ABLOCK, which is referred by the FC ABLOCK via AREF-ID:

Referencing method between CCX and FSX

FC ABLOCK
<!--  FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/>
		<AREF ID-REF="ID_050022"/> (1)
		<AREF ID-REF="ID_050033"/>
		<AREF ID-REF="ID_050044"/>
	</AREFS>
</ABLOCK>
1 Reference to FSX ABLOCK
FSX ABLOCK
<!-- FSX ABLOCK -->
<ABLOCK ID="ID_050011">
	<SHORT-NAME>iac_fsx</SHORT-NAME>
	<CATEGORY>TDOC</CATEGORY>
	<FILES>
		<FILE TYPE="FSX">Iac_mdl\_doc\iac.fsx</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to FSX File
FSX File
<SW-COMPONENT-SPEC> (1)
	<SW-COMPONENTS>
		<SW-FEATURE>
			<SHORT-NAME/>
			<LONG-NAME>
				<L-4 L="EN">Ignition Angle Calculation</L-4>
			</LONG-NAME>
			<CATEGORY>FCT</CATEGORY>
			<CHAPTER>
				<LONG-NAME>Zündwinkel</LONG-NAME>
				<P>
					<L-1 L="DE">
						Im Modul Zündwinkel (IngnitionAngle) re-
						lativen Füllung <TT TYPE="VARIABLE">A
						und zum anderen der optimale Zündwinkel
						beschreibt den Winkel des Drehmoments,
						auftritt. Er wird über das Kennfeld
					</L-1>
				</P>
navigator visualisation
Figure 12. Visualisation in EHB-NAV

The textual content is defined below the tag <CHAPTER> in FSX.

image 4
Figure 13. Referencing method between CCX and FSX

Text Styling in FSX

EHB supports the following FSX tags:

<E/>
<BR/>
<SUP/>
<SUB/>
<XDOC/>; <XFILE/>; <XREF/>
<LIST/>; <DEF_LIST/>; <LABELED_LIST/>
<TABLE/>
<FIGURE/>
<FORMULA/>
<P/>
<DESC/>
<NOTE/>
<FT/>
<VERBATIM/>
<STATE/>
<L_1/>; <L_2/>; <L_4/>; <L_5/>; <L_10/>
<TT/>

Limitations:

  • For <E/> the attributes TYPE=”ITALIC” / “BOLDITALIC” / “BOLD” are supported only; COLOR and FONT are currently not supported

  • In general, only a subset of possible attributes and combinations for the tags above might be supported

The final styling of the text is configurable via a global CSS style sheet during Container-Build. Here also the font and color of all the texts and headers can be defined. For more details, please refer to the Container Style Guide for EHB-CB document.

Handling of Graphics in EHB

Static Graphic

Static graphics are explaining images inside the textual content, which have no links to a corresponding interactive model. To allow this, the information has to be given as follows:

In CCX:

  • The FC ABLOCK references the Graphic ABLOCK and the FSX ABLOCK via <AREF ID-REF> tags

  • The Graphic ABLOCK contains the path and name of the graphic in <FILE>

In FSX:

  • The FIGURE’s <SHORT-NAME> has to match with the <SHORT-NAME> of the Graphic ABLOCK in CCX

See figure below:

Reference flow diagram to show a static image

FC ABLOCK
<!-- FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/> (1)
		<AREF ID-REF="ID_050022"/>
		<AREF ID-REF="ID_050033"/> (2)
		<AREF ID-REF="ID_050044"/>
	</AREFS>
</ABLOCK>
1 Reference to FSX ABLOCK
2 Reference to Graphic ABLOCK
Graphic ABLOCK
<!-- Graphic ABLOCK -->
<ABLOCK ID="ID_050033">
	<SHORT-NAME>Iac_graph1</SHORT-NAME>
	<CATEGORY>PIC-D</CATEGORY>
	<FILES>
		<FILE TYPE="JPG">Iac_mdl\_pic\iac_asSVG.svg</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to image file.
FSX ABLOCK
<!-- FSX ABLOCK -->
<ABLOCK ID="ID_050011">
	<SHORT-NAME>iac_fsx</SHORT-NAME>
	<CATEGORY>TDOC</CATEGORY>
	<FILES>
		<FILE TYPE="FSX">Iac_mdl\_doc\iac.fsx</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to FSX File.
FSX File
<!-- Figure Snippet from FSX -->
<FIGURE> (1)
	<FIGURE-CAPTION>
		<SHORT-NAME>Iac_graph1</SHORT-NAME> (2)
		<LONG-NAME>
			<L-4 L="DE">Ingnition</L-4>
		</LONG-NAME>
	</FIGURE-CAPTION>
	<L-GRAPHIC L="FOR-ALL">
		<GRAPHIC NOTATION="SVG" SCALE="0.61">
		</GRAPHIC>
	</L-GRAPHIC>
</FIGURE>
1 See Visualisation in EHB-NAV
2 Short name matches with Graphic ABLOCK
navigator visualisation 2
Figure 14. Visualisation in EHB-NAV
image 6
Figure 15. Reference flow diagram to show a static image

The external 3th party tool PDFFLY will be used for conversion of post script graphics (EPS, PS) to vector graphics (SVG). This tool has to be ordered separately. Raster graphics (JPEG, BMP, PNG) and vector graphics (SVG) are directly copied without the need of any 3rd party software.

ETAS recommends the usage of graphics in SVG format to allow text searching and selecting inside the graphic later on in NAV.

(Text in the SVG have to be configured within tag <TSPAN>)

Reference Model with User provided Graphic

The graphic is extracted as a screenshot out of a specific hierarchy of a model (Simulink or ASCET) with a tool outside EHB. Therefore, a reference from the graphic to the model with some information about the path and sub-model hierarchy is required. A graphic with a model reference will appear in EHB-NAV as below:

image17
Figure 16. Sample view in EHB-NAV for a model screenshot using a separate image

By click on “Open interactive Model”, the corresponding interactive model will be opened in EHB-NAV in exactly the same model hierarchy path.

To allow this, the information has to be given as follows:

In CCX:

  • The FC ABLOCK references the Graphic ABLOCK, the Model ABLOCK and the FSX ABLOCK via <AREF ID-REF> tags

  • The Graphic ABLOCK contains the reference ID of the Model ABLOCK in <SD GID=”model”>, the model hierarchy path in <SD GID=”submodel-path” and the path and name of the graphic in <FILE>. For model path details see chapter Model Hierarchy Path Naming Convention for Graphic Linkage.

  • The Model ABLOCK contains the directory path and file name of the model. This is an axl file having the ASCET project or an mdl/slx file for Simulink.

In FSX:

  • The FIGURE’s <SHORT-NAME> has to match with the <SHORT-NAME> of the Graphic ABLOCK in CCX

See figure below:

Referencing flow diagram for model linkage with external graphic

<!--  FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/> (1)
		<AREF ID-REF="ID_050022"/>
		<AREF ID-REF="ID_050033"/> (2)
		<AREF ID-REF="ID_050044"/>
	</AREFS>
</ABLOCK>
1 Reference to Graphic ABLOCK.
2 Reference to FSX ABLOCK.
Graphic ABLOCK
<ABLOCK ID="ID_050033"> <!--  Graphic ABLOCK -->
    <SHORT-NAME>Iac_graph1</SHORT-NAME>
    <CATEGORY>PIC-D</CATEGORY>
    <FILES>
        <FILE TYPE="JPG">Iac_mdl\_pic\iac_asSVG.svg</FILE> (1)
    </FILES>
</ABLOCK>
1 Reference to Image File
image file
Figure 17. Image File
FSX ABLOCK
<ABLOCK ID="ID_050011"> <!--  FSX ABLOCK -->
    <SHORT-NAME>iac_fsx</SHORT-NAME>
    <CATEGORY>TDOC</CATEGORY>
    <FILES>
        <FILE TYPE="FSX">Iac_mdl\_doc\iac.fsx</FILE> (1)
    </FILES>
</ABLOCK>
1 Reference to FSX File.
FSX File
<!--  Figure Snippet from FSX -->
<FIGURE> (1)
	<FIGURE-CAPTION>
		<SHORT-NAME>Iac_graph1</SHORT-NAME>
		<LONG-NAME>
			<L-4 L="DE">Ingnition</L-4>
		</LONG-NAME>
	</FIGURE-CAPTION>
	<L-GRAPHIC L="FOR-ALL">
		<GRAPHIC NOTATION="SVG" SCALE="0.61">
		</GRAPHIC>
	</L-GRAPHIC>
</FIGURE>
navigator visualisation 3
Figure 18. Visualisation in EHB-NAV
image 7
Figure 19. Referencing flow diagram for model linkage with external graphic

Reference Model with EHB-CB generated Graphic

Graphics appearing in the documentation, which are related to the models, can also be generated by EHB-CB during the model conversion. An auto-generated graphic will appear in EHB-NAV as below:

image19
Figure 20. Sample view in EHB-NAV for a model screenshot generated by EHB-CB

Advantages:

  • Exact replica of the model snap shot is generated

  • Format is SVG which allows searching and selecting of texts inside the graphic

  • No graphic screenshots from each model hierarchy have to be generated separately

  • ClickPic is supported in EHB-NAV (Navigation between images in text pane)

To enable this feature, the additional command line parameter -gensvg for the CB.exe has to be used. (See latest user documentation for EHB-CB)

The linkage method between FSX and CCX is a little bit different then described before, also there some changes in the FSX:

  • In FSX, the FIGURE’s <SHORT-NAME> for the model graphic contains the model hierarchy path directly in a mandatory format i.e. “X.Y.Z”. For details, see chapter Model Hierarchy Path Naming Convention for Graphic Linkage.

  • The Graphic ABLOCK is now optional and only required if the original graphic should be used with same ASAM file set. (without -gensvg mode)

See figure below:

Referencing flow diagram for model linkage with EHB-CB generated graphic

FC ABLOCK
<!--  FC ABLOCK -->
<!--  FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/> (1)
		<AREF ID-REF="ID_050022"/>
		<AREF ID-REF="ID_050033"/>
		<AREF ID-REF="ID_050044"/> (2)
	</AREFS>
</ABLOCK>
1 Reference to FSX ABLOCK
2 Reference to Model ABLOCK.
Model ABLOCK
<!-- Model ABLOCK -->
<ABLOCK ID="ID_050044">
	<SHORT-NAME>iac_mdl</SHORT-NAME>
	<CATEGORY>MODEL</CATEGORY>
	<FILES>
		<FILE TYPE="MDL">Iac_mdl\Iac.mdl</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to e.g. ASCET or Simulink model file.
FSX ABLOCK
<!-- FSX ABLOCK -->
<ABLOCK ID="ID_050011">
	<SHORT-NAME>iac_fsx</SHORT-NAME>
	<CATEGORY>TDOC</CATEGORY>
	<FILES>
		<FILE TYPE="FSX">Iac_mdl\_doc\iac.fsx</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to FSX File.
FSX File
<!-- Figure Snippet from FSX -->
<FIGURE> (1)
	<FIGURE-CAPTION>
		<SHORT-NAME>Iac.Iac_mdl</SHORT-NAME>
		<LONG-NAME>
			<L-4 L="DE">Ingnition</L-4>
		</LONG-NAME>
	</FIGURE-CAPTION>
	<L-GRAPHIC L="FOR-ALL">
		<GRAPHIC NOTATION="SVG" SCALE="0.61">
		</GRAPHIC>
	</L-GRAPHIC>
</FIGURE>
navigator visualisation 3
Figure 21. Visualisation in EHB-NAV
image 8
Figure 22. Referencing flow diagram for model linkage with EHB-CB generated graphic

NOTICE


Incomplete, wrong or differing representation of model screenshots and interactive models from source data.

During the conversion of ASCET models, Simulink/Stateflow models or C-Code to interactive models and/or SVG graphics, the generated outputs may differ from the original model visualizations. As C-Code is written in textual form while interactive models are graphical diagrams, the semantic and interpretation can differ.

The following deviations between the model and the EHANDBOOK Container content may occur:

  • Missing or wrong graphics

  • Wrong targets on linked graphics

    • Wrong model links

    • Wrong model hierarchy links

  • For C-Code visualizations, different interpretations and semantics

Possible root causes of these deviations are:

  • Link specification in input text does not match to model hierachy path

  • Referenced model/source files are missing

  • Matlab connection for mask generation in Simulink was broken,

  • EHB-CB tool error due to internal error or unsupported source content

  • Technical limitations, especially for representing C-Code as graphical visualization

To identify deviations:

  1. Check the entries in the log file of the generated EHANDBOOK Container for Warnings and Errors

  2. Check the links between SVG graphics and interactive models in the EHANDBOOK Container

It is the responsibility of the creator of the EHANDBOOK Container to check the log files generated by EHANDBOOK Container-Build and to check the outputs for wrong model references and initiate the correction in the sources.

To ensure consistency and mitigate limitations:

  1. Check the release notes and the known issues of EHANDBOOK Container-Build as well as EHANDBOOK-NAVIGATOR.

  2. Compare the C-Code source code with the its graphical representation in EHANDBOOK-NAVIGATOR.

Model Hierarchy Path Naming Convention for Graphic Linkage

For a proper linkage between the image and the corresponding model hierarchy, the model hierarchy path has to be named and used in a defined way.

Using EHB-CB generated graphics:

  • The model path name must be used as FSX FIGURE’s <SHORT-NAME>. Path delimiter is ‘.’

Using external graphics:

  • The FSX FIGURE’s <SHORT-NAME> has to match the Graphic’s ABLOCK <SHORT-NAME> in CCX

  • The Graphic’s ABLOCK must contain the model path name in <SD GID=”submodel-path”. Path delimiter is ‘/’

Naming Convention for ASCET

The model path can be derived out of the Model Explorer in EHB-NAV:

image21
Figure 23. Sample view in EHB-NAV for ASCET model hierarchy path

The bubble help window for the above highlighted path shows LambdaControl_Project/Main/LambdaControl/Main”.

The first two parts _Project and Main are added by ASCET generic and could be omitted.

The remaining path is the name for the

<SD GID="submodel-path">LambdaControl/Main</SD> in the Graphic ABLOCK.


For the SHORT-NAME’s it has to be transformed to

<SHORT-NAME>LambdaControl.Main</SHORT-NAME>.

The model path can be derived directly out of the Model Explorer in EHB-NAV:

image22
Figure 24. Sample view in EHB-NAV for Simulink model hierarchy path

The bubble help window for the above highlighted path shows Lcc/Lcc_mdl/Two-point-controller”.

That is the exact name for the

<SD GID="submodel-path">Lcc/Lcc_mdl/Two-point-controller</SD> in the Graphic ABLOCK.

For the SHORT-NAME’s it has to be transformed to

<SHORT-NAME>Lcc.Lcc_mdl.Two-point-controller</SHORT-NAME>.

NOTICE


Incomplete, wrong or differing representation of model screenshots and interactive models from source data.

During the conversion of ASCET models, Simulink/Stateflow models or C-Code to interactive models and/or SVG graphics, the generated outputs may differ from the original model visualizations. As C-Code is written in textual form while interactive models are graphical diagrams, the semantic and interpretation can differ.

The following deviations between the model and the EHANDBOOK Container content may occur:

  • Missing or wrong graphics

  • Wrong targets on linked graphics

    • Wrong model links

    • Wrong model hierarchy links

  • For C-Code visualizations, different interpretations and semantics

Possible root causes of these deviations are:

  • Link specification in input text does not match to model hierachy path

  • Referenced model/source files are missing

  • Matlab connection for mask generation in Simulink was broken,

  • EHB-CB tool error due to internal error or unsupported source content

  • Technical limitations, especially for representing C-Code as graphical visualization

To identify deviations:

  1. Check the entries in the log file of the generated EHANDBOOK Container for Warnings and Errors

  2. Check the links between SVG graphics and interactive models in the EHANDBOOK Container

It is the responsibility of the creator of the EHANDBOOK Container to check the log files generated by EHANDBOOK Container-Build and to check the outputs for wrong model references and initiate the correction in the sources.

To ensure consistency and mitigate limitations:

  1. Check the release notes and the known issues of EHANDBOOK Container-Build as well as EHANDBOOK-NAVIGATOR.

  2. Compare the C-Code source code with the its graphical representation in EHANDBOOK-NAVIGATOR.

Function Overview Graphic

image23
Figure 25. Sample view in EHB-NAV for Function Overview

It is possible to auto-generate a function overview graphic in the text pane of a FC in EHB-NAV. This overview image can be made out of one function or even out of multiple functions. Same as the interactive model screenshot also this overview graphic has a link via the “Open function overview” button to the corresponding interactive overview.

To make this possible, for every Function Overview additional entries in CCX and FSX are required.

In FSX:

  • Add a <FIGURE> entry with unique <SHORT-NAME> at the text position, where the graphic should appear.

In CCX:

  • Add a new ABLOCK entry in the CCX file. This ABLOCK contains the details of functions chosen for the Function Overview diagram.

  • This ABLOCK must be referred by FC ABLOCK using the <AREF-ID> tag

  • The properties of the ABLOCK must be set as follows:

  • The <SHORT-NAME> of the ABLOCK should correspond to the FIGURE’s <SHORT-NAME> in FSX

  • The <CATEGORY> must be “PIC-FO”

  • The <SDG GID> must be “function_overview”

  • There must be an individual entry of SD GID=”component” for every function considered for the Function Overview diagram

  • The function names provided here should match the SW-FEATURE’s <SHORT-NAME> of the component provided in the MDX file(s)

The [function-overview-image] below shows how this works out for one function component.

For multiple functions in the overview diagram, it works the same way. The only change is in the Function Overview ABLOCK, where now the additional functions are defined:

Sample Function Overview ABLOCK with multiple functions
<ABLOCK ID="ID_012067">
	<SHORT-NAME>XFN1</SHORT-NAME>
	<CATEGORY>PIC-FO</CATEGORY>
	<SDGS>
		<SDG GID="function_overview">
			<SD GID="component">Iac_mdl</SD>
			<SD GID="component">Tqs_mdl</SD>
			<SD GID="component">T2t_mdl</SD>
		</SDG>
	</SDGS>
</ABLOCK>

In the example above, three functions Icc_mdl, Tqs_mdl and T2t_mdl are considered for the overview graphic generation.

Referencing method for single Function Overview graphic

FC ABLOCK
<!-- FC ABLOCK -->
<ABLOCK ID="ID_005000">
	<SHORT-NAME>Iac_mdl</SHORT-NAME>
	<LONG-NAME>Ignition Angle Calculation</LONG-NAME>
	<DESC>Iac - Ignition Angle Calculation</DESC>
	<CATEGORY>FC</CATEGORY>
	<AREFS>
		<AREF ID-REF="ID_050011"/> (1)
		<AREF ID-REF="ID_050022"/> (2)
		<AREF ID-REF="ID_050033"/>
		<AREF ID-REF="ID_050066"/> (3)
	</AREFS>
</ABLOCK>
1 Reference to FSX ABLOCK.
2 Reference to MDX ABLOCK.
3 Reference to Function Overview ABLOCK.
MDX ABLOCK
<!-- MDX ABLOCK -->
<ABLOCK ID="ID_050022">
	<SHORT-NAME>iac_mdx</SHORT-NAME>
	<CATEGORY>TDATA-S</CATEGORY>
	<FILES>
		<FILE TYPE="MDX">Iac_mdl\_doc\iac.mdx</FILE>  (1)
	</FILES>
</ABLOCK>
1 Reference to MDX File.
MDX File
<!--  SW-FEATURE Snippet from MDX -->
<SW-COMPONENT-SPEC>
	<SW-COMPONENTS>
		<SW-FEATURE>
			<SHORT-NAME>Iac_mdl</SHORT-NAME>
			<LONG-NAME>Feature Iac</LONG-NAME>
			<CATEGORY>FCT</CATEGORY>
			<SW-FEATURE-OWNED-ELEMENT-SETS>
			...
Function Overview ABLOCK
<ABLOCK ID="ID_050066">
	<SHORT-NAME>XFN1</SHORT-NAME>
	<CATEGORY>PIC-FO</CATEGORY>
	<SDGS>
		<SDG GID="function_overview">
			<SD GID="component">Iac_mdl</SD> (1)
		</SDG>
	</SDGS>
</ABLOCK>
1 Short name matches with MDX File.
FSX ABLOCK
<!-- FSX ABLOCK -->
<ABLOCK ID="ID_050011">
	<SHORT-NAME>iac_fsx</SHORT-NAME>
	<CATEGORY>TDOC</CATEGORY>
	<FILES>
		<FILE TYPE="FSX">Iac_mdl\_doc\iac.fsx</FILE> (1)
	</FILES>
</ABLOCK>
1 Reference to FSX File.
FSX File
<!-- Figure Snippet from FSX -->
<FIGURE> (1)
	<FIGURE-CAPTION>
		<SHORT-NAME>XFN1</SHORT-NAME> (2)
		<LONG-NAME>
			<L-4 L="DE">Ingnition</L-4>
		</LONG-NAME>
	</FIGURE-CAPTION>
	<L-GRAPHIC L="FOR-ALL">
		<GRAPHIC NOTATION="SVG" SCALE="0.61">
		</GRAPHIC>
	</L-GRAPHIC>
</FIGURE>
1 See Visualisation in EHB-NAV.
2 Short name matches with Function Overview ABLOCK
navigator visualisation 4
Figure 26. Visualisation in EHB-NAV
image 11
Figure 27. Referencing method for single Function Overview graphic

NOTICE


Incomplete, wrong or differing representation of model screenshots and interactive models from source data.

During the conversion of ASCET models, Simulink/Stateflow models or C-Code to interactive models and/or SVG graphics, the generated outputs may differ from the original model visualizations. As C-Code is written in textual form while interactive models are graphical diagrams, the semantic and interpretation can differ.

The following deviations between the model and the EHANDBOOK Container content may occur:

  • Missing or wrong graphics

  • Wrong targets on linked graphics

    • Wrong model links

    • Wrong model hierarchy links

  • For C-Code visualizations, different interpretations and semantics

Possible root causes of these deviations are:

  • Link specification in input text does not match to model hierachy path

  • Referenced model/source files are missing

  • Matlab connection for mask generation in Simulink was broken,

  • EHB-CB tool error due to internal error or unsupported source content

  • Technical limitations, especially for representing C-Code as graphical visualization

To identify deviations:

  1. Check the entries in the log file of the generated EHANDBOOK Container for Warnings and Errors

  2. Check the links between SVG graphics and interactive models in the EHANDBOOK Container

It is the responsibility of the creator of the EHANDBOOK Container to check the log files generated by EHANDBOOK Container-Build and to check the outputs for wrong model references and initiate the correction in the sources.

To ensure consistency and mitigate limitations:

  1. Check the release notes and the known issues of EHANDBOOK Container-Build as well as EHANDBOOK-NAVIGATOR.

  2. Compare the C-Code source code with the its graphical representation in EHANDBOOK-NAVIGATOR.

ASCET Model Reference to global Library and other Sub-Components

The standard behavior is that the ASCET axl file contains the ASCET project and all needed modules and classes. An extension in the future will support also external references to sub components and global libs in other directories.

If ASCET models for any FC are referencing a global library with general classes or services, this also has to be defined in the CCX as follows:

image25

The prerequisites for this concept are:

  • There exists exactly one main directory for the global libs (called services here) which may contain multiple subdirectories, defined in CCX as described above.

  • There is no inter FC referencing used, but a sub-class could refer to another sub-class in the same FC. So references are only possible below the main directory of the FC or in the directory (or subdirectories) of the global libs

  • There is exactly one root axl per FC, which contains the ASCET project and is referred in the CCX (name e.g. <FC_name>_p.axl)

  • File names for classes in subdirectories of the FCs could be named the same, but all names in the global lib directory and below must be unique.

Typically, a Simulink model is also referencing external models or libraries. EHB-CB is capable to handle this in multiple ways:

  1. Reference alongside
    The library or model is found if it is in the same directory level as the main model itself

  2. Reference by system variable
    Libraries were searched in system environment variable TB_HOMEDIR, sub path \dgs_lib_mlsl and below.

  3. Reference defined in CCX
    One search path can be defined as <SD GID> tag in the Root ABLOCK in CCX:

<ABLOCK ID="EHB_Container">
	<!-- Root ABLOCK -->
	<SHORT-NAME>ehbContainer</SHORT-NAME>
	<DESC />
	<SDGS>
		<SDG GID="global">
			<SD GID="view">Detailed</SD>
			<SD GID="project_class">PVER</SD>
			<SD GID="project_longname">ETAS FlexECU-G1 Turbo</SD>
			<SD GID="project_shortname">EHB_Demo_Container</SD>
			<SD GID="project_date">2019-07-31 10:39:00</SD>
			<SD GID="Project_variant">V7.1.1</SD>
			<SD GID="Project_revision">3</SD>
			<SD GID="info_pver">EHANDBOOK Demo</SD>
			<SD GID="doc_class">SWCALDOC</SD>
			<SD GID="language">DE</SD>
			<SD GID="hide_component">true</SD>
			<SD GID="condition">true</SD>
			<SD GID="confidential_level_2">false</SD>
			<SD GID="doctype_text">Software Documentation</SD>
			<SD GID="MATLAB_LIB_PATH">C:\source\Simulink\M160</SD>
		</SDG>
	</SDGS>
	...

There is exactly one absolute file path allowed.

  1. Reference defined by parameter
    A search path can be defined by the command line parameter -simlib “path”. Here even multiple paths are allowed, separated by commas -simlib “path1,path2,etc”

The order above also defines the search order for a library, but without a fallback mechanism. If a path is defined, but there is no library found, the following options will be ignored anyway. This means, only one option can be used out of number 2. – 4. from above.

For the paths defined above, also any sub path below is searched. The search path defined is valid for all models of all FCs.

There is currently no library version check implemented. The user has to provide the correct version of the libs, which fits to the models. If multiple versions of a lib are provided, CB just takes the first one found.

EHB supports URL and file links inside an FSX <CHAPTER> section.

To open an Internet page, add the following:

<P>
	<XREF>
		<LABEL-1>About ETAS EHANDBOOK</LABEL-1>
		<REFERRABLE-REF
			ID-CLASS="EXTERNAL"
			EXT-ID-CLASS="URL">https://www.etas.com/ehandbook%3c/REFERRABLE-REF%3e%3c/XREF%3e%3c/P[https://www.etas.com/ehandbook</REFERRABLE-REF>
	</XREF>
</P>

To open an external file, add the following:

<P>
	<XREF>
		<LABEL-1>Word_template</LABEL-1>
		<REFERRABLE-REF
			ID-CLASS="EXTERNAL"
			EXT-ID-CLASS="URL">file://host/path/Word_template.pdf</REFERRABLE-REF>
	</XREF>
</P>

The text inside <LABEL-1> is shown as link text in EHB-NAV. When you click on it, the “URL” will be executed with its associated Windows tool.

EHB only supports absolute file paths in URL.

Attachments

For a general overview on attachments in EHANDBOOK, please refer to the EHANDBOOK Container-Build User Guide.

Attachments are files associated to a documentation unit in particular a chapter in EHANDBOOK. This can be a general text chapter, a function description or a software component description.

In the ASAM-based EHB-CB approach, an <ABLOCK> with category ATTACHMENTS has to be created and linked to the documentation chapter to which the attachments shall be associated.

The 'ABLOCK' then has to list each file that represents an attachment.

<ABLOCK> (1)
    ...
    <AREFS>
        <AREF ID-REF="ID_Tqs_Attachments" /> (2)
    </AREFS>
    ...
</ABLOCK>

<ABLOCK ID="ID_Tqs_Attachments"> (3)
    <SHORT-NAME>Tqs_Attachments</SHORT-NAME>
    <CATEGORY>ATTACHMENTS</CATEGORY>
    <FILES>
        <FILE>_attachments\Tqs_Calibration_Guide.pdf</FILE> (4)
        <FILE>_attachments\Tqs_Initial_Calibration_Values.dcm</FILE> (4)
        <FILE>_attachments\Tqs_Variables_List.lab</FILE> (4)
    </FILE>
</ABLOCK>
1 ABLOCK of the documentation unit to which attachments shall be associated
2 Reference to the ABLOCK specifying the attachments
3 ABLOCK with category ATTACHMENTS
4 File to be attached