목록아답티브 오토사 (Adaptive AUTOSAR)/통신 관리자 (Communicatioin Management) (8)
Automotive Software
아답티브 오토사상에서 이더넷 패킷의 VLAN ID는 기본 값 M2::AUTOSARTemplates::SystemTemplate::Fibex::Fibex4Ethernet::EthernetTopology VlanMembership::defaultPriority 에서 송수신 패킷들의 VLAN ID를 정의할 수 있으며, IP 계층에서의 값 M2::AUTOSARTemplates::SystemTemplate::Fibex::Fibex4Ethernet::EthernetTopology NetworkEndpoint::priority 응용 계층에서의 값 M2::AUTOSARTemplates::AdaptivePlatform::ServiceInstanceManifest::APApplicationEndpoint ApApplica..
필드 이벤트와 비슷하게 특정 데이터 교환이 주목적이긴 하나, 그 데이터를 수집하는 방식에 차이가 있음 데이터 수집을 위해 해당 서비스 가입 시, 초기 값이 우선 전달 현재의 필드값을 수집하거나 변경하기 위해 Get()과 Set() 메서드를 제공 Get(), Set(), Notify/Update()는 모두 옵션으로 사용자 설정에 따라 사용 가능 이벤트와 메소드 통신의 혼합 통신 Get(), Set(), Notify/Update() : ara::com 메소드 통신과 동일하게 동작 데이터 접근 : ara::com 이벤트 통신과 동일하게 동작
메서드 RPC(Remote Procedure Call)과 같이 기능(함수) 기반의 통신으로 원격지 프로세스의 특정 기능(함수)을 호출하고 그 결과를 확인하는 경우 타입 호출 후 종료형(One-way / Fire-and-Forget) : 오직 입력 파라미터만 허용, 리턴값/예외 없음 일반형 : 입출력, 리턴값 그리고 예외 처리 허용 함수 프록시 함수 호출 연산자 오버로딩 (Function call operator overlading) 메서드 제공자의 함수 호출을 위한 연산자 오버로딩으로 원격지 기능의 수행을 요청 스켈레톤 제공 함수(기능) 구현을 위한 가상 함수 (Virtual method) 메서드 제공자가 실제 기능을 구현해야 하며 동기화 / 비동기화 (함수 내 비동기 스레드 생성 후) 방식으로 구현할 ..
이벤트 (Event) 특정 데이터 교환을 주목적으로 하는 통신 방식으로 특정 신호를 주기적 또는 갱신 시점에 받아서 처리하는 경우 사용 데이터 : 프록시 또는 스켈레톤에 따라 기본 데이터 템플릿 클래스가 적용되고 사용자 데이터를 추가하여 사용 구현 예시 : 사용자 정의 데이터 :: 프록시/스켈레톤 이벤트 템플랫 클래스 사용자 정의 데이터 : using myData_t = struct myData_t { uint32_t data;}; 프록시 이벤트 템플릿 클래스 : ara::com::proxyEvent 프록시 또는 스켈레톤 네임 스페이스 내 하나의 멤버로 정의 함수 프록시 가입 (Subscribe) 이벤트 제공자에게 해당 이벤트의 수신 여부에 대한 관심 여부와 수신 가능 이벤트 최대 개수를 전달 가입 상태..
ara::com에서는 사용 시나리오에 따라 세 가지의 통신 방식, 이벤트(Event), 메서드(Method) 그리고 필드(Field)를 지원한다. 이벤트 : 데이터 기반, 특정 신호를 주기적 또는 갱신 시점에 받아서 처리하는 경우 CAN 신호와 같이 주기적 또는 산발적으로 발생되는 데이터를 교환하는 경우 메서드 : 기능(함수) 기반, 원격지 프로세스의 특정 기능(함수)을 호출하고 그 결과를 확인하는 경우 RPC (Remote Procedure Call)을 통해 외부 프로세스에 구현된 기능을 사용하고 그 결과를 확인코저 하는 경우 필드 : 데이터 기반으로 이벤트와 메서드의 혼합, 어느 시점에나 특정 신호의 값을 받거나 전달하고 그 결과를 확인하고자 하는 경우 외부 프로세스의 데이터를 필요한 시점에 언제나 ..
ara::com에서의 이벤트 통신 서비스 절차는 우선 서버는 제공 서비스 식별을 위해 서버에서 서비스 인스턴트 ID를 생성 제공할 서비스의 등록과 전송을 위해, 관련 API가 구현된 스켈레톤 클래스 (service_interfaces.arxml에서 생성된)의 인스턴스 생성 생성된 인스턴스의 OfferService()를 통해 서버의 서비스를 등록 생성된 인스턴스의 Send()를 통해 서비스의 데이터 업데이트 클라이언트는 Service_interfaces.arxml을 통해 생성된 프록시 클래스의 FindService()를 통해 필요 서비스의 존재 유무 확인 수집된 정보를 바탕으로 프록시 클래스의 인스턴트 생성 (해당 서비스가 없으면 프록시 생성 필요 없으므로) 서비스 데이터 업데이트 시 호출될 수신 핸들러 ..