관리 메뉴
Automotive Software
ara::com 이벤트 통신 기초 본문
아답티브 오토사 (Adaptive AUTOSAR)/통신 관리자 (Communicatioin Management)
ara::com 이벤트 통신 기초
AutoSW 2023. 11. 22. 17:56- 이벤트 (Event)
- 특정 데이터 교환을 주목적으로 하는 통신 방식으로 특정 신호를 주기적 또는 갱신 시점에 받아서 처리하는 경우 사용
- 데이터 : 프록시 또는 스켈레톤에 따라 기본 데이터 템플릿 클래스가 적용되고 사용자 데이터를 추가하여 사용
- 구현 예시 : 사용자 정의 데이터 :: 프록시/스켈레톤 이벤트 템플랫 클래스
- 사용자 정의 데이터 : using myData_t = struct myData_t { uint32_t data;};
- 프록시 이벤트 템플릿 클래스 : ara::com::proxyEvent< myData_t >
- 프록시 또는 스켈레톤 네임 스페이스 내 하나의 멤버로 정의
- 구현 예시 : 사용자 정의 데이터 :: 프록시/스켈레톤 이벤트 템플랫 클래스
- 함수
- 프록시
- 가입 (Subscribe)
- 이벤트 제공자에게 해당 이벤트의 수신 여부에 대한 관심 여부와 수신 가능 이벤트 최대 개수를 전달
- 가입 상태 추적 (GetSubscriptionState)
- 가입 메서드는 비동기로 구현되어 호출 후 리턴값이 메서드의 결과를 나타내지 않으며, 단지 해당 서비스 요청이 CM에게 전달되었음을 나타냄
- 향후 서비스 가입 여부 확인 및 해당 서비스 인스턴스의 상태 변화 관찰을 위해 사용자 정의 함수를 등록하여 추적 가능
- 이벤트 데이터 수신 (GetNewSamples, SetReceiveHandler)
- 가입 완료 후, 등록한 이벤트 데이터를 subcribe() 호출 시 전달한 이벤트 최대 개수만큼 서버로부터 받을 수 있는 메서드
- 폴링 방식 : GetNewSampes()
- 이벤트 방식 : SetReceiveHandler()
- 새로운 이벤트 데이터 가용 시 호출될 사용자 정의 콜백 함수를 등록하도록 허용
- 가입 (Subscribe)
- 스켈레톤
- 이벤트 데이터 전송 (Send)
- 제공자 내부 또는 소비자와의 공유 공간에 자원 할당 후 데이터가 저장된 해당 공간에 대한 포인터 전달
- 대용량 및 데이터 갱신 주기가 높을수록 시스템 자원 및 성능에 영향을 미치므로 공유 공간 활용하는 Send(ara::com::SampleAllocateePtr<SampleType> data) 추천
- 사전 Allocate()를 통해 공유 공간에 자원 할당 필요
- 이벤트 데이터 전송 (Send)
- 프록시
- 이벤트 통신 동작 절차
'아답티브 오토사 (Adaptive AUTOSAR) > 통신 관리자 (Communicatioin Management)' 카테고리의 다른 글
ara::com 필드 통신 기초 (2) | 2023.11.23 |
---|---|
ara::com 메소드 통신 기초 (0) | 2023.11.22 |
ara::com 통신 방식 기초 (0) | 2023.10.06 |
ara::com 이벤트 통신 동작 절차 (0) | 2023.08.04 |
ara::com 기초 (프록시/스켈레톤 구조) (0) | 2023.08.02 |