DataType 편집기의 목록에 프리미티브 11개, 포인터 타입 2개 VoidPtr, ConstVoidPtr, 그리고 ByteArray [DYNAMIC_ARRAY], String [STRING] 까지 15개 항목이 있다.
Interface 편집기 SERVICE 탭의 Sensor 에 이벤트 SensorDataByteArray 와 메서드 Calculation(인자 다섯 개)이 있다.
SOA DEPLOYMENT 의 카드 SOME/IPSensor 요약이 SERVICE ID = 0x000BVERSION 1.0EVENTS = 1METHODS = 1 이고, 제공자 Provider_Sensor0x0001 과 소비자 Actuator_Sensor, Fusion_Sensor0xFFFF (ANY) 가 있다.
VALIDATION 패널이 No validation issues. 이고, 패널 제목 옆과 푸터 V 아이콘에 배지가 없다.
export 폴더에 AADesign_COM.arxml, AADesign_DataType.arxml, AADesign_Interface.arxml, AADesign_SWC.arxml, AADesign_System.arxml 다섯 개가 있고, XML 편집기의 상태 표시줄이 ✓ No problems 이다.
수정됨 표시 ● 가 붙은 탭이나 다이얼로그가 없다.
그림 14-1. 완성된 설계의 컴포지션 HPC(Adaptive Application 과 포트의 그림 8-12). 왼쪽 열에 위에서부터 CM, EM, Actuator, Fusion, 오른쪽에 Sensor 가 있다. ① Sensor 의 P 포트, ② Fusion 의 R 포트, ③ Actuator 의 R 포트. 노드와 포트의 위치는 Auto Layout 결과에 따라 다를 수 있으며 설계 값이 아니다.
프리미티브 11개(boolean, float32, float64, sint8, sint16, sint32, sint64, uint8, uint16, uint32, uint64)와 포인터 타입 2개 VoidPtr, ConstVoidPtr 는 내장 타입이라 입력하지 않는다.
다섯 프로세스 모두 SCHEDULING POLICYSCHED_OTHER, SCHEDULING PRIORITY0, CPU USAGE0, MEM USAGE0B, TERMINATION BEHAVIORPROCESS-IS-NOT-SELF-TERMINATING 의 기본값이다. CORE AFFINITY 는 체크하지 않는다. 프로세스는 CM 을 가장 먼저 만들고 저장해야 다른 프로세스의 EXECUTION DEPENDENCY 에서 CM 을 고를 수 있다.
13장까지 마친 프로젝트의 파일은 다음과 같다. 오른쪽은 그 파일을 만들거나 고치는 장이다.
AADesign/
├── AADesign.io.prj
├── design/
│ ├── DATATYPE.io.model 4장
│ ├── INTERFACE.io.model 5장
│ ├── IVC.io.model 1장, 3장, 7장
│ ├── SERVICE.io.model 6장
│ ├── SYSTEM.io.model 1장
│ ├── VFB.io.model 1장, 8장
│ ├── Module/
│ │ └── Machine/
│ │ └── Ecu.machine.io.model 1장, 2장
│ └── SWC/
│ ├── AdaptiveApplication/
│ │ ├── Actuator.swc.io.model 8장~11장
│ │ ├── CM.swc.io.model 8장, 9장, 11장
│ │ ├── EM.swc.io.model 8장, 9장, 11장
│ │ ├── Fusion.swc.io.model 8장~11장
│ │ └── Sensor.swc.io.model 8장~11장
│ ├── Composition/
│ │ ├── HPC.swc.io.model 1장, 8장
│ │ └── System.swc.io.model 1장
│ └── Layout/
│ ├── HPC.vfb.layout 8장
│ └── System.vfb.layout 1장
└── export/
├── AADesign_COM.arxml 13장
├── AADesign_DataType.arxml 13장
├── AADesign_Interface.arxml 13장
├── AADesign_SWC.arxml 13장
└── AADesign_System.arxml 13장
머신 파일 이름 Ecu.machine.io.model 은 System 편집기의 HPC 노드 이름 Ecu 를 따른다. 머신 이름을 넣는 칸은 없다.
*.vfb.layout 은 노드와 포트의 위치만 담은 보기 상태다. ARXML 로 내보내지 않는다.
프로젝트 폴더에는 이 밖에 doc, code, workflow, import 폴더가 있다. 이 튜토리얼은 쓰지 않는다.
화면으로 따라 한 프로젝트에는 SOME/IP 배포와 서비스 인스턴스의 저장 때 design/SIGNAL.io.model 도 생기고, INTERFACE.io.model 에 Sensor_SR 과 Sensor_CS 가 추가된다. Interface 편집기가 SOME/IP 배포에서 자동으로 파생한 Classic Platform 쪽 요소이며, 이 튜토리얼이 손으로 만드는 설계에는 들어 있지 않다.
내 익스포트는 참조 설계 파일 EM_Test_*.arxml 과 설계 내용이 같다. 서비스 인터페이스, SOME/IP 배포와 인스턴스, 서비스 디스커버리 설정, 엔드포인트, Adaptive Application 다섯 개와 포트, 커넥터, Executable, Process 의 시작 설정 값, 실행 의존성, 서비스 인스턴스 매핑, DLT 애플리케이션과 ECU, 데이터 타입, 시스템 매핑이 모두 같다. AADesign_Interface.arxml 은 EM_Test_Interface.arxml 과 바이트 단위로 같다.
참조 설계
내 익스포트
이름이 있는 요소(패키지 포함)
245
289
경로가 같고 값과 참조까지 같은 요소
204
204
경로는 같고 값이나 참조가 다른 요소
23
23
다른 패키지로 옮겨진 요소
6
6
같은 자리에서 이름이 바뀐 요소
6
6
참조 설계에만 있는 요소
6
—
내 익스포트에만 있는 요소
—
50
다른 곳은 아래와 같다. 요소 하나하나의 줄 번호와 이유는 ARXML 익스포트의 "내 익스포트와 기준 파일의 차이" 절에 있다.
…/SENS/SENS 가 …/SENS/DltContext_0 이 된다(FUSN, ACTA 도 같음). CONTEXT-ID 값은 그대로다
머신 패키지와 이름
패키지 /Machine/HPCMachine 의 MACHINEHPCMachine 이 Ecu 로 바뀌어 패키지 /Machine 에 바로 놓이고, 머신의 함수 그룹과 프로세스 매핑은 /MachineConfig/Ecu 아래에 놓인다. PAIO 는 머신 이름을 HPC 노드 이름으로 정한다
모듈 이름
LOG-AND-TRACE-INSTANTIATIONLog 가 LOG 로 바뀐다
시스템 매핑 이름
SwMapping_HPC_to_HPC 가 SwMapping_HPC_to_Ecu 로 바뀐다
리소스 그룹
공유 RESOURCE-GROUPResourceGroup 하나 대신 프로세스마다 Sensor_ResourceGroup … EM_ResourceGroup(CPU-USAGE0, MEM-USAGE0)이 생긴다
String 타입
STD-CPP-IMPLEMENTATION-DATA-TYPE 에 ARRAY-SIZE 256, APPLICATION-PRIMITIVE-DATA-TYPE 에 SW-TEXT-PROPS 가 더 있다
가변 크기 배열
CP 측 미러 IMPLEMENTATION-DATA-TYPEByteArray, String 과 APPLICATION-ARRAY-DATA-TYPEByteArray 가 PAIO 의 가변 크기 배열 형태로 나온다. DYNAMIC-ARRAY-SIZE-PROFILE 이 VSA_LINEAR 이고, 배열 크기는 한 단계 안쪽 요소에 있다. 크기 1, 256 은 같다
머신 이름은 노드 이름 Ecu 를 따르고, WAIT-FOR-SHUTDOWN 은 익스포트에 나오지 않는다
Communication Management 모듈의 REQUEST-TIMEOUT10, ALIVE-CHECK-INTERVAL0, MAX-DATA-BYTES0
모듈 화면에는 서브탭 ACCESS CONTROL 과 IPC 만 있고 이 값들을 넣는 칸이 없어, 익스포트에는 LOCAL-COM-ACCESS-CONTROL-ENABLEDfalse 와 REMOTE-ACCESS-CONTROL-ENABLEDfalse 만 있는 CM-MODULE-INSTANTIATIONCM 이 나온다
프로세스의 RESOURCE-GROUP-REF
머신 설정 화면의 OS 값 POSIX 는 OS-MODULE-INSTANTIATION 요소로 익스포트되지만, 익스포터는 머신의 모듈 목록(MODULE 탭)에 OS 모듈 항목이 있을 때만 이 참조를 쓴다. 머신 설정 화면이 미리 만드는 모듈 목록에는 OS 모듈 항목이 없다