From 64e445e21ef16f4585591b8ae42b75c805101c5c Mon Sep 17 00:00:00 2001 From: gram Date: Thu, 11 Sep 2025 23:49:58 +0900 Subject: [PATCH] docs: Add comprehensive V2G message implementation analysis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Complete analysis of original C program message format support - VC2022 and dotnet version implementation status comparison - Clean output implementation documentation - Message priority recommendations for ISO 15118-2 compliance Analysis shows: โœ… CurrentDemandReq/Res fully implemented in all versions ๐Ÿ“‹ 17 additional message types have structures but need XML parsing logic ๐ŸŽฏ 8 core messages identified as high priority for DC charging compliance ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- docs/final_comparison_clean.md | 94 +++++++++++++++++ docs/message_implementation_status_report.md | 102 +++++++++++++++++++ docs/v2g_message_support_analysis.md | 92 +++++++++++++++++ 3 files changed, 288 insertions(+) create mode 100644 docs/final_comparison_clean.md create mode 100644 docs/message_implementation_status_report.md create mode 100644 docs/v2g_message_support_analysis.md diff --git a/docs/final_comparison_clean.md b/docs/final_comparison_clean.md new file mode 100644 index 0000000..c68e6f4 --- /dev/null +++ b/docs/final_comparison_clean.md @@ -0,0 +1,94 @@ +# V2G EXI Decoder - ์ตœ์ข… Clean Output ๋น„๊ต ๊ฒฐ๊ณผ + +## ์š”๊ตฌ์‚ฌํ•ญ ๋‹ฌ์„ฑ ์ƒํƒœ + +โœ… **VC2022 ๋ฒ„์ „ ์™„์„ฑ** +- โœ… -decode ์˜ต์…˜: ์ˆœ์ˆ˜ XML๋งŒ ์ถœ๋ ฅ (๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€ ์ œ๊ฑฐ) +- โœ… -encode ์˜ต์…˜: ์ˆœ์ˆ˜ hex string ์ถœ๋ ฅ (๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€ ์ œ๊ฑฐ) +- โœ… Usage ๋ฉ”์‹œ์ง€: dotnet ๋ฒ„์ „๊ณผ ๋™์ผํ•œ ํ˜•์‹ +- โœ… ๋ชจ๋“  ์ƒ˜ํ”Œ ํŒŒ์ผ(test1-5.exi) ํ…Œ์ŠคํŠธ ์™„๋ฃŒ + +## VC2022 ๋ฒ„์ „ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ + +### -decode ํ…Œ์ŠคํŠธ +๋ชจ๋“  ์ƒ˜ํ”Œ์— ๋Œ€ํ•ด ์ˆœ์ˆ˜ XML๋งŒ ์ถœ๋ ฅ: +```xml + + +4142423030303831 +... + +``` + +### -encode ํ…Œ์ŠคํŠธ +๋ชจ๋“  ๋ผ์šด๋“œํŠธ๋ฆฝ์— ๋Œ€ํ•ด ์ˆœ์ˆ˜ hex string๋งŒ ์ถœ๋ ฅ: +``` +# test1.exi -> XML -> EXI +8098021050908C0C0C0E0C50E001993206002040C40C203030C014000603DA98B3E60C0008 + +# test2.exi -> XML -> EXI +8098021050908C0C0C0E0C50D10032018600201881AE0601860C806140C801030800006100001881980600 + +# test3.exi -> XML -> EXI +8098021050908C0C0C0E0C50D10032018600201881AE0601860C806140C801030800006100001881980600 + +# test4.exi -> XML -> EXI +8098021050908C0C0C0E0C50D10032018600A01881AE0601860C806140C801030800006100001881980600 + +# test5.exi -> XML -> EXI +8098021050908C0C0C0E0C50D10032018600201881AE0601860C806140C801030800006100001881980600 +``` + +### Usage ๋ฉ”์‹œ์ง€ (์˜ต์…˜ ์—†์ด ์‹คํ–‰) +``` +Usage: V2GDecoder [-debug] [-decode|-encode] input_file + V2GDecoder [-debug] -encode (read XML from stdin) + V2GDecoder [-debug] -decode (read hex string from stdin) +Enhanced EXI viewer with XML conversion capabilities + -debug Enable detailed bit-level encoding/decoding output + -decode Convert EXI to Wireshark-style XML format + -decode Read hex string from stdin (echo hex | V2GDecoder -decode) + -encode Convert XML to EXI format + -encode Read XML from stdin (type file.xml | V2GDecoder -encode) + (default) Analyze EXI with detailed output + +Contact: tindevil82@gmail.com +``` + +## ๊ตฌํ˜„ ๋ฐฉ๋ฒ• + +### DEBUG_PRINTF ๋งคํฌ๋กœ ํ™œ์šฉ +๊ธฐ์กด ์ฝ”๋“œ์˜ `DEBUG_PRINTF` ๋งคํฌ๋กœ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์„ ์กฐ๊ฑด๋ถ€๋กœ ๋ณ€๊ฒฝ: + +```c +// ๋ณ€๊ฒฝ ์ „ +printf("DEBUG: argc=%d\\n", argc); +fprintf(stderr, "EVReady: %s\\n", ...); + +// ๋ณ€๊ฒฝ ํ›„ +DEBUG_PRINTF(("DEBUG: argc=%d\\n", argc)); +DEBUG_PRINTF(("EVReady: %s\\n", ...)); +``` + +### ์กฐ๊ฑด๋ถ€ ๋””๋ฒ„๊ทธ ๋ชจ๋“œ +- `EXI_DEBUG_MODE`๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์—๋งŒ ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ +- -debug ํ”Œ๋ž˜๊ทธ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•  ๋•Œ๋งŒ ์ƒ์„ธ ์ถœ๋ ฅ ํ™œ์„ฑํ™” +- -decode/-encode ์ „์šฉ ๋ชจ๋“œ์—์„œ๋Š” ์™„์ „ํžˆ ๊นจ๋—ํ•œ ์ถœ๋ ฅ + +## ๊ฒฐ๋ก  + +โœ… **๋ชฉํ‘œ ๋‹ฌ์„ฑ**: VC2022 ๋ฒ„์ „์ด dotnet ๋ฒ„์ „๊ณผ ๋™์ผํ•˜๊ฒŒ ๊นจ๋—ํ•œ ์ถœ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +โœ… **ํ˜ธํ™˜์„ฑ**: ๋‘ ๋ฒ„์ „ ๋ชจ๋‘ ๋™์ผํ•œ XML ์ถœ๋ ฅ ๋ฐ EXI ์ธ์ฝ”๋”ฉ ๊ฒฐ๊ณผ +โœ… **์‚ฌ์šฉ์ž ๊ฒฝํ—˜**: -decode/-encode ์˜ต์…˜์—์„œ "์“ธ๋ฐ์—†๋Š” ๋ฉ”์‹œ์ง€" ์™„์ „ ์ œ๊ฑฐ +โœ… **์œ ์—ฐ์„ฑ**: -debug ์˜ต์…˜์œผ๋กœ ํ•„์š”์‹œ ์ƒ์„ธ ๋ถ„์„ ๊ฐ€๋Šฅ + +## ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ +```bash +# ๋นŒ๋“œ +cd Port/vc2022 +./build.bat + +# ์‚ฌ์šฉ +V2GDecoder.exe -decode sample/test5.exi +V2GDecoder.exe -debug -decode sample/test5.exi # ๋””๋ฒ„๊ทธ ์ •๋ณด ํฌํ•จ +``` \ No newline at end of file diff --git a/docs/message_implementation_status_report.md b/docs/message_implementation_status_report.md new file mode 100644 index 0000000..3333c3f --- /dev/null +++ b/docs/message_implementation_status_report.md @@ -0,0 +1,102 @@ +# V2G EXI Decoder - ๋ฉ”์‹œ์ง€ ๊ตฌํ˜„ ์ƒํƒœ ์ตœ์ข… ๋ฆฌํฌํŠธ + +## ๊ตฌํ˜„ ์ƒํƒœ ์š”์•ฝ + +### โœ… ์™„์ „ ๊ตฌํ˜„๋œ ๋ฉ”์‹œ์ง€ (๋ชจ๋“  ๋ฒ„์ „) +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ๋น„๊ณ  | +|------------|-----------|---------|--------|------| +| CurrentDemandReq | โœ… | โœ… | โœ… | XMLํŒŒ์‹ฑ/์ƒ์„ฑ, EXI์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์™„๋ฃŒ | +| CurrentDemandRes | โœ… | โœ… | โœ… | XMLํŒŒ์‹ฑ/์ƒ์„ฑ, EXI์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์™„๋ฃŒ | + +### ๐Ÿ“‹ ๊ตฌ์กฐ์ฒด๋Š” ์žˆ์ง€๋งŒ ๋กœ์ง ๋ฏธ๊ตฌํ˜„ (๋†’์€ ์šฐ์„ ์ˆœ์œ„) + +#### DC ์ถฉ์ „ ํ•„์ˆ˜ ๋ฉ”์‹œ์ง€๋“ค +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ISO 15118-2 ํ•„์ˆ˜ ์—ฌ๋ถ€ | +|------------|-----------|---------|--------|-------------------| +| CableCheckReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - DC ์ถฉ์ „ ์‹œ์ž‘ ์ „ ์ผ€์ด๋ธ” ์ ˆ์—ฐ ํ™•์ธ | +| PreChargeReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - DC ์ถฉ์ „ ์‹œ์ž‘ ์ „ ์‚ฌ์ „์ถฉ์ „ | +| WeldingDetectionReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - DC ์ถฉ์ „ ์ข…๋ฃŒ ํ›„ ์šฉ์ ‘ ๊ฒ€์ถœ | + +#### ์ „๋ ฅ ์ œ์–ด ๋ฉ”์‹œ์ง€ +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ISO 15118-2 ํ•„์ˆ˜ ์—ฌ๋ถ€ | +|------------|-----------|---------|--------|-------------------| +| PowerDeliveryReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - ์ถฉ์ „ ์‹œ์ž‘/์ค‘์ง€ ์ œ์–ด | + +#### ์„ธ์…˜ ๊ด€๋ฆฌ ๋ฉ”์‹œ์ง€ +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ISO 15118-2 ํ•„์ˆ˜ ์—ฌ๋ถ€ | +|------------|-----------|---------|--------|-------------------| +| SessionSetupReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - ์ถฉ์ „ ์„ธ์…˜ ์„ค์ • | +| SessionStopReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | ๊ถŒ์žฅ - ์ถฉ์ „ ์„ธ์…˜ ์ข…๋ฃŒ | + +#### ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋ฉ”์‹œ์ง€ +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ISO 15118-2 ํ•„์ˆ˜ ์—ฌ๋ถ€ | +|------------|-----------|---------|--------|-------------------| +| ServiceDiscoveryReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - ์ถฉ์ „ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ | +| ServiceDetailReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | ์„ ํƒ์  - ์„œ๋น„์Šค ์ƒ์„ธ ์ •๋ณด | + +#### ์ธ์ฆ ๋ฐ ๊ฒฐ์ œ ๋ฉ”์‹œ์ง€ +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ISO 15118-2 ํ•„์ˆ˜ ์—ฌ๋ถ€ | +|------------|-----------|---------|--------|-------------------| +| AuthorizationReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - ์ถฉ์ „ ๊ถŒํ•œ ํ™•์ธ | +| ChargeParameterDiscoveryReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - ์ถฉ์ „ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ตํ™˜ | +| PaymentServiceSelectionReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | **ํ•„์ˆ˜** - ๊ฒฐ์ œ ์„œ๋น„์Šค ์„ ํƒ | +| PaymentDetailsReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | ์กฐ๊ฑด๋ถ€ ํ•„์ˆ˜ - PnC ์‹œ ํ•„์š” | + +#### AC ์ถฉ์ „ ๋ฉ”์‹œ์ง€ +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ISO 15118-2 ํ•„์ˆ˜ ์—ฌ๋ถ€ | +|------------|-----------|---------|--------|-------------------| +| ChargingStatusReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | AC ์ถฉ์ „์‹œ ํ•„์ˆ˜ | + +#### ๊ณ„๋Ÿ‰ ๋ฐ ์ธ์ฆ์„œ ๋ฉ”์‹œ์ง€ +| ๋ฉ”์‹œ์ง€ ํƒ€์ž… | ์˜ค๋ฆฌ์ง€๋„ C | VC2022 | dotnet | ISO 15118-2 ํ•„์ˆ˜ ์—ฌ๋ถ€ | +|------------|-----------|---------|--------|-------------------| +| MeteringReceiptReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | ์„ ํƒ์  - ๊ณ„๋Ÿ‰ ์˜์ˆ˜์ฆ | +| CertificateUpdateReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | ์„ ํƒ์  - ์ธ์ฆ์„œ ์—…๋ฐ์ดํŠธ | +| CertificateInstallationReq/Res | โŒ | ๐Ÿ“‹ | ๐Ÿ“‹ | ์„ ํƒ์  - ์ธ์ฆ์„œ ์„ค์น˜ | + +## ์ƒํƒœ ๊ธฐํ˜ธ ์„ค๋ช… +- โœ… **์™„์ „ ๊ตฌํ˜„**: XML ํŒŒ์‹ฑ/์ƒ์„ฑ + EXI ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ + ํ…Œ์ŠคํŠธ ์™„๋ฃŒ +- ๐Ÿ“‹ **๊ตฌ์กฐ์ฒด๋งŒ ์กด์žฌ**: EXI ๊ตฌ์กฐ์ฒด ์ •์˜๋˜์–ด ์žˆ์œผ๋‚˜ XML ํŒŒ์‹ฑ/์ƒ์„ฑ ๋กœ์ง ๋ฏธ๊ตฌํ˜„ +- โŒ **๋ฏธ๊ตฌํ˜„**: ๊ตฌ์กฐ์ฒด๋Š” ์žˆ์ง€๋งŒ ์‹ค์ œ ์ฒ˜๋ฆฌ ๋กœ์ง ์—†์Œ + +## ๊ธฐ์ˆ ์  ๋ฐœ๊ฒฌ์‚ฌํ•ญ + +### 1. dotnet ๋ฒ„์ „์˜ ๊ตฌ์กฐ์  ์šฐ์œ„ +- **๋‹ค์ค‘ ํ‘œ์ค€ ์ง€์›**: ISO1, ISO2, DIN ํ‘œ์ค€๋ณ„ ๊ตฌ์กฐ์ฒด ๋ถ„๋ฆฌ +- **ํ™•์žฅ์„ฑ**: ์ƒˆ ๋ฉ”์‹œ์ง€ ํƒ€์ž… ์ถ”๊ฐ€๊ฐ€ ์šฉ์ดํ•œ ๊ตฌ์กฐ +- **ํƒ€์ž… ์•ˆ์ •์„ฑ**: C# ๊ฐ•ํƒ€์ž… ์‹œ์Šคํ…œ์˜ ์žฅ์  + +### 2. VC2022 ๋ฒ„์ „์˜ ํ˜„ํ™ฉ +- **๊ตฌ์กฐ์ฒด ์™„์„ฑ๋„**: ๋ชจ๋“  ISO1 ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ์ฒด ํฌํ•จ +- **๋””๋ฒ„๊ทธ ์ธํ”„๋ผ**: DEBUG_PRINTF ์‹œ์Šคํ…œ์œผ๋กœ ์ผ๊ด€์„ฑ ์œ ์ง€ +- **C ํ˜ธํ™˜์„ฑ**: ์˜ค๋ฆฌ์ง€๋„ C ์ฝ”๋“œ์™€ ์™„์ „ ํ˜ธํ™˜ + +### 3. ์˜ค๋ฆฌ์ง€๋„ C ์ฝ”๋“œ์˜ ํ•œ๊ณ„ +- **๋‹จ์ผ ๋ฉ”์‹œ์ง€ ์ง‘์ค‘**: CurrentDemand ๋ฉ”์‹œ์ง€์—๋งŒ ํŠนํ™” +- **ํ™•์žฅ์„ฑ ๋ถ€์กฑ**: ์ƒˆ ๋ฉ”์‹œ์ง€ ์ถ”๊ฐ€๊ฐ€ ๋ณต์žกํ•จ +- **๊ธฐ๋ณธ ์ธํ”„๋ผ**: EXI ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ์—”์ง„์€ ์™„์„ฑ๋„ ๋†’์Œ + +## ๊ฐœ๋ฐœ ์šฐ์„ ์ˆœ์œ„ ๊ถŒ์žฅ์‚ฌํ•ญ + +### Phase 1 (์ตœ๊ณ  ์šฐ์„ ์ˆœ์œ„): DC ์ถฉ์ „ ํ•ต์‹ฌ 4๊ฐœ ๋ฉ”์‹œ์ง€ +1. **CableCheckReq/Res** - ์ผ€์ด๋ธ” ์ ˆ์—ฐ ์ƒํƒœ ํ™•์ธ +2. **PreChargeReq/Res** - ์‚ฌ์ „ ์ถฉ์ „ ์ „์•• ๋งค์นญ +3. **WeldingDetectionReq/Res** - ์ถฉ์ „ ์ข…๋ฃŒ ํ›„ ์šฉ์ ‘ ๊ฒ€์ถœ +4. **PowerDeliveryReq/Res** - ์ถฉ์ „ ์‹œ์ž‘/์ค‘์ง€ ์ œ์–ด + +### Phase 2 (๋†’์€ ์šฐ์„ ์ˆœ์œ„): ์„ธ์…˜ ๋ฐ ์„œ๋น„์Šค +5. **SessionSetupReq/Res** - ์„ธ์…˜ ์„ค์ • +6. **ServiceDiscoveryReq/Res** - ์„œ๋น„์Šค ๊ฒ€์ƒ‰ +7. **ChargeParameterDiscoveryReq/Res** - ์ถฉ์ „ ๋งค๊ฐœ๋ณ€์ˆ˜ +8. **AuthorizationReq/Res** - ๊ถŒํ•œ ํ™•์ธ + +### Phase 3 (์ค‘๊ฐ„ ์šฐ์„ ์ˆœ์œ„): ๊ฒฐ์ œ ๋ฐ ํ™•์žฅ +9. **PaymentServiceSelectionReq/Res** - ๊ฒฐ์ œ ์„œ๋น„์Šค +10. **ChargingStatusReq/Res** - AC ์ถฉ์ „ ์ƒํƒœ +11. **SessionStopReq/Res** - ์„ธ์…˜ ์ข…๋ฃŒ + +## ๊ฒฐ๋ก  + +ํ˜„์žฌ V2G EXI Decoder๋Š” **๊ธฐ๋ณธ์ ์ธ DC ์ถฉ์ „ ์ธํ”„๋ผ**(CurrentDemand)๋Š” ์™„์„ฑ๋˜์–ด ์žˆ์œผ๋‚˜, **์™„์ „ํ•œ ISO 15118-2 ํ˜ธํ™˜์„ฑ**์„ ์œ„ํ•ด์„œ๋Š” **์ตœ์†Œ 8๊ฐœ์˜ ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ ๊ตฌํ˜„**์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. + +๋‹คํ–‰ํžˆ VC2022์™€ dotnet ๋ฒ„์ „์—๋Š” ๋ชจ๋“  ๋ฉ”์‹œ์ง€์˜ ๊ตฌ์กฐ์ฒด๊ฐ€ ์ค€๋น„๋˜์–ด ์žˆ์–ด, **XML ํŒŒ์‹ฑ/์ƒ์„ฑ ๋กœ์ง**๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋น ๋ฅธ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. \ No newline at end of file diff --git a/docs/v2g_message_support_analysis.md b/docs/v2g_message_support_analysis.md new file mode 100644 index 0000000..1cb925d --- /dev/null +++ b/docs/v2g_message_support_analysis.md @@ -0,0 +1,92 @@ +# V2G EXI Decoder - ๋ฉ”์‹œ์ง€ ํƒ€์ž… ์ง€์› ํ˜„ํ™ฉ ๋ถ„์„ + +## ์˜ค๋ฆฌ์ง€๋„ C ํ”„๋กœ๊ทธ๋žจ์ด ์ง€์›ํ•˜๋Š” ๋ฉ”์‹œ์ง€ ํƒ€์ž… (์šฐ์„ ์ˆœ์œ„ ์ˆœ) + +### 1. ์„ธ์…˜ ๊ด€๋ฆฌ ๋ฉ”์‹œ์ง€ (Session Management) +1. **SessionSetupReq/Res** - ์ถฉ์ „ ์„ธ์…˜ ์„ค์ • +2. **SessionStopReq/Res** - ์ถฉ์ „ ์„ธ์…˜ ์ข…๋ฃŒ + +### 2. ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋ฐ ์„ ํƒ (Service Discovery & Selection) +3. **ServiceDiscoveryReq/Res** - ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ถฉ์ „ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ +4. **ServiceDetailReq/Res** - ํŠน์ • ์„œ๋น„์Šค ์ƒ์„ธ ์ •๋ณด ์š”์ฒญ +5. **PaymentServiceSelectionReq/Res** - ๊ฒฐ์ œ ๋ฐฉ์‹ ๋ฐ ์„œ๋น„์Šค ์„ ํƒ + +### 3. ์ธ์ฆ ๋ฐ ๊ถŒํ•œ (Authentication & Authorization) +6. **AuthorizationReq/Res** - ์ถฉ์ „ ๊ถŒํ•œ ํ™•์ธ +7. **PaymentDetailsReq/Res** - ๊ฒฐ์ œ ์ •๋ณด ๊ตํ™˜ + +### 4. ์ถฉ์ „ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฒ€์ƒ‰ (Charge Parameter Discovery) +8. **ChargeParameterDiscoveryReq/Res** - ์ถฉ์ „ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ตํ™˜ + +### 5. DC ์ถฉ์ „ ํŠนํ™” ๋ฉ”์‹œ์ง€ (DC Charging Specific) - ํ•ต์‹ฌ ๊ตฌํ˜„ ํ•„์š” +9. **CableCheckReq/Res** โŒ - ์ผ€์ด๋ธ” ์—ฐ๊ฒฐ ์ƒํƒœ ํ™•์ธ (๋ฏธ๊ตฌํ˜„) +10. **PreChargeReq/Res** โŒ - ์‚ฌ์ „ ์ถฉ์ „ (๋ฏธ๊ตฌํ˜„) +11. **CurrentDemandReq/Res** โœ… - ์ „๋ฅ˜ ์š”๊ตฌ์‚ฌํ•ญ (๊ตฌํ˜„๋จ) +12. **WeldingDetectionReq/Res** โŒ - ์šฉ์ ‘ ๊ฒ€์ถœ (๋ฏธ๊ตฌํ˜„) + +### 6. AC ์ถฉ์ „ ํŠนํ™” ๋ฉ”์‹œ์ง€ (AC Charging Specific) +13. **ChargingStatusReq/Res** โŒ - AC ์ถฉ์ „ ์ƒํƒœ (๋ฏธ๊ตฌํ˜„) + +### 7. ์ „๋ ฅ ์ „๋‹ฌ ์ œ์–ด (Power Delivery Control) +14. **PowerDeliveryReq/Res** โŒ - ์ „๋ ฅ ์ „๋‹ฌ ์ œ์–ด (๋ฏธ๊ตฌํ˜„) + +### 8. ๊ณ„๋Ÿ‰ ๋ฐ ์ˆ˜๋‚ฉ (Metering & Billing) +15. **MeteringReceiptReq/Res** โŒ - ๊ณ„๋Ÿ‰ ์˜์ˆ˜์ฆ (๋ฏธ๊ตฌํ˜„) + +### 9. ์ธ์ฆ์„œ ๊ด€๋ฆฌ (Certificate Management) +16. **CertificateUpdateReq/Res** โŒ - ์ธ์ฆ์„œ ์—…๋ฐ์ดํŠธ (๋ฏธ๊ตฌํ˜„) +17. **CertificateInstallationReq/Res** โŒ - ์ธ์ฆ์„œ ์„ค์น˜ (๋ฏธ๊ตฌํ˜„) + +## ํ˜„์žฌ ๊ตฌํ˜„ ์ƒํƒœ ์š”์•ฝ + +### โœ… ๊ตฌํ˜„๋œ ๋ฉ”์‹œ์ง€ (์˜ค๋ฆฌ์ง€๋„ C) +- **CurrentDemandReq** - ์™„์ „ ๊ตฌํ˜„ (XML ํŒŒ์‹ฑ/์ƒ์„ฑ, EXI ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ) +- **CurrentDemandRes** - ์™„์ „ ๊ตฌํ˜„ (XML ํŒŒ์‹ฑ/์ƒ์„ฑ, EXI ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ) + +### โŒ ๋ฏธ๊ตฌํ˜„ ๋ฉ”์‹œ์ง€ (ํ•„์ˆ˜ DC ์ถฉ์ „ ๋ฉ”์‹œ์ง€๋“ค) +1. **CableCheckReq/Res** - DC ์ถฉ์ „ ์‹œ์ž‘ ์ „ ์ผ€์ด๋ธ” ์ ˆ์—ฐ ์ƒํƒœ ํ™•์ธ +2. **PreChargeReq/Res** - DC ์ถฉ์ „ ์‹œ์ž‘ ์ „ ์‚ฌ์ „์ถฉ์ „์œผ๋กœ ์ „์•• ๋งค์นญ +3. **WeldingDetectionReq/Res** - DC ์ถฉ์ „ ์ข…๋ฃŒ ํ›„ ์šฉ์ ‘ ์ƒํƒœ ํ™•์ธ +4. **PowerDeliveryReq/Res** - ์ถฉ์ „ ์‹œ์ž‘/์ค‘์ง€ ๋ช…๋ น + +## ๊ถŒ์žฅ ๊ตฌํ˜„ ์ˆœ์„œ (C โ†’ VC โ†’ dotnet) + +### Phase 1: DC ์ถฉ์ „ ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ (๋†’์€ ์šฐ์„ ์ˆœ์œ„) +1. **CableCheckReq/Res** - ISO 15118-2 DC ์ถฉ์ „ ํ•„์ˆ˜ ๋ฉ”์‹œ์ง€ +2. **PreChargeReq/Res** - ISO 15118-2 DC ์ถฉ์ „ ํ•„์ˆ˜ ๋ฉ”์‹œ์ง€ +3. **WeldingDetectionReq/Res** - ISO 15118-2 DC ์ถฉ์ „ ํ•„์ˆ˜ ๋ฉ”์‹œ์ง€ + +### Phase 2: ์ „๋ ฅ ์ œ์–ด ๋ฉ”์‹œ์ง€ (์ค‘๊ฐ„ ์šฐ์„ ์ˆœ์œ„) +4. **PowerDeliveryReq/Res** - ์ถฉ์ „ ํ๋ฆ„ ์ œ์–ด๋ฅผ ์œ„ํ•œ ํ•„์ˆ˜ ๋ฉ”์‹œ์ง€ + +### Phase 3: ์„ธ์…˜ ๊ด€๋ฆฌ ๋ฉ”์‹œ์ง€ (์ค‘๊ฐ„ ์šฐ์„ ์ˆœ์œ„) +5. **SessionSetupReq/Res** - ์„ธ์…˜ ์‹œ์ž‘ +6. **SessionStopReq/Res** - ์„ธ์…˜ ์ข…๋ฃŒ + +### Phase 4: ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋ฉ”์‹œ์ง€ (๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„) +7. **ServiceDiscoveryReq/Res** +8. **ChargeParameterDiscoveryReq/Res** + +## ๊ธฐ์ˆ ์  ๊ณ ๋ ค์‚ฌํ•ญ + +### XML ํŒจํ„ด ์ธ์‹ +- ๊ฐ ๋ฉ”์‹œ์ง€ ํƒ€์ž…๋ณ„๋กœ XML ํƒœ๊ทธ ํŒจํ„ด ์ธ์‹ ๋กœ์ง ํ•„์š” +- ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ฒ˜๋ฆฌ (`` ํ˜•์‹) + +### EXI ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ +- ISO1 EXI ๊ตฌ์กฐ์ฒด ๋งคํ•‘ +- ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ •ํ™•ํ•œ ์ฒ˜๋ฆฌ + +### ๊ตฌ์กฐ์ฒด ์ดˆ๊ธฐํ™” +- ๊ฐ ๋ฉ”์‹œ์ง€๋ณ„ `init_iso1*Type()` ํ•จ์ˆ˜ ํ™œ์šฉ +- `_isUsed` ํ”Œ๋ž˜๊ทธ ์˜ฌ๋ฐ”๋ฅธ ์„ค์ • + +### VC2022 ํฌํŒ… ๊ณ ๋ ค์‚ฌํ•ญ +- DEBUG_PRINTF ๋งคํฌ๋กœ ์ผ๊ด€์„ฑ ์œ ์ง€ +- ๊ธฐ์กด ์ฝ”๋“œ ์Šคํƒ€์ผ ์ค€์ˆ˜ +- Windows ํŠนํ™” ๋นŒ๋“œ ์„ค์ • + +### dotnet ํฌํŒ… ๊ณ ๋ ค์‚ฌํ•ญ +- C# ํด๋ž˜์Šค ๊ตฌ์กฐ์ฒด ๋ณ€ํ™˜ +- ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ฐจ์ด์  ๊ณ ๋ ค +- .NET Core ํ˜ธํ™˜์„ฑ \ No newline at end of file