.. (c) Copyright, Real-Time Innovations, 2023. All rights reserved. No duplications, whole or partial, manual or electronic, may be made without express written permission. Any such copies, or revisions thereof, must display this notice unaltered. This code contains trade secrets of Real-Time Innovations, Inc. .. include:: vars.rst .. |as defined for DDS-IDL| replace:: :ref:`as defined for DDS-IDL ` .. _section-features: Features ======== This section lists the features included in the |RTI_CONNEXT| AUTOSAR Runtime Adaptive Code Generator. Data Description Format Conversion ---------------------------------- .. _section-arxml-to-dds-idl: 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. ARXML to DDS-XML ~~~~~~~~~~~~~~~~ The AUTOSAR Runtime Adaptive Code Generator can also translate the following from ARXML to DDS-XML format: * AUTOSAR packages (*ArPackage*) |as defined for DDS-IDL|. * Standard (*StdCppImplementationDataType*) and Custom (*CustomCppImplementationDataType*) Implementation types |as defined for DDS-IDL|. * Computation method types (*CompuMethod*) |as defined for DDS-IDL|. * Application types (*ApplicationDataType*) |as defined for DDS-IDL|. * Service interfaces (*ServiceInterface*) |as defined for DDS-IDL|. ARXML to C++ ~~~~~~~~~~~~ The AUTOSAR Runtime Adaptive Code Generator can also translate the following from ARXML to Adaptive Platform C++ Implementation Types: * AUTOSAR packages (*ArPackage*) |as defined for DDS-IDL|. * Standard (*StdCppImplementationDataType*) and Custom (*CustomCppImplementationDataType*) Implementation types |as defined for DDS-IDL|. * Computation method types (*CompuMethod*) |as defined for DDS-IDL|. * Application types (*ApplicationDataType*) |as defined for DDS-IDL|. 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_ME|. Such interaction will product *type support* files in the C programming language for the types generated as described in the sections above. Data Conversion Code Generation ------------------------------- 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. Run-time Code Generation ------------------------ 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. 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*) Vendor-specific Code Generation ------------------------------- 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