cannect 1.0.2__tar.gz → 1.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cannect-1.0.3/PKG-INFO +651 -0
- cannect-1.0.3/README.md +625 -0
- {cannect-1.0.2 → cannect-1.0.3}/pyproject.toml +1 -1
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/config.py +2 -3
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/ascet/comdef.py +15 -15
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/ascet/comrx.py +4 -4
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/ascet/diag.py +26 -26
- cannect-1.0.3/src/cannect/core/can/db/_dbc.py +394 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/reader.py +56 -10
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/specification/wrapper.py +37 -38
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/vcs.py +10 -3
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ir/changehistory.py +118 -144
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ir/diff.py +6 -4
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ir/ir.py +40 -38
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/subversion.py +25 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/testcase/unitcase.py +1 -1
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/errors.py +6 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/utils/ppt.py +1 -4
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/utils/tools.py +4 -1
- cannect-1.0.3/src/cannect.egg-info/PKG-INFO +651 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect.egg-info/SOURCES.txt +1 -0
- cannect-1.0.2/PKG-INFO +0 -214
- cannect-1.0.2/README.md +0 -188
- cannect-1.0.2/src/cannect.egg-info/PKG-INFO +0 -214
- {cannect-1.0.2 → cannect-1.0.3}/LICENSE +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/setup.cfg +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/api/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ascet/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ascet/amd.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ascet/formula.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ascet/oid.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ascet/ws.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/ascet/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/ascet/_db2code.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/ascet/_db2elem.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/schema.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/specification/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/specification/message.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/db/specification/styles.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/rule.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/testcase/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/testcase/unitcase/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/testcase/unitcase/asw2can.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/testcase/unitcase/decode.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/testcase/unitcase/diagnosis.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/can/testcase/unitcase/encode.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ir/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ir/delivereables.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/ir/sdd.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/mdf.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/testcase/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/testcase/plotter.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/testcase/style.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/core/testcase/testcase.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/schema/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/schema/candb.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/schema/datadictionary.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/utils/__init__.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/utils/excel.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect/utils/logger.py +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect.egg-info/dependency_links.txt +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect.egg-info/requires.txt +0 -0
- {cannect-1.0.2 → cannect-1.0.3}/src/cannect.egg-info/top_level.txt +0 -0
cannect-1.0.3/PKG-INFO
ADDED
|
@@ -0,0 +1,651 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cannect
|
|
3
|
+
Version: 1.0.3
|
|
4
|
+
Summary: HYUNDAI-KEFICO EMS/ASW CONVENIENCE TOOL
|
|
5
|
+
Requires-Python: >=3.10
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Dist: kaleido
|
|
9
|
+
Requires-Dist: lxml
|
|
10
|
+
Requires-Dist: mdfreader
|
|
11
|
+
Requires-Dist: numpy
|
|
12
|
+
Requires-Dist: pandas
|
|
13
|
+
Requires-Dist: plotly
|
|
14
|
+
Requires-Dist: psutil
|
|
15
|
+
Requires-Dist: pyautogui
|
|
16
|
+
Requires-Dist: pygetwindow
|
|
17
|
+
Requires-Dist: pyperclip
|
|
18
|
+
Requires-Dist: python-can
|
|
19
|
+
Requires-Dist: python-docx
|
|
20
|
+
Requires-Dist: python-dotenv
|
|
21
|
+
Requires-Dist: python-pptx
|
|
22
|
+
Requires-Dist: pywin32
|
|
23
|
+
Requires-Dist: tqdm
|
|
24
|
+
Requires-Dist: xlsxwriter
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
|
|
27
|
+
# cannect
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
<b>HKMG/EMS ASW 편의 도구</b><br>
|
|
32
|
+
본 프레임워크는 EMS/ASW 개발의 특수한 목적을 위해 제작되었으며 허용된 호스트 도메인에서만 작동합니다. 본 프레임워크는 허용된 호스트 도메인의 리소스에 대한 개발 및 검증 편의도구를 제공하며 리소스는 보안 정책에 따라 외부로 반출할 수 없습니다. 이를 위반하여 사용자가 리소스를 외부로 무단 반출 또는 반출 시도 시 관련 법률 및 보안 정책에 의거 불이익 또는 처벌을 받을 수 있습니다.<br><br>
|
|
33
|
+
<i>Developed and Powered by</i> <b>HYUNDAI KEFICO Co.,Ltd.</b>
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# 사용자 가이드
|
|
38
|
+
## 1. 리소스 경로 설정 (선택)
|
|
39
|
+
|
|
40
|
+
모든 리소스는 호스트 도메인의 저장소 및 SVN을 참조합니다. 필요에 따라 사용자는 로컬 환경에 Check-Out된 SVN을 사용할 수 있습니다. 이 경우, 아래 예시에 따라 로컬 SVN 경로를 적용하여야 합니다.
|
|
41
|
+
사용 시 스크립트 실행 마다 또는 커널 최초 실행 시 적용되어야 합니다.
|
|
42
|
+
|
|
43
|
+
```commandline
|
|
44
|
+
예시)
|
|
45
|
+
|
|
46
|
+
from cannect import env, mount # env는 환경 변수
|
|
47
|
+
|
|
48
|
+
print(env.SVN) # 기본 SVN 경로 사용
|
|
49
|
+
mount(r"E:\SVN") # 사용자 Local의 SVN 최상위 경로를 입력, 매 코드 실행 시 최상단에 입력
|
|
50
|
+
print(env.SVN)
|
|
51
|
+
```
|
|
52
|
+
```commandline
|
|
53
|
+
결과)
|
|
54
|
+
|
|
55
|
+
\\kefico\ --- {세부 경로 보안 처리} --- \SVN
|
|
56
|
+
E:\SVN
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 2. 통신 개발
|
|
60
|
+
통신 모듈에는 자동 ASCET 모델 생성용 AscetCAN과 CAN DB에 관한 일체 기능을 담당하는 DataBaseCAN 모듈이 있습니다.
|
|
61
|
+
|
|
62
|
+
### 2.1. DataBaseCAN
|
|
63
|
+
```text
|
|
64
|
+
모듈 구조)
|
|
65
|
+
|
|
66
|
+
├── DataBaseCAN
|
|
67
|
+
│ ├── Reader(src) --------------------------------- (C) CAN DB(SPEC) 읽기
|
|
68
|
+
│ │ ├── db : └─ attribute; [DataFrame] 원본 데이터프레임
|
|
69
|
+
│ │ ├── source : └─ attribute; [str] DB json 파일 전체 경로
|
|
70
|
+
│ │ ├── traceability : └─ attribute; [str] DB json 파일 이름
|
|
71
|
+
│ │ ├── revision : └─ attribute; [str] DB Excel 파일 Revision @수정 번호
|
|
72
|
+
│ │ ├── messages : └─ @property; [DataDictionary[메시지 이름, 메시지 객체]
|
|
73
|
+
│ │ ├── signals : └─ @property; [DataDictionary[신호 이름, 신호 객체]
|
|
74
|
+
│ │ ├── mode(engine_spec) : └─ method; "HEV", "ICE" 사양에 대한 DB
|
|
75
|
+
│ │ ├── is_developer_mode() : └─ method; 개발자 모드 여부
|
|
76
|
+
│ │ ├── is_dbc(engine_spec, channel, **kwargs) : └─ method; 개발자 모드 여부
|
|
77
|
+
│ │ └── to_developer_mode(engine_spec) : └─ method; 개발자 모드로 전환
|
|
78
|
+
│ │
|
|
79
|
+
│ ├── Specification(db) --------------------------- (C) 사양서 제작
|
|
80
|
+
│ │ └── generate(filename) : └─ method; 사양서 제작, 다운로드 경로에 생성
|
|
81
|
+
│ │
|
|
82
|
+
└── └── VersionControl(filename) -------------------- (C) CAN DB(SPEC) 버전 관리
|
|
83
|
+
├── name : └─ attribute; DB 파일 이름 (확장자 제외)
|
|
84
|
+
├── filename : └─ attribute; DB 파일 이름 (확장자 포함)
|
|
85
|
+
├── filepath : └─ attribute; DB 파일 경로 (전체 경로)
|
|
86
|
+
├── history : └─ attribute; DB 파일 SVN 이력
|
|
87
|
+
├── revision : └─ attribute; DB 파일 최신 SVN Revision
|
|
88
|
+
├── json : └─ @property; .revision에 해당하는 json 파일(전체 경로)
|
|
89
|
+
├── commit_json() : └─ method; # TODO
|
|
90
|
+
└── to_json(mode) : └─ method; 사양서 제작, 다운로드 경로에 생성
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### 2.1.1. DataBaseCAN.Reader
|
|
94
|
+
|
|
95
|
+
CAN DB 읽기 클래스입니다.<br>
|
|
96
|
+
<i><span style="color:green">:param</span></i> src: [str] CAN SPEC(DB)의 .json 파일 전체 경로
|
|
97
|
+
|
|
98
|
+
```commandline
|
|
99
|
+
예시)
|
|
100
|
+
|
|
101
|
+
from cannect import DataBaseCAN
|
|
102
|
+
|
|
103
|
+
db = DataBaseCAN.Reader(src='')
|
|
104
|
+
# 특정 프로젝트(G-프로젝트 등)를 위한 DB를 사용할 경우 json 파일 형식의 데이터를 @src에 사용
|
|
105
|
+
# 미적용 시 SVN 내 최신 DB 사용
|
|
106
|
+
print(db)
|
|
107
|
+
print(db.source) # json 파일 전체 경로
|
|
108
|
+
print(db.traceability) # 원본 DB 이름 (json 파일명)
|
|
109
|
+
print(db.revision) # 원본 DB의 SVN Revision 및 로컬 재생성 횟수
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```commandline
|
|
113
|
+
결과
|
|
114
|
+
ECU Message ID DLC Send Type Cycle Time Signal Definition Length StartBit Sig Receivers UserSigValidity Value Table Value Type GenSigStartValue Factor Offset Min Max Unit Local Network Wake Up Request Network Request Holding Time Description Version Requirement ID Required Date Remark Status ByteOrder ICE Channel ICE WakeUp HEV Channel HEV WakeUp SystemConstant Codeword Formula SignedProcessing InterfacedVariable SignalRenamed
|
|
115
|
+
0 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_Crc1Val ABS_ESC_CyclicRedundancyCheck1Value 16 0 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFFFF:CRCValue Unsigned 0xFFFF 1.0 0.0 0.0 0.0 No 0 "The data area for CRC calculation is based on... 21.09.03 Official Intel P P OneToOne //Internal
|
|
116
|
+
1 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_AlvCnt1Val ABS_ESC_AliveCounter1Value 8 16 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFF:AlvCntValue Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 "For the first transmission request for a data... 21.09.03 Official Intel P P OneToOne //Internal
|
|
117
|
+
2 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_WrngLmpSta ABS_WarningLampStatus ##2G##ESC - TCS15 - ABS_... 2 24 AWD,TCU,SCU_FF IG1 0x0:ABS Warning lamp OFF/0x1:ABS Warning lamp ... Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 The signal indicates the status of the ABS War... 19.07.02 Official Intel P OneToOne FD_stAbsWrngLmp
|
|
118
|
+
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
|
|
119
|
+
1791 EMS EMS_LDCBMS1 0x52C 8 P 50 CF_Ems1_Alive 2 54 LDC IG1 unsigned 0x0 0.0 0.0 0.0 3.0 No 0 19.06.25 "'2025.07.02. 자체 DB 개정\n- 현재 EMS 송출 중이나, 수신처 없... Official Intel L MICROEPT_48V_SC == 1 Cfg_MeptSys_C > 0 //Internal
|
|
120
|
+
1792 EMS EMS_LDCBMS1 0x52C 8 P 50 CF_stDesModDcdc 4 56 LDC IG1 0x0:Init (wake-up)/0x5:Idle / Neutral/0x8:Forw... unsigned 0x0 0.0 0.0 0.0 15.0 No 0 Desired LDC operation mode by EMS 19.06.25 "'2025.07.02. 자체 DB 개정\n- 현재 EMS 송출 중이나, 수신처 없... Official Intel L MICROEPT_48V_SC == 1 Cfg_MeptSys_C > 0 Ldc_stDesMod
|
|
121
|
+
1793 EMS EMS_LDCBMS1 0x52C 8 P 50 CF_Ems1_ChkSum 4 60 LDC IG1 0x0:No error/0x1:Engine speed sensor defective unsigned 0x0 0.0 0.0 0.0 15.0 No 0 "This signal indicates Checksum for robustness... 19.06.25 "'2025.07.02. 자체 DB 개정\n- 현재 EMS 송출 중이나, 수신처 없... Official Intel L MICROEPT_48V_SC == 1 Cfg_MeptSys_C > 0 //Internal
|
|
122
|
+
|
|
123
|
+
[1794 rows x 39 columns]
|
|
124
|
+
E:\SVN\dev.bsw\ --- {세부 경로 보안 처리} --- \자체제어기_KEFICO-EMS_CANFD_r21713@03.json
|
|
125
|
+
자체제어기_KEFICO-EMS_CANFD_r21713@03
|
|
126
|
+
r21713@03
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
사양서 제작 시에는 엔진 사양 별 DB를 재구성해서 사용합니다.
|
|
130
|
+
```commandline
|
|
131
|
+
예시)
|
|
132
|
+
|
|
133
|
+
db_hev = db.mode(engine_spec="HEV")
|
|
134
|
+
db_ice = db.mode(engine_spec="ICE")
|
|
135
|
+
print(db_hev)
|
|
136
|
+
print(db_ice)
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
```commandline
|
|
140
|
+
결과)
|
|
141
|
+
|
|
142
|
+
ECU Message ID DLC Send Type Cycle Time Signal Definition Length StartBit Sig Receivers UserSigValidity Value Table Value Type GenSigStartValue Factor Offset Min Max Unit Local Network Wake Up Request Network Request Holding Time Description Version Requirement ID Required Date Remark Status ByteOrder ICE Channel ICE WakeUp HEV Channel HEV WakeUp SystemConstant Codeword Formula SignedProcessing InterfacedVariable SignalRenamed
|
|
143
|
+
0 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_Crc1Val ABS_ESC_CyclicRedundancyCheck1Value 16 0 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFFFF:CRCValue Unsigned 0xFFFF 1.000000 0.000000 0.000000 0.000000 No 0 "The data area for CRC calculation is based on... 21.09.03 Official Intel P P OneToOne //Internal
|
|
144
|
+
1 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_AlvCnt1Val ABS_ESC_AliveCounter1Value 8 16 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFF:AlvCntValue Unsigned 0x0 1.000000 0.000000 0.000000 0.000000 No 0 "For the first transmission request for a data... 21.09.03 Official Intel P P OneToOne //Internal
|
|
145
|
+
2 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_WrngLmpSta ABS_WarningLampStatus ##2G##ESC - TCS15 - ABS_... 2 24 AWD,TCU,SCU_FF IG1 0x0:ABS Warning lamp OFF/0x1:ABS Warning lamp ... Unsigned 0x0 1.000000 0.000000 0.000000 0.000000 No 0 The signal indicates the status of the ABS War... 19.07.02 Official Intel P OneToOne FD_stAbsWrngLmp
|
|
146
|
+
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
|
|
147
|
+
1752 EMS LEMS_09_100ms 0x261 8 P 100 CLU_LoFuelWrngSta_Copy_1 CLU_LowFuelWarningStatus 2 16 TCU,Dummy IG1 0x0:Low fuel Warning is off/0x1:Low fuel Warni... Unsigned 0x0 1.000000 0.000000 0.000000 3.000000 No 0 19.03.05 Official Intel L CLU_LoFuelWrngSta_Can CLU_LoFuelWrngSta
|
|
148
|
+
1753 EMS LEMS_09_100ms 0x261 8 P 100 DATC_OutTempSnsrVal_Copy_1 DATC_OutsideTemperatureSensorValue 8 18 TCU,Dummy IG1 0xFF:Error Unsigned 0x0 0.500000 -40.000000 -40.000000 87.500000 degC No 0 19.03.05 Official Intel L DATC_OutTempSnsrVal_Can DATC_OutTempSnsrVal
|
|
149
|
+
1754 EMS LEMS_09_100ms 0x261 8 P 100 ICU_BS1BatVol_Copy_1 Actual battery voltage by battery sensor. ##2G... 8 26 TCU,Dummy IG1 0xFF:Error indicator Unsigned 0x0 0.101562 0.000000 0.000000 25.898000 V No 0 19.03.05 Official Intel L BattU_u8 HEV_BattVolVal
|
|
150
|
+
|
|
151
|
+
[799 rows x 39 columns]
|
|
152
|
+
|
|
153
|
+
ECU Message ID DLC Send Type Cycle Time Signal Definition Length StartBit Sig Receivers UserSigValidity Value Table Value Type GenSigStartValue Factor Offset Min Max Unit Local Network Wake Up Request Network Request Holding Time Description Version Requirement ID Required Date Remark Status ByteOrder ICE Channel ICE WakeUp HEV Channel HEV WakeUp SystemConstant Codeword Formula SignedProcessing InterfacedVariable SignalRenamed
|
|
154
|
+
0 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_Crc1Val ABS_ESC_CyclicRedundancyCheck1Value 16 0 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFFFF:CRCValue Unsigned 0xFFFF 1.0 0.0 0.0 0.0 No 0 "The data area for CRC calculation is based on... 21.09.03 Official Intel P P OneToOne //Internal
|
|
155
|
+
1 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_AlvCnt1Val ABS_ESC_AliveCounter1Value 8 16 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFF:AlvCntValue Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 "For the first transmission request for a data... 21.09.03 Official Intel P P OneToOne //Internal
|
|
156
|
+
3 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_DfctvSta ABS_DefectiveStatus ##2G##ESC - TCS11 - ABS_DEF 2 26 AWD,EMS,TCU,LSD,SCU_FF IG1 0x0:ABS is not defective/0x1:ABS is defective/... Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 Information regarding the ABS defective indica... 19.07.02 Official Intel P P OneToOne FD_stAbsDfctv
|
|
157
|
+
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
|
|
158
|
+
1791 EMS EMS_LDCBMS1 0x52C 8 P 50 CF_Ems1_Alive 2 54 LDC IG1 unsigned 0x0 0.0 0.0 0.0 3.0 No 0 19.06.25 "'2025.07.02. 자체 DB 개정\n- 현재 EMS 송출 중이나, 수신처 없... Official Intel L MICROEPT_48V_SC == 1 Cfg_MeptSys_C > 0 //Internal
|
|
159
|
+
1792 EMS EMS_LDCBMS1 0x52C 8 P 50 CF_stDesModDcdc 4 56 LDC IG1 0x0:Init (wake-up)/0x5:Idle / Neutral/0x8:Forw... unsigned 0x0 0.0 0.0 0.0 15.0 No 0 Desired LDC operation mode by EMS 19.06.25 "'2025.07.02. 자체 DB 개정\n- 현재 EMS 송출 중이나, 수신처 없... Official Intel L MICROEPT_48V_SC == 1 Cfg_MeptSys_C > 0 Ldc_stDesMod
|
|
160
|
+
1793 EMS EMS_LDCBMS1 0x52C 8 P 50 CF_Ems1_ChkSum 4 60 LDC IG1 0x0:No error/0x1:Engine speed sensor defective unsigned 0x0 0.0 0.0 0.0 15.0 No 0 "This signal indicates Checksum for robustness... 19.06.25 "'2025.07.02. 자체 DB 개정\n- 현재 EMS 송출 중이나, 수신처 없... Official Intel L MICROEPT_48V_SC == 1 Cfg_MeptSys_C > 0 //Internal
|
|
161
|
+
|
|
162
|
+
[1336 rows x 39 columns]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
dbc 파일을 제작할 수 있습니다. @engine_spec과 @channel 입력 시 메시지(ID) 중복 없이 해당 채널에 대한 .dbc 파일을 생성합니다.<br>
|
|
166
|
+
이 때 채널에 <span style="color:indianred;">ID가 중복</span>되는 경우, <span style="color:indianred;">{Codeword}나 {SystemConstant}를 명시적으로 구분</span>하여야 합니다.
|
|
167
|
+
|
|
168
|
+
```commandline
|
|
169
|
+
예시)
|
|
170
|
+
|
|
171
|
+
db.to_dbc(engine_spec="ICE", channel=1) # CANDBDuplicationError 발생: 중복 ID
|
|
172
|
+
db.to_dbc(engine_spec="ICE", channel=1, Codeword="Cfg_CanFDSTDDB_C == 0") # 중복 제거를 위한 사양 명시
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
```commandline
|
|
176
|
+
결과)
|
|
177
|
+
|
|
178
|
+
# 별도 출력 없음; Downloads 폴더에 {engine_spec}-{CAN채널}-{명시된 사양}.dbc 파일로 자동 저장
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
.to_developer_mode(engine_spec)는 동일 메시지의 채널 분기 등 예외적 상황을 위한 DB 변환 모드입니다. 자동 모델 생성, Test Case 생성 등에 사용합니다.
|
|
182
|
+
필요에 따라 .is_developer_mode()를 선행적으로 확인한 후 중복해서 모드 변환을 하지 않도록 주의합니다.
|
|
183
|
+
|
|
184
|
+
```commandline
|
|
185
|
+
예시)
|
|
186
|
+
|
|
187
|
+
db_dev = db.to_developer_mode("HEV")
|
|
188
|
+
print(db_dev)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
```commandline
|
|
192
|
+
결과)
|
|
193
|
+
|
|
194
|
+
ECU Message ID DLC Send Type Cycle Time Signal Definition Length StartBit Sig Receivers UserSigValidity Value Table Value Type GenSigStartValue Factor Offset Min Max Unit Local Network Wake Up Request Network Request Holding Time Description Version Requirement ID Required Date Remark Status ByteOrder ICE Channel ICE WakeUp HEV Channel HEV WakeUp SystemConstant Codeword Formula SignedProcessing InterfacedVariable SignalRenamed Channel WakeUp
|
|
195
|
+
0 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_Crc1Val ABS_ESC_CyclicRedundancyCheck1Value 16 0 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFFFF:CRCValue Unsigned 0xFFFF 1.0 0.0 0.0 0.0 No 0 "The data area for CRC calculation is based on... 21.09.03 Official Intel P P OneToOne //Internal P
|
|
196
|
+
1 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_AlvCnt1Val ABS_ESC_AliveCounter1Value 8 16 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFF:AlvCntValue Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 "For the first transmission request for a data... 21.09.03 Official Intel P P OneToOne //Internal P
|
|
197
|
+
2 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_WrngLmpSta ABS_WarningLampStatus ##2G##ESC - TCS15 - ABS_... 2 24 AWD,TCU,SCU_FF IG1 0x0:ABS Warning lamp OFF/0x1:ABS Warning lamp ... Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 The signal indicates the status of the ABS War... 19.07.02 Official Intel P OneToOne FD_stAbsWrngLmp P
|
|
198
|
+
.. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
|
|
199
|
+
958 EMS EMS_15_H_00ms 0x300 32 EW 0 ImmoConf_HEV_H HEV_ImmobilizerConfiguration 2 72 VPC IG1 0x0:Non Immobilizer/0x1:Immobilizer/0x2:Not us... Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 Immobilizer Configuration 19.05.05 Official Intel P,H ImHev_cImobMod_(P, H) H
|
|
200
|
+
959 EMS EMS_15_H_00ms 0x300 32 EW 0 EngLock_HEV_H HEV_EngineLock 2 74 VPC IG1 0x0:Engine Unlock/0x1:Engine Lock/0x2:Not used... Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 Engine Lock Information 19.05.05 Official Intel P,H ImHev_cEmsLock_(P, H) H
|
|
201
|
+
960 EMS EMS_15_H_00ms 0x300 32 EW 0 AuthCount_HEV_H HEV_AuthenticationCount 4 76 VPC IG1 Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 Authentication Count 19.05.05 Official Intel P,H ImHev_ctAuth_(P, H) H
|
|
202
|
+
|
|
203
|
+
[870 rows x 41 columns]
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
클래스의 인스턴스는 __getitem__을 지원합니다. 기본적으로 pandas의 DataFrame.__getitem__을 상속하여 사용합니다. 필요에 따라 DB를 가공하여 자동화 모델, Test Case 생성 등에 사용합니다.
|
|
207
|
+
|
|
208
|
+
```commandline
|
|
209
|
+
예시)
|
|
210
|
+
|
|
211
|
+
print(db[db["ECU"] != "EMS"]) # EMS 기준, 수신 제어기만 선택
|
|
212
|
+
print(db[db["ICE Channel"].str.contains("P")]) # ICE 사양의 P-CAN 메시지만 선택
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
```commandline
|
|
216
|
+
결과)
|
|
217
|
+
|
|
218
|
+
ECU Message ID DLC Send Type Cycle Time Signal Definition Length StartBit Sig Receivers UserSigValidity Value Table Value Type GenSigStartValue Factor Offset Min Max Unit Local Network Wake Up Request Network Request Holding Time Description Version Requirement ID Required Date Remark Status ByteOrder ICE Channel ICE WakeUp HEV Channel HEV WakeUp SystemConstant Codeword Formula SignedProcessing InterfacedVariable SignalRenamed
|
|
219
|
+
0 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_Crc1Val ABS_ESC_CyclicRedundancyCheck1Value 16 0 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFFFF:CRCValue Unsigned 0xFFFF 1.00000 0.0 0.0 0.0 No 0 "The data area for CRC calculation is based on... 21.09.03 Official Intel P P OneToOne //Internal
|
|
220
|
+
1 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_AlvCnt1Val ABS_ESC_AliveCounter1Value 8 16 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFF:AlvCntValue Unsigned 0x0 1.00000 0.0 0.0 0.0 No 0 "For the first transmission request for a data... 21.09.03 Official Intel P P OneToOne //Internal
|
|
221
|
+
2 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_WrngLmpSta ABS_WarningLampStatus ##2G##ESC - TCS15 - ABS_... 2 24 AWD,TCU,SCU_FF IG1 0x0:ABS Warning lamp OFF/0x1:ABS Warning lamp ... Unsigned 0x0 1.00000 0.0 0.0 0.0 No 0 The signal indicates the status of the ABS War... 19.07.02 Official Intel P OneToOne FD_stAbsWrngLmp
|
|
222
|
+
.. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
|
|
223
|
+
954 CGW_CCU WHL_01_10ms 0x0A0 24 P 10 WHL_SpdFRVal WHL_SpeedFrontRightValue ##2G##ESC - WHL_SPD11... 14 80 AWD,EMS,TCU,OPU,LSD,SCU_FF,WCCU,EVSCU_FF,VDU,A... IG1 0x3FFF:Error Unsigned 0x0 0.03125 0.0 0.0 0.0 km/h No 0 "This signal provides the wheel velocity of ea... 17.12.00 Official Intel P V_kph_q0p03125 WHEEL_FR_WHL_Intf
|
|
224
|
+
955 CGW_CCU WHL_01_10ms 0x0A0 24 P 10 WHL_SpdRLVal WHL_SpeedRearLeftValue ##2G##ESC - WHL_SPD11 -... 14 96 AWD,EMS,TCU,OPU,LSD,SCU_FF,EVSCU_FF,VDU,ALDC,V2LC IG1 0x3FFF:Error Unsigned 0x0 0.03125 0.0 0.0 0.0 km/h No 0 "This signal provides the wheel velocity of ea... 17.12.00 Official Intel P V_kph_q0p03125 WHEEL_RL_WHL_Intf
|
|
225
|
+
956 CGW_CCU WHL_01_10ms 0x0A0 24 P 10 WHL_SpdRRVal WHL_SpeedRearRightValue ##2G##ESC - WHL_SPD11 ... 14 112 AWD,EMS,TCU,OPU,LSD,SCU_FF,EVSCU_FF,VDU,ALDC,V2LC IG1 0x3FFF:Error Unsigned 0x0 0.03125 0.0 0.0 0.0 km/h No 0 "This signal provides the wheel velocity of ea... 17.12.00 Official Intel P V_kph_q0p03125 WHEEL_RR_WHL_Intf
|
|
226
|
+
|
|
227
|
+
[957 rows x 39 columns]
|
|
228
|
+
ECU Message ID DLC Send Type Cycle Time Signal Definition Length StartBit Sig Receivers UserSigValidity Value Table Value Type GenSigStartValue Factor Offset Min Max Unit Local Network Wake Up Request Network Request Holding Time Description Version Requirement ID Required Date Remark Status ByteOrder ICE Channel ICE WakeUp HEV Channel HEV WakeUp SystemConstant Codeword Formula SignedProcessing InterfacedVariable SignalRenamed
|
|
229
|
+
0 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_Crc1Val ABS_ESC_CyclicRedundancyCheck1Value 16 0 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFFFF:CRCValue Unsigned 0xFFFF 1.0 0.0 0.0 0.0 No 0 "The data area for CRC calculation is based on... 21.09.03 Official Intel P P OneToOne //Internal
|
|
230
|
+
1 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_ESC_AlvCnt1Val ABS_ESC_AliveCounter1Value 8 16 AWD,EMS,TCU,SCU_FF IG1 0x0~0xFF:AlvCntValue Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 "For the first transmission request for a data... 21.09.03 Official Intel P P OneToOne //Internal
|
|
231
|
+
3 CGW_CCU ABS_ESC_01_10ms 0x06F 8 P 10 ABS_DfctvSta ABS_DefectiveStatus ##2G##ESC - TCS11 - ABS_DEF 2 26 AWD,EMS,TCU,LSD,SCU_FF IG1 0x0:ABS is not defective/0x1:ABS is defective/... Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 Information regarding the ABS defective indica... 19.07.02 Official Intel P P OneToOne FD_stAbsDfctv
|
|
232
|
+
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
|
|
233
|
+
1632 EMS PT_OBM_02_00ms 0x516 32 EC 0 PT_OBM_AlvCnt02Val PT_OBM_AliveCounter02Value 8 16 vDummy B+ 0x0~0xFF:AlvCntValue Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 "For the first transmission request for a data... 25.07.02 VCDM CR10783438, CR10783437 2025-09-10 TSW Intel P P OBM_SC == 1 Cfg_OBM_C > 0 //Internal
|
|
234
|
+
1633 EMS PT_OBM_02_00ms 0x516 32 EC 0 OBM_Master_ECU OBM data trasmission Controller 3 24 CCU_AP IG1 0x0:Default/0x1:EMS (ECU ID : 7E0)/0x2:VCU/VPC... Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 This signal shows which controller transmits t... 25.07.04 VCDM CR10783438, CR10783437 2025-09-10 TSW Intel P P OBM_SC == 1 Cfg_OBM_C > 0 상수 1
|
|
235
|
+
1634 EMS PT_OBM_02_00ms 0x516 32 EC 0 OBM_Outbox_Status OBM Outbox Status 3 27 CCU_AP IG1 0x0:Default/0x1:Request/0x2:Success ACK Unsigned 0x0 1.0 0.0 0.0 0.0 No 0 This signal shows OBM Outbox Status from Data ... 25.07.04 VCDM CR10783438, CR10783437 2025-09-10 TSW Intel P P OBM_SC == 1 Cfg_OBM_C > 0 OBM_TraReq
|
|
236
|
+
|
|
237
|
+
[967 rows x 39 columns]
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
#### 2.1.2. DataBaseCAN.Specification
|
|
241
|
+
|
|
242
|
+
DB에 대한 사양서(구 SDD) 제작 클래스입니다.<br>
|
|
243
|
+
<i><span style="color:green">:param</span></i> db: DataBaseCAN.Reader.mode의 객체
|
|
244
|
+
|
|
245
|
+
```commandline
|
|
246
|
+
예시)
|
|
247
|
+
|
|
248
|
+
# 아래와 같이 실행 시, 사용자\다운로드 경로에 {filename}.docx로 생성
|
|
249
|
+
spec = DataBaseCAN.Specification(db)
|
|
250
|
+
spec.generate(filename) # filename 필수 입력
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
#### 2.1.3. DataBaseCAN.VersionControl
|
|
254
|
+
|
|
255
|
+
SVN/엑셀 DB에 대한 json 파일 생성 및 버전 관리 클래스입니다.<br>
|
|
256
|
+
관리자의 엑셀 CAN DB에 대한 버전 및 소스 관리를 수행합니다.<br>
|
|
257
|
+
<i><span style="color:green">:param</span></i> filename: str, SVN/.../CAN_Database 경로에 위치한 엑셀 파일 이름, 미입력 시 자체제어기 DB 선택<br><br>
|
|
258
|
+
<span style="color:indianred;">DB@SVN revision에 대한 json이 없는 경우 오류가 표출되므로 선행적 생성 필요</span>
|
|
259
|
+
|
|
260
|
+
```commandline
|
|
261
|
+
예시)
|
|
262
|
+
|
|
263
|
+
vc = DataBaseCAN.VersionControl()
|
|
264
|
+
print(vc.name) # DB 파일 이름 (확장자 제외)
|
|
265
|
+
print(vc.filename) # DB 파일 이름 (확장자 포함)
|
|
266
|
+
print(vc.revision) # DB 파일 최신 SVN Revision
|
|
267
|
+
print(vc.filepath) # DB 파일 경로 (전체 경로)
|
|
268
|
+
print(vc.json) # .revision에 해당하는 json 파일(전체 경로)
|
|
269
|
+
print(vc.history) # DB 파일 SVN 이력
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
```commandline
|
|
273
|
+
결과)
|
|
274
|
+
|
|
275
|
+
자체제어기_KEFICO-EMS_CANFD
|
|
276
|
+
자체제어기_KEFICO-EMS_CANFD.xlsx
|
|
277
|
+
r21725
|
|
278
|
+
\\kefico\ --- {세부 경로 보안 처리} --- \CAN_Database\자체제어기_KEFICO-EMS_CANFD.xlsx
|
|
279
|
+
\\kefico\ --- {세부 경로 보안 처리} --- \CAN_Database\dev\자체제어기_KEFICO-EMS_CANFD_r21725@01.json
|
|
280
|
+
revision author datetime log
|
|
281
|
+
0 r21725 ZS25282@AUTOS 2026-01-30 11:54:41 MCU P-CAN channel added
|
|
282
|
+
1 r21715 ZS19577@AUTOS 2026-01-29 11:02:24 [J**H*****.Jo]
|
|
283
|
+
2 r21714 ZS19577@AUTOS 2026-01-29 10:09:13 [J**H*****.Jo]
|
|
284
|
+
.. ... ... ... ...
|
|
285
|
+
82 r21190 ZS19542@AUTOS 2024-08-09 13:30:17 ESC_06_200ms@HEV 삭제(LCR 요구사항 번복)
|
|
286
|
+
83 r21189 ZS19542@AUTOS 2024-08-09 13:28:52 ESC_01_10ms@HEV P,H 채널 중복 수신에서 P 채널 단일 수신으로 변경...
|
|
287
|
+
84 r21179 ZS19542@AUTOS 2024-08-09 13:13:05 최초 적용
|
|
288
|
+
|
|
289
|
+
[79 rows x 4 columns]
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### 2.2. AscetCAN
|
|
293
|
+
```text
|
|
294
|
+
모듈 구조)
|
|
295
|
+
|
|
296
|
+
├── AscetCAN
|
|
297
|
+
│ ├── ComDef(db, engine_spec, base_model, exclude_tsw) --- (C) ComDef 모델 생성
|
|
298
|
+
│ │ └── generate() : └─ method;
|
|
299
|
+
│ │
|
|
300
|
+
│ ├── ComRx(db, engine_spec, base_model) ----------------- (C) ComRx 모델 생성
|
|
301
|
+
│ │ └── generate() : └─ method;
|
|
302
|
+
│ │
|
|
303
|
+
└── └── ComDiag(db, base_model, *messages) ----------------- (C) 진단 모델 생성
|
|
304
|
+
└── generate() : └─ method;
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
#### 2.2.1. AscetCAN.ComDef
|
|
308
|
+
|
|
309
|
+
지정 경로(사용자\다운로드)에 ComDef* 모델을 생성합니다. ICE, HEV, G프로젝트 등 목적별로 구분하여 사용할 수 있습니다. base_model을 입력하지 않으면 SVN의 모델을 사용합니다.
|
|
310
|
+
CAN DB를 입력하면 송출처가 EMS인 경우는 자동으로 제외하며 로컬 통신 대상인 "CVVD", "48V 사양", "NOx센서"은 자동으로 제외합니다. <br>
|
|
311
|
+
<i><span style="color:green">:param</span></i> db: [DataBaseCAN.Reader] <br>
|
|
312
|
+
<i><span style="color:green">:param</span></i> engine_spec: [str] "ICE" 또는 "HEV"만 입력 가능합니다.<br>
|
|
313
|
+
<i><span style="color:green">:param</span></i> base_model: [str] 베이스로 사용할 ComDef* 모델의 전체 경로를 입력합니다. 공란 입력 시 SVN 상 모델을 사용합니다. 기본 값은 미입력 공란입니다.<br>
|
|
314
|
+
<i><span style="color:green">:param</span></i> exclude_tsw: [bool] 모델 생성 시 BSW 참조를 무력화(255)합니다. CAN DB상 메시지가 TSW 상태로 표기되어 있어야 합니다.
|
|
315
|
+
|
|
316
|
+
```commandline
|
|
317
|
+
예시)
|
|
318
|
+
|
|
319
|
+
model = AscetCAN.ComDef(DataBaseCAN.Reader(), "HEV")
|
|
320
|
+
model.generate()
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
```commandline
|
|
324
|
+
결과) (생성 로그)
|
|
325
|
+
|
|
326
|
+
2026-02-03 08:44:52 %ComDef_HEV MODEL GENERATION
|
|
327
|
+
2026-02-03 08:44:52 >>> Engine Spec : HEV
|
|
328
|
+
2026-02-03 08:44:52 >>> Base Model : \\ ... \NetworkDefinition\ComDef_HEV\ComDef_HEV.zip
|
|
329
|
+
2026-02-03 08:44:52 >>> DB Revision : r21727@01
|
|
330
|
+
2026-02-03 08:44:52 >>> Exclude TSW : Yes
|
|
331
|
+
2026-02-03 08:44:52 >>> Collecting Base Model Properties... 0.01s
|
|
332
|
+
2026-02-03 08:44:57 >>> Defining Message Elements... 4.04s
|
|
333
|
+
2026-02-03 08:44:58 >>> Defining Signal Elements... 1.11s
|
|
334
|
+
2026-02-03 08:45:00 >>> Summary
|
|
335
|
+
Method Element
|
|
336
|
+
Total Total Added Deleted
|
|
337
|
+
Base Model 66 1194 - 50
|
|
338
|
+
New Model 68 1232 88 -
|
|
339
|
+
* Added: GCU_InvtTempVal_H_Can, FD_cVldMcu01HAlv, ... , GCU_ActlHsgRotatSpdRpmVal_P_Can
|
|
340
|
+
* Deleted: MCU_EstMtrTqPcVal_Can, Can_tiFltMcu02_C, ... , GCU_AlvCnt2ValCalc
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
#### 2.2.2. AscetCAN.ComRx
|
|
344
|
+
|
|
345
|
+
지정 경로(사용자\다운로드)에 ComRx* 모델을 생성합니다. ICE, HEV, G프로젝트 등 목적별로 구분하여 사용할 수 있습니다. base_model을 입력하지 않으면 SVN의 모델을 사용합니다.
|
|
346
|
+
CAN DB를 입력하면 송출처가 EMS인 경우는 자동으로 제외하며 로컬 통신 대상인 "CVVD", "48V 사양", "NOx센서"은 자동으로 제외합니다. <br>
|
|
347
|
+
<i><span style="color:green">:param</span></i> db: [DataBaseCAN.Reader] <br>
|
|
348
|
+
<i><span style="color:green">:param</span></i> engine_spec: [str] "ICE" 또는 "HEV"만 입력 가능합니다.<br>
|
|
349
|
+
<i><span style="color:green">:param</span></i> base_model: [str] 베이스로 사용할 ComDef* 모델의 전체 경로를 입력합니다. 공란 입력 시 SVN 상 모델을 사용합니다. 기본 값은 미입력 공란입니다.<br>
|
|
350
|
+
|
|
351
|
+
```commandline
|
|
352
|
+
예시)
|
|
353
|
+
|
|
354
|
+
model = AscetCAN.ComRx(DataBaseCAN.Reader(), "HEV")
|
|
355
|
+
model.generate()
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
```commandline
|
|
359
|
+
결과) (생성 로그)
|
|
360
|
+
|
|
361
|
+
2026-02-03 08:46:47 %ComRx_HEV MODEL GENERATION
|
|
362
|
+
2026-02-03 08:46:47 >>> Engine Spec : HEV
|
|
363
|
+
2026-02-03 08:46:47 >>> Base Model : \\ ... \MessageReceive\ComRx_HEV\ComRx_HEV.zip
|
|
364
|
+
2026-02-03 08:46:47 >>> DB Revision : r21727@01
|
|
365
|
+
2026-02-03 08:46:47 >>> Summary
|
|
366
|
+
Message
|
|
367
|
+
Total Added Deleted
|
|
368
|
+
Base Model 66 - 2
|
|
369
|
+
New Model 68 4 -
|
|
370
|
+
* Added: MCU_02_P_10ms, MCU_01_P_10ms, MCU_01_H_10ms, MCU_02_H_10ms
|
|
371
|
+
* Deleted: MCU_02_10ms, MCU_01_10ms
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
#### 2.2.3. AscetCAN.ComDiag
|
|
375
|
+
|
|
376
|
+
지정 경로(사용자\다운로드)에 CAN 진단 모델을 생성합니다. base_model의 전체 경로 또는 모델의 이름을 입력합니다. 모델 이름만 입력 시, SVN 상 모델을 참조합니다.
|
|
377
|
+
해당 모델에 진단하고자 하는 메시지 이름을 입력합니다. (필수)
|
|
378
|
+
<i><span style="color:green">:param</span></i> db: [DataBaseCAN.Reader] <br>
|
|
379
|
+
<i><span style="color:green">:param</span></i> base_model: [str] 베이스로 사용할 모델의 전체 경로 또는 이름을 입력합니다. 이름만 입력 시 SVN 상 모델을 사용합니다.<br>
|
|
380
|
+
<i><span style="color:green">:param</span></i> *messages: 진단 모델에 포함될 대상 메시지를 입력합니다.
|
|
381
|
+
|
|
382
|
+
```commandline
|
|
383
|
+
예시)
|
|
384
|
+
|
|
385
|
+
model = AscetCAN.ComDiag(DataBaseCAN.Reader(), "CanFDMCUD_HEV", "MCU_01_10ms", "MCU_02_10ms", "MCU_03_100ms")
|
|
386
|
+
model.generate()
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
```commandline
|
|
390
|
+
결과) (생성 로그)
|
|
391
|
+
|
|
392
|
+
2026-02-03 08:56:53 %{CanFDMCUD_HEV} MODEL GENERATION
|
|
393
|
+
2026-02-03 08:56:53 >>> DB VERSION: r21727@01
|
|
394
|
+
2026-02-03 08:56:53 >>> BASE MODEL: \\ ... \MessageDiag\CanFDMCUD_HEV\CanFDMCUD_HEV.zip
|
|
395
|
+
2026-02-03 08:56:53 >>> COPY BASE MODEL TO TEMPLATE
|
|
396
|
+
2026-02-03 08:56:53 >>> GENERATE HIERARCHY BY MESSAGES N=3
|
|
397
|
+
2026-02-03 08:56:53 >>> ... [1 / 3] MCU_01_10ms:
|
|
398
|
+
2026-02-03 08:56:53 >>> ... [2 / 3] MCU_02_10ms:
|
|
399
|
+
2026-02-03 08:56:53 >>> ... [3 / 3] MCU_03_100ms:
|
|
400
|
+
2026-02-03 08:56:53 >>> COPY DSM LIBRARY IMPLEMENTATION
|
|
401
|
+
2026-02-03 08:56:54 >>> COPY CALIBRATION DATA FROM BASE MODEL
|
|
402
|
+
2026-02-03 08:56:54 >>> RUN EXCEPTION HANDLING
|
|
403
|
+
2026-02-03 08:56:54 >>> ... NO EXCEPTION FOUND
|
|
404
|
+
2026-02-03 08:56:55 >>> CREATED TO "C:\Users\Administrator\Downloads\CanFDMCUD_HEV" SUCCESS
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
## 3. Integration Request
|
|
408
|
+
|
|
409
|
+
통합 요청을 위한 Excel IR의 작성 편의 도구입니다.
|
|
410
|
+
```text
|
|
411
|
+
모듈 구조)
|
|
412
|
+
|
|
413
|
+
└── IntegrationRequest ------------------------------ (C) 통합요청서 작성 편의도구
|
|
414
|
+
├── ChangeHistory : @property, @setter 변경내역서 이름
|
|
415
|
+
├── Comment : @property, @setter 비고
|
|
416
|
+
├── deliverables : @property, @setter 산출물 관리 경로
|
|
417
|
+
├── parameters : @property, .compare_model()의 산출물
|
|
418
|
+
├── User : @property, @setter 사용자(통합요청자)
|
|
419
|
+
├── commit_all(message) : method; 모델 SVN commit (사용시 주의)
|
|
420
|
+
├── compare_model(prev, post, exclude_imported) : method; 모델 비교
|
|
421
|
+
├── copy_model_to_svn(src_path) : method; 개발 완료된 모델을 SVN 경로로 복사(Overwrite)
|
|
422
|
+
├── copy_resource(key, dst, versioning, unzip) : method; SVN으로부터 필요 리소스를 로컬로 복사
|
|
423
|
+
├── exclude(*funcs) : method; 모듈 제외
|
|
424
|
+
├── resolve_model(*funcs) : method; 모듈 정보를 등록
|
|
425
|
+
├── resolve_svn_version(*funcs) : method; 모듈 SVN 정보를 등록
|
|
426
|
+
├── resolve_sdd_version() : method; SDD Version 등록
|
|
427
|
+
├── select_previous_svn_version(mode) : method; 변경 대상 모델의 이전 버전 모델을 로컬로 복사
|
|
428
|
+
├── update_sdd(comment) : method; SDD Note 이력 자동 업데이트
|
|
429
|
+
└── copy_model_to_svn(src_path) : method; 개발 완료된 모델을 SVN 경로로 복사(Overwrite)
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
아래의 예제 순서로 사용을 권장합니다.
|
|
433
|
+
|
|
434
|
+
```commandline
|
|
435
|
+
예시)
|
|
436
|
+
|
|
437
|
+
from cannect import IntegrationRequest
|
|
438
|
+
|
|
439
|
+
AUTO_COMMIT = False
|
|
440
|
+
|
|
441
|
+
# 대상 모델에 대한 객체 생성
|
|
442
|
+
ir = IntegrationRequest("ComDef_HEV", "ComRx_HEV", "CanFDMCUD_HEV", "CanFDMCUM_HEV", "LogIf_HEV")
|
|
443
|
+
|
|
444
|
+
# 산출물 관리 경로 지정
|
|
445
|
+
ir.deliverables = "사용자의 로컬 경로 지정"
|
|
446
|
+
|
|
447
|
+
# 대상 모델의 "변경 전" 모델 선택
|
|
448
|
+
# - mode: {'latest', 'previous', 'select'}
|
|
449
|
+
# - mode == "latest" : 대상 모델 Commit 미완료 상태, 최신 revision을 "변경 전" 모델로 간주 (기본 값)
|
|
450
|
+
# - mode == "previous": 대상 모델 Commit 완료 상태, 직전 revision을 "변경 전" 모델로 간주
|
|
451
|
+
# - mode == "select" : 대상 모델에 대한 revision을 사용자가 모두 선택(console)
|
|
452
|
+
ir.select_previous_svn_version(mode="latest")
|
|
453
|
+
|
|
454
|
+
# SDD 자동 업데이트 (잠재적 오류 내포)
|
|
455
|
+
# 사용자는 개발 내용(이력)만 입력, 그 외 버전 관리는 자동 수행
|
|
456
|
+
# .rtf(SDD NOTE 파일)의 형식에 따라 동작하지 않을 수 있으므로 반드시 사용자의 주의 필요
|
|
457
|
+
ir.update_sdd("사용자 comment")
|
|
458
|
+
|
|
459
|
+
# 모델 자동 Commit (SDD, DSM, Polyspace는 수동 Commit - 추후 개선 예정)
|
|
460
|
+
# SVN Commit은 되돌릴 수 없으므로 신중하게 사용
|
|
461
|
+
if AUTO_COMMIT:
|
|
462
|
+
ir.copy_model_to_svn()
|
|
463
|
+
ir.commit_all("사용자 메시지: 반드시 영문으로 작성")
|
|
464
|
+
|
|
465
|
+
# IR 시트 작성
|
|
466
|
+
ir.resolve_svn_version() # 모델, SDD, DSM, Polyspace 의 SVN 버전 기입
|
|
467
|
+
ir.resolve_sdd_version() # SDD Version (FunctionVersion) 기입
|
|
468
|
+
ir.compare_model(exclude_imported=False) # .select_previous_svn_version()이 수행된 경우 "변경 전", "변경 후" 모델 비교
|
|
469
|
+
|
|
470
|
+
print(ir)
|
|
471
|
+
ir.to_clipboard() # 이후 Excel IR 문서에 붙여넣기
|
|
472
|
+
```
|
|
473
|
+
```commandline
|
|
474
|
+
결과)
|
|
475
|
+
|
|
476
|
+
FunctionName FunctionVersion SCMName SCMRev DSMName DSMRev ... SDDName SDDRev ... Date ... PolyspaceName PolyspaceRev
|
|
477
|
+
0 ComDef_HEV 00.00.008 HNB_GASOLINE\ ... \Standard... 22550 ... 040g00002u801q070g7g807i9bh0a.zip 53076 ... 2026-02-04 ... BF_Result_ComDef_HEV.7z 12851
|
|
478
|
+
1 ComRx_HEV 00.00.008 HNB_GASOLINE\ ... \Standard... 22550 ... 040g00002u801q070g80h5joqq024.zip 53076 ... 2026-02-04 ... BF_Result_ComRx_HEV.7z 12851
|
|
479
|
+
2 CanFDMCUD_HEV 00.05.004 HNB_GASOLINE\ ... \CANInter... 22936 canfdmcud_hev_confdata.xml 51722 ... 040g030000001og7146g3m4migjcg.zip 53637 ... 2026-02-04 ... BF_Result_CanFDMCUD_HEV.7z 13509
|
|
480
|
+
3 CanFDMCUM_HEV 00.05.003 HNB_GASOLINE\ ... \CANInter... 22431 ... 040g030000001og714304btcfi5uo.zip 52641 ... 2026-02-04 ... BF_Result_CanFDMCUM_HEV.7z 13203
|
|
481
|
+
4 LogIf_HEV 00.05.019 HNB_GASOLINE\ ... \Communic... 22500 logif_hev_confdata.xml 47210 ... 040g030000001og7143g3bkq10bua.zip 52883 ... 2026-02-04 ... BF_Result_LogIf_HEV.7z 13203
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
## 4. ChangeHistoryManager
|
|
485
|
+
|
|
486
|
+
변경내역서 작성 편의도구입니다. IntegrationRequest의 객체를 활용하여 변경내역서의 Outline을 작성합니다.
|
|
487
|
+
|
|
488
|
+
```commandline
|
|
489
|
+
예시)
|
|
490
|
+
|
|
491
|
+
from cannect import ChangeHistoryManager
|
|
492
|
+
|
|
493
|
+
# ir 인스턴스가 존재한다고 가정
|
|
494
|
+
# ∵ ir = IntegrationRequest(*modeuls)
|
|
495
|
+
ppt = ChanHistoryManager(ir)
|
|
496
|
+
|
|
497
|
+
# 1페이지 작성
|
|
498
|
+
ppt.title = "[CAN/공통] CAN BUS-OFF Recover Post Run 할당" # 제목
|
|
499
|
+
ppt.developer = ir.User # 개발 담당
|
|
500
|
+
ppt.issue = "VCDM CR10786223" # Issue
|
|
501
|
+
ppt.lcr = "자체 개선" # LCR
|
|
502
|
+
ppt.problem = "OTA 업데이트 평가 중, ... 발생" # 문제 현상
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
```commaneline
|
|
506
|
+
결과) 실제 산출물은 ppt 파일로 작성되며 아래 출력은 console의 로그입니다.
|
|
507
|
+
|
|
508
|
+
2026-02-04 15:24:35 [WRITE PPT ON "D:\Archive\ ... \0000_변경내역서 양식.pptx"]
|
|
509
|
+
2026-02-04 15:25:05 >>> RESIZING COVER PAGE
|
|
510
|
+
2026-02-04 15:25:06 >>> WRITE ON "SW 기능 상세 설명 - 변경 전"
|
|
511
|
+
2026-02-04 15:25:06 >>> WRITE ON "SW 기능 상세 설명 - 변경 후"
|
|
512
|
+
2026-02-04 15:25:06 >>> GENERATE SLIDES
|
|
513
|
+
2026-02-04 15:25:07 >>> WRITING PREVIOUS MODEL DETAILS...
|
|
514
|
+
2026-02-04 15:25:07 >>> ... CAND @18550
|
|
515
|
+
2026-02-04 15:25:07 >>> WRITING REVISED MODEL DETAILS...
|
|
516
|
+
2026-02-04 15:25:07 >>> ... CAND @23018
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
## 5. ASCET MODULE(AMD)
|
|
521
|
+
### 5.1. Ascet.Amd
|
|
522
|
+
|
|
523
|
+
4종 .amd (.main, .data, .implementation, .specification)에 대한 Ascet.AmdIO의 Wrapper 클래스입니다.
|
|
524
|
+
|
|
525
|
+
```commandline
|
|
526
|
+
from cannect import Ascet
|
|
527
|
+
|
|
528
|
+
# READ *.amd
|
|
529
|
+
# INSTANCE {amd} CONTAINS FOLLOWING ATTRIBUTES
|
|
530
|
+
# .name: [str] NAME OF MODULE
|
|
531
|
+
# .main: [<Ascet.AmdIO>] Ascet.AmdIO({*.main.amd})
|
|
532
|
+
# .impl: [<Ascet.AmdIO>] Ascet.AmdIO({*.implementation.amd})
|
|
533
|
+
# .data: [<Ascet.AmdIO>] Ascet.AmdIO({*.data.amd})
|
|
534
|
+
# .spec: [<Ascet.AmdIO>] Ascet.AmdIO({*.specification.amd})
|
|
535
|
+
|
|
536
|
+
src = # {*.main.amd} 또는 {*.zip} (모델 전체 경로)
|
|
537
|
+
amd = Ascet.Amd(src)
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
### 5.2. Ascet.AmdIO
|
|
541
|
+
개별 *.amd 파일에 대한 IO 클래스입니다.
|
|
542
|
+
|
|
543
|
+
#### 5.2.1. <i>.root</i>
|
|
544
|
+
```commandline
|
|
545
|
+
main = amd.main
|
|
546
|
+
print(main.root)
|
|
547
|
+
```
|
|
548
|
+
```commandline
|
|
549
|
+
결과
|
|
550
|
+
name ComDef_HEV
|
|
551
|
+
nameSpace /HNB_GASOLINE/_29_CommunicationVehicle/Standar...
|
|
552
|
+
OID _040g00002u801q070g7g807i9bh0a
|
|
553
|
+
timeStamp 2025-10-01T06:48:17
|
|
554
|
+
componentType ASCET_Module
|
|
555
|
+
specificationType CCode
|
|
556
|
+
defaultProjectName ComDef_HEV_DEFAULT
|
|
557
|
+
defaultProjectOID _040g1j9410g01q87180hrfqf5892o
|
|
558
|
+
path D:\ETASData\ASCET6.1\Export\ComDef_HEV\ComDef_...
|
|
559
|
+
file ComDef_HEV.main.amd
|
|
560
|
+
model ComDef_HEV
|
|
561
|
+
type ComponentMain
|
|
562
|
+
dtype: object
|
|
563
|
+
```
|
|
564
|
+
#### 5.2.2. <i>.digestValue</i> & <i>.signatureValue</i>
|
|
565
|
+
```commandline
|
|
566
|
+
print(main.digestValue)
|
|
567
|
+
print("---")
|
|
568
|
+
print(main.signatureValue)
|
|
569
|
+
```
|
|
570
|
+
```commandline
|
|
571
|
+
결과
|
|
572
|
+
P4vSzV9B/VN5kcuO0ICAfxWO2vo=
|
|
573
|
+
---
|
|
574
|
+
bB8aNE2ULCnQ+BB5y5HVHnwsnRZUzbCX1cqPHZ2hik1e3CZ4aMXmeZezMZl2nrXd
|
|
575
|
+
dieNjpiHg2iTOdQurIad4mLu0ixv2UVLa7FC0SgkBarFV7VgAYAXq8x7xd/KrEaA
|
|
576
|
+
EAeJmWb+uKW5hkQwrQ7bHe3BuNOoPmX1uIFZv7aKqmZDVdypC+0C3q1CbbeMjfWU
|
|
577
|
+
xwMQ8jsUjXlJCjdtpyBhPlS8O/dJ5tm7mnNTrSk8wp+nSbk17E5g9xy9SmyC3CUZ
|
|
578
|
+
0I7XDtbazFkOQKSkBgwpmEv0qkdeeQJ/JuSePXFi66E962zf+CqQ4PTZX2e9lW1u
|
|
579
|
+
k8jWuLYv6t5ckBo/Tn6hoQ==
|
|
580
|
+
```
|
|
581
|
+
#### 5.2.3. <i>.dataframe(tag:str, depth:str)</i>
|
|
582
|
+
tag의 Attribute를 데이터프레임으로 변환합니다.<br>
|
|
583
|
+
<i style="color:green;">@param</i> tag: [str] 변환하고자 하는 태그 이름 e.g. "Element", "MethodSignature"<br>
|
|
584
|
+
<i style="color:green;">@param</i> depth: [str] 선택한 태그 하위 태그 적용 깊이 e.g. "recursive"
|
|
585
|
+
|
|
586
|
+
```commandline
|
|
587
|
+
print(main.dataframe('Element', depth='recursive'))
|
|
588
|
+
print('---')
|
|
589
|
+
print(main.dataframe('MethodSignature', depth='tag'))
|
|
590
|
+
```
|
|
591
|
+
```commandline
|
|
592
|
+
결과
|
|
593
|
+
name OID ignore comment modelType basicModelType unit kind scope virtual dependent volatile calibrated set get read write reference maxSizeX componentName componentID model
|
|
594
|
+
0 ABS_ActvSta_Can _040g1ngg00p91o07186g9qpv1tv0a false ABS_ActiveStatus ##2G##ESC - TCS11 - ABS_ACT scalar udisc message exported false false true true false false true true false NaN NaN NaN ComDef_HEV
|
|
595
|
+
1 ABS_DfctvSta_Can _040g1ngg01a01no71c8g7rr1uh8ga false ABS_DefectiveStatus ##2G##ESC - TCS11 - ABS_DEF scalar udisc message exported false false true true false false true true false NaN NaN NaN ComDef_HEV
|
|
596
|
+
2 ABS_DiagSta_Can _040g1ngg00p91o07182g9bnv64o0e false ABS_DiagnosticStatus ##2G##ESC - TCS11 - ABS_DIAG scalar udisc message exported false false true true false false true true false NaN NaN NaN ComDef_HEV
|
|
597
|
+
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
|
|
598
|
+
1172 xEV_TotGridEnergy_Can _040g1ngg01a01og70g8g5pjg6r3lc false Total grid energy into the battery scalar cont message exported false false true true false false true true false NaN NaN NaN ComDef_HEV
|
|
599
|
+
1173 CRC16bit_Calculator _040g1ngg00p91og70gbg6kpeec400 false CRC 16bit Calculator Instance complex class NaN local NaN NaN NaN NaN false false true true false NaN /HNB_GASOLINE/_29_CommunicationVehicle/CANInte... _040g1ngg01pp1oo708a0du6locrr2 ComDef_HEV
|
|
600
|
+
1174 CRC8bit_Calculator _040g1ngg01a01o8704fg42b3o0102 false CRC 8bit Calculator Instance complex class NaN local NaN NaN NaN NaN false false true true false NaN /HNB_GASOLINE/_29_CommunicationVehicle/CANInte... _040g1ngg01pp1oo708cg4rviuqor2 ComDef_HEV
|
|
601
|
+
|
|
602
|
+
[1175 rows x 22 columns]
|
|
603
|
+
---
|
|
604
|
+
name OID public default defaultMethod hidden availableForOS model
|
|
605
|
+
0 _ABS_ESC_01_10ms _040g1ngg00p91o870kb0a7d8r4524 true false true false true ComDef_HEV
|
|
606
|
+
1 _ACU_02_00ms _040g030000001mo7109g4avsmjn5i true false false false true ComDef_HEV
|
|
607
|
+
2 _BCM_12_200ms _040g030000001mo710eg5p0lpf73a true false false false true ComDef_HEV
|
|
608
|
+
.. ... ... ... ... ... ... ... ...
|
|
609
|
+
62 _SMK_02_200ms _040g1j9410g01q071g90p9vm1m4g2 true false false false true ComDef_HEV
|
|
610
|
+
63 _TMU_01_200ms _040g1ngg00p91o871cbg8vcrhmigk true false false false true ComDef_HEV
|
|
611
|
+
64 _WAKEUP_01_00ms _040g030000001mo7109g4a84q0t5g true false false false true ComDef_HEV
|
|
612
|
+
|
|
613
|
+
[65 rows x 8 columns]
|
|
614
|
+
```
|
|
615
|
+
#### 5.2.4. <i>.datadict(tag:str, depth:str)</i>
|
|
616
|
+
1.2.3.절의 dictionary 형태 (예제 없음)
|
|
617
|
+
|
|
618
|
+
#### 5.2.5. <i>.export(path:str)</i>
|
|
619
|
+
파일로 저장
|
|
620
|
+
```commandline
|
|
621
|
+
main.export(r'./')
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
#### 5.2.6. 기타 기능
|
|
625
|
+
```commandline
|
|
626
|
+
# .export_to_downloads()
|
|
627
|
+
# 1.2.5.절의 저장 경로를 C:\User\Downloads 로 지정
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
```commandline
|
|
631
|
+
# .findParent(*elems:Element)
|
|
632
|
+
# Element의 부모 Element 를 리턴
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
```commandline
|
|
636
|
+
# .serialize()
|
|
637
|
+
# export를 위한 문자열을 리턴
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
```commandline
|
|
641
|
+
# .strictFind(tag:str, **kwargs)
|
|
642
|
+
# 태그와 Attribute가 kwargs의 조건을 만족하는 태그를 리턴
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
```commandline
|
|
646
|
+
# .replace(tag:str, attr_name:str, attr_value:dict)
|
|
647
|
+
# @tag와 @attr_name에 부합하는 태그를 찾은 뒤 attr_value.key값을 attr_value.value로 변경
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
### 5.3. WorkspaceIO
|
|
651
|
+
워크스페이스 또는 SVN 전체 프로젝트 접근
|