DEENESPTFRRUARHIKOZHNL

module ara::com — Communication Management

Guide du moduleGÉNÉRÉ PAR IA

Fournit des interfaces typées pour la communication orientée services et abstrait les protocoles de transport.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 45902037e92f Provenance Questions ouvertes (2)
Ancre causale : R25-11 Valable à partir de R25-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Fournit des interfaces typées pour la communication orientée services et abstrait les protocoles de transport.

Le Functional Cluster Communication Management (ara::com) permet l'interaction orientée services entre applications Adaptive via des interfaces proxy et skeleton standardisées (SWS_CommunicationManagement p. 55, ARAComAPI p. 1). Il gère la découverte dynamique des services au moyen de OfferService() et FindService() ([SWS_CM_00101], [SWS_CM_00122]) et met à disposition des méthodes synchrones ainsi qu'asynchrones, des événements et des champs avec protection E2E et SecOC intégrée ([SWS_CM_00141], [SWS_CM_90420]). En cas de perte temporaire d'un service, le middleware intercepte les interruptions de liaison et met à jour automatiquement les objets proxy existants dès qu'ils redeviennent disponibles (ARAComAPI p. 32).

Le Functional Cluster Communication Management (ara::com) constitue l'épine dorsale de l'architecture orientée services (SOA) dans l'AUTOSAR Adaptive Platform et découple la logique applicative des protocoles de transmission concrets via le patron proxy-skeleton (SWS_CommunicationManagement p. 55, ARAComAPI p. 1). Des classes proxy côté consommateur et des classes skeleton côté fournisseur, générées à partir de descriptions d'interfaces formelles, mettent à disposition des méthodes, des événements et des champs via des API C++ à sûreté de typage ([SWS_CM_00130], [SWS_CM_00131]).

La mise à disposition et la recherche dynamique de services sont prises en charge par le Service Discovery (SWS_CommunicationManagement p. 67). Un fournisseur propose son service via OfferService() ([SWS_CM_00101]), tandis que les consommateurs déterminent les instances appropriées de manière synchrone via FindService() ou de manière asynchrone au moyen de StartFindService() ([SWS_CM_00122], [SWS_CM_00123]). Ce faisant, les instances peuvent être adressées sur une base modèle via ara::core::InstanceSpecifier et résolues au moment de l'exécution en ara::com::InstanceIdentifier concrètes ([SWS_CM_00118], [SWS_CM_00622]).

Service Discovery et initialisation du proxyConsumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Instance de proxy (prête pour la communication)

Diagramme de séquence : déroulement de l'offre de service, de la recherche asynchrone et de la création du proxy. Sources : [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces p. 16

Pour le transfert de données, ara::com prend en charge des méthodes requête-réponse via ara::core::Future ([SWS_CM_00191], [SWS_CM_00196]) ainsi que des patrons publication-abonnement pour les événements et les champs (AUTOSAR_EXP_ARAComAPI p. 68). Les abonnés s'enregistrent via Subscribe() ([SWS_CM_00141]) et lisent les données entrantes via GetNewSamples() ([SWS_CM_00701]). Afin d'augmenter les performances, le fournisseur met les données à disposition via Allocate() et en transfère la propriété par zero-copy via Send() ([SWS_CM_90437], [SWS_CM_90438]).

Pour sécuriser la transmission, la plateforme intègre une protection de bout en bout (E2E), une authentification cryptographique (SecOC) via la gestion des valeurs de fraîcheur (FVM) ainsi qu'une conversion signal-vers-service pour les réseaux classiques ([SWS_CM_90420], [SWS_CM_11288], [SWS_CM_10174], SWS_CommunicationManagement p. 222). Les états d'erreur sont signalés de manière standardisée via des domaines d'erreur à sûreté de typage tels que ComErrorDomain et ComE2EErrorDomain ([SWS_CM_10432], [SWS_CM_10474]). Si la connexion à un service s'interrompt, le statut du proxy passe à kSubscriptionPending ; après le rétablissement de la disponibilité, le middleware met à jour l'adressage interne de manière transparente, de sorte que la communication se poursuit sans nouvelle instanciation du proxy (ARAComAPI p. 32).

Rôle et architecture système de la communication orientée services

Le Functional Cluster Communication Management (ara::com) constitue l'épine dorsale informatique de l'AUTOSAR Adaptive Platform et réalise la communication orientée services (Service-Oriented Architecture, SOA) entre des processus applicatifs isolés ainsi qu'au-delà des frontières de calculateurs (SWS_CommunicationManagement p. 55). Le principe fondamental repose sur le strict patron de conception proxy-skeleton (ARAComAPI p. 1) : à partir de descriptions formelles d'interfaces logicielles (Service Interfaces), un générateur de code basé sur des modèles génère des classes proxy typées pour les consommateurs de services et des classes skeleton pour les fournisseurs de services ([SWS_CM_00130], [SWS_CM_00131]). La logique applicative interagit exclusivement avec ces abstractions, tandis que les liaisons spécifiques aux protocoles comme SOME/IP, IPC ou DDS ainsi que leur sérialisation ne sont rattachées qu'au moment de l'intégration et du déploiement (AUTOSAR_AP_EXP_ARAComAPI p. 124).

Pour satisfaire aux exigences de la plateforme, ara::com coopère étroitement avec d'autres clusters de fonctionnalités (SWS_CommunicationManagement p. 34). Au moment de l'exécution, Execution Management surveille le cycle de vie des processus, tandis qu'Identity and Access Management (IAM) bloque les interactions non autorisées au niveau méthode, événement et champ grâce à des vérifications d'accès basées sur des règles (Policy Decision Point) (SWS_CommunicationManagement p. 215). De plus, les événements de sécurité sont directement signalés à l'EventReporter de l'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

Diagramme de contexte : intégration d'ara::com et découplage des couches applicatives via des bindings. Sources : SWS_CommunicationManagement p. 55, ARAComAPI p. 1

Découverte de services et instanciation via des proxys et des skeletons

La médiation dynamique de services (Service Discovery) régit l'établissement des relations de communication locales et distribuées (SWS_CommunicationManagement p. 67). Un fournisseur de service signale sa disponibilité en appelant OfferService() sur le skeleton ([SWS_CM_00101]). Si le service prend fin ou si sa mise à disposition est révoquée, StopOfferService() retire l'offre ([SWS_CM_00111]). Les consommateurs déterminent les instances de service correspondantes de manière synchrone via FindService() ou asynchrone via StartFindService() ([SWS_CM_00122], [SWS_CM_00123], ARAComAPI p. 103). Ce dernier enregistre un FindServiceHandler qui est notifié à chaque modification du paysage d'instances jusqu'à ce que la recherche soit explicitement arrêtée au moyen de StopFindService() ([SWS_CM_00125], [SWS_CM_00383]).

Afin de découpler le code source des identifiants fixes de réseau et d'instance, l'interface permet l'adressage via des chemins de modèle abstraits au moyen de ara::core::InstanceSpecifier ([SWS_CM_00622], [SWS_CM_00623], AUTOSAR_AP_EXP_ARAComAPI p. 124). Le middleware résout ces spécificateurs en ara::com::InstanceIdentifier concrets via le Service Instance Manifest associé ([SWS_CM_00118], [SWS_CM_11520], ARAComAPI p. 1). Un service trouvé est mis à disposition sous forme de descripteur typé (HandleType) dans un ServiceHandleContainer ([SWS_CM_10383], AUTOSAR_EXP_SensorInterfaces p. 16). Par le biais de la méthode fabrique statique Proxy::Create() ou du constructeur, le consommateur crée une instance de proxy liée en vue de l'utilisation ultérieure des fonctionnalités ([SWS_CM_10438], [SWS_CM_00131]).

Service Discovery et initialisation du proxyConsumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Instance de proxy (prête pour la communication)

Diagramme de séquence : déroulement de l'offre de service, de la recherche asynchrone et de la création du proxy. Sources : [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces p. 16

Modèles d'interaction : appels de méthode et traitement asynchrone

Les appels de méthode mettent en œuvre le paradigme requête-réponse synchrone et asynchrone. Le client déclenche les méthodes via l'opérateur d'appel de fonction operator() sur le proxy ([SWS_CM_00196]). Un ara::core::Future, qui encapsule le résultat ou un état d'erreur, sert par défaut de type de retour ([SWS_CM_00191], ARAComAPI p. 1). Le consommateur choisit librement le mode de synchronisation : par interrogation bloquante via get(), attente temporisée via wait_for() ou wait_until(), ou encore par enregistrement de routines de rappel basées sur les événements au moyen de then() (ARAComAPI p. 1). Pour les pures notifications unidirectionnelles sans acquittement, il existe des méthodes de type Fire-and-Forget avec un retour void ([SWS_CM_90434], [SWS_CM_90435]).

Côté fournisseur, le MethodCallProcessingMode définit la stratégie d'exécution pour les appels entrants ([SWS_CM_00301], [SWS_CM_00130]). En mode événementiel (kEvent ou kEventSingleThread), l'appel de méthode s'effectue immédiatement au sein d'un thread de travail géré par le middleware (AUTOSAR_SWS_CommunicationManagement p. 60). En mode d'interrogation (kPoll), l'application pilote elle-même les instants de traitement de manière déterministe en appelant régulièrement ProcessNextMethodCall() ([SWS_CM_00199], EXP_SWArchitecture p. 68). L'implémentation de la méthode génère le résultat en interne via un ara::core::Promise et renvoie le future associé (ARAComAPI p. 1).

Appel de méthode et modes de dispatchingConsumer AppProxyara::com TransportSkeletonProvider Appoperator()(args)Retour de ara::core::FutureRequest PDU sendenRequest empfangenaltMethodCallProcessingMode::kEventAsynchroner Methodenaufruf (Worker-Thread)MethodCallProcessingMode::kPollProcessNextMethodCall()Appel de méthode synchrone dans le thread d'applicationTransmettre le résultat à la PromiseResponse PDU sendenResponse empfangenFuture::get() renvoie le résultat

Diagramme de séquence : appel de méthode entre le proxy et le skeleton avec dispatching kPoll et kEvent. Sources : [SWS_CM_00196], [SWS_CM_00199], AUTOSAR_SWS_CommunicationManagement p. 60

Communication par événements et par champs selon le modèle publication-abonnement

La distribution des flux de données continus et des changements d'état s'effectue via des événements et des champs selon le modèle publication-abonnement (SWS_CommunicationManagement p. 67). Un abonné actif signale son intérêt pour la réception via Subscribe() en indiquant le nombre maximal d'échantillons à conserver (maxSampleCount) ([SWS_CM_00141], [SWS_CM_12002]). L'état de l'abonnement est interrogé via GetSubscriptionState() ou surveillé de manière asynchrone par des rappels via SetSubscriptionStateChangeHandler() ([SWS_CM_00310], [SWS_CM_00316], [SWS_CM_01110]). La résiliation de l'abonnement s'effectue via Unsubscribe() ([SWS_CM_00151]).

La réception des données peut s'effectuer de manière événementielle via SetReceiveHandler() ou par lecture périodique du tampon de réception ([SWS_CM_00181], [SWS_CM_11356]). Avec GetNewSamples(), le consommateur transmet un objet fonction (lambda) qui est appelé pour chaque échantillon arrivé avec un SamplePtr typé ([SWS_CM_00701], [SWS_CM_11610]). Pour éviter les opérations de copie (zero-copy), le skeleton alloue de la mémoire via Allocate() et transmet le pointeur typé SampleAllocateePtr à la couche de transport via Send() avec transfert complet de propriété ([SWS_CM_90438], [SWS_CM_90437], [SWS_CM_00308], AUTOSAR_EXP_ARAComAPI p. 63, ARAComAPI p. 1).

Un champ étend le concept d'événement avec une sémantique de getter et de setter (AUTOSAR_EXP_ARAComAPI p. 68). Les consommateurs lisent le champ via Get() ou l'écrivent via Set() ([SWS_CM_00112], [SWS_CM_00113]). Côté serveur, ces requêtes sont traitées avec RegisterGetHandler() ou RegisterSetHandler() ([SWS_CM_00114], [SWS_CM_00116]). Si le serveur met à jour l'état via Update(), le champ agit automatiquement comme notificateur et distribue la modification à tous les abonnés enregistrés ([SWS_CM_00119], ARAComAPI p. 1).

Déroulement Publish-Subscribe avec allocation zéro-copieProvider AppSkeletonMiddleware / BufferProxyConsumer AppSubscribe(maxSampleCount)Abonnement registrierenSetReceiveHandler(callback)Allocate()SampleAllocateePtrSend(std::move(ptr))Insérer / transférer le sample dans le tamponNotify receiveHandlerCallback aufrufenGetNewSamples(lambda)Lambda exécutée avec SamplePtr

Diagramme de séquence : allocation zero-copy, publication d'événements, abonnement et consommation GetNewSamples. Sources : [SWS_CM_00141], [SWS_CM_00701], [SWS_CM_90437], AUTOSAR_EXP_ARAComAPI p. 63

Sécurisation, traduction de services et intégration de plateforme

Pour les flux de données déterministes et critiques pour la sécurité, ara::com intègre une protection de bout en bout (E2E) ainsi qu'une authentification conforme aux normes AUTOSAR (AUTOSAR_AP_TR_SystemTests p. 132). Via GetProfileCheckStatus() et GetE2EStateMachineState(), les consommateurs peuvent vérifier l'état d'intégrité et de validation des données reçues ([SWS_CM_90420], [SWS_CM_90421], [SWS_CM_11554]). Côté serveur, l'application enregistre des routines de traitement des erreurs via SetTransportFaultConditionHandler() afin de réagir de manière standardisée aux défauts E2E et de transport au niveau méthode ([SWS_CM_00093], [SWS_CM_00094], [SWS_CM_00100], EXP_SWArchitecture p. 68).

L'intégrité et l'authenticité cryptographiques des messages externes sont assurées par Secure Onboard Communication (SecOC) (SWS_CommunicationManagement p. 222). À cette fin, le middleware intègre une bibliothèque interchangeable de Freshness Value Management (FVM) qui gère les valeurs de fraîcheur via GetRxFreshness(), GetTxFreshness() et Initialize() ([SWS_CM_11288], [SWS_CM_11289], [SWS_CM_11290], SWS_CommunicationManagement p. 226). Des fonctions de diagnostic et de sécurité surveillent ou contrôlent la vérification via des interfaces spécifiques telles que SetVerificationStatus() ([SWS_CM_19999], AUTOSAR_AP_EXP_SWArchitecture p. 70).

Pour assurer l'interopérabilité avec l'AUTOSAR Classic Platform, ara::com prend en charge la communication basée sur les signaux (Signal-to-Service Translation) (SWS_CommunicationManagement p. 146, TPS_ManifestSpecification p. 476). Conformément à [SWS_CM_10174] et [SWS_CM_80001], les I-PDU de signaux classiques et les messages SOME/IP peuvent être transportés sur le même socket. En présence d'une configuration SecOC basée sur les signaux, le middleware lit directement les paramètres de protection à partir du déclenchement de PDU (PDU-Triggering) du manifeste ([SWS_CM_11346], SWS_CommunicationManagement p. 228).

SecurityPipeline IncomingPdu Eingehende Nachricht (SOME/IP / Signal-PDU) SecOcCheck Vérification SecOC (Authenticator / MAC) IncomingPdu->SecOcCheck SecOC konfiguriert E2eCheck Vérification E2E (CRC, compteur, Data ID) IncomingPdu->E2eCheck Kein SecOC FreshnessCheck FVM: Freshness Value Verifikation SecOcCheck->FreshnessCheck Authenticator valide FaultHandler TransportFaultConditionHandler / ErrorDomain SecOcCheck->FaultHandler MAC invalide FreshnessCheck->E2eCheck Freshness valide FreshnessCheck->FaultHandler Freshness invalide DispatchApp Transmission à l'application / Skeleton E2eCheck->DispatchApp E2E OK (ProfileCheckStatus::kOk) E2eCheck->FaultHandler E2E-Fehler (kRepeated, kWrongSequence)

Diagramme d'activité : pipeline de sécurisation E2E et SecOC des messages entrants. Sources : [SWS_CM_90420], [SWS_CM_11288], SWS_CommunicationManagement p. 222

Comportement en cas d'erreur

La gestion des erreurs de ara::com repose sur des domaines d'erreur à sûreté de typage et des codes de retour du framework AUTOSAR Core ([SWS_CM_11334], [SWS_CM_11335]). Les erreurs de la couche générale de communication sont regroupées dans ComErrorDomain et codées via l'énumérateur ComErrc ([SWS_CM_10432]). En cas d'erreurs de vérification E2E, ComE2EErrorDomain signale via la valeur d'énumération ComE2EErrc des erreurs de vérification spécifiques, telles que des écarts de somme de contrôle ou des compteurs invalides ([SWS_CM_10474], [SWS_CM_12510], [SWS_CM_12511]). Pour les erreurs de fraîcheur SecOC, il existe de manière analogue ComSecOcFvmErrorDomain avec ComSecOcFvmErrc ([SWS_CM_12521], [SWS_CM_12522]).

Si une perte de connexion survient pendant l'exécution, l'état d'abonnement du proxy passe de kSubscribed à kSubscriptionPending ([SWS_CM_00310], [SWS_CM_00316], ARAComAPI p. 32). Les appels de méthode échouent durant cette phase avec une erreur. Si le fournisseur de service réapparaît ensuite via Service Discovery, le middleware met à jour de façon transparente l'adressage interne du proxy sans que le consommateur ait à réinstancier l'objet proxy ; après une resynchronisation réussie, l'état repasse automatiquement à kSubscribed (ARAComAPI p. 32). Conformément à la spécification du système, la surveillance des délais impartis et des échéances (Deadline Monitoring) relève de la responsabilité du logiciel d'application lui-même (TPS_ManifestSpecification p. 504).

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

Diagramme d'états : cycle de vie et états de connexion d'une instance de proxy lors des changements de disponibilité du fournisseur. Sources : [SWS_CM_00310], [SWS_CM_00316], ARAComAPI p. 32

Preuves détaillées supplémentaires

Les principales exigences et interfaces système s'intègrent comme suit dans les spécifications AUTOSAR :

Ce guide a été élaboré par un assistant de curation IA sur la base de la publication AUTOSAR Adaptive R25-11.

<SI-Namespace>::proxy

<SI>Proxy classe

Service Interface Proxy

<SI-Namespace>::proxy::fields

<Field> classe

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> classe

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

<SI-Namespace>::proxy::triggers

<Trigger> classe

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

hérite de ara::core::ErrorDomain

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

hérite de ara::core::Exception

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

FVM classe

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 fonction

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 énumération

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.

hérite de ara::core::ErrorDomain

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

hérite 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 classe

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 énumération

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 énumération

The state of the service from GetServiceState()

enum class ServiceState : std::uint8_t {...};
SubscriptionState énumération

The subscription state of an event.

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

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 type

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 type

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 type

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 type

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 type

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

hérite de ara::core::ErrorDomain

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

hérite 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 énumération

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

enum class ComE2EErrc : ara::core::ErrorDomain::CodeType {...};
ProfileCheckStatus énumération

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

enum class ProfileCheckStatus : std::uint8_t {...};
SMState énumération

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 service

VerificationStatus interface de service

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 service (modélisées via ara::com)

Diagramme de classes UML du module

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