# V2G EXI Decoder Project - Claude 설정

## 언어 설정
- **한국어로 대화하기**: 모든 응답과 설명을 한국어로 제공
- 사용자가 한국어로 질문하면 반드시 한국어로 답변
- 대화 요약 후에도 이 언어 설정을 유지

## 프로젝트 개요
- **목적**: V2G (Vehicle-to-Grid) EXI 바이너리 파일 디코딩/인코딩
- **표준**: ISO 15118-2:2013 V2G 통신 프로토콜
- **구현**: C, VC2022, .NET Core 멀티플랫폼 지원

## 빌드 설정
- **VC2022**: `Port/vc2022/build.bat` 파일 참고
- **dotnet**: `dotnet build Port/dotnet/V2GDecoderNet.csproj`
- **원본 C**: 루트 디렉토리의 Makefile 사용

## 테스트 파일들
- Sample 폴더에 테스트에 사용할 샘플 파일들이 있음
- **test1.exi**: CurrentDemandRes (131바이트, 네트워크 패킷 포함)
- **test5.exi**: CurrentDemandReq (43바이트, 순수 EXI)
- **테스트 결과**: `temp/` 폴더에 저장하여 루트 정리

## 주요 컴포넌트
- **EXICodecExact.cs**: 범용 EXI 디코더 (VC2022 호환)
- **EXIEncoderExact.cs**: 정확한 EXI 인코더
- **V2GMessageProcessor.cs**: XML 변환 및 메시지 처리
- **BitStreamExact.cs**: 비트 레벨 스트림 처리

## 개발 원칙
- VC2022와 100% 호환성 유지
- 바이트 레벨에서 정확한 인코딩/디코딩
- 디버깅 편의를 위한 동일한 구조체/함수명 사용
- 네트워크 패킷과 순수 EXI 모두 지원

## 명령어 예시
```bash
# 디코딩
dotnet run --project Port/dotnet/V2GDecoderNet.csproj -decode runtime/test1.exi

# 인코딩  
dotnet run --project Port/dotnet/V2GDecoderNet.csproj -encode input.xml

# 분석
dotnet run --project Port/dotnet/V2GDecoderNet.csproj runtime/test5.exi
```

## 주의사항
- 테스트 파일은 `temp/` 폴더 사용
- 바이너리 출력 시 올바른 스트림 처리 필요
- CurrentDemandReq와 CurrentDemandRes 둘 다 완벽 지원 필수