2. Features

This section lists the features included in the RTI Connext AUTOSAR Runtime Adaptive Code Generator.

2.1. Data Description Format Conversion

2.1.1. ARXML to DDS-IDL

The AUTOSAR Runtime Adaptive Code Generator can translate the following from ARXML to DDS-IDL format:

  • AUTOSAR packages (ArPackage).

  • Standard (StdCppImplementationDataType) and Custom (CustomCppImplementationDataType) Implementation Types categorized as one of the following:

    • VALUE with a SHORT-NAME value in the following list:

      • bool

      • char and wchar_t

      • [u]int[8|16|32|64]_t

      • float and double

    • STRING

    • TYPE_REFERENCE

    • STRUCTURE (including recursive nesting of any supported type category)

    • VARIANT (including recursive nesting of any supported type category)

    • ARRAY (including recursive nesting of any supported type category)

    • VECTOR (including recursive nesting of any supported type category)

    • ASSOCIATIVE_MAP (including recursive nesting of any supported type category)

  • Computation method types (CompuMethod) categorized as TEXTTABLE, containing a CompuScale defining CompuConst and LowerLimit for each element.

  • Application type (ApplicationDataType) mappings, each linking one ApplicationDataType against one ImplementationDataType.

  • Service Interfaces (ServiceInterface) featuring:

  • Events of any supported type category.

  • Fields of any supported type category.

  • Methods with In and Out parameters of any supported type category.

2.1.2. ARXML to DDS-XML

The AUTOSAR Runtime Adaptive Code Generator can also translate the following from ARXML to DDS-XML format:

2.1.3. ARXML to C++

The AUTOSAR Runtime Adaptive Code Generator can also translate the following from ARXML to Adaptive Platform C++ Implementation Types:

2.1.4. DDS-IDL/XML to C

As an added convenience, the AUTOSAR Runtime Adaptive Code Generator can automatically invoke, when available, rtiddsgen, which is part of RTI Connext Micro.

Such interaction will product type support files in the C programming language for the types generated as described in the sections above.

2.2. Data Conversion Code Generation

2.2.1. ARXML to C++

The AUTOSAR Runtime Adaptive Code Generator can generate bi-directional conversion routines between the following:

  • DDS C runtime types, derived from the ARXML to DDS IDL/XML translations described above.

  • ara:com C++ runtime types, derived from the ARXML input of the translations described above.

2.3. Run-time Code Generation

2.3.1. ARXML to C++

The AUTOSAR Runtime Adaptive Code Generator can generate C++ artifacts matching the following AUTOSAR Adaptive model elements:

  • Application Error (ApApplicationError) and Error Domain (ApApplicationErrorDomain)

  • Service Interface (ServiceInterface) skeletons and proxies

  • Service Interface (ServiceInterface) common declarations (independent from Network Binding)

  • Service Interface (ServiceInterface) DDS declarations (specific to the DDS Network Binding)

Note

To broker data between the ara:com and DDS frameworks, generated DDS declarations provide compile- and run-rime information about in-memory layout compatibility between both frameworks, allowing ara:com higher-layer code to optimise away data type conversions when possible.

2.4. Deployment Configuration Generation

The AUTOSAR Runtime Adaptive Code Generator can generate Key/Value-style files reflecting:

  • DDS Service Interface Deployment Configuration (DdsServiceInterfaceDeployment)

  • DDS Provided Service Instance Deployment Configuration (DdsProvidedServiceInstance)

  • DDS Required Service Instance Deployment Configuration (DdsProvidedServiceInstance)

2.5. Vendor-specific Code Generation

2.5.1. Vector Adaptive MICROSAR (AMSR)

The AUTOSAR Runtime Adaptive Code Generator can generate C++ artifacts compatible with Vector AMSR Development Release 7.23.06:

  • Service Interface (from ServiceInterface) skeleton and proxy transformer code

  • Static DDS Service Interface Deployment Configuration (from DdsServiceInterfaceDeployment) transformer code

  • Static DDS Provided Service Instance Deployment Configuration (from DdsProvidedServiceInstance) transformer code

  • Static DDS Required Service Instance Deployment Configuration (from DdsRequiredServiceInstance) transformer code