VFB 에디터
이 장에서 다루는 것
이 장에서는 Virtual Functional Bus 관점에서 소프트웨어 컴포넌트(SWC)와 컴포지션을 배치하고 포트를 연결하는 VFB 에디터의 사용법을 안내합니다. 캔버스 조작, 컨텍스트 메뉴 전체 목록, 속성 패널, 네 종류의 상세 다이얼로그를 다룹니다. 상세 다이얼로그 중 SWC Internal Behavior 와 AA Internal Behavior 는 노드를 더블클릭하면 열리고, Machine Configuration 과 ECU Configuration 은 컴포지션 노드 머리글의 매핑 아이콘을 클릭하면 열립니다.
이 장은 AUTOSAR Classic 또는 Adaptive 플랫폼의 소프트웨어 아키텍처를 설계하는 사용자를 대상으로 합니다. 작업을 시작하려면 먼저 프로젝트가 열려 있어야 합니다. 포트에 지정할 인터페이스는 09. Interface 에디터에서 미리 정의해 두면 편리합니다. ECU/HPC 매핑을 사용하려면 06. IVC 에디터에 노드가 있어야 합니다.
프로젝트 탐색기에서 design ▸ System ▸ VFB 노드를 열면 에디터가 탭으로 열립니다.
8.1 저장 대상 파일
VFB 에디터는 한 번 저장할 때 여러 파일을 함께 기록합니다. 저장 대상 파일은 다음과 같습니다.
| 파일 | 내용 |
|---|---|
| VFB 모델 | 컴포지션 목록(이름 · 설명 · 경계 포트 · 프로토타입)과 InterfaceMapping 목록 |
| SWC 정의 | SWC 하나의 정의 (포트, 커넥터, 내부 동작, AP 매핑) |
design/SWC/Layout/<컴포지션>.vfb.layout | 컴포지션별 캔버스 배치 정보 |
| Machine 설정 | Adaptive Machine 설정 |
커넥터는 VFB 모델이 아니라 컴포지션의 SWC 정의에 저장됩니다. VFB 모델의 컴포지션 항목이 갖는 것은 이름 · 설명 · 경계 포트 · 프로토타입 참조뿐입니다.
.vfb.layout 은 노드 위치 · 크기 · 포트 위치 · 커넥터 경로 같은 화면 배치만 담는 프로젝트 내부
파일입니다. 이 정보는 ARXML로 내보내지지 않고, 임포트할 때도 복원되지 않습니다(임포트는 노드
위치를 새로 생성합니다).
종류 폴더 이름은 SWC 종류에 따라 다음과 같이 고정되어 있습니다.
| SWC 종류 | 폴더 이름 |
|---|---|
| Composition | Composition |
| Application | Application |
| Adaptive Application | AdaptiveApplication |
| Complex Device Driver | ComplexDeviceDriver |
| Service | Service |
| Ecu Abstraction | EcuAbstraction |
| Sensor Actuator | SensorActuator |
이름을 바꾼 SWC의 예전 파일은 저장할 때 삭제됩니다. 저장하기 전까지는 예전 이름의 파일이 디스크에 그대로 남아 있습니다. 따라서 이름을 바꾼 뒤 파일 목록이 이상해 보인다면 먼저
Ctrl+S로 저장합니다.
8.2 SWC 종류
ADD SWC 메뉴가 제공하는 종류는 7가지입니다.
| 메뉴 레이블 | 설명 |
|---|---|
| Composition | 컴포지션 (다른 SWC를 담는 컨테이너) |
| Adaptive Application | Adaptive Platform 애플리케이션 |
| Application | Classic 애플리케이션 SWC |
| Complex Device Driver | 복합 디바이스 드라이버 |
| Ecu Abstraction | ECU 추상화 SWC |
| Sensor Actuator | 센서/액추에이터 SWC |
| Service | BSW 서비스 SWC |
InterfaceMapping 노드는 SWC 종류가 아닙니다. 루트 레벨의 빈 캔버스를 우클릭했을 때 나오는 ADD INTERFACE MAPPING 으로만 만들 수 있는 별도의 노드이며, AP 서비스 인터페이스와 CP SR/CS 인터페이스를 잇는 역할만 합니다(8.7 참조).
8.3 캔버스 조작
이 절에서는 캔버스에서 사용하는 마우스 · 키보드 조작과 툴바 버튼을 정리합니다.
마우스
마우스 조작은 다음과 같습니다.
| 조작 | 동작 |
|---|---|
| 빈 곳에서 좌클릭 드래그 | 화면 이동(팬) |
| 가운데 버튼 드래그 | 화면 이동 |
Space + 좌클릭 드래그 | 화면 이동 |
| 마우스 휠 | 위아래 화면 이동 (문서 스크롤과 같은 방향) |
Shift + 휠 | 좌우 화면 이동 |
Ctrl + 휠 | 확대/축소 (0.1배 ~ 4.0배, 기본 1.0배) |
| 노드 클릭 | 선택합니다. 선택하면 여덟 개의 크기 조절 핸들이 나타납니다 |
Ctrl + 클릭 | 다중 선택 토글 (노드/연결선 모두) |
| 노드 드래그 | 이동 |
| 크기 조절 핸들 드래그 | 크기 조절 |
포트에서 Shift + 드래그 | 연결 모드 (8.6 참조) |
| 컴포지션 더블클릭 | 드릴다운 (그 컴포지션 안으로 들어갑니다) |
| Application / Complex Device Driver / Service / Ecu Abstraction / Sensor Actuator 더블클릭 | SWC Internal Behavior 다이얼로그 (8.8) |
| Adaptive Application 더블클릭 | AA Internal Behavior 다이얼로그 (8.9) |
| 우클릭 | 컨텍스트 메뉴 (8.5) |
키보드
캔버스에서 사용할 수 있는 키는 다음과 같습니다.
| 키 | 동작 |
|---|---|
Ctrl+S | 저장 |
Ctrl+Z | 실행 취소 |
Ctrl+Y / Ctrl+Shift+Z | 다시 실행 |
Esc | 웨이포인트 드래그 중이면 그 드래그만 취소하고, 아니면 선택을 해제합니다 |
캔버스에서 동작하지 않는 키가 있습니다.
Delete/Backspace,Ctrl+A,Ctrl+C/Ctrl+V/Ctrl+X, 방향키,Ctrl+Shift+S,Ctrl+O는 VFB 캔버스에서 눌러도 아무 일도 일어나지 않습니다. 특히 노드/포트 삭제는Delete키가 아니라 우클릭 메뉴의 DELETE 로 합니다. 참고로 8.8/8.9 의 상세 다이얼로그 안에서는Delete/Backspace가 정상 동작합니다.
툴바 버튼 (캔버스 왼쪽 아래)
각 툴바 버튼의 동작은 다음과 같습니다.
| 버튼 | 동작 |
|---|---|
| Zoom In / Zoom Out | 확대 / 축소. 한계에 닿으면 버튼이 흐려지고 눌리지 않습니다 |
| Fit to View | 전체 내용이 보이도록 맞춤 |
| Auto Layout | 자동 배치 (elkjs 기반, 아래 설명 참조) |
| Toggle Grid | 격자 표시 토글 (기본 켜짐) |
| Toggle Connector Animation | 연결선 흐름 애니메이션 토글 (기본 꺼짐) |
| Export as PNG | 현재 다이어그램을 PNG로 저장 |
Export as PNG 를 실행하면 프로젝트 안의 doc/capture/ 폴더에 YYYYMMDD_HHMMSS_NNN.png
형식으로 저장됩니다(NNN 은 폴더 안의 기존 파일에서 이어지는 세 자리 일련번호). 캔버스에 아무
내용도 없으면 No content to export 경고 토스트가 나타나고 저장되지 않습니다.
Auto Layout 은 손으로 조정한 연결선 경로를 모두 지웁니다. 그런 경로가 하나라도 있으면 먼저
확인 다이얼로그가 나타납니다 — 제목은 Auto Layout, 본문은 N manually adjusted connector route(s) will be replaced by the automatic layout., 버튼은 Replace / Cancel 입니다.
진행 중에는 취소할 수 있는 진행률 다이얼로그가 표시됩니다.
8.4 루트 레벨과 드릴다운
VFB에는 두 가지 레벨 개념이 있습니다.
- 루트 레벨 — 아무 컴포지션에도 들어가지 않은 상태입니다. 최상위 컴포지션과 InterfaceMapping 노드가 놓입니다.
- 드릴다운 상태 — 컴포지션 하나 안으로 들어간 상태입니다. 그 컴포지션이 프레임으로 그려지고 자식 노드가 프레임 안에 놓입니다.
컴포지션을 더블클릭하면 그 안으로 드릴다운합니다. 이미 들어와 있는(활성) 컴포지션을 다시 더블클릭하면 아무 일도 일어나지 않습니다.
드릴다운하면 캔버스 왼쪽 위에 브레드크럼이 나타나 현재 위치를 시스템명 > 컴포지션 > ...
형식으로 보여 줍니다. 앞쪽 항목을 클릭하면 그 레벨로 돌아갑니다. 맨 끝 항목은 현재 위치이므로
굵게 표시되고 클릭되지 않습니다. 루트 레벨에서는 브레드크럼이 숨겨지고 대신 SVG 시스템 라벨이
표시됩니다.

루트 레벨입니다. 최상위 컴포지션 ParkAssistComposition 하나만 놓이고, 브레드크럼 자리에는 시스템 라벨(E2eProject)이 보입니다.

같은 컴포지션을 더블클릭해 드릴다운한 모습입니다. 그 컴포지션이 프레임으로 바뀜고 자식 SWC 세 개가 프레임 안에 놓입니다. 왼쪽 위 라벨은 브레드크럼 System > ParkAssistComposition 으로 바뀝니다.
드릴다운 상태에서 프레임 바깥의 빈 캔버스를 우클릭하면 메뉴가 나타나지 않습니다. 빈 캔버스가 열린 컴포지션과 같은 레벨처럼 보이지만, 거기서 만든 노드는 그 컴포지션 하위로 들어가 레벨 착시를 주기 때문입니다. 드릴다운 상태에서 노드를 만들 때는 항상 프레임(컴포지션)을 우클릭합니다.
8.5 컨텍스트 메뉴
우클릭한 대상에 따라 컨텍스트 메뉴의 구성이 달라집니다. 이 절에서는 대상별 메뉴 항목을 정리합니다.
8.5.1 빈 캔버스 (루트 레벨에서만)
루트 레벨의 빈 캔버스를 우클릭하면 다음 메뉴가 나타납니다.
| 항목 | 동작 |
|---|---|
| ADD COMPOSITION | 새 컴포지션 추가 |
| ATTACH COMPOSITION | 이미 정의된 컴포지션을 프로토타입으로 붙입니다 |
| ADD INTERFACE MAPPING | InterfaceMapping 노드 추가 |
ATTACH COMPOSITION 서브메뉴는 다이어그램에 로드된 컴포지션과 디스크에만 있는(아직 배치되지
않은) 컴포지션을 모두 후보로 보여 줍니다. 루트 레벨에서는 루트 컴포지션 자신이 제외되고,
드릴다운 상태에서는 현재 컴포지션·조상 컴포지션·이미 자식인 컴포지션·순환 참조가 생기는
컴포지션이 제외됩니다. 후보가 없으면 (No available compositions) 가 흐린 항목으로 표시됩니다.
8.5.2 컴포지션 프레임 (현재 드릴다운 중인 컴포지션)
드릴다운 중인 컴포지션 프레임을 우클릭하면 다음 메뉴가 나타납니다.
| 항목 | 동작 |
|---|---|
| ADD SWC | 7종(8.2) 중 하나를 골라 이 컴포지션 안에 추가 |
| ATTACH SWC | 기존 SWC를 이 컴포지션의 프로토타입으로 붙입니다 |
| ADD Port | PPort / RPort / PRPort 중 하나 추가 |
| ADD COMPOSITION | 하위 컴포지션 추가 |
| ATTACH COMPOSITION | 기존 컴포지션 붙이기 |
ATTACH SWC 서브메뉴 항목은 이름 (종류) 형식으로 표시됩니다. 컴포지션 타입은 여기서
제외되고(ATTACH COMPOSITION 이 담당), 자기 자신·이미 자식인 노드·순환 참조가 생기는 노드도
제외됩니다. 후보가 없으면 (No available SWCs) 가 표시됩니다.
8.5.3 컴포지션 노드 (드릴다운 중이 아닌 컴포지션)
드릴다운 중이 아닌 컴포지션 노드를 우클릭하면 다음 메뉴가 나타납니다.
| 항목 | 동작 |
|---|---|
| ADD Port | PPort / RPort / PRPort 추가 |
| Map to ECU/HPC | IVC의 ECU/HPC 목록에서 골라 매핑 (최상위 컴포지션에만 표시) |
| DETACH | 상위 컴포지션에서 떼어냅니다. 상위가 없으면 흐리게 비활성화됩니다 |
| DELETE | 삭제 (아래 확인 창을 거칩니다) |
자식 노드는 그 컴포지션 안으로 드릴다운해서 관리합니다. 따라서 이 메뉴에는 ADD SWC 나 ATTACH SWC 가 없습니다.
DETACH와 DELETE는 적용 범위가 다르므로 주의가 필요합니다. DETACH 는 상위 컴포지션에서 그 프로토타입만 떼어내며, SWC 타입 자체는 남습니다. DELETE 는 제목이 Delete SWC 인 확인 창을 먼저 띄우고, Delete 를 선택하면 그 SWC를 모든 컴포지션에서 제거하고 타입 파일까지 삭제합니다. 확인 창의 본문은 다음과 같습니다.
Are you sure you want to delete "<이름>"?This will remove the SWC from all compositions and delete its type file.This action cannot be undone.파일 삭제는 저장 시점에 반영됩니다(8.1 참고).
Map to ECU/HPC 서브메뉴의 구성은 다음과 같습니다.
| 항목 | 표시 |
|---|---|
| 이미 이 컴포지션에 매핑된 노드 | DoorEcu [ECU] ✓ — 다시 선택하면 매핑이 해제됩니다 |
| 다른 컴포지션에 매핑된 노드 | DoorEcu [ECU] (<- OtherComposition) |
| 매핑되지 않은 노드 | DoorEcu [ECU] |
| Unmap | 현재 매핑이 있을 때만 표시됩니다 |
| Create ECU & Map | 같은 이름의 ECU를 IVC에 만들고 매핑합니다. 이미 매핑돼 있으면 비활성화됩니다 |
| Create HPC & Map | 같은 이름의 HPC를 IVC에 만들고 매핑합니다. 이미 매핑돼 있으면 비활성화됩니다 |
ECU에 매핑되면 노드 머리글에 초록색 ECU 아이콘이, HPC에 매핑되면 파란색 HPC 아이콘이 붙습니다. 아이콘을 한 번 클릭하면 각각 ECU Configuration(8.12) / Machine Configuration(8.10) 다이얼로그가 열립니다. 아이콘 위에서 더블클릭해도 드릴다운으로 이어지지 않습니다.
8.5.4 Atomic SWC 노드
Atomic SWC 노드를 우클릭하면 다음 메뉴가 나타납니다.
| 항목 | 동작 |
|---|---|
| ADD Port | PPort / RPort / PRPort 추가 |
| DETACH SWC | 상위 컴포지션에서 떼어냅니다. 상위가 없으면 비활성화됩니다 |
| DELETE | 삭제합니다. 8.5.3 과 같은 Delete SWC 확인 창을 거치며, 타입 파일까지 삭제합니다 |
8.5.5 Port 노드
포트를 우클릭하면 다음 메뉴가 나타납니다.
| 항목 | 동작 |
|---|---|
| CONNECT TO | 호환되는 상대 포트 목록에서 골라 연결 |
| CONNECT TO MAPPING | InterfaceMapping 노드로 연결 |
| DERIVE SR/CS INTERFACE | 이 포트의 ServiceInterface에서 SR/CS 인터페이스와 InterfaceMapping을 파생 |
| DELETE | 포트 삭제 |
- CONNECT TO 후보는
[D] SwcName / PortName또는[A] SwcName / PortName형식으로 표시됩니다.D는 delegation,A는 assembly 커넥터를 뜻합니다. 상황별 안내 항목은(Port not found),(PortInterface not set),(No compatible ports)입니다. - CONNECT TO MAPPING 은 InterfaceMapping 노드가 하나도 없으면
(No InterfaceMapping nodes)를 표시합니다. - DERIVE SR/CS INTERFACE 는 세 조건을 모두 만족할 때만 나타납니다 — 루트 레벨일 것,
포트에 인터페이스가 지정되어 있을 것, 그 인터페이스의 카테고리가
service일 것. 드릴다운 상태에서는 표시되지 않습니다.
8.5.6 InterfaceMapping 노드
메뉴 항목은 DELETE 하나뿐입니다.
8.5.7 연결선
연결선을 우클릭하면 다음 메뉴가 나타납니다.
| 항목 | 동작 |
|---|---|
| TO STEP EDGE | 저장된 경로를 지워 자동 직교(step) 라우터가 다시 그리게 합니다. 저장된 경로가 있을 때만 표시됩니다 |
| TO STRAIGHT | 양 끝점을 직선으로 잇습니다. 이미 직선이면 표시되지 않습니다 |
| DISCONNECT | 연결 해제 |
세 항목은 SwConnector 연결선과 InterfaceMapping 연결선에 똑같이 적용됩니다. 연결선 위의 웨이포인트 핸들을 우클릭해도 같은 메뉴가 열립니다.
8.6 포트 연결
연결을 만드는 방법은 드래그와 메뉴 두 가지입니다.
드래그로 만들 때는 다음 절차를 따릅니다.
- 포트에서
Shift를 누른 채 드래그합니다. 프리뷰 선이 따라오고, 놓을 수 있는 대상은 초록색, 놓을 수 없는 대상은 빨간색으로 강조됩니다. - 대상 위에서 버튼을 놓습니다. 놓는 위치에 따라 결과가 달라집니다.
- 호환되는 상대 포트 위 → 두 포트가 연결됩니다.
- SWC 몸통 위 → 짝이 되는 포트가 자동으로 만들어지고 연결됩니다.
- InterfaceMapping 노드 위 → 그 노드로 연결됩니다.
- 연결선을 클릭해 결과를 확인합니다. 우측 속성 패널에 Basic Info 섹션이 나타나면 연결이 만들어진 것입니다.
Shift 없이 드래그하면 연결이 아니라 이동이 됩니다.
메뉴로 만들 때는 포트를 우클릭한 뒤 CONNECT TO / CONNECT TO MAPPING 서브메뉴에서 상대를 선택합니다(8.5.5).
8.7 속성 패널 (우측)
선택한 대상에 따라 표시되는 필드와 아코디언 섹션이 달라집니다. 아무것도 선택하지 않았을 때는
Select an element to view properties 가 표시됩니다.
SWC / 컴포지션 노드
SWC 또는 컴포지션 노드를 선택하면 다음 필드가 표시됩니다.
| 필드/섹션 | 내용 |
|---|---|
| Name | SWC 타입의 SHORT-NAME |
| AS Prototype | 이 컴포지션 안에서의 프로토타입 SHORT-NAME |
| Description | 설명 (여러 줄) |
| Ports | 포트 목록. 각 행은 방향 배지(P / R / PR) + 이름 + PortInterface 이름으로 이루어집니다. 인터페이스가 없으면 (none). 행을 클릭하면 그 포트가 선택되고, 행 끝의 × 로 삭제합니다. 포트가 없으면 No ports available |

Atomic SWC WheelButtonHandler 를 선택한 화면입니다. 패널 제목이 APPLICATION으로 바뀜고, Ports 에 R 배지의 RpWheelButtons 와 P 배지의 PpWheelButtonStatus 가 각각 PortInterface 이름과 함께 나옵니다.
Port 노드
포트를 선택하면 다음 필드가 표시됩니다.
| 필드/섹션 | 내용 |
|---|---|
| Name | 포트 SHORT-NAME |
| Port Interface | 검색 가능한 참조 드롭다운 + [+] 새 인터페이스 만들기 버튼. 비우면 Port-Interface is required 오류가 표시됩니다 |
| ComSpec 섹션 | 인터페이스 카테고리에 따라 아래 표대로 하나가 붙습니다 |
| Data Mapping | 컴포지션 경계 포트이면서 데이터 요소가 있을 때만 나타납니다 |
ComSpec 섹션 이름은 인터페이스 카테고리에 따라 다음과 같이 달라집니다.
| 인터페이스 카테고리 | ComSpec 섹션 이름 |
|---|---|
| Sender-Receiver | Data Element |
| Client-Server | Operation |
| Service | Service ComSpec |
| Mode-Switch | Mode Group |
초기값(Init Value)은 공용 ValueSpecEditor 위젯으로 편집합니다.
Port Interface 드롭다운의 후보는 부모 SWC 종류에 따라 다음과 같이 걸러집니다.
| 부모 SWC 종류 | 후보 |
|---|---|
| Adaptive Application | ServiceInterface + AP 계열 전체(아래 방향 제약 적용) |
| Composition | AP 계열을 제외한 전부 (ServiceInterface와 CP 계열) |
| 그 밖의 Atomic SWC | Sender-Receiver · Client-Server · Mode-Switch 세 가지뿐 |
Adaptive Application 포트에는 방향 제약이 함께 적용됩니다. 인터페이스별로 선택할 수 있는 포트 방향은 다음과 같습니다.
| 인터페이스 | 고를 수 있는 포트 방향 |
|---|---|
| ServiceInterface | PPort · RPort (PRPort에서는 나오지 않습니다) |
| PhmRecoveryNotification · SynchronizedTimeBaseProvider · NetworkManagement · IdsmTimestampProvider · IdsmContextProvider | PPort |
| Persistency 2종 (KeyValueStorage · FileStorage) | PPort · RPort · PRPort |
| 그 밖의 AP 계열 전부 (LogAndTrace · SM 4종 · PhmSupervisedEntity · SynchronizedTimeBaseConsumer · Crypto 5종 · RDS 4종 · 나머지 IDSM 3종) | RPort |
목록의 각 항목에는 SenderReceiver:, Service:, SM.StateClient:, Crypto.KeySlot: 처럼 종류
접두사가 붙습니다.

포트 RpWheelButtons 를 선택한 화면입니다. 패널 제목은 RPORT, Port Interface 에는 종류 접두사가 붙은 SenderReceiver: IfWheelButtons 가 들어 있습니다. Sender-Receiver 이므로 ComSpec 섹션 이름은 DATA ELEMENT 이고, 그 안에 uint8 / Buttons / NON-QUEUED 한 줄이 보입니다.
연결선
Basic Info 섹션에 Name 필드 하나가 있습니다.
InterfaceMapping 노드
InterfaceMapping 노드를 선택하면 다음 필드가 표시됩니다.
| 필드/섹션 | 내용 |
|---|---|
| Name | 매핑 SHORT-NAME |
| Description | 설명 |
| Interfaces | Service Interface(읽기 전용) + Mapped Port Interfaces 목록 |
| Event Mappings | 서비스 이벤트 → SR 데이터 요소 |
| Method Mappings | 서비스 메서드 → CS 오퍼레이션. Fire&Forget 메서드에는 F&F 배지가 붙습니다 |
| Field Mappings | 서비스 필드 → Notifier / Getter / Setter |
| Connected Ports | 이 노드에 연결된 포트 목록 |
서비스 인터페이스가 아직 해석되지 않으면 요소 단위 매핑 섹션 대신
Connect to a ServiceInterface port to configure element-level mappings. 가 표시됩니다.
속성 패널은 선택만으로 모델을 바꾸지 않습니다. 매핑 표에 비어 있는 행이 미리 보이더라도 그것은 화면용 골격일 뿐이며, 실제 값은 사용자가 처음 편집했을 때 기록됩니다.
8.8 SWC Internal Behavior 다이얼로그
Application / Complex Device Driver / Service / Ecu Abstraction / Sensor Actuator 노드를
더블클릭하면 열립니다. 제목은 SWC Internal Behavior [<SWC 이름>] 입니다. 왼쪽은 SVG 캔버스,
오른쪽은 속성 패널입니다.

WheelButtonHandler 를 더블클릭해 열은 모습입니다. 왼쪽 캔버스에는 SWC 몸통과 그 양쪽에 붙은 포트, 그리고 안쪽에 Runnable 두 개가 놓입니다. 오른쪽은 직전에 본 속성 패널과 같은 구성입니다.
캔버스 우클릭
우클릭한 대상에 따라 메뉴가 달라집니다. 대상별 항목은 다음과 같습니다.
| 우클릭 대상 | 항목 |
|---|---|
| SWC 몸통 | ADD Port ▸ PPort / RPort / PRPort, ADD RUNNABLE, ADD IRV |
| 포트 | DELETE |
| Runnable | ADD RTEEvent ▸ RTE 이벤트 7종, DEL RUNNABLE |
| Runnable 위의 RTE 이벤트 아이콘 | DEL EVENT |
| IRV | DELETE IRV |
| ITP | Add Triggered Runnable ▸ 후보 Runnable 목록(후보가 없으면 항목 자체가 사라집니다), DELETE ITP |
캔버스에서 요소를 선택하고 Delete 또는 Backspace 를 누르면 선택한 포트 / Runnable / IRV /
ITP가 삭제됩니다(입력 필드에 포커스가 있을 때는 무시됩니다).
Runnable 속성
Runnable을 선택하면 오른쪽 패널 제목이 Runnable 이 되고 2×2 격자로 기본 필드가 나타납니다.
각 필드의 의미는 다음과 같습니다.
| 필드 | 설명 |
|---|---|
| NAME | AUTOSAR SHORT-NAME. 같은 SWC 안에서 중복되면 A runnable with this name already exists 오류가 표시되고 커밋되지 않습니다 |
| SYMBOL | 생성 코드의 C 함수 이름 (C-IDENTIFIER) |
| CAN BE INVOKED | TRUE / FALSE |
| MIN START INTERVAL | 최소 시작 간격 (0 이상) |
그 아래로 Access Points 와 RTE Events 두 아코디언 섹션이 있고, 각 섹션 머리글의 +
버튼을 누르면 종류 선택 메뉴가 열립니다.
RTE Events 의 + 메뉴가 제공하는 이벤트는 7종입니다. Runnable 노드를 우클릭했을 때 나오는
ADD RTEEvent 서브메뉴도 같은 7종입니다.
- TimingEvent
- BackgroundEvent
- DataReceivedEvent
- OperationInvokedEvent
- SwcModeSwitchEvent
- InitEvent
- InternalTriggeredEvent
Access Points 의 + 메뉴는 액세스 포인트 9종에 InternalTriggeringPoint 를 더해 10개
항목을 제공합니다.
- DataSendPoint
- DataReceivedPoint
- SyncServerCallPoint
- DataWriteAccess
- DataReadAccess
- WrittenLocalVariable
- ReadLocalVariable
- ModeSwitchPoint
- ModeAccessPoint
- InternalTriggeringPoint
InternalTriggeringPoint 는 액세스 포인트 목록과 같은 + 메뉴에 들어 있지만 VARIABLE-ACCESS가
아니라 Runnable이 소유하는 별도의 요소로 저장됩니다. InternalTriggeredEvent는 RTE 이벤트
메뉴에서 먼저 만든 뒤, 상세 패널의 INTERNAL TRIGGERING POINT 필드에서 어떤 ITP에 묶을지
선택합니다.
액세스 포인트나 RTE 이벤트를 선택하면 그 종류에 맞는 상세 필드가 아래에 나타납니다. 예를 들어 LOCAL VARIABLE, MODE GROUP, TIMEOUT, PERIOD, OFFSET, R-PORT / P-PORT, DATA ELEMENT, OPERATION, TARGET MODE 가 있습니다.
포트에서 Shift 를 누른 채 Runnable 위로 드래그하면, 그 포트의 방향과 인터페이스 카테고리에
맞는 항목만 골라 담은 메뉴가 나타납니다. 예를 들어 P-Port + Sender-Receiver 조합에서는
DataSendPoint와 DataWriteAccess가, R-Port + Client-Server 조합에서는 SyncServerCallPoint가,
P-Port + Client-Server 조합에서는 OperationInvokedEvent가 제안됩니다. IRV를 같은 방식으로
Runnable 위로 끌면 READ / WRITE 중 하나를 고르는 메뉴가 나타나고, 선택한 쪽에 맞는
로컬 변수 액세스 포인트가 만들어집니다.
8.9 AA Internal Behavior 다이얼로그 (Adaptive Application)
Adaptive Application 노드를 더블클릭하면 열립니다. 제목은 AA Internal Behavior [<노드 이름>]
입니다. 오른쪽 패널에는 탭이 두 개 있습니다.

이 다이얼로그를 여는 대상입니다. Adaptive Application 노드는 다른 SWC 와 색이 다르게 그려지며, 오른쪽 경계의 반원 모양 포트가 AP 계열 인터페이스입니다.
| 탭 | 내용 |
|---|---|
| PROPERTIES | Executable 정보 — NAME, ROOT SWC PROTOTYPE, 카테고리(APPLICATION / PLATFORM), 빌드 타입(DEBUG / RELEASE), VERSION, MINIMUM TIMER GRANULARITY. 매핑 상자를 선택하면 그 상자의 속성이 대신 표시됩니다 |
| EXECUTION | Process 목록. 각 프로세스 행을 펼치면 NAME 과 아래 네 개의 하위 섹션이 나타납니다 |
EXECUTION 탭 프로세스 행의 하위 섹션은 다음과 같습니다.
| 하위 섹션 | 항목 |
|---|---|
| STARTUP CONFIG | ENTER TIMEOUT, EXIT TIMEOUT, CPU USAGE, MEM USAGE, SCHEDULING POLICY, SCHEDULING PRIORITY, EXECUTION ERROR, TERMINATION BEHAVIOR |
| FUNCTION GROUP STATE | 함수그룹 : 상태 행 목록. 머리글의 + 로 추가하고 행 끝의 × 로 지웁니다. 비어 있으면 No function group states defined |
| EXECUTION DEPENDENCY | 프로세스 : 상태 행 목록. 비어 있으면 No execution dependencies defined |
| LOG CONFIG | APPLICATION ID, APPLICATION DESCRIPTION, DEFAULT LOG LEVEL, LOG MODE, 그리고 DLT 컨텍스트별 CONTEXT ID / CONTEXT DESCRIPTION |

Camera 를 더블클릭해 열고 EXECUTION 탭을 고른 모습입니다. 위쪽 EXECUTABLE 에 카테고리와 빌드 타입 같은 세그먼트가, 아래 PROCESS 에 프로세스 목록이 있습니다. 왼쪽 캔버스의 초록색 상자는 PHM 감시 대상(Supervision)입니다.
캔버스 우클릭 (AA 몸통)
AA 몸통을 우클릭하면 다음 메뉴가 나타납니다.
| 항목 | 동작 |
|---|---|
| ADD Port ▸ PPort / RPort / PRPort | 포트 추가 |
| ADD Instance ▸ 기능 클러스터 ▸ 항목 | AP 매핑 상자 추가 |
ADD Instance 메뉴는 AUTOSAR AP 기능 클러스터별로 묶여 있습니다. 클러스터는 10개, 항목은 모두 합쳐 22개입니다. 다만 조건에 걸린 항목은 메뉴에서 빠지고, ara::crypto 는 네 항목이 모두 빠지면 클러스터 자체가 사라집니다. 클러스터별 항목과 표시 조건은 다음과 같습니다.
| 클러스터 | 항목 | 표시 조건 |
|---|---|---|
| ara::com | Service Instance | 항상 |
| ara::log | DLT Sink | 항상 |
| ara::sm | Function Group | 항상 |
| ara::phm | Supervised Entity | 상위에 HPC/Machine이 있을 때 |
| ara::phm | Recovery Notification | 항상 |
| ara::nm | Network Handle | 클러스터 전체가 Machine의 nm 모듈에 NM 네트워크 핸들이 1개 이상 있을 때만 표시 |
| ara::tsync | Time Base | 클러스터 전체가 Machine에 TimeBaseResource가 1개 이상 있을 때만 표시 |
| ara::crypto | Crypto Key Slot / Crypto Certificate / Crypto Certificate Group / Crypto Provider | 항목별로 Machine의 crypto 모듈에 해당 요소가 있을 때 (Key Slot은 키 슬롯을 가진 Provider가 있을 때) |
| ara::idsm | Timestamp Provider / Context Provider / Reporting Mode Provider / Qualified Event Receiver / Security Event | 클러스터 전체가 Machine에 idsm 모듈이 있을 때만 표시 |
| ara::per | Key Value Storage / File Storage | 항상 |
| ara::rds | Raw Data Stream Client / Raw Data Stream Server / Raw Data Stream IEEE1722 Consumer / Raw Data Stream IEEE1722 Producer | 항상 |
ara::idsm ▸ Timestamp Provider는 메뉴에 있어도, Machine의 IDSM 모듈에 이미 Ids Time Base가 지정되어 있으면 추가가 거부되고 안내 메시지가 표시됩니다(둘은 동시에 사용할 수 없습니다).
매핑 상자를 우클릭하면 DEL Instance, 포트를 우클릭하면 DELETE 가 나타납니다. 포트에서
Shift + 드래그하면 매핑 상자로 연결선을 그을 수 있습니다.
조건이 걸린 클러스터가 보이지 않는다면 Machine Configuration 다이얼로그(8.10)에서 해당 모듈의 요소를 먼저 만듭니다. 예를 들어 ara::tsync ▸ Time Base가 없으면 MODULE 탭 ▸ TS ▸ TIME BASES 에서 타임 베이스를 하나 추가한 뒤 다시 열어 봅니다.
8.10 Machine Configuration 다이얼로그 (Adaptive)
HPC에 매핑된 컴포지션 노드의 HPC 아이콘(파란색)을 클릭하면 열립니다. 탭은 네 개입니다.
| 탭 | 내용 |
|---|---|
| MACHINE | OS(OS 모듈 인스턴스 SHORT-NAME), TRUSTED PLATFORM(STRICT / MONITOR / NO SUPPORT), DESCRIPTION, 그리고 PROCESSOR 이름과 Core / Core ID 두 열짜리 코어 표 |
| FUNCTION GROUP | 왼쪽 Function Groups 목록(+ / − / ⚡), 가운데 CONFIGURATION(Name · Description · MODE DECLARATION), 오른쪽 상태 머신 다이어그램 |
| PROCESSES | 이 컴포지션의 Adaptive Application 프로세스를 3분할로 보여 줍니다. 왼쪽 Processes 목록, 가운데 상세, 오른쪽 프로세스 그래프입니다 (8.10.2) |
| MODULE | AP 기능 클러스터 모듈 설정 (8.10.1) |

네 개 탭과 첫 번째 MACHINE 탭입니다. TRUSTED PLATFORM 은 세 값 중 NO SUPPORT, PROCESSOR 는 아래 설명대로 자동으로 채워진 CPU / Core0(Core ID 0) 한 개입니다. 오른쪽 위 PARA Platform 버튼은 8.11에서 다룹니다.
다이얼로그를 열 때 필요한 요소가 자동으로 채워집니다.
- MachineFG 함수 그룹이 없으면 만들어집니다. 이 그룹은 삭제할 수 없고, 모드 선언 중
Off,Startup,Shutdown,Restart,Verify다섯 개는 지울 수 없습니다. - 10종 모듈 인스턴스가 없으면 고정 이름(
LOG,CM,SM,NM,PHM,TIME_SYNC,CRYPTO,PERSISTENCY,IDSM,UCM)으로 만들어집니다. 따라서 MODULE 탭에는 항상 10개가 모두 보입니다. - 프로세서 정보가 없으면
CPU/Core0(Core ID 0) 한 개로 채워집니다.
새 Function Group을 추가하면 초기 모드가 Off 인 그룹이 만들어집니다. MachineFG 는 이름을
바꿀 수 없습니다. FUNCTION GROUP 탭의 ⚡ 버튼은 현재 함수 그룹 목록에 맞춰 StateClient
인터페이스와 SM SWC의 R-Port를 다시 맞춥니다. 아직 HPC가 연결되지 않았으면 먼저 한 번
저장하라는 안내 창이 나타납니다. 정상 실행되면 결과가 안내 창으로 표시됩니다. 바뀐 것이 없으면
All StateClientInterfaces and SM SWC R-Ports are already in sync with the configured Function Groups.,
바뀌었으면 Synchronized StateClientInterface and SM SWC R-Ports: 2 created, 1 removed.
형태입니다.
− 로 함수 그룹을 지울 때는 Delete Function Group 확인 창이 먼저 나타납니다. 본문은 그
그룹에서 자동 생성된 StateClient 인터페이스가 Interface 에디터에서 함께 지워진다는 사실을
알려 줍니다. MachineFG 는 이 버튼으로도 지워지지 않습니다.
PROCESSES 탭에 프로세스가 하나도 없으면
No Adaptive Application processes found in this Composition, 프로세스를 선택하지 않았으면
Select a process 가 표시됩니다. MACHINE 탭에 코어가 하나도 없으면 CORE AFFINITY 자리에
No processor cores defined in MACHINE tab 이 표시됩니다.
이 다이얼로그는 기능이 많습니다. 10종 모듈 인스턴스는 다이얼로그를 열 때 자동으로 만들어지므로, 처음에는 지금 필요한 클러스터만 편집하고 나머지는 그대로 두어도 됩니다.
8.10.1 MODULE 탭의 10개 모듈
왼쪽 목록에서 모듈을 선택하면 가운데에 편집 화면이, 오른쪽에 개요 캔버스가 나타납니다. 모듈별 구성은 다음과 같습니다.
| 배지 | 모듈 | 가운데 편집 화면 | 오른쪽 개요 |
|---|---|---|---|
| LOG | Log and Trace | DLT ECU 섹션 + DLT APPLICATION 표(Process / DLT Application ID / Log Mode / Default Log Level) | DLT 계층 뷰어 (DltEcu → DltApplication → DltContext) |
| CM | Communication Management | ACCESS CONTROL + GRANTS 아코디언 | 없음 |
| SM | State Management | NOTIFICATIONS / REQUESTS / ACTION ITEMS 세 하위 탭 | 상태 머신 · 배선 다이어그램 |
| NM | Network Management | NETWORK HANDLES 하위 탭 (핸들별 Name / VLANs / Partial Networks) | 선택한 핸들의 NM 상태 머신 |
| PHM | Platform Health Management | CHECK POINTS / GLOBAL SUPERVISIONS 두 하위 탭 | 감시 체크포인트 전이 다이어그램 |
| TS | Time Synchronization | TIME BASES 하위 탭 (Provider / Consumer 선택 후 생성) | GlobalTime 허브/스포크 다이어그램 |
| CRY | Cryptography | PROVIDERS / CERTIFICATES / CERT GROUPS 세 하위 탭 | 없음 |
| PER | Persistency | KEY VALUE STORAGES / FILE STORAGES 두 하위 탭 | 없음 |
| IDS | Intrusion Detection | Network Endpoint(하위에 Remote Configs), Ids Time Base, Reportable Security Events 섹션 | 없음 |
| UCM | Update and Configuration Management | VUCM(UCM Master) / UCM(UCM Subordinate) 두 하위 탭 | 없음 |
개요가 없는 모듈에서는 오른쪽에 No overview for this module 이 표시됩니다.
SM 의 ACTION ITEMS 하위 탭에서는 항목 카드를 드래그해 목록 안의 순서를 바꿀 수 있습니다. 바뀐 순서는 모델에 그대로 기록되고 익스포트에도 그대로 반영되며, 순서 변경은 실행 취소 한 번으로 되돌아갑니다.
PER 의 각 저장소 행에는 ⚡ Derive PersistencyInterface 액션이 있습니다. 실행하면
저장소 내용에서 Persistency 인터페이스를 만들어 Interface 에디터의 INTERFACE 모델에
추가합니다(09. Interface 에디터 참조).
UCM 에는 SHORT-NAME 필드가 없습니다. 익스포트할 때 고정된 표준 이름을 쓰기 때문입니다.
8.10.2 PROCESSES 탭
왼쪽 Processes 목록에는 이 컴포지션에 있는 Adaptive Application의 프로세스가
<AA 이름>/<프로세스 이름> 기준으로 모두 나열됩니다. 프로세스를 선택하면 가운데 상세 패널이
아래 순서로 채워집니다.
| 구역 | 내용 |
|---|---|
| CORE AFFINITY | 이 프로세스를 어느 코어에 붙일지 선택합니다. 상세 패널 본문에서 편집할 수 있는 유일한 값입니다 |
| Adaptive Application 정보 | 프로세스를 소유한 AA 노드의 정보 (읽기 전용) |
| STARTUP CONFIG | 시작 설정 (읽기 전용) |
| FUNCTION GROUP STATE | 함수그룹 : 상태 목록. 비어 있으면 No FG states configured |
| EXECUTION DEPENDENCY | 실행 의존성 목록. 비어 있으면 No execution dependencies |
오른쪽 패널에는 프로세스 그래프가 그려집니다. 각 프로세스를 상자로 놓고 함수 그룹 상태와 실행 의존성을 선으로 잇습니다.
기능 클러스터 지정 (Mark as SM / Mark as PHM)
상세 패널 머리글 오른쪽에는 버튼이 두 개 있습니다. 프로세스에 AP 기능 클러스터 소속
(functionClusterAffiliation)을 지정하는 버튼이며, 한 Machine 안에서 각 소속은 프로세스
하나만 가질 수 있습니다.
| 버튼 | 지정하는 값 | 지정되면 |
|---|---|---|
| Mark as SM / Unmark as SM | State Management | 머리글에 STATE_MANAGEMENT 배지가 붙습니다 |
| Mark as PHM / Unmark as PHM | Platform Health Management | 머리글에 PLATFORM_HEALTH_MANAGEMENT 배지가 붙습니다 |
배지 안의 × 를 눌러도 지정이 해제됩니다.
SM 지정은 배선까지 만듭니다. Mark as SM 은 소속 값만 기록하는 것이 아니라, 현재 함수 그룹마다 SM SWC에 StateClient R-Port와 FunctionGroupPortMapping을 함께 만듭니다. 해제하면 그 배선이 다시 지워집니다. 그래서 해제와 이관에는 확인 창이 뒤따릅니다. 상황별 확인 창은 다음과 같습니다.
| 상황 | 확인 창 제목 | 확인 버튼 |
|---|---|---|
| SM 지정 해제 | Unmark as State Management | Unmark |
| 다른 프로세스가 이미 SM인 상태에서 Mark as SM | Reassign State Management | Reassign |
| 다른 프로세스가 이미 PHM인 상태에서 Mark as PHM | Reassign Platform Health Management | Reassign |
| SM으로 지정된 프로세스에 Mark as PHM | Process is State Management | 진행 불가. SM을 먼저 해제하라는 안내만 표시됩니다 |
PHM 지정은 배선을 만들지 않습니다. 소속 값만 기록하므로 지정과 해제 모두 확인 없이 즉시 반영됩니다.
지정 해제가 지우는 범위는 SM SWC의 R-Port와 FunctionGroupPortMapping까지입니다. Interface 에디터에 만들어져 있던 StateClient 인터페이스 자체는 지우지 않고 남깁니다.
지정 · 해제 · 이관은 각각 VFB 편집 이력의 한 항목으로 묶여 기록됩니다. 배선이 함수 그룹
수만큼 만들어지거나 지워져도 항목은 하나이므로 실행 취소 한 번이면 전부 되돌아갑니다.
다이얼로그 안에서 Ctrl+Z 를 누르면 다이얼로그 자체의 편집 이력이 먼저
소비되므로(18.3 참고), 지정 · 해제만 되돌리려면 다이얼로그를 닫은 뒤
Ctrl+Z 를 누르는 것이 확실합니다.
표시와 실제 동작이 다른 항목이 있습니다. SM 해제 확인 창의 본문은
This action cannot be undone.으로 끝나지만, 실제로는 위에서 설명한 대로 실행 취소로 되돌릴 수 있습니다.
8.11 PARA Base Configuration
PopcornSAR AUTOSAR Adaptive Platform 기본 구성을 프로젝트에 주입하는 기능입니다. 실행 방법은 두 가지입니다.
- Machine Configuration 다이얼로그 머리글의 PARA Platform 버튼을 누릅니다. 다이얼로그에 저장하지 않은 편집이 있으면 먼저 저장 여부를 묻습니다. 확인 창에서 Import 를 누르면 다이얼로그가 닫힌 뒤 주입이 시작됩니다(주입은 프로젝트 수준의 실행 취소 단위이므로 다이얼로그의 내부 편집 트랜잭션 밖에서 실행되어야 합니다).
- 명령 팔레트에서 PARA: Import Platform 을 실행합니다.
명령 팔레트 경로는 활성 VFB 에디터가 처리하며, HPC에 매핑된 컴포지션이 정확히 하나일 때만
바로 진행합니다. 그렇지 않으면
Select the target machine via the PARA Platform button in the Machine Configuration dialog.
안내 토스트가 나타납니다. VFB 에디터가 열려 있지 않으면
Open a VFB editor with an HPC-mapped composition, or use the PARA Platform button in the Machine Configuration dialog. 가 표시됩니다.
확인 창의 제목은 Import PARA Platform, 부제는 PopcornSAR AUTOSAR Adaptive Platform 이고
버튼은 Cancel / Import 입니다. 창에 표시되는 수치는 번들에서 그때그때 세어 보여
줍니다. 항목별 값은 다음과 같습니다.
| 항목 | 번들에 들어 있는 값 |
|---|---|
| Applications | 11 (CM, CSM, DM, EM, IDSM, NM, PHM, SM, TBM, UCM, VUCM) |
| Service Interfaces | 8 (+1 SM) — 서비스 인터페이스 8개와 SM 인터페이스 StateClient_MachineFG 1개 |
| Error Domains | 4 (Com / Sm / Ucm / Vucm) |
| Data Types | 62 |
| Connectors | 5 (PARA 컴포지션의 커넥터. 이 컴포지션은 프로토타입 11개와 제공 포트 3개를 갖습니다) |
| Machine | MachineFG 함수 그룹 + 모듈 인스턴스 7개 (LOG, CM, SM, NM, PHM, TIME_SYNC, CRYPTO) |
확인 창에는 다음 두 줄의 안내가 함께 표시됩니다.
Network binding (SOME/IP, DDS, IPC) is not included. Configure it in Deployment after adding.Existing items with different content will ask for per-item confirmation.
주입은 ARXML 임포트와 같은 병합 파이프라인을 사용합니다. 따라서 충돌이 있으면 충돌 해결 다이얼로그가 나타나고, 전체가 하나의 실행 취소 단위로 기록됩니다. 성공하면 같은 머신의 Machine Configuration 다이얼로그가 다시 열려 MachineFG와 모듈이 합쳐진 결과를 보여 줍니다.
번들의 머신 파일은 별도의 머신으로 추가되지 않습니다. 그 안의 함수 그룹과 모듈 인스턴스만
사용자가 선택한 머신에 합쳐지고, 머신 이름 · 프로세서 · OS 같은 정체성 필드는 건드리지
않습니다. 번들 안의 HPC/... 참조는 주입 시점에 대상 머신 이름으로 다시 묶입니다. IVC와
SIGNAL 모델은 번들에 없으므로 그대로 유지되며, SYSTEM 모델은 대상 머신을 HPC로 등록하고
SWC-ECU 매핑을 기록하는 만큼만 바뀝니다.
8.12 ECU Configuration 다이얼로그 (Classic)
ECU에 매핑된 컴포지션 노드의 ECU 아이콘(초록색)을 클릭하면 열립니다. 탭은 두 개입니다.
| 탭 | 내용 |
|---|---|
| ECU | IVC에서 읽어 온 ECU 정보를 읽기 전용으로 보여 줍니다 — CONNECTORS, CONTROLLERS, SERVICE INSTANCES, APPLICATION ENDPOINTS 표 |
| TASK | OS 태스크와 Runnable 매핑을 편집합니다 |
TASK 탭 왼쪽의 OS TASKS 목록에는 +(Add Task), −(Delete Task), ⚡(Auto-Generate)
버튼이 있습니다. + 를 누르면 OsTask_<번호> 이름에 우선순위 1, 스케줄 FULL, 활성화 1 인
태스크가 만들어집니다. 태스크가 없으면 No tasks defined, 선택하지 않았으면
Select a task from the list 가 표시됩니다.
⚡(Auto-Generate)는 TimingEvent를 주기별로 묶어 주기마다 태스크 하나(OsTask_<주기>ms)와
알람 하나(OsAlarm_<주기>ms)를 만들고, 해당 이벤트를 그 태스크에 배정합니다. 카운터가 하나도
없으면 OsCounter 를 함께 만듭니다. 이때 기존 태스크와 알람 목록은 통째로 교체되므로 주의가
필요합니다. TimingEvent가 아닌 이벤트는 배정하지 않고 남겨 둡니다.
가운데 TASK CONFIGURATION 패널은 두 부분으로 나뉩니다.
| 부분 | 내용 |
|---|---|
| OS TASK 섹션 | 태스크 이름, Task Schedule(FULL / NON), Task Priority, 활성화 횟수, Autostart 스위치와 그 옆의 Os App Mode 참조, OS EVENT(이벤트 참조 + EVENT MASK 16진 입력) |
| OS ALARM 아코디언 | 머리글의 + 로 알람을 연결하거나 새로 만들고 × 로 연결을 끊습니다. 펼치면 알람 이름, OS COUNTER, AUTOSTART(Autostart Type: ABSOLUTE / RELATIVE) 가 나타납니다 |
오른쪽 RTE EVENT TO TASK MAPPING 패널에서 RTE 이벤트를 태스크에 배정합니다. 매핑된
이벤트가 없으면 No events mapped to this task, 모두 매핑됐으면 All events are mapped 가
표시됩니다. 이 컴포지션에 Atomic SWC 인스턴스가 없으면
No Atomic SWC instances found in this ECU composition. 이 표시됩니다.
이미 매핑된 행은 드래그로 순서를 바꿀 수 있습니다. 행을 잡고 위아래로 끌면 삽입선이 표시되고, 놓으면 그 자리로 옮겨집니다. 이 순서가 곧 태스크 안에서의 실행 순서이며, 위에서부터 0번으로 다시 번호가 매겨져 모델에 기록됩니다. 순서 변경은 실행 취소 한 번으로 되돌아갑니다. 아직 매핑되지 않은 이벤트 행은 끌 수 없습니다.
TASK 탭의 내용은 Os 와 Rte 모듈 설정과 양방향으로
동기화됩니다. 따라서 여기서 만든 태스크는 12. ECUC 에서도 보입니다.
8.13 저장 · 실행 취소 · 외부 변경
Ctrl+S로 저장하면 8.1의 파일이 한 번에 기록되고, 이름이 바뀌어 쓸모없어진 SWC 정의 / Machine 설정 파일이 삭제됩니다.- 실행 취소와 다시 실행은 한 프로젝트의 모든 에디터가 공유하는 하나의 타임라인을 사용합니다. VFB 노드의 위치 · 크기 · 포트 위치 · 경계 포트 변경과 연결선 경로도 실행 취소 대상입니다. 화면 이동과 확대/축소만 실행 취소에서 제외됩니다(뷰 상태이기 때문입니다).
- 편집 중인 내용이 있는 상태에서 디스크의 VFB 파일이 밖에서 바뀌면, PAIO는 다시 읽지 않고
편집 중인 내용을 지킵니다. 이때
VFB files changed on disk. Keeping your unsaved edits - save to overwrite the external change.경고 토스트가 나타납니다. 저장하면 편집 내용이 외부 변경을 덮어씁니다. 상세 다이얼로그가 열려 있고 그 안에 저장하지 않은 편집이 있을 때도 같은 규칙이 적용됩니다.
8.14 다른 에디터와의 연동
- 컴포지션과 ECU/HPC의 매핑은 IVC 에디터, System 페이지와 실시간으로 동기화됩니다. Create ECU & Map / Create HPC & Map 은 IVC에 노드를 직접 만듭니다.
- 포트에 지정하는 인터페이스는 09. Interface 에디터의 정의를 참조합니다. 인터페이스 이름을 바꾸면 열려 있는 VFB는 즉시, 닫혀 있는 SWC 정의 파일은 참조 재작성으로 갱신됩니다.
- 포트의 DERIVE SR/CS INTERFACE 는 SR/CS 인터페이스와 InterfaceMapping을 한 번에 만듭니다. 이때 Interface 모델과 VFB 모델에 걸친 변경이 하나의 실행 취소 단위로 기록됩니다.
- InterfaceMapping은 VFB 모델에 저장되므로 Interface 에디터의 Mapping 탭에서도 같은 데이터를 편집합니다. 한쪽에서 고치면 다른 쪽에 반영됩니다 (09. Interface 에디터 9.3.7 참조).
- SWC 이름을 바꾸면 컴포지션의 프로토타입 참조, 커넥터 참조, SYSTEM 매핑까지 함께 갱신되고, 저장 시 파일 이름도 함께 바뀝니다.
- ARXML 임포트/익스포트는 13. 임포트 · 익스포트에서 설명합니다.
- 단축키 전체 목록은 19. 단축키에서 확인할 수 있습니다.