Crate a2lfile[][src]

Macros

a2ml_specification

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

A2lFile

Contains all the objects of an A2lfile

A2ml

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

A2mlVersion

Contains AML code for description of interface specific description data.

AddrEpk

Address of the EPROM identifier

AddressType

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

AlignmentByte

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

AlignmentFloat16Ieee

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

AlignmentFloat32Ieee

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

AlignmentFloat64Ieee

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

AlignmentInt64

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

AlignmentLong

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

AlignmentWord

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

Annotation

An extended description text

AnnotationLabel

The title of an annotation

AnnotationOrigin

Identify who or which system has created an annotation

AnnotationText

Text of an annotation

ArComponent

describes the Autosar component type of a function

ArraySize

marks a measurement object as an array of measurement values

Asap2Version

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

AxisDescr

Axis description within an adjustable object

AxisPts

Parameters for the handling of an axis points distribution

AxisPtsDim

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

AxisPtsRef

Reference to an AXIS_PTS record

AxisRescaleDim

Description of rescaling the axis values of an adjustable object

BitMask

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

BitOperation

Used to perform bit operation on a value

Blob

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

BlockInfo

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

ByteOrder

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

CalibrationAccess

Specifies the access of a CHARACTERISTIC or AXIS_PTS for calibration

CalibrationHandle

calibration method specific data

CalibrationHandleText

Additional text for a calibration handle

CalibrationMethod

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

Characteristic

Specifies all the parameters of an adjustable object

Coeffs

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

CoeffsLinear

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

CombinationStruct

Auto generated for repeating sequence combination in block VAR_FORBIDDEN_COMB

ComparisonQuantity

references a valid MEASUREMENT

CompuMethod

Specification of a conversion method from internal values to physical values

CompuTab

Conversion table for conversions that cannot be represented as a function

CompuTabRef

reference to a conversion table

CompuVtab

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

CompuVtabRange

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

ConsistentExchange
CpuType

Identifies the CPU used in the ECU

CurveAxisRef

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

Customer

Allows a customer name to be specified

CustomerNo

specify a customer number or identifier as a string

DataSize

Data size in bits

DefCharacteristic

Defines which adjustable objects are used by a FUNCTION

DefaultValue

Sets the default text value of COMPU_TAB, COMPU_VTAB or COMPU_VTAB_RANGE

DefaultValueNumeric

Sets the default numerical value of COMPU_TAB, COMPU_VTAB or COMPU_VTAB_RANGE

DependentCharacteristic

Specify characteristics that depend on a formula

Deposit

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

Discrete

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

DisplayIdentifier

Gives the display name of a CHARACTERISTIC or MEASUREMENT value

DistOpDim

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

Ecu

String for identification of the control unit.

EcuAddress

Provides the address of a MEASUREMENT

EcuAddressExtension

Used to specify additional address information

EcuCalibrationOffset

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

Encoding

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

Epk

EPROM identifier

ErrorMask

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

ExtendedLimits

used to specify an extended range of values

FixAxisPar

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

FixAxisParDist

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

FixAxisParList

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

FixNoAxisPtsDim

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

FncValues

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

Format

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

Formula

Allows any kind of formula to be specified

FormulaInv

Allows an inverse formula to be specified

Frame

Defines a function frame to structure large amounts of measurement objects

FrameMeasurement

Contains a list of identifiers of measurement objects

Function

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

FunctionList

a list of FUNCTION objects

FunctionVersion

A string containing the version of a FUNCTION

GenericIfDataTaggedItem

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

Group

Defines a group of releated CHARACTERISTIC and MEASUREMENT objects

GuardRails

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

Header

The header of a project

Identification

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

IfData

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.

InMeasurement

Interface specific data

Instance

Creates an instance of a type defined using TYPEDEF_STRUCTURE

Layout

describes the layout of a multi-dimensional measurement array

LeftShift

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

LocMeasurement

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

MapList

used to specify the list of MAPs which comprise a CUBOID

MatrixDim

describes the dimensions of a multidimensional array of values

MaxGrad

specifies a maximum permissible gradient for an adjustable object

MaxRefresh

specifies the maximum refresh rate in the control unit

Measurement

describes the parameters for a measurement object

MemoryLayout

describes the layout of the ECU memory

MemorySegment

describes a memory segment of the ECU program

ModCommon

defines default values for the entire module

ModPar

defines system information and management data for the module

ModelLink

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

Module

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

Monotony

specifies the monotony of an adjustment object

NoAxisPtsDim

Description of the number of axis points in an adjustable object

NoOfInterfaces

the number of interfaces

NoRescaleDim

number of rescaling axis point value pairs

Number

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

OffsetDim

Description of the 'offset' parameter in the deposit structure

OutMeasurement

defines output quantities of a function

Overwrite

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

PhoneNo

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

PhysUnit

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

Project

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

ProjectNo

Gives the project identifier

ReadOnly

used to indicate that an adjustable object is read-only

ReadWrite

used to indicate that a measurement object is writeable

RecordLayout

specifies the various data structures of an adjustable objects in memory

RefCharacteristic

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

RefGroup

defines a list of groups for use by USER_RIGHTS

RefMeasurement

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

RefMemorySegment

reference to a MEMORY_SEGMENT

RefUnit

reference to a UNIT

Reserved

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

RightShift

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

RipAddrDim

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

Root

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

SRecLayout

sets the standard record layout for the module

ShiftOpDim

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

SiExponents

the seven base dimensions required to define an extended SI unit

SignExtend

used in BIT_OPERATION to specify that sign extension should be performed

SrcAddrDim

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

StaticAddressOffsets

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

StaticRecordLayout

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

StatusStringRef

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

StepSize

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

StructureComponent

defines a single component of a TYPEDEF_STRUCTURE

SubFunction

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

SubGroup

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

Supplier

Name of the ECU manufacturer

SymbolLink

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

SymbolTypeLink

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

SystemConstant

defines a system constant that can be used in conversion formulas

TabEntryStruct

Auto generated for repeating sequence tab_entry in block COMPU_TAB

Transformer

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

TransformerInObjects

provides a list of inputs for a TRANSFORMER

TransformerOutObjects

provides a list of outputs for a TRANSFORMER

TypedefAxis

Type definition of an axis object

TypedefBlob

Type definition of a BLOB

TypedefCharacteristic

Type definition of a calibration object

TypedefMeasurement

Type definition of a measurement object

TypedefStructure

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

Unit

Specification of a measurement unit

UnitConversion

Specification of the linear relationship between two measurement units

User

Name of the user

UserRights

used to define groups accessible only for certain users

ValuePairsStruct

Auto generated for repeating sequence value_pairs in block COMPU_VTAB

ValueTriplesStruct

Auto generated for repeating sequence value_triples in block COMPU_VTAB_RANGE

VarAddress

define a list of start addresses of variant coded adjustable objects

VarCharacteristic

defines one adjustable object to be variant coded

VarCriterion

describes a variant criterion

VarForbiddenComb

describes a forbidden combination of values of different variant criteria

VarMeasurement

specify a special measurement object which indicates the currently active variant

VarNaming

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

VarSelectionCharacteristic

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

VarSeparator

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

VariantCoding

All information related to variant coding is grouped in this structure

Version

version identifier

Virtual

specification of the measurement objects for a virtual measurement channel

VirtualCharacteristic

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

Enums

AddrType

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

AxisDescrAttribute

Description of the axis points

ByteOrderEnum

Byte ordering of a value on the ECU

CalibrationAccessEnum

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

CharacterEncoding

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

CharacteristicType

Specifies the type of an adjustable object

ConversionType

Describes how to convert internal input values to physical values

DataType

Description of the basic data types in the ECU program.

DataTypeSize

Description of the word lengths in the ECU program.

DepositMode

Deposit of the axis points of a characteristic curve or map

GenericIfData

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

IndexMode

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

IndexOrder

Description of the axis point sequence in the memory.

MemoryAttribute

specifies if a given memory region is internal or external

MemoryType

describes the type of memory used

MonotonyType

describes the possible ways an adjustment object can be monotonous

PrgType

Describes the types of data in the ECU program

ProgType

describes the types of program segments

TransformerTrigger

the trigger conditions of a TRANSFORMER

UnitType

Type of the UNIT

VarNamingTag

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

Traits

A2lObject

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.

A2lObjectName

The trait A2lObjectName is automatically implemented for named a2l objects

Logger

a struct can implement the trait logger in order to be a recipient of log messages during load() and check()

Functions

load

Load an a2l file

load_from_string

load a2l data stored in a string