본문으로 건너뛰기

AA Design 튜토리얼

무엇을 만드는가​

이 튜토리얼은 HPC 한 대에서 도는 Adaptive Application 설계를 프로젝트가 열려 있지 않은 PAIO 창에서부터 PAIO 화면만으로 만든다. 프로젝트 AADesign 의 System 편집기에 HPC 노드 Ecu 하나를 두고, 그 위에 컴포지션 HPC 를 매핑한다. 컴포지션 안에는 Adaptive Application 다섯 개 Sensor, Fusion, Actuator, CM, EM 이 있다. Sensor 는 서비스 인터페이스 Sensor 를 SOME/IP 서비스(서비스 ID 11)로 제공하고, Fusion 과 Actuator 는 그 서비스를 소비한다. 다섯 프로세스는 머신의 함수 그룹 MachineFG 의 상태에 묶여 시작하고, Sensor, Fusion, Actuator 는 CM 프로세스가 Running 이 된 뒤에 시작한다. 각 프로세스는 DLT 애플리케이션으로 로그를 낸다. 마지막 장에서 이 설계를 검증 오류 없이 ARXML 파일 다섯 개로 내보낸다.

설계의 목표는 참조 설계 EM_Arxml 이다. 참조 설계와 일부러 다르게 한 곳은 세 군데이다. 첫째, 참조 설계의 EM 프로세스는 함수 그룹 상태에 묶여 있지 않지만, PAIO 검증은 그 모양을 거부하므로 이 튜토리얼은 EM 을 MachineFG : Startup 에 묶는다. 둘째, 참조 설계는 CM 과 EM 의 ROOT SWC PROTOTYPE 만 RootSwComponent 이지만, 이 튜토리얼은 다섯 모두 기본값 AA 로 통일한다. 셋째, constr_10641 을 없애려고 머신에 상태 관리 모듈 SM(MAX-ACTION-LIST-DURATION 1000)을 둔다. 참조 설계에는 이 모듈이 없다. 전체 목록은 부록에 있다.

요소이름내용
머신EcuSystem 편집기의 HPC 노드. OS POSIX, 프로세서 CPU, 코어 Core0~Core3, 함수 그룹 MachineFG, DLT ECU ID ECU1
컴포지션HPC노드 Ecu 에 매핑. Adaptive Application 다섯 개와 어셈블리 커넥터 두 개를 담음
네트워크eth0Ethernet 커넥터. 유니캐스트 127.0.0.1, SD 멀티캐스트 224.0.0.1:30490, UDP 포트 20001, 20002, 20003
서비스 인터페이스Sensor이벤트 SensorData(ByteArray), 메서드 Calculation(float32 인자 다섯 개)
SOME/IP 서비스Sensor서비스 ID 11, 제공자 Provider_Sensor, 소비자 Actuator_Sensor, Fusion_Sensor
Adaptive Application역할포트DLT 애플리케이션 ID
Sensor서비스 Sensor 제공P 포트 SensorSENS
Fusion서비스 Sensor 소비R 포트 SensorFUSN
Actuator서비스 Sensor 소비R 포트 SensorACTA
CM통신 관리. 다른 세 프로세스가 이 프로세스의 Running 을 기다림없음CM
EM실행 관리없음EM

무엇이 필요한가​

  • PAIO 가 설치되어 있고 실행할 수 있어야 한다.
  • 프로젝트가 열려 있지 않은 PAIO 창에서 시작한다. 다른 튜토리얼이나 예제 프로젝트는 필요하지 않다.
  • 이 튜토리얼의 화면은 1920×1080 화면에서 찍었다. 다이얼로그가 넓으므로 그 이상의 화면을 권한다.
  • ARXML 은 AUTOSAR 스키마 R25-11 로 내보내고 검사한다.
  • AUTOSAR Adaptive Platform 의 Adaptive Application, 서비스 인터페이스, SOME/IP 를 대강 알고 있으면 충분하다. 어느 PAIO 화면에 무엇을 입력하는지는 장마다 단계별로 안내한다.

장 구성​

각 장은 앞 장의 결과 위에서 시작하므로 차례대로 따라간다.

장제목쓰는 편집기끝나면 갖게 되는 것
1프로젝트와 HPC 머신 만들기System 편집기, VFB, Machine Configuration프로젝트 AADesign, 노드 Ecu, 컴포지션 HPC [Ecu], 기본값으로 저장한 머신. 검증 오류 constr_10641 1건
2머신 설정Machine ConfigurationOS POSIX, 코어 4개, ECU ID ECU1, MAX ACTION LIST DURATION 1000. No validation issues.
3토폴로지 — Ethernet 커넥터와 엔드포인트System 편집기, Communication Cluster Configuration컨트롤러, 커넥터 eth0, NM 을 꺼 둔 클러스터 EthernetCluster, 엔드포인트, UDP 포트 3개
4데이터 타입DataTypeByteArray, String
5서비스 인터페이스Interface서비스 인터페이스 Sensor
6SOME/IP 배포와 서비스 인스턴스Interface배포 Sensor(서비스 ID 11), 인스턴스 Provider_Sensor, Actuator_Sensor, Fusion_Sensor
7커넥터에 서비스 인스턴스 바인딩System 편집기커넥터 eth0 에 묶인 인스턴스 3개와 UDP 포트
8Adaptive Application 과 포트VFBAdaptive Application 5개, 포트 3개, 어셈블리 커넥터 2개
9Executable 과 ProcessAA Internal Behavior, Machine ConfigurationExecutable 5개, Process 5개, 시작 타임아웃, 함수 그룹 상태, 실행 의존성
10서비스 인스턴스 매핑AA Internal Behavior포트와 서비스 인스턴스의 매핑 3개
11로그와 DLTAA Internal Behavior, Machine ConfigurationDLT 애플리케이션 5개, DLT 컨텍스트 3개
12검증VALIDATION 패널, AA Internal Behavior, VFB일부러 심은 결함 3개를 고쳐 No validation issues.
13ARXML 익스포트EDITOR 뷰, XML 편집기export 폴더의 ARXML 파일 5개와 참조 설계와의 차이
14부록—완성된 설계의 점검표, 값 표 모음, 파일 구성, 참조 설계와의 차이, 자주 겪는 문제

읽는 법​

  • 장마다 같은 순서이다. "이 장에서 할 일" 로 목표를 밝히고, "시작하기 전에" 에서 출발 상태와 그 장에서 입력할 값을 표로 보인다. 그다음 번호 붙은 단계와 단계별 스크린샷이 이어진다.
  • 반복 작업은 대표 하나만 절차로 보인다. 예를 들어 Adaptive Application 다섯 개 가운데 Sensor 하나를 끝까지 따라가고, 나머지는 값 표로 준다. 표의 항목은 같은 방법으로 직접 입력한다.
  • 장의 끝에는 "확인하기" 점검표가 있다. 화면에 무엇이 보여야 하는지 적은 목록이다. 모두 맞으면 다음 장으로 넘어간다.
  • "왜 이렇게 설계하는가" 는 값이 그렇게 정해진 이유를 참조 설계와 비교해 짧게 설명한다.
  • UI 라벨은 화면에 보이는 그대로 굵게, 모델 요소의 이름과 값은 코드 로 적는다.

내 익스포트가 참조 설계와 다른 경우​

이 튜토리얼대로 만든 ARXML 은 참조 설계의 파일 EM_Test_*.arxml 과 설계 내용이 같지만, 파일이 바이트 단위로 같지는 않는다. 차이는 모두 이유가 알려진 것이다. 참조 설계 파일에 남은 결함, PAIO 익스포터의 이름 규칙, PAIO 가 스스로 넣는 요소, 이 튜토리얼이 일부러 바꾼 값(EM 의 Startup 바인딩 등), PAIO 화면에 입력칸이 없는 값이다. 전체 목록과 이유는 ARXML 익스포트에서, 요약은 부록에서 본다.

다음 단계​

프로젝트와 HPC 머신 만들기부터 시작한다.