Crate a2lfile

source ·
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 label or 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
  • Describes the resationship of the component type to to a component prototype in the Autosar system
  • 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
  • indicates that an instance of a structure should always be handled completely
  • CONVERSION is used inside OVERWRITE to override the default conversion method
  • 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 A list of measurement objects that are used as the inputs of a function
  • INPUT_QUANTITY is used inside OVERWRITE to override the input_quantity of an INSTANCE
  • Creates an instance of a type defined using TYPEDEF_STRUCTURE, TYPEDEF_MEASUREMENT or TYPEDEF_CHARACTERISTIC
  • describes the layout of a multi-dimensional measurement array
  • Used within BIT_OPERATION to left-shift the bits of a value
  • LIMITS is used inside OVERWRITE to override the limits of an INSTANCE
  • 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
  • ModuleNameMap collects references to all items with a Module into HashMaps, making it possible to access them all by name.
  • 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.
  • 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§

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§