Crate a2lfile[][src]

Expand description

a2lfile is a library that allows you to read, modify and write a2l files.

It is fast, preserves the formatting of the input, and has support for files using standard version 1.71.

Macros

The a2ml_specification! macro enables application to conveniently decode and use IF_DATA defined though A2ML. The macro uses an “enhanced A2ML” language to define the items. Rust data structures and associated code will be generated for items defined inside of the macro.

Structs

Contains all the objects of an A2lfile

A2ML is a special case in the specification. It contains the ASAP2 metalanguage code that describes the content of IF_DATA blocks

Contains AML code for description of interface specific description data.

Address of the EPROM identifier

Description of the addressing of table values or axis point values.

Defines the alignment of byte-sized values in complex objects (maps and axis)

Defines the alignment of 16bit floats in complex objects (maps and axis)

Defines the alignment of 32bit floats in complex objects (maps and axis)

Defines the alignment of 64bit floats in complex objects (maps and axis)

Defines the alignment of int64 values in complex objects (maps and axis)

Defines the alignment of long-sized values in complex objects (maps and axis)

Defines the alignment of word-sized values in complex objects (maps and axis)

An extended description text

The title of an annotation

Identify who or which system has created an annotation

Text of an annotation

describes the Autosar component type of a function

marks a measurement object as an array of measurement values

Version of the ASAM MCD-2MC standard used by this file

Axis description within an adjustable object

Parameters for the handling of an axis points distribution

Description of the X, Y, Z, Z4 or Z5 axis points in memory

Reference to an AXIS_PTS record

Description of rescaling the axis values of an adjustable object

The BIT_MASK keyword can be used to mask out single bits of the value to be processed.

Used to perform bit operation on a value

Special data object that can be used to handle domain specific data, which are processed inside the ECU in a dedicated way

Describes the location and formatting of an a2l block within a file

Where the standard value does not apply this parameter can be used to specify the byte order

Specifies the access of a CHARACTERISTIC or AXIS_PTS for calibration

calibration method specific data

Additional text for a calibration handle

Indicates the different methods of access that are implemented in the ECU

Specifies all the parameters of an adjustable object

Specifies the coefficients for the formula f(x) = (axx + bx + c) / (dxx + ex + f)

Specifies the coefficients for the linear formula f(x) = ax + b

Auto generated for repeating sequence combination in block VAR_FORBIDDEN_COMB

references a valid MEASUREMENT

Specification of a conversion method from internal values to physical values

Conversion table for conversions that cannot be represented as a function

reference to a conversion table

Conversion table for the assignment of display strings to values. Typically used for enums.

Conversion table for the assignment of display strings to a value range

Identifies the CPU used in the ECU

Used to specify the adjustable CURVE CHARACTERISTIC that is used to normalize or scale the axis in an AXIS_DESCR

Allows a customer name to be specified

specify a customer number or identifier as a string

Data size in bits

Defines which adjustable objects are used by a FUNCTION

Sets the default text value of COMPU_TAB, COMPU_VTAB or COMPU_VTAB_RANGE

Sets the default numerical value of COMPU_TAB, COMPU_VTAB or COMPU_VTAB_RANGE

Specify characteristics that depend on a formula

Specifies how the axis points of a characteristic are deposited in memory

Indicates that a measurement or calibration object has discrete values which should not be interpolated

Gives the display name of a CHARACTERISTIC or MEASUREMENT value

Description of the distance operand in the deposit structure to compute the axis points for fixed characteristic curves and fixed characteristic maps

String for identification of the control unit.

Provides the address of a MEASUREMENT

Used to specify additional address information

Provide an address offset in order to handle near pointers or variant coding

a CHARACTERISTIC of type ASCII can be configured to use a multi-byte encoding instead

EPROM identifier

Used to mask bits of a MEASUREMENT which indicate that the value is in error

used to specify an extended range of values

Parameters for the calculation of fixed axis points: X_i = Offset + (i - 1)*2^shift

Parameters for the calculation of fixed axis points: X_i = Offset + (i - 1)*distance

A list of fixed axis point, as implemented on the ECU

Specifies the number of axis points available to CURVE, MAP, CUBOID, CUBE_4 or CUBE_5

Description of the table values (function values) of an adjustable object

Allows a display format string to be specified for a MEASUREMENT, CHARACTERISTIC or AXIS_PTS object

Allows any kind of formula to be specified

Allows an inverse formula to be specified

Defines a function frame to structure large amounts of measurement objects

Contains a list of identifiers of measurement objects

Describes the input, local, and output variables of a function on the ECU

a list of FUNCTION objects

A string containing the version of a FUNCTION

A tagged item (of taggedstruct or taggedunion) in the generic IfData representation

Defines a group of releated CHARACTERISTIC and MEASUREMENT objects

Used to indicate that an adjustable CURVE, MAP or AXIS_PTS uses guard rails

The header of a project

used to describe that an 'identifier' is deposited in a specific position in the adjustable object

The content of IF_DATA blocks is not directly described in the specification. Instead the content description is provided at runtime through the A2ML block.

Interface specific data

Creates an instance of a type defined using TYPEDEF_STRUCTURE

describes the layout of a multi-dimensional measurement array

Used within BIT_OPERATION to left-shift the bits of a value

A list of measurement objects that are local variables of a function

used to specify the list of MAPs which comprise a CUBOID

describes the dimensions of a multidimensional array of values

specifies a maximum permissible gradient for an adjustable object

specifies the maximum refresh rate in the control unit

describes the parameters for a measurement object

describes the layout of the ECU memory

describes a memory segment of the ECU program

defines default values for the entire module

defines system information and management data for the module

add a string to a CHARACTERISTIC linking it to a name in the model

The MODULE keyword describes a complete ECU or device with all adjustable and measurement objects, conversion methods and functions

specifies the monotony of an adjustment object

Description of the number of axis points in an adjustable object

the number of interfaces

number of rescaling axis point value pairs

specifies the number of values in an array. Obsolete, replaced by MATRIX_DIM

Description of the 'offset' parameter in the deposit structure

defines output quantities of a function

override some default attributes of a type definition in a specific INSTANCE. Added in 1.70; currently incomplete and non-functional

contains a phone number, e.g. of the calibration engineer

specifies the physical unit of a measurement or calibration object as a string

Project description with project header and all modules belonging to the project. Required.

Gives the project identifier

used to indicate that an adjustable object is read-only

used to indicate that a measurement object is writeable

specifies the various data structures of an adjustable objects in memory

defines a list of adjustable objects that can be referenced by a function or group

defines a list of groups for use by USER_RIGHTS

defines a list of measurement objects that can be referenced by a group

reference to a MEMORY_SEGMENT

reference to a UNIT

indicates that the data at the given position is reserved and should not be interpreted by the MCD system

Used within BIT_OPERATION to right-shift the bits of a value

Describes the storage of the ECU-internal result of interpolation (RIP)

indicates that the current group is at the root of the navigation tree

sets the standard record layout for the module

Description of the shift operand in the deposit structure to compute the axis points for fixed characteristic curves and fixed characteristic maps

the seven base dimensions required to define an extended SI unit

used in BIT_OPERATION to specify that sign extension should be performed

Description of the address of the input quantity in an adjustable object

indicates that the start addresses of axes and function values of an adjustable object do not change when removing or inserting axis points

indicates that an adjustable object with dynamic number of axis points does not compact or expand data when removing or inserting axis points

used to split up the value range of ECU internal values into a numerical and a verbal part

step size when adjusting the value of a CHARACTERISTIC, AXIS_PTS or AXIS_DESCR

defines a single component of a TYPEDEF_STRUCTURE

a list of identifiers of functions which are sub-functions of the current function

a list of identifiers of groups which are subgroups of the current group

Name of the ECU manufacturer

specifes the name of a symbol within a linker map file that corresponds to the a2l object

Specifies the name of a symbol within a linker map file or debug file that describes a class, class member, structure or structure component

defines a system constant that can be used in conversion formulas

Auto generated for repeating sequence tab_entry in block COMPU_TAB

Definition of call to an external function (32-bit or 64-bit DLL) for converting calibration object values between their implementation format and physical format

provides a list of inputs for a TRANSFORMER

provides a list of outputs for a TRANSFORMER

Type definition of an axis object

Type definition of a BLOB

Type definition of a calibration object

Type definition of a measurement object

Definition of structured data types similar to the "typedef" command in C

Specification of a measurement unit

Specification of the linear relationship between two measurement units

Name of the user

used to define groups accessible only for certain users

Auto generated for repeating sequence value_pairs in block COMPU_VTAB

Auto generated for repeating sequence value_triples in block COMPU_VTAB_RANGE

define a list of start addresses of variant coded adjustable objects

defines one adjustable object to be variant coded

describes a variant criterion

describes a forbidden combination of values of different variant criteria

specify a special measurement object which indicates the currently active variant

defines the format of the variant extension (index) of adjustable object names

used to specify a special characteristic object which can change the currently active variant

defines the separating symbol between the two parts of an adjustable object name

All information related to variant coding is grouped in this structure

version identifier

specification of the measurement objects for a virtual measurement channel

defines characteristics that are not deposited in the memory of the control unit, but can be used to indirectly calibrate other characteristic values

Enums

Description of the addressing of table values or axis point values.

Description of the axis points

Byte ordering of a value on the ECU

Type of access that is possible for a CHARACTERISTIC or AXIS_PTS object

Describes the encoding of a string, if it is not ASCII

Specifies the type of an adjustable object

Describes how to convert internal input values to physical values

Description of the basic data types in the ECU program.

Description of the word lengths in the ECU program.

Deposit of the axis points of a characteristic curve or map

generic representation of data inside an IF_DATA block that can be loaded into application-specific data structures

Describes how the 2-dimensional table values are mapped onto the 1-dimensional address space

Description of the axis point sequence in the memory.

specifies if a given memory region is internal or external

describes the type of memory used

describes the possible ways an adjustment object can be monotonous

Describes the types of data in the ECU program

describes the types of program segments

the trigger conditions of a TRANSFORMER

Type of the UNIT

intended to define the format of the variant extension. Currently only one format is supported

Traits

The trait A2lObject is implemented for all a2l objects as well as all objects generated by the a2ml_specification! macro. It gives access to layout and location data which is tracked for each object in an a2l file.

The trait A2lObjectName is automatically implemented for named a2l objects

Functions

Load an a2l file

load a2l data stored in a string