Skip to main content

Signal Editor

이 장에서 다루는 것

통신 데이터 사전 — CAN/LIN 프레임, 6종 PDU, I-Signal, 시그널 그룹 — 을 편집하는 Signal 에디터의 화면 구성, 항목별 편집 필드, 비트 레이아웃 미리보기, 초기값 편집 방법을 안내합니다. DBC/ARXML 임포트·익스포트의 절차 자체는 13. 임포트 · 익스포트에서 다루며, 이 장은 그 결과가 어느 화면에 어떻게 반영되는지까지만 설명합니다.

대상 독자는 버스 통신 매트릭스를 작성하거나 임포트한 매트릭스를 검토·수정하는 사용자입니다. 작업을 시작하려면 먼저 프로젝트가 열려 있어야 합니다.

에디터는 탐색기에서 design ▸ System ▸ Signal 노드를 더블클릭하면 탭으로 열립니다. 저장 대상은 Signal 모델 하나입니다. 시그널의 두 이름 (I-Signal / System Signal)처럼 자주 헷갈리는 용어는 21. 용어 사전에 정리되어 있습니다.

7.1 화면 구성

에디터는 맨 위의 프로토콜 탭 바와 그 아래 세 개의 세로 패널로 이루어집니다.

Signal 에디터 — 프로토콜 탭 바와 목록 · Configuration · Preview 세 패널

Signal 에디터 — 프로토콜 탭 바와 목록 · Configuration · Preview 세 패널

각 패널의 내용과 폭 조절 방식은 다음과 같습니다.

패널내용폭 조절
왼쪽 목록현재 탭의 항목 목록드래그로 조절
가운데 Configuration선택 항목의 속성 폼 + Signals 그리드남는 폭 전체
오른쪽 Preview비트 레이아웃 또는 시그널 그룹 트리드래그로 조절

Signals 그리드는 프레임 탭, PDU 탭의 I-Signal I-PDU, NM-PDU 를 선택했을 때만 나타납니다. 그 외의 PDU 종류와 SIGNAL 탭에서는 Configuration 폼이 패널 높이 전체를 사용합니다. LIN 프레임 중 event-triggeredsporadic 은 프레임 탭이지만 그리드 대신 읽기 전용 목록이 나타납니다(7.7.2).

7.2 프로토콜 탭

탭 바에는 네 개의 탭이 있습니다.

편집 대상목록 패널 제목
CANCAN / CAN FD 프레임CAN Frames
LINLIN 프레임LIN Frames
PDU6종 PDU 통합 목록PDUs
SIGNAL시그널(I-SIGNAL) 목록Signals

FlexRay 탭과 Ethernet 탭은 화면에 나타나지 않습니다. FlexRay와 Ethernet 프레임은 이 에디터에서 편집할 수 없습니다. 임포트한 데이터는 파일에 유지되고 익스포트에도 반영됩니다.

NM-PDU는 별도 탭이 아니라 통합 PDU 탭에서 6종 PDU 중 하나로 편집합니다.

7.3 왼쪽 목록 패널

헤더 버튼

목록 패널 머리에는 세 개의 버튼이 있습니다.

버튼툴팁동작
+Add현재 탭에 맞는 항목을 추가합니다. PDU 탭에서는 종류 선택 메뉴가 열립니다
Remove선택 항목을 삭제합니다. 선택이 없으면 비활성 상태입니다
Sort & Filter필터 / 정렬 팝오버를 엽니다

검색과 상태바

  • 검색 입력의 자리표시자는 Search... 이며, 입력한 문자열을 항목 이름에 대해 대소문자 구분 없이 부분 일치로 거릅니다.
  • 검색 입력에서 Esc 를 누르면 검색어가 지워지고 목록이 원래대로 돌아옵니다.
  • 목록 아래 상태바는 항목 수를 표시합니다. 평소에는 전체 개수만 N items 형태로 적고, 검색어 때문에 결과가 줄어든 경우에만 M / N items 형태가 됩니다. 다만 PDU 종류 필터(7.4)로 줄어든 경우는 이 분모/분자 표기를 쓰지 않으므로, 필터만 걸면 상태바 숫자가 화면에 보이는 행 수보다 클 수 있습니다.
  • 목록에 포커스를 두고 방향키를 누르면 항목 사이를 이동하며 선택이 바뀝니다.

빈 상태와 검색 결과 없음

목록이 비어 있거나 결과가 없을 때는 다음 문구가 표시됩니다.

상황표시 문구
프레임 탭에 항목이 하나도 없음Add a frame
PDU 탭에 항목이 하나도 없음Add a PDU
SIGNAL 탭에 항목이 하나도 없음Add a signal
항목은 있으나 검색/필터 결과가 0개No results found

항목에 붙는 배지

목록의 각 항목에는 탭에 따라 다음 배지가 붙습니다.

배지
CAN프레임 ID를 16진수로 (0x1A0)
LIN프레임 ID를 16진수로 (0x3F)
PDU왼쪽에 종류 태그, 오른쪽에 길이 (8B)
SIGNAL비트 길이 (8bit)

PDU 탭 목록의 종류 태그 · 출처 배지 · 길이 배지

PDU 탭 목록의 종류 태그 · 출처 배지 · 길이 배지

PDU 종류 태그는 IS(I-Signal I-PDU), NM(NM-PDU), N(N-PDU), DCM(DCM-I-PDU), MUX(Multiplexed I-PDU), GP(General Purpose PDU) 이며, 태그에 마우스를 올리면 전체 이름이 툴팁으로 표시됩니다.

도구가 자동 생성한 항목에는 출처 배지가 추가로 붙습니다. SOC 는 서비스 배포에서 파생된 항목(CP-SOA)을, COM 은 SR 기반 COM 파생 시그널을 뜻합니다. 배지는 출처 표시일 뿐 편집 잠금이 아닙니다. 파생 항목도 이름·속성 변경과 삭제가 모두 허용됩니다.

7.4 More(⋯) 메뉴 — 필터와 정렬

⋯ 버튼을 누르면 팝오버가 열립니다. 팝오버 안에서 체크박스를 눌러도 팝오버는 닫히지 않으므로 여러 항목을 연속으로 조작할 수 있습니다. Esc 를 누르면 팝오버만 닫힙니다.

⋯ 메뉴의 필터 · 정렬 팝오버 (PDU 탭에는 ID 정렬이 없다)

⋯ 메뉴의 필터 · 정렬 팝오버 (PDU 탭에는 ID 정렬이 없다)

팝오버에는 다음 구역이 있습니다.

구역표시 조건항목
Filter by PDU typePDU 탭에서만6종 PDU 각각의 체크박스 + 오른쪽의 All 버튼(툴팁 Select All / Deselect All)
Sort by모든 탭Default (Added Order) / Name (A-Z) / ID

ID 정렬 항목은 프레임 탭(CAN, LIN)에서만 나타납니다. PDU 탭과 SIGNAL 탭에는 ID가 없으므로 두 가지만 제공합니다. 정렬은 화면 표시 순서만 바꾸며, 파일에 저장되는 순서는 그대로 유지됩니다.

7.5 PDU 6종

PDU 탭에서 + 를 누르면 2단 메뉴가 열립니다. 왼쪽 항목에 마우스를 올리면 오른쪽에 하위 메뉴가 펼쳐지고, 하위 항목을 클릭하면 그 종류의 PDU가 만들어집니다.

PDU 추가 — 2단 메뉴 (Transport (TP) 하위 메뉴가 펼쳐진 상태)

PDU 추가 — 2단 메뉴 (Transport (TP) 하위 메뉴가 펼쳐진 상태)

메뉴 구성과 종류별 기본값은 다음과 같습니다.

그룹항목목록 태그새로 만들 때의 기본값
Signal I-PDUI-Signal I-PDUIS이름 NewPdu, 길이 8바이트, Unused Bit Pattern 0
Signal I-PDUMultiplexed I-PDUMUX이름 NewMuxPdu, 길이 8바이트, Trigger Mode NONE, 빈 Dynamic Part 1개
Network MgmtNM-PDUNM이름 NewNmPdu, 길이 8바이트, NM Vote Information false
Transport (TP)N-PDUN이름 NewNPdu, 길이 8바이트
Transport (TP)DCM-I-PDUDCM이름 NewDcmIPdu, 길이 8바이트, Diag PDU Type DIAG-REQUEST
General PurposeGeneral Purpose PDUGP이름 NewGeneralPurposePdu, 길이 8바이트, Category SD

이름이 이미 있으면 뒤에 밑줄과 번호가 붙어 NewPdu_1, NewPdu_2 처럼 유일한 이름이 만들어집니다. 종류가 다르면 이름이 같아도 별개 항목으로 구분되며, 목록에서 선택 강조도 이름과 종류를 함께 비교합니다.

7.6 항목 추가와 삭제

프레임 추가 (CAN / LIN 탭)

  1. 탭을 고르고 + 를 누릅니다. 새 프레임과 그 프레임 전용 PDU가 함께 만들어집니다.
  2. 새 프레임이 자동으로 선택되고 Configuration 패널에 속성 폼이 나타납니다.

탭별 기본값은 다음과 같습니다.

프레임 기본값함께 만들어지는 PDU
CAN이름 NewFrame, DLC 8, Addressing standard, ID는 0x100 부터 비어 있는 첫 값NewFrame_Pdu, 길이 8바이트
LIN이름 NewLinFrame, 길이 8, Checksum enhanced, ID는 0x00 부터 비어 있는 첫 값NewLinFrame_Pdu, 길이 8바이트

시그널 추가

시그널을 만드는 입구는 두 곳입니다.

  1. SIGNAL 탭의 + — 딕셔너리에만 시그널을 추가합니다. 이름은 NewSignal, 비트 길이 8, 타입 uint, Factor 1, Offset 0, Min 0, Max 255, 초기값 0입니다. 어느 PDU에도 매핑되지 않습니다.
  2. Signals 그리드 머리의 + (툴팁 Add Signal) — 현재 선택된 프레임/PDU에 매핑까지 함께 만듭니다. 이때 이름은 소속 이름을 접두사로 삼아 <소속이름>_Sig 형태가 됩니다. 접두사는 프레임 탭에서는 프레임 이름, PDU 탭에서는 선택한 I-Signal I-PDU 또는 NM-PDU의 이름입니다. 프레임이 여러 PDU를 참조하면 아직 여유가 있는 첫 PDU에 매핑됩니다.

시그널을 그리드로 추가할 때 PDU 길이가 모자라면 PDU 길이가 자동으로 늘어납니다. 늘어난 PDU가 CAN 프레임의 현재 DLC보다 커지면 프레임의 DLC도 자동으로 상향됩니다. 어느 프레임도 참조하지 않는 PDU에는 바이트 상한이 적용되지 않습니다.

프레임이 가득 차면 추가가 조용히 무시됩니다. 이미 배치된 비트가 프레임의 최대 바이트 수 (CAN 64바이트, LIN 8바이트)를 채우고 있으면 + 를 눌러도 아무 일도 일어나지 않으며, 안내 메시지도 나오지 않습니다. 매핑 없는 시그널이 딕셔너리에 쌓이는 것을 막기 위해, 시그널을 만들기 전에 용량을 먼저 확인하고 거부하기 때문입니다. 이때는 프레임 구성이나 PDU 배치를 먼저 정리해야 합니다.

삭제

버튼(또는 그리드 행 끝의 × 버튼)을 누르면 확인 대화상자 없이 즉시 삭제됩니다. 되돌리려면 Ctrl+Z 를 누릅니다.

그리드 행 끝의 × 는 매핑만 끊는 것이 아니라 그 시그널을 딕셔너리에서도 완전히 지웁니다. 매핑만 떼어 내는 별도의 조작은 없습니다.

삭제는 참조 정리까지 함께 수행합니다.

  • 프레임/PDU를 삭제하면 IVC 모델의 커넥터 프레임·PDU 참조에서 그 이름이 제거됩니다. IVC 에디터가 닫혀 있으면 디스크 파일을 직접 고치고, 열려 있으면 IVC 에디터가 자기 모델에서 정리합니다. 다만 NM-PDU는 예외입니다. NM-PDU 참조는 IVC의 NM 설정에 있어 이 경로에서 건드리지 않습니다.
  • 시그널을 삭제하면 모든 PDU/NM-PDU의 매핑에서 그 시그널 참조가 제거됩니다.
  • System 모델의 데이터 매핑 참조 정리는 Signals 그리드의 × 로 지웠을 때만 함께 수행됩니다. SIGNAL 탭에서 로 지우면 딕셔너리와 PDU 매핑만 정리되고 SYSTEM 쪽 데이터 매핑 참조는 그대로 남습니다. 두 경로의 동작이 다르므로, 데이터 매핑이 걸린 시그널은 그리드에서 지우는 편이 안전합니다.

7.7 Configuration 패널 — 대상별 편집 항목

패널 머리글은 항상 Configuration 입니다. 선택 항목이 없으면 한 줄 안내만 표시됩니다 (Select a frame / Select a PDU / Select an NM-PDU / Select an N-PDU / Select a DCM-I-PDU / Select a General Purpose PDU / Select a Multiplexed I-PDU / Select a signal).

아래 표의 선택 항목은 세그먼트 버튼 묶음으로 그려지며, 버튼에 찍히는 글자는 모두 대문자입니다(standardSTANDARD, falseFALSE). 모델에 저장되는 값은 표에 적은 원래 표기 그대로입니다.

7.7.1 CAN 프레임

왼쪽 열이 속성, 오른쪽 열이 PDU References 그리드입니다(7.8 참조). 속성 항목은 다음과 같습니다.

CAN 프레임 Configuration 폼과 PDU References 그리드

CAN 프레임 Configuration 폼과 PDU References 그리드

항목형태범위 · 비고
Name텍스트AUTOSAR SHORT-NAME 규칙
Addressing선택standard / extended
CAN ID16진수 입력 (DEC/HEX 토글)standard0x000 ~ 0x7FF, extended0x00000000 ~ 0x1FFFFFFF. Addressing을 바꾸면 상한이 즉시 따라 바뀝니다
DLC검색형 선택0 (0 bytes) ~ 15 (64 bytes) 16개. 9~15는 CAN FD 확장(12/16/20/24/32/48/64 바이트)
Unused Bit Pattern세그먼트0 / 1. 이 값은 프레임이 아니라 프레임이 참조하는 PDU에 저장됩니다
Description텍스트

DLC를 바꾸면 프레임이 참조하는 PDU의 길이도 그 바이트 수로 함께 갱신됩니다. 다만 참조 PDU가 하나일 때만 그렇게 하며, 여러 PDU를 참조하는 프레임에서는 DLC만 바뀝니다. DLC 필드의 지우기(×)는 필수값이므로 무시되고 이전 값이 복원됩니다.

7.7.2 LIN 프레임

LIN 프레임의 편집 항목은 다음과 같습니다.

항목형태범위 · 비고
Name텍스트
Frame Type선택unconditional / event-triggered / sporadic
Frame ID16진수 입력0x00 ~ 0x3F (LIN 6비트)
Length정수1 ~ 8 바이트
Checksum선택classic / enhanced (기본 enhanced)
Unused Bit Pattern세그먼트0 / 1
Collision Resolving Schedule검색형 참조event-triggered 일 때만 나타납니다. IVC 모델의 LIN 스케줄 테이블 목록에서 고르며, 비우면 (none) 으로 표시되고 값이 저장되지 않습니다
Description텍스트

Frame Type에 따라 오른쪽 열과 아래 영역이 함께 바뀝니다.

Frame Type오른쪽 열아래 영역
unconditionalPDU References 그리드Signals 그리드(편집 가능)
event-triggered / sporadicFrame References 그리드참조 프레임들의 시그널 목록(읽기 전용)

LIN 사양상 event-triggeredsporadic 프레임은 자체 시그널을 갖지 않고 unconditional 프레임의 스케줄 슬롯을 가로챕니다. 그래서 이 두 종류에서는 Signals 그리드 대신 읽기 전용 목록이 나타나며, 제목 Signals 옆에 read-only · from referenced frames 가 덧붙습니다.

LIN event-triggered 프레임 — Frame References 와 읽기 전용 시그널 목록

LIN event-triggered 프레임 — Frame References 와 읽기 전용 시그널 목록

읽기 전용 목록의 열은 #, NAME, TYPE, BYTE-ORDER, START, LENGTH, GROUP 이고, 참조 프레임마다 이름·ID·길이를 담은 구분 행이 먼저 나온 뒤 그 프레임의 시그널이 이어집니다. 상황별 표시는 다음과 같습니다.

상황표시
참조 프레임을 아직 고르지 않음Select referenced frames above to see their signals here.
참조한 이름의 프레임이 없음FrameA — referenced frame not found
참조 프레임에 시그널이 없음(no signals)

시그널 자체를 고치려면 해당 unconditional 프레임으로 이동해야 합니다.

7.7.3 I-Signal I-PDU

I-Signal I-PDU의 편집 항목은 다음과 같습니다.

항목형태범위 · 비고
Name텍스트
Length (bytes)정수1 이상
Unused Bit Pattern정수0 ~ 255
Cycle Time (ms)실수0 이상. 모델은 밀리초로 저장하고 ARXML로 내보낼 때 초로 변환합니다(값 ÷ 1000)
Transmission Mode선택cyclic / event / not-used / none
Description텍스트

아래에 Signals 그리드와 Preview 비트 레이아웃이 함께 표시됩니다.

7.7.4 NM-PDU

NM-PDU의 편집 항목은 다음과 같습니다.

항목형태범위 · 비고
Name텍스트
Length (bytes)정수
Unused Bit Pattern정수0 ~ 255
NM Vote Information선택false / true
NM Data Information선택false / true
Description텍스트

NM-PDU도 UserData 시그널을 실을 수 있으므로 I-Signal I-PDU와 똑같은 Signals 그리드와 비트 레이아웃 Preview를 제공합니다.

7.7.5 N-PDU · DCM-I-PDU · General Purpose PDU

이 세 종류는 시그널 매핑을 갖지 않으므로 Signals 그리드가 나타나지 않고, Preview 자리에는 비트 레이아웃 대신 한 줄 안내만 표시됩니다. 종류별 편집 항목과 안내 문구는 다음과 같습니다.

종류편집 항목Preview 문구
N-PDUName, Length (bytes), DescriptionN-PDU has no signal bit-layout preview.
DCM-I-PDUName, Length (bytes), Diag PDU Type(DIAG-REQUEST / DIAG-RESPONSE), DescriptionDCM-I-PDU has no signal bit-layout preview.
General Purpose PDUName, Length (bytes), Category(자유 키워드, 새로 만들면 SD), DescriptionPDU has no signal bit-layout preview.

General Purpose PDU만 안내 문구에 종류 이름이 아니라 PDU 가 들어갑니다.

7.7.6 Multiplexed I-PDU

스칼라 속성은 다음과 같습니다.

항목형태범위 · 비고
Name텍스트
Length (bytes)정수
Unused Bit Pattern정수0 ~ 255
Has Dynamic Length선택false / true
Selector Field Byte Order선택MOST-SIGNIFICANT-BYTE-FIRST / MOST-SIGNIFICANT-BYTE-LAST / OPAQUE
Selector Field Length (bits)정수1 ~ 16
Selector Field Start Position정수0 이상
Trigger Mode선택DYNAMIC-PART-TRIGGER / STATIC-PART-TRIGGER / STATIC-OR-DYNAMIC-PART-TRIGGER / NONE
Description텍스트

그 아래에 중첩 편집 영역이 두 개 붙습니다.

영역조작비어 있을 때
Dynamic Parts머리글의 +(툴팁 Add Dynamic Part)로 파트를 추가하고, 파트마다 (툴팁 Remove Part)가 있습니다. 파트 안에는 Segments(+ Segment) 와 Alternatives(+ Alternative) 하위 표가 있습니다No dynamic parts
Static Parts머리글의 +(툴팁 Add Static Part)로 파트를 추가합니다. 파트마다 I-PDU RefSegments 하위 표가 있습니다No static parts

Multiplexed I-PDU 의 Dynamic Parts / Static Parts 중첩 편집 영역

Multiplexed I-PDU 의 Dynamic Parts / Static Parts 중첩 편집 영역

파트 제목은 Dynamic Part 1, Static Part 1 처럼 1부터 번호가 매겨집니다. Segments 하위 표의 열은 Byte Order, Length, Position 과 행 삭제 칸입니다.

Multiplexed I-PDU도 자체 시그널 매핑을 갖지 않으므로 Signals 그리드가 없고, Preview 자리에는 Multiplexed I-PDU has no signal bit-layout preview. 가 표시됩니다.

7.7.7 시그널 (SIGNAL 탭)

시그널의 편집 항목은 다음과 같습니다.

항목형태범위 · 비고
Name텍스트
Bit Length정수1 ~ 64
Type선택uint / sint / float / array / struct
Unit텍스트
Factor실수
Offset실수
Min실수
Max실수
Signal Groups읽기 전용소속 그룹 이름을 , 로 이어 보여 줍니다. 어느 그룹에도 속하지 않으면 - 가 표시됩니다
Init Value값 편집기7.11 참조
Description텍스트

Signal Groups 항목은 표시 전용입니다. 그룹 소속을 바꾸려면 Signals 그리드의 GROUP 열을 편집해야 합니다(7.9 참조).

시그널에 Text Table(열거) 항목이 있으면 폼 아래에 Text Table (3 entries) 같은 제목의 절이 추가되고 Enumerator = Value 형식으로 항목이 나열됩니다. 이 절은 읽기 전용입니다(7.12 참조).

Type 선택지가 5개인 반면 Signals 그리드의 TYPE 열은 uint / sint / float 3개만 제공합니다. arraystruct 는 이 상세 폼에서만 지정할 수 있습니다.

7.8 PDU References / Frame References 그리드

프레임을 선택하면 Configuration 오른쪽 열에 참조 그리드가 나타납니다. 참조를 지정하는 절차는 다음과 같습니다.

  1. 제목 옆의 트리거를 클릭합니다. 후보 목록이 체크박스 드롭다운으로 열립니다. PDU 후보는 DoorPdu (8B, 3 sig) 처럼 길이와 시그널 수를 함께 보여 줍니다.
  2. 필요한 항목을 체크합니다. 드롭다운이 닫힐 때 한 번에 적용됩니다.
  3. 적용된 항목은 아래 표에 나타납니다.
  4. 항목이 2개 이상이면 행 왼쪽에 손잡이가 생기고, 행을 드래그해 순서를 바꿀 수 있습니다.

두 그리드의 구성은 다음과 같습니다.

그리드트리거 문구표의 열최소 개수 · 빈 상태
PDU References (기본)Select PDUs...#, PDU Name, Length, Signals1개 이상 필수 — 전부 해제하면 적용되지 않습니다. 빈 상태 문구는 No PDU assigned 입니다
Frame References (LIN event-triggered / sporadic)Select Frames...#, Frame Name, ID, Length0개 허용. 빈 상태 문구는 No frame references 입니다. 후보는 같은 클러스터의 unconditional LIN 프레임(자기 자신 제외)입니다

PDU References 그리드는 표 아래에 검증 메시지를 직접 표시합니다.

상황메시지
참조 PDU 길이 합이 프레임 최대 크기 초과Total PDU size 72B exceeds frame max size 64B
한 PDU 안에서 시그널 비트가 겹침[DoorPdu] Signal "Lock" overlaps with "Unlock" at bit 12

프레임 최대 바이트 수는 CAN 64, LIN 8입니다.

7.9 Signals 그리드

프레임 또는 I-Signal I-PDU / NM-PDU를 선택하면 Configuration 아래에 나타납니다. 머리글은 Signals 이고, 머리글을 클릭하면 접었다 펼 수 있습니다. 오른쪽의 + 버튼(툴팁 Add Signal)이 시그널을 추가합니다. 매핑이 하나도 없으면 No signals. Click + to add a signal. 가 표시됩니다.

Signals 그리드 — 열 구성과 GROUP 열 자동완성

Signals 그리드 — 열 구성과 GROUP 열 자동완성

열 구성

맨 앞의 # 열은 행 번호이고, 맨 뒤에는 행 삭제 버튼(툴팁 Remove Signal)이 있습니다. 각 열의 편집 형태와 제약은 다음과 같습니다.

편집 형태저장 위치 · 제약
NAME텍스트시그널 이름. 정렬 가능
TYPE선택 (uint/sint/float)시그널
BYTE-ORDER선택 (little-endian/big-endian)매핑
GROUP자동완성 텍스트시그널 그룹 소속
START정수매핑. 0 이상의 정수. 정렬 가능
LENGTH정수시그널. 1 ~ 64의 정수. 정렬 가능
UPDATE-BIT정수매핑. 0 이상의 정수. 비우면 값이 지워집니다
FACTOR실수시그널. 소수·음수 허용
OFFSET실수시그널
MIN실수시그널
MAX실수시그널
UNIT텍스트시그널
INIT VALUE실수 또는 배지7.11 참조
PDU선택시그널을 다른 PDU로 옮깁니다. PDU 탭에서는 이 열이 숨겨집니다(옮길 대상이 없으므로)
  • 열 머리글 오른쪽 경계를 드래그하면 모든 열의 폭을 바꿀 수 있습니다.
  • 정렬은 NAME, START, LENGTH 세 열에서만 가능합니다. 머리글을 클릭할 때마다 정렬 없음 → 오름차순 → 내림차순 → 정렬 없음 순으로 순환합니다.
  • 비트가 겹치는 시그널의 행은 배경색으로 강조됩니다.

셀 편집 절차와 거부 조건

  1. 셀을 클릭합니다. 그 자리에 입력 컨트롤이 열리고 기존 값이 선택된 상태가 됩니다.
  2. 값을 바꾸고 Enter 를 누르거나 포커스를 옮깁니다. 값이 확정됩니다.
  3. Esc 를 누르면 편집이 취소되고 원래 값으로 돌아갑니다.

편집 중에도 Ctrl+S(저장), Ctrl+Z(실행 취소), Ctrl+Shift+Z / Ctrl+Y(다시 실행)가 동작합니다. 이 경우 편집 중이던 값이 먼저 확정된 뒤 해당 동작이 실행됩니다. 다만 GROUP 열은 자동완성 편집기라 이 즉시 확정 동작이 없습니다.

값이 편집 시작 시점과 같으면 아무것도 커밋하지 않습니다. 즉 셀을 열었다 그대로 닫아도 문서가 수정 상태(더티)가 되지 않습니다.

다음 입력은 거부됩니다.

거부되는 입력결과 · 표시
NAME 이 비어 있음저장되지 않고 툴팁 Signal name cannot be empty 가 표시됩니다
NAME 이 AUTOSAR 규칙 위반저장되지 않고 툴팁 AUTOSAR naming convention: must start with a letter and contain only letters, digits, and underscores 가 표시됩니다
NAME 이 기존 시그널과 중복저장되지 않고 툴팁 Signal name "Speed" already exists 가 표시됩니다
START / UPDATE-BIT 가 음수 또는 소수편집이 취소되고 원래 값이 복원됩니다
LENGTH 가 1 미만, 64 초과, 소수편집이 취소되고 원래 값이 복원됩니다
숫자 열에 숫자가 아닌 값편집이 취소되고 원래 값이 복원됩니다
GROUP 이 AUTOSAR 규칙 위반편집이 취소됩니다

이름 앞뒤의 공백은 잘라낸 뒤 저장합니다. 예를 들어 Speed 를 입력하면 Speed 로 저장됩니다.

GROUP 열 자동완성

GROUP 셀을 클릭하면 자리표시자가 Group name... 인 입력과 함께 후보 목록이 나타납니다.

  • 후보는 현재 프레임의 PDU들에 속한 시그널이 실제로 소속된 그룹만 보여 줍니다. 프로젝트 전체 그룹 목록이 아닙니다.
  • 입력한 이름과 일치하는 그룹이 없으면 Create "BodyGroup" 항목이 나타나고, 이를 고르면 그룹이 새로 만들어지면서 시그널이 그 그룹에 들어갑니다.
  • 값을 비우거나 - 를 입력하면 그룹 소속이 해제됩니다.
  • 시그널은 한 번에 하나의 그룹에만 속합니다. 새 그룹을 지정하면 기존 소속이 먼저 해제됩니다.

7.10 Preview 패널

오른쪽 패널의 머리글은 선택한 탭에 따라 두 가지 중 하나가 됩니다.

비트 레이아웃 (Preview)

프레임 탭과 PDU 탭(I-Signal I-PDU / NM-PDU)에서 표시됩니다.

Preview 패널 — 비트 번호 머리행, 바이트 행, LSB/MSB 표시와 시그널 범례

Preview 패널 — 비트 번호 머리행, 바이트 행, LSB/MSB 표시와 시그널 범례

  • 위쪽에 비트 번호 머리행(7 6 5 4 3 2 1 0)이 오고, 그 아래로 Byte 0, Byte 1 … 순서로 바이트 행이 이어집니다.
  • 시그널마다 색이 배정되며, 오른쪽 범례에 시그널 이름과 색이 나열됩니다.
  • 각 시그널의 LSB 자리에는 L, MSB 자리에는 M 글자가 표시됩니다. 바이트 순서에 따라 두 위치가 뒤바뀌며, 비트 길이가 1이면 L 만 표시됩니다. UPDATE-BIT 위치에는 U 가 표시되고, 툴팁은 Speed(UB) 형태입니다.
  • 겹치는 비트는 오류 색으로 칠해지고 툴팁에 Overlap: Lock, Unlock 처럼 겹친 시그널 이름이 나옵니다. 겹침이 하나라도 있으면 범례에 Overlap (Error) 항목이 추가됩니다.
  • 프레임이 16바이트를 넘으면 글자를 생략한 컴팩트 모드로 그려집니다(L/M/U 표시 없음).
  • 여러 PDU를 참조하는 프레임에서는 PDU 이름을 구분선으로 넣고 PDU별 레이아웃을 이어서 그립니다.

겹침은 표시로 끝나는 문제가 아니라 반드시 고쳐야 하는 오류입니다. Preview에서 겹친 자리를 확인한 뒤 두 시그널 중 하나의 START 값을 옮겨 같은 비트를 쓰지 않게 합니다(7.9). 그래도 자리가 모자라면 시그널의 끝 비트가 프레임의 DLC(LIN은 Length)를 넘지 않는지 확인합니다(7.7).

겹침이 있을 때 — Preview 의 오류 색과 Overlap (Error) 범례, PDU References 의 검증 메시지, 그리드 행 강조가 함께 나타난다

겹침이 있을 때 — Preview 의 오류 색과 Overlap (Error) 범례, PDU References 의 검증 메시지, 그리드 행 강조가 함께 나타난다

시그널 그룹 트리 (Signal Groups)

SIGNAL 탭에서 표시되는 읽기 전용 트리입니다.

SIGNAL 탭 — 시그널 상세 폼과 오른쪽 시그널 그룹 트리

SIGNAL 탭 — 시그널 상세 폼과 오른쪽 시그널 그룹 트리

  • 그룹 행에는 그룹 이름과 소속 시그널 개수가 표시되고, 클릭하면 펼치고 접을 수 있습니다.
  • 펼친 뒤 시그널 이름을 클릭하면 가운데 Configuration 패널이 그 시그널로 이동합니다. 이름이 딕셔너리의 어느 시그널과도 맞지 않으면(임포트로 생긴 끊어진 참조) 그 행은 클릭해도 반응하지 않습니다.
  • 그룹이 하나도 없으면 No signal groups 가 표시됩니다.

7.11 초기값 (Init Value)

시그널의 초기값은 프로젝트 공용 값 편집기(ValueSpecEditor)로 편집합니다. 시그널이 데이터 타입을 참조하지 않기 때문에, 입력 형태는 시그널 자신의 속성에서 자동으로 만들어집니다.

시그널 속성입력 형태
Text Table(열거) 항목이 있음콤보 상자. 항목은 레이블 = 값 형태로 표시됩니다
비트 길이 10 또는 1 숫자 입력 (TRUE/FALSE 토글이 아닙니다)
uint, n비트0 ~ 2^n-1 범위의 정수
sint, n비트-2^(n-1) ~ 2^(n-1)-1 범위의 정수
float / array / struct범위 제한 없는 숫자

동작 규칙은 다음과 같습니다.

  • 모델에는 항상 숫자로 저장됩니다. 열거 레이블을 고르면 그 항목의 숫자 값이 저장됩니다.
  • 범위를 벗어난 값도 입력은 되며 오류 표시만 합니다. 값을 자르거나 되돌리지 않습니다. 임포트한 모델이 범위 밖 값을 담고 있을 수 있고, 그 값을 임의로 바꾸면 원본이 훼손되기 때문입니다.
  • 임포트한 구조체·배열·맵 초기값은 편집하지 않고 읽기 전용 구조 뷰어로 표시합니다.
  • 1비트 시그널의 true / false 문자열 초기값은 임포트할 때 1 / 0으로 정규화되고, 익스포트할 때도 0/1만 내보냅니다(AUTOSAR 규칙에서 1 ≡ true).

그리드의 INIT VALUE 열

  • 값이 단순 숫자이면 그대로 편집할 수 있는 셀입니다. 타입이 uint 또는 sint 이면 셀에 마우스를 올릴 때 Derived range 0..255 형태의 툴팁이 나오고, 범위를 벗어난 값은 셀에 경고 표시가 붙습니다(저장은 그대로 됩니다). float / array / struct 는 범위가 없어 툴팁도 경고도 없습니다.
  • 값이 구조화된 값이면 편집할 수 없는 배지로 바뀝니다. 배지 문구는 STRUCT, ARRAY, MAP, TEXT, APP, N/A, RULE, PRESERVED, EXPR 중 하나이며, 툴팁에 record: 3 field(s) 같은 한 줄 요약이 나옵니다.

값 편집기 전반의 규칙은 09. Interface 에디터와 공용입니다.

7.12 Text Table (열거)

시그널이 가진 열거 항목은 Configuration 패널의 Text Table (N entries) 절에 이름 = 값 형식으로 나열됩니다.

열거 항목은 읽기 전용입니다. ARXML/DBC 임포트로만 만들어지며 에디터에서 바꿀 수 없습니다.

7.13 저장 · 실행 취소

저장과 실행 취소 단축키는 다음과 같습니다.

조작단축키비고
저장Ctrl+S에디터 안에 포커스가 있을 때 동작하며, 그리드 셀을 편집하는 중에도 동작합니다
실행 취소Ctrl+Z
다시 실행Ctrl+Shift+Z 또는 Ctrl+Y
  • 저장 시 진행 중이던 입력(확정 대기 중인 텍스트 필드, 열려 있는 셀 편집)이 먼저 확정된 뒤 파일이 기록되므로, 값을 입력하자마자 Ctrl+S 를 눌러도 그 값이 함께 저장됩니다.
  • 실행 취소는 프로젝트 전체가 공유하는 하나의 타임라인을 사용합니다. 헤더의 Edit 메뉴와 명령 팔레트의 Undo/Redo도 같은 타임라인을 사용합니다(05. 화면 구성과 조작).
  • 저장하지 않은 변경이 있으면 탭 제목 옆에 더티 표시가 붙고, 탭을 닫을 때 저장 여부를 묻습니다.

7.14 외부 변경과 임포트

  • 다른 프로그램이나 다른 기능이 Signal 모델을 바꾸면 파일 감시가 이를 감지해 에디터가 파일을 다시 읽어 들입니다.

  • 저장하지 않은 변경이 있거나 편집이 진행 중이면 이 자동 다시 읽기를 건너뜁니다. 이때 다음 경고가 표시됩니다.

    Signal file changed on disk. Keeping your unsaved edits - save to overwrite the external change.

    진행 중인 편집을 디스크 내용으로 조용히 덮어써 잃어버리는 일을 막기 위한 동작입니다. 계속 작업하려면 저장해 외부 변경을 덮어쓰거나, 편집 내용을 되돌린 뒤 다시 읽어야 합니다.

  • 프로젝트 단위 ARXML/DBC 임포트는 이와 다릅니다. 임포트를 시작하기 전에 열려 있는 모든 에디터의 변경 사항을 먼저 저장하고, 임포트가 끝나면 이 에디터를 무조건 다시 읽습니다. 임포트가 덮어쓰는 파일을 저장되지 않은 채로 두면 리로드 시 소실되기 때문입니다.

7.15 다른 에디터·기능과의 연동

  • IVC 에디터 — 커넥터를 선택하면 TX/RX Frames, TX/RX PDUs 목록에 여기서 정의한 프레임과 PDU가 후보로 나타납니다. 반대로 IVC의 TP 설정 다이얼로그에서 N-PDU / DCM-I-PDU를 즉석에서 만들면, 그 PDU가 이 에디터의 살아 있는 모델에 바로 추가되고 실행 취소 이력에도 기록됩니다.

  • System 페이지 — 시그널 이름을 바꾸면 System 모델의 데이터 매핑 참조 (signal-name, call-signal-name)가 함께 갱신됩니다. System 에디터가 열려 있으면 화면의 모델에, 닫혀 있으면 디스크 파일에 반영되며, 어느 쪽이든 Signal 에디터의 이름 변경과 같은 실행 취소 단위로 묶입니다.

  • ECUC 자동 생성 — Com, PduR 등의 모듈 구성은 IVC 모델과 이 모델을 입력으로 삼습니다 (12. ECUC).

  • Validation — 시그널·PDU에 대한 제약 검사 결과는 별도의 Validation 패널에 모입니다 (14. Validation). Signal 에디터 자체에는 검증 패널이 없습니다.

  • DBC — DBC 파일은 프로젝트 노드의 Import 메뉴에서 ARXML과 함께 선택해 가져옵니다. 결과가 반영되는 대상이 바로 이 모델입니다.

    DBC 내보내기는 현재 제공되지 않습니다(13. 임포트 · 익스포트 참조).

7.16 편집 규칙 요약

  • 이름은 AUTOSAR SHORT-NAME 규칙을 따릅니다. 첫 글자는 영문자, 이후는 영문자·숫자·밑줄입니다. Configuration 패널의 Name 필드는 이 규칙을 어긴 값이나 빈 값을 모델에 반영하지 않습니다. 화면에는 경고가 표시되지만 이전 이름이 그대로 유지됩니다. 길이는 128자 이하가 규칙이지만 에디터가 막지는 않으므로, 긴 이름은 ARXML로 내보낼 때 문제가 됩니다.
  • Configuration 패널의 텍스트 입력은 타자를 멈추거나 포커스를 벗어나면 확정됩니다. CAN ID처럼 16진수 식별자 필드는 유효한 값을 타자 중에도 곧바로 반영하고, 포커스를 벗어날 때 범위를 벗어난 값이면 이전 값으로 되돌립니다. 선택·토글류는 즉시 확정됩니다.
  • Description을 비우면 빈 문자열로 저장하지 않고 그 설명 자체를 기록하지 않습니다. 항목(프레임·PDU·시그널)은 그대로 남습니다.
  • 값을 바꾸지 않고 필드를 열었다 닫으면 문서는 수정 상태가 되지 않습니다.
  • 목록의 정렬과 필터, 패널 폭, 스크롤 위치는 화면 상태일 뿐이며 파일에 저장되지 않습니다.