관리 메뉴
Automotive Software
ara::com 메소드 통신 기초 본문
아답티브 오토사 (Adaptive AUTOSAR)/통신 관리자 (Communicatioin Management)
ara::com 메소드 통신 기초
AutoSW 2023. 11. 22. 17:57- 메서드
- RPC(Remote Procedure Call)과 같이 기능(함수) 기반의 통신으로 원격지 프로세스의 특정 기능(함수)을 호출하고 그 결과를 확인하는 경우
- 타입
- 호출 후 종료형(One-way / Fire-and-Forget) : 오직 입력 파라미터만 허용, 리턴값/예외 없음
- 일반형 : 입출력, 리턴값 그리고 예외 처리 허용
- 함수
- 프록시
- 함수 호출 연산자 오버로딩 (Function call operator overlading)
- 메서드 제공자의 함수 호출을 위한 연산자 오버로딩으로 원격지 기능의 수행을 요청
- 함수 호출 연산자 오버로딩 (Function call operator overlading)
- 스켈레톤
- 제공 함수(기능) 구현을 위한 가상 함수 (Virtual method)
- 메서드 제공자가 실제 기능을 구현해야 하며
- 동기화 / 비동기화 (함수 내 비동기 스레드 생성 후) 방식으로 구현할 수 있음
- 제공 함수(기능) 구현을 위한 가상 함수 (Virtual method)
- 프록시
- 결과
- 프록시(수신)
- std::future의 확장형인 ara::core::Future의 형태로 전달 (호출 후 종료형 타입 제외)
- 이벤트 방식 : CM이 결과 수신 시 프록시에 공지하는 방식
- get() : 블록킹 함수로 wait()을 통해 정의된 시간만큼 블록
- then() : 사용자 정의 콜백함수 등록
- 폴링 방식 : 메서드 처리 완료 여부 확인 후 결과 수신 요청
- ara::core::Future::is_ready() : 처리 완료 여부 확인 후
- ara::core::Future::get() : 처리 완료되었으므로 블록킹 하지 않음
- 스켈레톤 (송신)
- Future <t>에 Out으로 설정된 타입 t를 추가하여 결과 생성 후 CM에 전달
- 예, myMethod(), INPUT : uint8_t input, OUTPUT : MyMethodOutput_t
- virtual ara::core::Future< MyMethodOutput_t > myMethod(const uint8_t input ) = 0;
- 예, myMethod(), INPUT : uint8_t input, OUTPUT : MyMethodOutput_t
- Future <t>에 Out으로 설정된 타입 t를 추가하여 결과 생성 후 CM에 전달
- 프록시(수신)
'아답티브 오토사 (Adaptive AUTOSAR) > 통신 관리자 (Communicatioin Management)' 카테고리의 다른 글
ara::com 이더넷 패킷 VLAN ID 설정은 어디서? (0) | 2023.11.30 |
---|---|
ara::com 필드 통신 기초 (2) | 2023.11.23 |
ara::com 이벤트 통신 기초 (0) | 2023.11.22 |
ara::com 통신 방식 기초 (0) | 2023.10.06 |
ara::com 이벤트 통신 동작 절차 (0) | 2023.08.04 |