DEENESPTFRRUARHIKOZHNL

모듈 ara::com — Communication Management

모듈 가이드AI 생성

서비스 지향 통신을 위한 형식화된 인터페이스를 제공하고 전송 프로토콜을 추상화합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 45902037e92f 출처 열린 질문 (2)
인과 앵커: R25-11 R25-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

서비스 지향 통신을 위한 형식화된 인터페이스를 제공하고 전송 프로토콜을 추상화합니다.

Functional Cluster Communication Management(ara::com)는 표준화된 프록시 및 스켈레톤 인터페이스를 통해 Adaptive 애플리케이션 간의 서비스 지향 상호작용을 가능하게 합니다(SWS_CommunicationManagement 55쪽, ARAComAPI 1쪽). 이는 OfferService() 및 FindService()을(를) 사용한 동적 서비스 발견을 제어하며([SWS_CM_00101], [SWS_CM_00122]), E2E 및 SecOC 보호가 통합된 동기 및 비동기 메서드, 이벤트, 필드를 제공합니다([SWS_CM_00141], [SWS_CM_90420]). 서비스가 일시적으로 유실된 경우 미들웨어는 연결 중단을 처리하고 재사용 가능해지면 기존 프록시 객체를 자동으로 업데이트합니다(ARAComAPI 32쪽).

Functional Cluster Communication Management(ara::com)는 AUTOSAR Adaptive Platform에서 서비스 지향 아키텍처(SOA)의 중추를 형성하며 프록시-스켈레톤 패턴을 통해 애플리케이션 로직을 구체적인 전송 프로토콜로부터 분리합니다(SWS_CommunicationManagement 55쪽, ARAComAPI 1쪽). 정형 인터페이스 설명에서 생성된 소비자 측의 프록시 클래스와 제공자 측의 스켈레톤 클래스는 타입 안전한 C++ API를 통해 메서드, 이벤트, 필드를 제공합니다([SWS_CM_00130], [SWS_CM_00131]).

서비스 제공 및 동적 검색은 Service Discovery를 통해 처리됩니다(SWS_CommunicationManagement 67쪽). 제공자는 OfferService()을(를) 통해 서비스를 제공하고([SWS_CM_00101]), 소비자는 FindService()을(를) 통해 동기적으로 또는 StartFindService()을(를) 사용하여 비동기적으로 일치하는 인스턴스를 결정합니다([SWS_CM_00122], [SWS_CM_00123]). 이때 인스턴스는 ara::core::InstanceSpecifier을(를) 통해 모델 기반으로 주소 지정될 수 있으며 런타임에 구체적인 ara::com::InstanceIdentifier(으)로 해석될 수 있습니다([SWS_CM_00118], [SWS_CM_00622]).

서비스 검색 및 Proxy 초기화Consumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Proxy 인스턴스 (통신 준비 완료)

시퀀스 다이어그램: 서비스 제공, 비동기 검색 및 프록시 생성 흐름. 출처: [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces 16쪽

데이터 전송을 위해 ara::com은(는) ara::core::Future을(를) 통한 요청-응답 메서드([SWS_CM_00191], [SWS_CM_00196]) 및 이벤트와 필드를 위한 발행-구독 패턴을 지원합니다(AUTOSAR_EXP_ARAComAPI 68쪽). 구독자는 Subscribe()을(를) 통해 등록하고([SWS_CM_00141]) GetNewSamples()을(를) 통해 수신 데이터를 읽어옵니다([SWS_CM_00701]). 성능 향상을 위해 제공자는 Allocate()을(를) 통해 데이터를 제공하고 Send()을(를) 통해 제로 카피(Zero-Copy)로 소유권을 전달합니다([SWS_CM_90437], [SWS_CM_90438]).

전송 보안을 위해 플랫폼은 End-to-End 보호(E2E), Freshness Value Management(FVM)를 통한 암호화 인증(SecOC), 클래식 네트워크를 위한 Signal-to-Service-Translation을 통합합니다([SWS_CM_90420], [SWS_CM_11288], [SWS_CM_10174], SWS_CommunicationManagement 222쪽). 오류 상태는 ComErrorDomain 및 ComE2EErrorDomain과(와) 같은 타입 안전한 오류 도메인을 통해 표준화된 방식으로 시그널링됩니다([SWS_CM_10432], [SWS_CM_10474]). 서비스와의 연결이 끊어지면 프록시의 상태가 kSubscriptionPending(으)로 변경되며, 다시 사용 가능해지면 미들웨어가 내부 주소 지정을 투명하게 업데이트하여 프록시를 다시 인스턴스화하지 않고도 통신을 재개합니다(ARAComAPI 32쪽).

서비스 지향 통신의 역할 및 시스템 아키텍처

Functional Cluster Communication Management(ara::com)는 AUTOSAR Adaptive Platform의 정보 기술 중추를 형성하며 격리된 애플리케이션 프로세스 간 및 ECU 경계를 넘어 서비스 지향 통신(Service-Oriented Architecture, SOA)을 구현합니다(SWS_CommunicationManagement 55쪽). 핵심 원칙은 엄격한 프록시-스켈레톤 디자인 패턴입니다(ARAComAPI 1쪽): 모델 기반 코드 생성기는 정형 소프트웨어 인터페이스 설명(Service Interfaces)으로부터 서비스 소비자를 위한 형식화된 프록시 클래스와 서비스 제공자를 위한 스켈레톤 클래스를 생성합니다([SWS_CM_00130], [SWS_CM_00131]). 애플리케이션 로직은 이러한 추상화와만 상호작용하며, SOME/IP, IPC 또는 DDS와 같은 프로토콜별 바인딩 및 그 직렬화는 통합 및 배포 시점에 비로소 연결됩니다(AUTOSAR_AP_EXP_ARAComAPI 124쪽).

플랫폼 요구사항을 충족하기 위해 ara::com은(는) 다른 기능 클러스터들과 긴밀히 협력합니다(SWS_CommunicationManagement 34쪽). 런타임 시 Execution Management는 프로세스 수명 주기를 모니터링하며, Identity and Access Management(IAM)는 정책 기반 접근 검사(Policy Decision Point)를 통해 Method, Event 및 Field 레벨의 무단 상호작용을 차단합니다(SWS_CommunicationManagement 215쪽). 또한 보안 이벤트는 침입 탐지 시스템 매니저(IdSM)의 EventReporter로 직접 보고됩니다(SWS_CommunicationManagement 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

컨텍스트 다이어그램: ara::com의 임베딩 및 바인딩을 통한 애플리케이션 계층 분리. 출처: SWS_CommunicationManagement 55쪽, ARAComAPI 1쪽

프록시 및 스켈레톤을 통한 서비스 검색 및 인스턴스화

동적 서비스 검색(Service Discovery)은 로컬 및 분산 통신 관계의 형성을 제어합니다(SWS_CommunicationManagement 67쪽). 서비스 프로바이더는 스켈레톤에서 OfferService()을(를) 호출하여 가용성을 알립니다([SWS_CM_00101]). 서비스가 종료되거나 제공이 철회되면 StopOfferService()이(가) 오퍼를 철회합니다([SWS_CM_00111]). 컨슈머는 FindService()을(를) 통해 동기식으로 또는 StartFindService()을(를) 통해 비동기식으로 적합한 서비스 인스턴스를 찾습니다([SWS_CM_00122], [SWS_CM_00123], ARAComAPI 103쪽). 후자는 FindServiceHandler을(를) 등록하여 StopFindService()을(를) 통해 검색이 명시적으로 종료될 때까지 인스턴스 구성이 변경될 때마다 알림을 받습니다([SWS_CM_00125], [SWS_CM_00383]).

소스 코드를 고정된 네트워크 및 인스턴스 ID로부터 분리하기 위해, 인터페이스는 ara::core::InstanceSpecifier을(를) 사용한 추상 모델 경로 기반 주소 지정을 허용합니다([SWS_CM_00622], [SWS_CM_00623], AUTOSAR_AP_EXP_ARAComAPI 124쪽). 미들웨어는 구성된 Service Instance Manifest를 통해 이러한 지정자를 구체적인 ara::com::InstanceIdentifier(으)로 해석합니다([SWS_CM_00118], [SWS_CM_11520], ARAComAPI 1쪽). 검색된 서비스는 ServiceHandleContainer 내에서 타입이 지정된 설명자(HandleType)(으)로 제공됩니다([SWS_CM_10383], AUTOSAR_EXP_SensorInterfaces 16쪽). 정적 팩토리 메서드 Proxy::Create() 또는 생성자를 통해 컨슈머는 추가적인 기능 사용을 위한 바인딩된 프록시 인스턴스를 생성합니다([SWS_CM_10438], [SWS_CM_00131]).

서비스 검색 및 Proxy 초기화Consumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Proxy 인스턴스 (통신 준비 완료)

시퀀스 다이어그램: 서비스 제공, 비동기 검색 및 프록시 생성 흐름. 출처: [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces 16쪽

상호작용 패턴: 메서드 호출 및 비동기 처리

메서드 호출은 동기 및 비동기 요청-응답 패러다임을 나타냅니다. 클라이언트는 프록시에서 함수 호출 연산자 operator()을(를) 통해 메서드를 트리거합니다([SWS_CM_00196]). 기본 반환 타입으로는 결과 또는 오류 상태를 캡슐화하는 ara::core::Future이(가) 사용됩니다([SWS_CM_00191], ARAComAPI 1쪽). 컨슈머는 동기화 방식을 유연하게 결정할 수 있습니다: get()을(를) 통한 블로킹 조회, wait_for() 또는 wait_until()을(를) 통한 타임아웃 감시 대기, 혹은 then()을(를) 통한 이벤트 기반 콜백 루틴 등록을 활용합니다(ARAComAPI 1쪽). 피드백이 없는 순수 단방향 알림을 위해 void를 반환하는 파이어 앤 포겟(Fire-and-Forget) 메서드도 존재합니다([SWS_CM_90434], [SWS_CM_90435]).

프로바이더 측에서는 MethodCallProcessingMode이(가) 수신 호출에 대한 실행 전략을 정의합니다([SWS_CM_00301], [SWS_CM_00130]). 이벤트 구동 모드(kEvent 또는 kEventSingleThread)에서는 미들웨어가 관리하는 워커 스레드 내에서 메서드 호출이 즉시 실행됩니다(AUTOSAR_SWS_CommunicationManagement 60쪽). 폴링 모드(kPoll)에서는 애플리케이션이 주기적으로 ProcessNextMethodCall()을(를) 호출하여 처리 시점을 결정론적으로 자체 제어합니다([SWS_CM_00199], EXP_SWArchitecture 68쪽). 메서드 구현은 내부적으로 ara::core::Promise을(를) 통해 결과를 생성하고 연계된 Future를 반환합니다(ARAComAPI 1쪽).

메서드 호출 및 디스패칭 모드Consumer AppProxyara::com TransportSkeletonProvider Appoperator()(args)ara::core::Future 반환Request PDU sendenRequest empfangenaltMethodCallProcessingMode::kEventAsynchroner Methodenaufruf (Worker-Thread)MethodCallProcessingMode::kPollProcessNextMethodCall()애플리케이션 스레드에서의 동기 메서드 호출결과를 Promise에 전달Response PDU sendenResponse empfangenFuture::get()이 결과를 제공함

시퀀스 다이어그램: kPoll 및 kEvent 디스패칭 하에서의 프록시와 스켈레톤 간 메서드 호출. 출처: [SWS_CM_00196], [SWS_CM_00199], AUTOSAR_SWS_CommunicationManagement 60쪽

발행-구독 패턴에서의 이벤트 및 필드 통신

연속적인 데이터 스트림 및 상태 변경의 배포는 발행-구독 패턴의 이벤트 및 필드를 통해 이루어집니다(SWS_CommunicationManagement 67쪽). 활성 구독자는 유지할 최대 샘플 수(maxSampleCount)를 지정하여 Subscribe()을(를) 통해 수신 의사를 등록합니다([SWS_CM_00141], [SWS_CM_12002]). 구독 상태는 GetSubscriptionState()을(를) 통해 조회하거나 SetSubscriptionStateChangeHandler()을(를) 통한 콜백으로 비동기 모니터링됩니다([SWS_CM_00310], [SWS_CM_00316], [SWS_CM_01110]). 구독 해제는 Unsubscribe()을(를) 통해 수행됩니다([SWS_CM_00151]).

데이터 수신은 SetReceiveHandler()을(를) 통한 이벤트 구동 방식 또는 수신 버퍼의 주기적 판독을 통해 이루어질 수 있습니다([SWS_CM_00181], [SWS_CM_11356]). 컨슈머는 GetNewSamples()을(를) 사용하여 도착한 각 샘플에 대해 타입이 지정된 SamplePtr(으)로 호출되는 함수 객체(람다)를 전달합니다([SWS_CM_00701], [SWS_CM_11610]). 복사 오버헤드를 방지(Zero-Copy)하기 위해 스켈레톤은 Allocate()을(를) 통해 메모리를 할당하고 전송 계층으로 Send()을(를) 통해 완전한 소유권 이전과 함께 타입이 지정된 포인터 SampleAllocateePtr을(를) 전송합니다([SWS_CM_90438], [SWS_CM_90437], [SWS_CM_00308], AUTOSAR_EXP_ARAComAPI 63쪽, ARAComAPI 1쪽).

필드는 이벤트 개념을 Getter 및 Setter 시맨틱으로 확장합니다(AUTOSAR_EXP_ARAComAPI 68쪽). 컨슈머는 Get()을(를) 통해 필드를 읽거나 Set()을(를) 통해 필드를 씁니다([SWS_CM_00112], [SWS_CM_00113]). 서버 측에서는 이러한 요청을 RegisterGetHandler() 및 RegisterSetHandler()(으)로 각각 처리합니다([SWS_CM_00114], [SWS_CM_00116]). 서버가 Update()을(를) 통해 상태를 업데이트하면, 필드는 자동으로 알림자(Notifier) 역할을 수행하여 등록된 모든 구독자에게 변경 사항을 배포합니다([SWS_CM_00119], ARAComAPI 1쪽).

제로 카피 할당을 사용하는 Publish-Subscribe 흐름Provider AppSkeletonMiddleware / BufferProxyConsumer AppSubscribe(maxSampleCount)Abonnement registrierenSetReceiveHandler(callback)Allocate()SampleAllocateePtrSend(std::move(ptr))샘플을 버퍼에 추가 / 전송Notify receiveHandlerCallback aufrufenGetNewSamples(lambda)SamplePtr을 사용하여 람다 실행됨

시퀀스 다이어그램: 제로 카피 할당, 이벤트 발행, 구독 및 GetNewSamples 소비. 출처: [SWS_CM_00141], [SWS_CM_00701], [SWS_CM_90437], AUTOSAR_EXP_ARAComAPI 63쪽

보안, 서비스 변환 및 플랫폼 통합

안전 관련 및 결정론적 데이터 흐름을 위해 ara::com은(는) AUTOSAR 표준에 따른 종단 간 보호(E2E) 및 인증을 통합합니다(AUTOSAR_AP_TR_SystemTests 132쪽). 컨슈머는 GetProfileCheckStatus() 및 GetE2EStateMachineState()을(를) 통해 수신된 데이터의 무결성 및 유효성 검사 상태를 확인할 수 있습니다([SWS_CM_90420], [SWS_CM_90421], [SWS_CM_11554]). 서버 측에서 애플리케이션은 SetTransportFaultConditionHandler()을(를) 통해 오류 처리 루틴을 등록하여 메서드 수준의 E2E 및 전송 결함에 표준화된 방식으로 대응합니다([SWS_CM_00093], [SWS_CM_00094], [SWS_CM_00100], EXP_SWArchitecture 68쪽).

외부 메시지의 암호화 무결성 및 신뢰성은 Secure Onboard Communication(SecOC)을 통해 보장됩니다(SWS_CommunicationManagement 222쪽). 이를 위해 미들웨어는 교체 가능한 Freshness Value Management 라이브러리(FVM)를 통합하며, 이는 GetRxFreshness(), GetTxFreshness() 및 Initialize()을(를) 통해 신선도 값을 관리합니다([SWS_CM_11288], [SWS_CM_11289], [SWS_CM_11290], SWS_CommunicationManagement 226쪽). 진단 및 보안 기능은 SetVerificationStatus()과(와) 같은 특정 인터페이스를 통해 검증을 모니터링하거나 제어합니다([SWS_CM_19999], AUTOSAR_AP_EXP_SWArchitecture 70쪽).

AUTOSAR Classic Platform과의 상호운용성을 위해 ara::com은(는) 신호 기반 통신(Signal-to-Service Translation)을 지원합니다(SWS_CommunicationManagement 146쪽, TPS_ManifestSpecification 476쪽). [SWS_CM_10174] 및 [SWS_CM_80001]에 따라 클래식 신호 I-PDU와 SOME/IP 메시지는 동일한 소켓을 통해 전송될 수 있습니다. 신호 기반 SecOC 구성이 존재하는 경우, 미들웨어는 매니페스트의 PDU 트리거링에서 직접 보안 파라미터를 읽어옵니다([SWS_CM_11346], SWS_CommunicationManagement 228쪽).

SecurityPipeline IncomingPdu Eingehende Nachricht (SOME/IP / Signal-PDU) SecOcCheck SecOC 검사 (Authenticator / MAC) IncomingPdu->SecOcCheck SecOC konfiguriert E2eCheck E2E 검사 (CRC, Counter, Data ID) IncomingPdu->E2eCheck Kein SecOC FreshnessCheck FVM: Freshness Value Verifikation SecOcCheck->FreshnessCheck Authenticator 유효함 FaultHandler TransportFaultConditionHandler / ErrorDomain SecOcCheck->FaultHandler 유효하지 않은 MAC FreshnessCheck->E2eCheck Freshness 유효함 FreshnessCheck->FaultHandler Freshness 유효하지 않음 DispatchApp 애플리케이션 / Skeleton으로 전달 E2eCheck->DispatchApp E2E OK (ProfileCheckStatus::kOk) E2eCheck->FaultHandler E2E-Fehler (kRepeated, kWrongSequence)

액티비티 다이어그램: 수신 메시지의 E2E 및 SecOC 보호 파이프라인. 출처: [SWS_CM_90420], [SWS_CM_11288], SWS_CommunicationManagement 222쪽

오류가 발생한 경우의 동작

ara::com의 오류 관리는 AUTOSAR 코어 프레임워크의 타입 안전한 오류 도메인 및 반환 코드를 기반으로 합니다([SWS_CM_11334], [SWS_CM_11335]). 일반 통신 계층의 오류는 ComErrorDomain에 그룹화되며 열거자 ComErrc을(를) 통해 인코딩됩니다([SWS_CM_10432]). E2E 검증 오류 시 ComE2EErrorDomain은(는) 열거형 값 ComE2EErrc을(를) 통해 체크섬 불일치 또는 유효하지 않은 카운터와 같은 특정 검사 오류를 알립니다([SWS_CM_10474], [SWS_CM_12510], [SWS_CM_12511]). SecOC 신선도 오류의 경우에도 유사하게 ComSecOcFvmErrc을(를) 포함하는 ComSecOcFvmErrorDomain이(가) 존재합니다([SWS_CM_12521], [SWS_CM_12522]).

런타임 중 연결 끊김이 발생하면 프록시의 구독 상태가 kSubscribed에서 kSubscriptionPending(으)로 전환됩니다([SWS_CM_00310], [SWS_CM_00316], ARAComAPI 32쪽). 이 단계에서 메서드 호출은 오류와 함께 실패합니다. 이후 서비스 프로바이더가 Service Discovery를 통해 복귀하면, 미들웨어는 컨슈머가 프록시 객체를 다시 인스턴스화할 필요 없이 프록시의 내부 주소 지정을 투명하게 업데이트하며, 성공적인 재동기화 후 상태는 자동으로 kSubscribed(으)로 복귀합니다(ARAComAPI 32쪽). 시간 제한 및 마감 시간 모니터링(Deadline Monitoring)은 시스템 명세에 따라 애플리케이션 소프트웨어가 직접 담당합니다(TPS_ManifestSpecification 504쪽).

ProxyRecovery Initial Proxy erzeugt (kSubscribed) ServiceDown 서비스에 도달할 수 없음 (kSubscriptionPending) Initial->ServiceDown Service geht offline / SD-Timeout Reconnected Dienst wiederhergestellt (kSubscribed) ServiceDown->Reconnected Service sendet OfferService() / Adress-Update Reconnected->ServiceDown Erneuter Verbindungsausfall

상태 다이어그램: 프로바이더 가용성 변경 시 프록시 인스턴스의 수명 주기 및 연결 상태. 출처: [SWS_CM_00310], [SWS_CM_00316], ARAComAPI 32쪽

더 자세한 증거

주요 요구사항 및 시스템 인터페이스는 AUTOSAR 사양에 다음과 같이 분류됩니다:

본 가이드는 AUTOSAR Adaptive Release R25-11을 기반으로 AI 큐레이션 어시스턴트에 의해 작성되었습니다.

<SI-Namespace>::proxy

<SI>Proxy 클래스

Service Interface Proxy

<SI-Namespace>::proxy::fields

<Field> 클래스

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

<SI-Namespace>::proxy::methods

<FnFMethod> 클래스

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

<Method> 클래스

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

<SI-Namespace>::proxy::triggers

<Trigger> 클래스

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

<SI-Namespace>::skeleton

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

상속 대상 ara::core::ErrorDomain

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

상속 대상 ara::core::Exception

FVContainer 클래스

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

FVM 클래스

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;

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 열거형

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

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

ara::com

ComErrorDomain 클래스

Defines a class representing the Communication error domain.

상속 대상 ara::core::ErrorDomain

ComException 클래스

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

상속 대상 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 클래스

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 열거형

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 열거형

The state of the service from GetServiceState()

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

The subscription state of an event.

enum class SubscriptionState : std::uint8_t {...};
EventReceiveHandler 타입 별칭

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 타입 별칭

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 타입 별칭

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 타입 별칭

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 타입 별칭

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 타입 별칭

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

상속 대상 ara::core::ErrorDomain

ComE2EException 클래스

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

상속 대상 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 열거형

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

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

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

enum class ProfileCheckStatus : std::uint8_t {...};
SMState 열거형

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;

서비스 인터페이스

VerificationStatus 서비스 인터페이스

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

VerificationStatusConfigurationByDataId 서비스 인터페이스

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

네임스페이스

서비스 인터페이스(ara::com 모델링)

모듈의 UML 클래스 다이어그램

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