.. include:: vars.rst .. _section-features: Features ======== This section lists the features included in the |RTI_CONNEXT| Integration Toolkit for AUTOSAR Classic. Data Description Format Conversion ---------------------------------- .. _section-arxml-to-dds-idl: ARXML to DDS-IDL ~~~~~~~~~~~~~~~~ The Integration Toolkit can translate the following from ARXML to DDS-IDL format: * AUTOSAR packages (*ArPackage*) * Base types (*SwBaseType*) categorized as FIXED_LENGTH with either: * a ``SHORT-NAME`` value in the following list: * ``boolean`` * ``[s|u]int[8|16|32|64]`` * ``float[32|64]`` * a ``BASE-TYPE-ENCODING`` value in the following list: * ``NONE`` (with ``BASE-TYPE-SIZE`` 8, 16, 32 or 64) * ``2C`` (with ``BASE-TYPE-SIZE`` 8, 16, 32 or 64) * ``BOOLEAN`` * ``ISO-8859-1`` * Implementation types (*ImplementationDataType*) categorized as one of the following: * ``VALUE`` (referencing a SwBaseType) * ``TYPE_REFERENCE`` * ``STRUCTURE`` (including recursive nesting of any supported type category) * ``ARRAY`` (including recursive nesting of any supported type category) .. note:: Only fixed-size array semantics are supported. * 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*. * *Structure*-based discriminated unions, as defined by AUTOSAR_SWS_SOMEIPTransformer (R21-11), SWS_SomeIpXf_00249, containing one of the following: * an unsigned integer ``FIXED_LENGTH``/``NONE`` “memberSelector” field. * a ``UNION`` “payload” field. * Client/Server Port Interfaces (*ClientServerInterface*) featuring operations with ``In`` and ``Out`` parameters of any supported type category. ARXML to DDS-XML ~~~~~~~~~~~~~~~~ The Integration Toolkit can also translate the following from ARXML to DDS-XML format (as defined for :ref:`DDS-IDL ` above): * AUTOSAR packages (*ArPackage*) * Base types (*SwBaseType*) * Implementation types (*ImplementationDataType*) * Computation method types (*CompuMethod*) * Application types (*ApplicationDataType*) * *Structure*-based discriminated union types * Client/Server port interfaces (*ClientServerInterface*) DDS-IDL/XML to C ~~~~~~~~~~~~~~~~ The Integration Toolkit can automatically invoke *rtiddsgen* (when available), which is part of |RTI_CONNEXT_ME|. Such interaction will produce *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 Integration Toolkit can generate bi-directional conversion routines between the following: * DDS C runtime types, derived from the ARXML to DDS IDL/XML translations described above. * RTE C runtime types, derived from the ARXML input of the translations described above. Runnable Code Generation ------------------------ ARXML to C ~~~~~~~~~~ The Integration Toolkit can generate AUTOSAR Classic runnable implementations for *ComplexDeviceDriverSwComponentType* hosting *RunnableEntity* declarations with either: * *VariableAccess*-es referencing *PPortPrototype* and *RPortPrototype* * *SynchronousServerCallPoints*-s referencing *PPortPrototype* and *RPortPrototype* * Related *OperationInvokedEvent*-s referencing *PPortPrototype* .. note:: To broker data between the RTE and DDS frameworks, generated code for each Port Prototype Interface Element may forward data samples by reference (at zero cost) between RTE and DDS, as long as this optimization is enabled by the user AND the memory layout of the data types match for both frameworks. If this optimization is not enabled, or the in-memory layout of DDS and RTE C-language types are not compatible, conversions defined in Data conversion code generation are used in generated code. DDS Entity Configuration and Mapping Generation ----------------------------------------------- The Integration Toolkit can generate DDS C code for the following: * ECU-global initialization and finalization of the DDS Middleware. * SW-C-specific initialization and finalization of DDS Entities. * Mapping between DDS Entities and RTE Component Port Elements.