DEENESPTFRRUARHIKOZHNL

módulo ara::com — Communication Management

Guía del móduloGENERADO POR IA

Proporciona interfaces tipadas para la comunicación orientada a servicios y abstrae los protocolos de transporte.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 45902037e92f Procedencia Preguntas abiertas (2)
Ancla causal: R25-11 Válido desde R25-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Proporciona interfaces tipadas para la comunicación orientada a servicios y abstrae los protocolos de transporte.

El Functional Cluster Communication Management (ara::com) permite la interacción orientada a servicios entre aplicaciones Adaptive a través de interfaces estandarizadas de proxy y skeleton (SWS_CommunicationManagement p. 55, ARAComAPI p. 1). Regula la búsqueda dinámica de servicios mediante OfferService() y FindService() ([SWS_CM_00101], [SWS_CM_00122]) y proporciona métodos síncronos y asíncronos, eventos y fields con protección E2E y SecOC integrada ([SWS_CM_00141], [SWS_CM_90420]). En caso de pérdida temporal de un servicio, el middleware absorbe las interrupciones de conexión y actualiza automáticamente los objetos proxy existentes una vez que vuelven a estar disponibles (ARAComAPI p. 32).

El Functional Cluster Communication Management (ara::com) constituye la columna vertebral de la arquitectura orientada a servicios (SOA) en la AUTOSAR Adaptive Platform y desacopla la lógica de aplicación de los protocolos de transmisión concretos mediante el patrón proxy-skeleton (SWS_CommunicationManagement p. 55, ARAComAPI p. 1). Las clases proxy generadas a partir de descripciones formales de interfaces en el lado consumidor y las clases skeleton en el lado proveedor proporcionan métodos, eventos y fields a través de APIs de C++ con seguridad de tipos ([SWS_CM_00130], [SWS_CM_00131]).

La provisión y la búsqueda dinámica de servicios se gestionan mediante Service Discovery (SWS_CommunicationManagement p. 67). Un proveedor ofrece su servicio a través de OfferService() ([SWS_CM_00101]), mientras que los consumidores determinan las instancias adecuadas de forma síncrona mediante FindService() o asíncrona mediante StartFindService() ([SWS_CM_00122], [SWS_CM_00123]). De este modo, las instancias pueden direccionarse a partir de modelos mediante ara::core::InstanceSpecifier y resolverse en tiempo de ejecución en ara::com::InstanceIdentifier concretos ([SWS_CM_00118], [SWS_CM_00622]).

Descubrimiento de servicios e inicialización del proxyConsumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Instancia del proxy (lista para la comunicación)

Diagrama de secuencias: flujo de service offering, búsqueda asíncrona y creación de proxies. Fuentes: [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces p. 16

Para la transmisión de datos, ara::com soporta métodos de petición-respuesta (request-response) mediante ara::core::Future ([SWS_CM_00191], [SWS_CM_00196]), así como patrones de publicación-suscripción (publish-subscribe) para eventos y fields (AUTOSAR_EXP_ARAComAPI p. 68). Los suscriptores se registran mediante Subscribe() ([SWS_CM_00141]) y leen los datos entrantes mediante GetNewSamples() ([SWS_CM_00701]). Para incrementar el rendimiento, el proveedor prepara los datos mediante Allocate() y transfiere la propiedad sin copias (zero-copy) mediante Send() ([SWS_CM_90437], [SWS_CM_90438]).

Para proteger la transmisión, la plataforma integra protección de extremo a extremo (E2E), autenticación criptográfica (SecOC) mediante Freshness Value Management (FVM), así como signal-to-service-translation para redes clásicas ([SWS_CM_90420], [SWS_CM_11288], [SWS_CM_10174], SWS_CommunicationManagement p. 222). Los estados de error se señalizan de manera estandarizada mediante dominios de error con seguridad de tipos como ComErrorDomain y ComE2EErrorDomain ([SWS_CM_10432], [SWS_CM_10474]). Si se interrumpe la conexión con un servicio, el estado del proxy cambia a kSubscriptionPending; tras volver a estar disponible, el middleware actualiza el direccionamiento interno de forma transparente, de modo que la comunicación continúa sin necesidad de reinstanciar el proxy (ARAComAPI p. 32).

Rol y arquitectura de sistema de la comunicación orientada a servicios

El Functional Cluster Communication Management (ara::com) constituye la columna vertebral informática de la AUTOSAR Adaptive Platform y realiza la comunicación orientada a servicios (Service-Oriented Architecture, SOA) entre procesos de aplicación aislados, así como más allá de los límites de las unidades de control (SWS_CommunicationManagement p. 55). El principio central es el estricto patrón de diseño proxy-skeleton (ARAComAPI p. 1): a partir de descripciones formales de interfaces de software (Service Interfaces), un generador de código basado en modelos genera clases proxy tipadas para consumidores de servicios y clases skeleton para proveedores de servicios ([SWS_CM_00130], [SWS_CM_00131]). La lógica de aplicación interactúa exclusivamente con estas abstracciones, mientras que los bindings específicos de protocolo como SOME/IP, IPC o DDS, así como su serialización, se vinculan recién en el momento de integración y despliegue (AUTOSAR_AP_EXP_ARAComAPI p. 124).

Para cumplir con los requisitos de la plataforma, ara::com coopera estrechamente con otros clusters funcionales (SWS_CommunicationManagement p. 34). En tiempo de ejecución, Execution Management supervisa el ciclo de vida de los procesos, mientras que el Identity and Access Management (IAM) bloquea interacciones no autorizadas a nivel de métodos, eventos y fields mediante comprobaciones de acceso basadas en políticas (Policy Decision Point) (SWS_CommunicationManagement p. 215). Asimismo, los incidentes de seguridad se notifican directamente al EventReporter del Intrusion Detection System Manager (IdSM) (SWS_CommunicationManagement p. 34).

ComArchitecture ConsumerApp Adaptive Application (Konsument) Proxy ara::com Proxy (Fassade) ConsumerApp->Proxy Methodenaufruf / Subscribe BindingClient Communication Binding (Client-Stack) Proxy->BindingClient Serialisierung Network Netzwerk / IPC Transport (SOME/IP, DDS, SHM) BindingClient->Network Datagramm / IPC BindingServer Communication Binding (Server-Stack) Network->BindingServer Empfang Skeleton ara::com Skeleton (Basisklasse) BindingServer->Skeleton Deserialisierung ProviderApp Adaptive Application (Provider) Skeleton->ProviderApp Method Dispatch / Events

Diagrama de contexto: integración de ara::com y desacoplamiento de los niveles de aplicación mediante bindings. Fuentes: SWS_CommunicationManagement p. 55, ARAComAPI p. 1

Búsqueda de servicios e instanciación mediante proxies y skeletons

La intermediación dinámica de servicios (Service Discovery) regula el establecimiento de relaciones de comunicación locales y distribuidas (SWS_CommunicationManagement p. 67). Un proveedor de servicios señaliza su disponibilidad llamando a OfferService() en el skeleton ([SWS_CM_00101]). Si el servicio finaliza o se retira la provisión, StopOfferService() revoca la oferta ([SWS_CM_00111]). Los consumidores determinan las instancias de servicio adecuadas de forma síncrona mediante FindService() o asíncrona mediante StartFindService() ([SWS_CM_00122], [SWS_CM_00123], ARAComAPI p. 103). Esta última registra un FindServiceHandler, que es notificado ante cada cambio en el entorno de instancias hasta que la búsqueda finaliza explícitamente mediante StopFindService() ([SWS_CM_00125], [SWS_CM_00383]).

Para desacoplar el código fuente de IDs fijos de red e instancia, la interfaz permite el direccionamiento mediante rutas abstractas de modelo a través de ara::core::InstanceSpecifier ([SWS_CM_00622], [SWS_CM_00623], AUTOSAR_AP_EXP_ARAComAPI p. 124). El middleware resuelve estos especificadores en ara::com::InstanceIdentifier concretos a través del Service Instance Manifest almacenado ([SWS_CM_00118], [SWS_CM_11520], ARAComAPI p. 1). Un servicio encontrado se proporciona como descriptor tipado (HandleType) en un ServiceHandleContainer ([SWS_CM_10383], AUTOSAR_EXP_SensorInterfaces p. 16). A través del método de fábrica estático Proxy::Create() o del constructor, el consumidor crea una instancia vinculada de proxy para el posterior uso de funciones ([SWS_CM_10438], [SWS_CM_00131]).

Descubrimiento de servicios e inicialización del proxyConsumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Instancia del proxy (lista para la comunicación)

Diagrama de secuencias: flujo de service offering, búsqueda asíncrona y creación de proxies. Fuentes: [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces p. 16

Patrones de interacción: llamadas a métodos y procesamiento asíncrono

Las llamadas a métodos reflejan el paradigma de petición-respuesta (request-response) síncrono y asíncrono. El cliente desencadena métodos a través del operador de llamada a función operator() en el proxy ([SWS_CM_00196]). Como tipo de retorno se utiliza por defecto un ara::core::Future, el cual encapsula el resultado o un estado de error ([SWS_CM_00191], ARAComAPI p. 1). El consumidor decide de forma flexible sobre la sincronización: mediante consulta bloqueante vía get(), espera con temporización vía wait_for() o wait_until(), o mediante el registro de rutinas de callback basadas en eventos con then() (ARAComAPI p. 1). Para notificaciones puramente unidireccionales sin respuesta existen métodos fire-and-forget con retorno void ([SWS_CM_90434], [SWS_CM_90435]).

En el lado del proveedor, el MethodCallProcessingMode define la estrategia de ejecución para las llamadas entrantes ([SWS_CM_00301], [SWS_CM_00130]). En el modo guiado por eventos (kEvent o kEventSingleThread), la llamada al método se realiza inmediatamente dentro de un worker thread gestionado por el middleware (AUTOSAR_SWS_CommunicationManagement p. 60). En el modo polling (kPoll), la propia aplicación controla determinísticamente los momentos de procesamiento llamando periódicamente a ProcessNextMethodCall() ([SWS_CM_00199], EXP_SWArchitecture p. 68). La implementación del método genera internamente el resultado a través de un ara::core::Promise y devuelve el future vinculado (ARAComAPI p. 1).

Llamada a método y modos de despachoConsumer AppProxyara::com TransportSkeletonProvider Appoperator()(args)Retorno ara::core::FutureRequest PDU sendenRequest empfangenaltMethodCallProcessingMode::kEventAsynchroner Methodenaufruf (Worker-Thread)MethodCallProcessingMode::kPollProcessNextMethodCall()Llamada a método síncrona en el hilo de la aplicaciónTransferir resultado a PromiseResponse PDU sendenResponse empfangenFuture::get() devuelve el resultado

Diagrama de secuencias: llamada a método entre proxy y skeleton bajo despacho kPoll y kEvent. Fuentes: [SWS_CM_00196], [SWS_CM_00199], AUTOSAR_SWS_CommunicationManagement p. 60

Comunicación de eventos y fields en el patrón publish-subscribe

La distribución de flujos continuos de datos y cambios de estado se realiza a través de eventos y fields en el patrón publish-subscribe (SWS_CommunicationManagement p. 67). Un suscriptor activo registra su interés de recepción a través de Subscribe() indicando la cantidad máxima de samples que se deben mantener (maxSampleCount) ([SWS_CM_00141], [SWS_CM_12002]). El estado de suscripción se consulta a través de GetSubscriptionState() o se supervisa de forma asíncrona mediante callbacks vía SetSubscriptionStateChangeHandler() ([SWS_CM_00310], [SWS_CM_00316], [SWS_CM_01110]). La finalización de la suscripción se realiza a través de Unsubscribe() ([SWS_CM_00151]).

La recepción de datos puede efectuarse guiada por eventos mediante SetReceiveHandler() o a través de la lectura periódica del búfer de recepción ([SWS_CM_00181], [SWS_CM_11356]). Con GetNewSamples(), el consumidor transfiere un objeto función (lambda) que se invoca para cada sample recibido con un SamplePtr tipado ([SWS_CM_00701], [SWS_CM_11610]). Para evitar sobrecargas por copia (zero-copy), el skeleton proporciona memoria a través de Allocate() y envía el puntero tipado SampleAllocateePtr con transferencia completa de propiedad a través de Send() a la capa de transmisión ([SWS_CM_90438], [SWS_CM_90437], [SWS_CM_00308], AUTOSAR_EXP_ARAComAPI p. 63, ARAComAPI p. 1).

Un field amplía el concepto de evento con semántica de getter y setter (AUTOSAR_EXP_ARAComAPI p. 68). Los consumidores leen el field mediante Get() o lo escriben mediante Set() ([SWS_CM_00112], [SWS_CM_00113]). En el lado del servidor, estas solicitudes se atienden con RegisterGetHandler() o RegisterSetHandler() ([SWS_CM_00114], [SWS_CM_00116]). Si el servidor actualiza el estado mediante Update(), el field actúa automáticamente como notificador y distribuye el cambio a todos los suscriptores registrados ([SWS_CM_00119], ARAComAPI p. 1).

Flujo de publicación-suscripción con asignación de copia ceroProvider AppSkeletonMiddleware / BufferProxyConsumer AppSubscribe(maxSampleCount)Abonnement registrierenSetReceiveHandler(callback)Allocate()SampleAllocateePtrSend(std::move(ptr))Insertar / transferir muestra al búferNotify receiveHandlerCallback aufrufenGetNewSamples(lambda)Lambda ejecutada con SamplePtr

Diagrama de secuencias: asignación zero-copy, publicación de eventos, suscripción y consumo de GetNewSamples. Fuentes: [SWS_CM_00141], [SWS_CM_00701], [SWS_CM_90437], AUTOSAR_EXP_ARAComAPI p. 63

Protección, traducción de servicios e integración en la plataforma

Para flujos de datos relevantes para la seguridad y deterministas, ara::com integra protección de extremo a extremo (E2E) y autenticación según los estándares de AUTOSAR (AUTOSAR_AP_TR_SystemTests p. 132). A través de GetProfileCheckStatus() y GetE2EStateMachineState(), los consumidores pueden comprobar el estado de integridad y validación de los datos recibidos ([SWS_CM_90420], [SWS_CM_90421], [SWS_CM_11554]). En el lado del servidor, la aplicación registra rutinas de tratamiento de errores a través de SetTransportFaultConditionHandler() para reaccionar de manera estandarizada ante defectos de E2E y de transporte a nivel de método ([SWS_CM_00093], [SWS_CM_00094], [SWS_CM_00100], EXP_SWArchitecture p. 68).

La integridad criptográfica y la autenticidad de los mensajes externos se garantizan mediante Secure Onboard Communication (SecOC) (SWS_CommunicationManagement p. 222). Para ello, el middleware integra una biblioteca intercambiable de Freshness Value Management (FVM) que gestiona los valores de freshness a través de GetRxFreshness(), GetTxFreshness() y Initialize() ([SWS_CM_11288], [SWS_CM_11289], [SWS_CM_11290], SWS_CommunicationManagement p. 226). Las funciones de diagnóstico y seguridad supervisan o controlan la verificación a través de interfaces específicas como SetVerificationStatus() ([SWS_CM_19999], AUTOSAR_AP_EXP_SWArchitecture p. 70).

Para la interoperabilidad con la AUTOSAR Classic Platform, ara::com soporta la comunicación basada en señales (Signal-to-Service Translation) (SWS_CommunicationManagement p. 146, TPS_ManifestSpecification p. 476). Conforme a [SWS_CM_10174] y [SWS_CM_80001], las IPDUs de señal clásicas y los mensajes SOME/IP pueden transportarse a través del mismo socket. Si existe una configuración de SecOC basada en señales, el middleware lee los parámetros de protección directamente desde el PDU-Triggering del manifiesto ([SWS_CM_11346], SWS_CommunicationManagement p. 228).

SecurityPipeline IncomingPdu Eingehende Nachricht (SOME/IP / Signal-PDU) SecOcCheck Comprobación SecOC (autenticador / MAC) IncomingPdu->SecOcCheck SecOC konfiguriert E2eCheck Comprobación E2E (CRC, contador, ID de datos) IncomingPdu->E2eCheck Kein SecOC FreshnessCheck FVM: Freshness Value Verifikation SecOcCheck->FreshnessCheck Autenticador válido FaultHandler TransportFaultConditionHandler / ErrorDomain SecOcCheck->FaultHandler MAC no válido FreshnessCheck->E2eCheck Freshness válida FreshnessCheck->FaultHandler Freshness no válida DispatchApp Transferencia a la aplicación / esqueleto E2eCheck->DispatchApp E2E OK (ProfileCheckStatus::kOk) E2eCheck->FaultHandler E2E-Fehler (kRepeated, kWrongSequence)

Diagrama de actividades: pipeline de protección E2E y SecOC de mensajes entrantes. Fuentes: [SWS_CM_90420], [SWS_CM_11288], SWS_CommunicationManagement p. 222

Comportamiento en caso de error

La gestión de errores de ara::com se basa en dominios de error con seguridad de tipos y códigos de retorno del framework de AUTOSAR Core ([SWS_CM_11334], [SWS_CM_11335]). Los errores de la capa de comunicación general se agrupan en ComErrorDomain y se codifican mediante el enumerador ComErrc ([SWS_CM_10432]). Ante errores de comprobación de E2E, ComE2EErrorDomain señaliza fallos de comprobación específicos, como desviaciones de suma de comprobación o contadores no válidos, mediante el valor de enumeración ComE2EErrc ([SWS_CM_10474], [SWS_CM_12510], [SWS_CM_12511]). Para errores de freshness de SecOC existe análogamente ComSecOcFvmErrorDomain con ComSecOcFvmErrc ([SWS_CM_12521], [SWS_CM_12522]).

Si se produce una caída de la conexión durante el tiempo de ejecución, el estado de suscripción del proxy cambia de kSubscribed a kSubscriptionPending ([SWS_CM_00310], [SWS_CM_00316], ARAComAPI p. 32). Las llamadas a métodos fallan en esta fase con un error. Si el proveedor de servicios regresa a continuación a través de Service Discovery, el middleware actualiza el direccionamiento interno del proxy de forma transparente, sin que el consumidor deba reinstanciar el objeto proxy; tras una resincronización exitosa, el estado vuelve automáticamente a kSubscribed (ARAComAPI p. 32). De los plazos temporales y de la supervisión de plazos (Deadline Monitoring) se encarga, según la especificación del sistema, el propio software de aplicación (TPS_ManifestSpecification p. 504).

ProxyRecovery Initial Proxy erzeugt (kSubscribed) ServiceDown Servicio no accesible (kSubscriptionPending) Initial->ServiceDown Service geht offline / SD-Timeout Reconnected Dienst wiederhergestellt (kSubscribed) ServiceDown->Reconnected Service sendet OfferService() / Adress-Update Reconnected->ServiceDown Erneuter Verbindungsausfall

Diagrama de estados: ciclo de vida y estados de conexión de una instancia de proxy ante cambios de disponibilidad del proveedor. Fuentes: [SWS_CM_00310], [SWS_CM_00316], ARAComAPI p. 32

Más evidencia detallada

Los requisitos esenciales y las interfaces del sistema se estructuran de la siguiente manera dentro de las especificaciones de AUTOSAR:

Esta guía fue elaborada por un asistente de curación basado en IA sobre la base de la versión R25-11 de AUTOSAR Adaptive.

<SI-Namespace>::proxy

<SI>Proxy clase

Service Interface Proxy

<SI-Namespace>::proxy::fields

<Field> clase

Service proxy Field class, one for each Field defined in the ServiceInterface in the role field.

<SI-Namespace>::proxy::methods

Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the S

<Method> clase

Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterfac

<SI-Namespace>::proxy::triggers

<Trigger> clase

Service proxy Trigger class, one for each Trigger defined in the ServiceInterface in the role trigger.

<SI-Namespace>::skeleton

Service skeleton class

<SI-Namespace>::skeleton::fields

Service skeleton Field class, one for each Field defined in the ServiceInterface in the role field.

<SI-Namespace>::skeleton::triggers

Service skeleton Trigger class, one for each Trigger defined in the ServiceInterface in the role trigger.

apext::com::secoc

Defines a class representing the SecOc Freshness Value Manager error domain

hereda de ara::core::ErrorDomain

Defines a class for exceptions to be thrown by the SecOc Freshness Value Manager

hereda de ara::core::Exception

A container to hold the length of freshness value in bits and the freshness value itself

FVM clase

A freshness value management interface to be implemented by the OEM/stack vendor

Returns a reference to the apext::com::secoc::ComSecOcFvmErrorDomain object

constexpr const ara::core::ErrorDomain & GetComSecOcFvmErrorDomain () noexcept;
MakeErrorCode función

Creates an instance of ara::core::ErrorCode

constexpr ara::core::ErrorCode MakeErrorCode (apext::com::secoc::Com SecOcFvmErrc errorCode, ara::core::ErrorDomain::SupportDataType data) noexcept;
ComSecOcFvmErrc enumeración

Defines the error codes for the apext::com::secoc::ComSecOcFvmErrorDomain

enum class ComSecOcFvmErrc : ara::core::ErrorDomain::CodeType {...};

ara::com

Defines a class representing the Communication error domain.

hereda de ara::core::ErrorDomain

Defines a class for exceptions to be thrown by the API.

hereda de ara::core::Exception

The exact definition of ara::com::FindServiceHandle is Communication Management implementation specific

Unique identifier of a specific AdaptivePlatformServiceInstance, to distinguish different instances of exactly the same service

SamplePtr clase

Emulates a std::unique_ptr to an event sample. The ara::com::SamplePtr behaves as a std::unique_ptr as long as the event/ field is subscrib ≙ std::unique_ptr

Specifies a Service Identifier The exact type may be overridden by the Communication Management software provider

Specifies a Service Version

Returns a reference to the ara::com::ComErrorDomain object

constexpr const ara::core::ErrorDomain & GetComErrorDomain () noexcept;

Creates an instance of ara::core::ErrorCode

ComErrc enumeración

Defines the error codes for the ara::com::ComErrorDomain

enum class ComErrc : ara::core::ErrorDomain::CodeType {...};

Processing modes for the service implementation.

enum class MethodCallProcessingMode : std::uint8_t {...};
ServiceState enumeración

The state of the service from GetServiceState()

enum class ServiceState : std::uint8_t {...};
SubscriptionState enumeración

The subscription state of an event.

enum class SubscriptionState : std::uint8_t {...};
EventReceiveHandler alias de tipo

Callback function invoked if new event data arrives for an event. The event receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function

using EventReceiveHandler = std::function<void()>;
FieldReceiveHandler alias de tipo

Callback function invoked if a new notification arrives for a field. The field receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function

using FieldReceiveHandler = std::function<void()>;
FindServiceHandler alias de tipo

Callback function invoked if service availability changes. It takes as input parameter a handle container containing handles for all matching service instances and a ara::com:: FindServiceHandle which can be used to invoke StopFindService() from within the ara::com::FindServiceHandler.

using FindServiceHandler = std::function<void(ServiceHandle Container<T>, FindServiceHandle)>;

Holds a list of ara::com::InstanceIdentifiers. The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per [30] A ara::core::Vector ([SWS_CORE_01301]) for example fulfills these requirements.

using InstanceIdentifierContainer = ara::core::Vector<Instance Identifier>;
SampleAllocateePtr alias de tipo

Pointer to an allocated (by Communication Management) data sample. The implementation is allowed to be changed by the Communication Management software provider.

using SampleAllocateePtr = std::unique_ptr<T>;

Holds a list of service handles and is used as a return value of any of the FindService() methods) • [SWS_CM_00122] • [SWS_CM_00622] . The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per [30]. A ara::core::Vector ([SWS_CORE_ 01301]) for example fulfills these requirements.

using ServiceHandleContainer = ara::core::Vector<T>;
ServiceStateHandler alias de tipo

Functor used as input arguments for any of the SetServiceStateChangeHandler() methods: • [SWS_CM_01074] • [SWS_CM_01076]

using ServiceStateHandler = std::function<void(ServiceState)>;

Callback function invoked if ara::com::SubscriptionState of an event has changed.

using SubscriptionStateChangeHandler = std::function<void(Subscription State)>;
TriggerReceiveHandler alias de tipo

A function wrapper for the handler function that gets called in case a new trigger arrives for an event. The trigger receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function

using TriggerReceiveHandler = std::function<void()>;

ara::com::e2e

Defines a class representing the E2E error domain

hereda de ara::core::ErrorDomain

Defines a class for exceptions to be thrown by the E2E APIs

hereda de ara::core::Exception

Returns a reference to the ara::com::e2e::ComE2EErrorDomain object

constexpr const ara::core::ErrorDomain & GetComE2EErrorDomain () noexcept;

Creates an instance of ara::core::ErrorCode

constexpr ara::core::ErrorCode MakeErrorCode (ara::com::e2e::ComE2 EErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
ComE2EErrc enumeración

Defines the error codes for the ara::com::e2e::ComE2EErrc

enum class ComE2EErrc : ara::core::ErrorDomain::CodeType {...};
ProfileCheckStatus enumeración

The result of the check of a single ara::com::SamplePtr

enum class ProfileCheckStatus : std::uint8_t {...};
SMState enumeración

The state of the E2E supervision after the most recent check of a received sample of the event. If ara::com::e2e::SMState == kValid, and the ara::com::SamplePtr:: GetProfileCheckStatus did not result in an Error then, the last checked sample can be used.

enum class SMState : std::uint8_t {...};

Defines the TransportFaultCondition which represent a single transport-related fault event

enum class TransportFaultCondition : std::uint8_t {...};

Handler type to be called when one or more (determined by the value of the std::size_t) fault conditions are detected ≙ std::size_t

using TransportFaultConditionHandler = std::function<void(Transport FaultCondition, std::size_t)>;

ara::com::runtime

Translates an ara::core::InstanceSpecifier to a ara::com:: InstanceIdentifierContainer. The length/size of the ara::com:: InstanceIdentifierContainer is relative to the number of matches.

ara::core::Result< ara::com::InstanceIdentifierContainer > Resolve InstanceIDs (ara::core::InstanceSpecifier metaModelIdentifier) noexcept;

Interfaces de servicio

VerificationStatus interfaz de servicio

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

Verwandte Komponenten in anderen Universen

Spezifikation: AUTOSAR_AP_SWS_CommunicationManagement.pdf (R25-11) · 250 API-Records

function: 179 class: 20 type alias: 20 variable: 13 enumeration: 10 struct: 4 service method: 2 header file: 1 service event: 1

Namespaces

Interfaces de servicio (modeladas vía ara::com)

Diagrama de clases UML del módulo

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 <SI-Namespace>::proxy cluster_2 <SI-Namespace>::proxy::<SI>Proxy cluster_3 <SI-Namespace>::proxy::fields cluster_4 <SI-Namespace>::proxy::methods cluster_5 <SI-Namespace>::proxy::methods::<Method> cluster_6 <SI-Namespace>::proxy::triggers cluster_7 <SI-Namespace>::skeleton cluster_8 <SI-Namespace>::skeleton::<SI>Skeleton cluster_9 <SI-Namespace>::skeleton::fields cluster_10 <SI-Namespace>::skeleton::triggers cluster_11 apext::com::secoc cluster_12 ara::com cluster_13 ara::com::e2e n_SI_Namespace___proxy___SI_Proxy329 <SI>Proxy n_SI_Namespace___proxy___SI_Proxy__HandleType349 HandleType n_SI_Namespace___proxy__fields___Field_138 <Field> n_SI_Namespace___proxy__methods___FnFMethod_122 <FnFMethod> n_SI_Namespace___proxy__methods___Method_320 <Method> n_SI_Namespace___proxy__methods___Method___Output157 «struct» Output n_SI_Namespace___proxy__triggers___Trigger_725 <Trigger> n_SI_Namespace___skeleton___SI_Skeleton453 <SI>Skeleton n_SI_Namespace___skeleton___SI_Skeleton___Method_Output373 «struct» <Method>Output n_SI_Namespace___skeleton__fields___Field_667 <Field> n_SI_Namespace___skeleton__triggers___Trigger_907 <Trigger> napext__com__secoc__ComSecOcFvmErrorDomain756 ComSecOcFvmErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain napext__com__secoc__ComSecOcFvmErrorDomain756->nara__core__ErrorDomain335 napext__com__secoc__ComSecOcFvmException158 ComSecOcFvmException nara__core__Exception792 ara::core::Exception napext__com__secoc__ComSecOcFvmException158->nara__core__Exception792 napext__com__secoc__FVContainer961 «struct» FVContainer napext__com__secoc__FVM451 FVM nara__com__ComErrorDomain658 ComErrorDomain nara__com__ComErrorDomain658->nara__core__ErrorDomain335 nara__com__ComException152 ComException nara__com__ComException152->nara__core__Exception792 nara__com__FindServiceHandle138 «struct» FindServiceHandle nara__com__InstanceIdentifier581 InstanceIdentifier nara__com__SamplePtr589 SamplePtr nara__com__ServiceIdentifierType24 ServiceIdentifierType nara__com__ServiceVersionType743 ServiceVersionType nara__com__e2e__ComE2EErrorDomain501 ComE2EErrorDomain nara__com__e2e__ComE2EErrorDomain501->nara__core__ErrorDomain335 nara__com__e2e__ComE2EException703 ComE2EException nara__com__e2e__ComE2EException703->nara__core__Exception792