[OBD Acquisition & Kinematics] 다목적 차량 센서 데이터 테스트 파이프라인 구축
• 1 min read
비표준 확장 PID를 추출하기 위한 브루트포스 스캔 과정에서 발생하는 응답 데이터 유실 현상을 해결하고, 차량용 네트워크 프로토콜(CAN-ISOTP) 통신의 안정성을 근본적으로 검증하기 위해 시스템 단위 테스트가 가능한 분석 전담 파이프라인을 Python 기반으로 새롭게 설계했다.
[Python / Payload Parser] 원시 페이로드 역직렬화 및 단위 변환 계층
차량 네트워크에서 수신된 바이트 스트림과 헥사(Hex) 코드 문자열을 물리적 단위로 정밀하게 변환하기 위한 데이터 파싱 모듈을 아키텍처 내부에 통합했다.
- 비트 단위 분할 연산을 통해 속도, 조향각 등 특정 스칼라(Scalar) 데이터의 유실 없이 무결성을 보존하도록 역직렬화 알고리즘을 설계했다.
- 주차 및 주행 환경에서 수집한 원시 페이로드의 비트 패턴 변화를 구조적으로 분석하여, 제동 계통 스위치의 논리적 상태 판정 알고리즘을 보정하고 파싱의 신뢰성을 확보했다.
[Tkinter / SQLite] 사용자 상호작용 및 테스트 검증용 인터페이스
현장 테스트 환경에서 직관적으로 통신 상태와 파싱 결과를 모니터링할 수 있는 디버깅 전용 유저 인터페이스 파이프라인을 구성했다.
- Python의 GUI 프레임워크인 Tkinter를 도입하여, 차량 내 테스트 진행 시 실시간 통신 로그를 가시화하는 테스트 대시보드를 구축했다.
- 단위 테스트의 수집 결과를 날짜 기반의 독립적인 SQLite 로컬 데이터베이스 파일에 격리 저장하는 자동화된 I/O 매니저를 파이프라인에 추가했다.
- 수집 세션 단위로 데이터베이스 내부의 논리적 테이블이 동적 생성되도록 설계하여 데이터 관리의 일관성을 확보하고, 파싱된 시계열 결과물을 계층화된 로컬 디렉토리 구조로 보존하여 검증 단계를 자동화했다.