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개 메시지
- CableCheckReq/Res - 케이블 절연 상태 확인
- PreChargeReq/Res - 사전 충전 전압 매칭
- WeldingDetectionReq/Res - 충전 종료 후 용접 검출
- PowerDeliveryReq/Res - 충전 시작/중지 제어
Phase 2 (높은 우선순위): 세션 및 서비스
- SessionSetupReq/Res - 세션 설정
- ServiceDiscoveryReq/Res - 서비스 검색
- ChargeParameterDiscoveryReq/Res - 충전 매개변수
- AuthorizationReq/Res - 권한 확인
Phase 3 (중간 우선순위): 결제 및 확장
- PaymentServiceSelectionReq/Res - 결제 서비스
- ChargingStatusReq/Res - AC 충전 상태
- SessionStopReq/Res - 세션 종료
결론
현재 V2G EXI Decoder는 기본적인 DC 충전 인프라(CurrentDemand)는 완성되어 있으나, 완전한 ISO 15118-2 호환성을 위해서는 최소 8개의 핵심 메시지 구현이 추가로 필요합니다.
다행히 VC2022와 dotnet 버전에는 모든 메시지의 구조체가 준비되어 있어, XML 파싱/생성 로직만 추가하면 빠른 구현이 가능한 상태입니다.