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
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