OBD 차량 데이터

호환되는 Bluetooth 어댑터를 통해 차량 제공 RPM, 냉각수 온도, 오일 온도, 연료 및 기타 매개변수를 읽어보세요. 이 문서에서는 판독 조건, 매개변수 구성, 데이터 업데이트, 계측기 및 여행에서 판독값 사용 규칙을 설명합니다.

차량 매개변수 및 판독 결과

OBD은 차량 컨트롤러에서 제공하는 데이터를 읽는 데 사용됩니다. ECU이라고도 하는 차량 컨트롤러는 엔진, 변속기 및 기타 시스템을 담당합니다. CapDrive는 어댑터를 통해 이러한 컨트롤러에 요청을 보내고 수신된 데이터를 판독값으로 변환합니다.

앱의 "매개변수"는 엔진 속도(RPM), 냉각수 온도 또는 상태와 같이 읽고 표시되는 데이터입니다. 읽기 요청, 변환 수식 및 단위를 보유합니다. 숫자 매개변수는 숫자, 진행률 또는 곡선에 사용될 수 있습니다. 상태 매개변수는 텍스트 매핑을 통해 D, P 등으로 표시될 수 있습니다.

예를 들어, 냉각수 온도 매개변수는 요청 0105을 사용하여 데이터 바이트 A을 얻고 A - 40에 따라 변환할 수 있습니다. 반환된 바이트의 10진수 값이 123인 경우 결과는 83 °C입니다. 유용한 판독값을 얻으려면 연결 방법, 요청 정의 및 변환 규칙이 정확해야 합니다.

차량이 지원하는 매개변수는 모델, 연도, 전원 시스템 및 컨트롤러 상태에 따라 다릅니다. 차량이 실제로 제공하는 값만 읽을 수 있으며, 이름이나 단위를 수정한다고 해서 차량 자체의 데이터 용량이 늘어나는 것은 아닙니다.

지원 범위 및 이용 조건

차량 OBD 연결에는 ELM327 지침을 지원하는 CapDrive Plus, Bluetooth 저에너지(BLE) 어댑터 및 iPhone의 Bluetooth 권한이 필요합니다. 클래식 Bluetooth 및 Wi-Fi 어댑터는 현재 지원되지 않습니다.

어댑터를 차량의 OBD 인터페이스에 연결하고 차량의 필요에 따라 전원을 켠 후에만 앱이 차량과 통신할 수 있습니다. 특정 매개변수에서는 컨트롤러 전원이 켜져 있거나, 엔진이 작동 중이거나, 해당 시스템이 작동 중인 등 차량이 특정 상태에 있어야 합니다. 어댑터 이름에 "Bluetooth"가 포함되어 있다고 해서 해당 어댑터가 BLE 및 지침을 준수한다는 것을 증명하는 것은 아닙니다.

OBD 판독값인 먼저 여행을 시작할 필요가 없습니다은 매개변수 목록 또는 매개변수 편집기에서 보고 테스트할 수 있습니다. 휴대폰 트립이 시작되었는지 여부는 차량이 냉각수 온도, 속도(RPM) 및 기타 매개변수를 반환할지 여부를 결정하지 않습니다.

CapDrive는 16진수 서비스 01, 21, 22에 대한 읽기 요청 구성을 지원합니다. 일반적인 사용의 경우 차량과 일치하는 사전 설정을 사용할 수 있습니다. 특정 요청 주소와 공식은 사전 설정 또는 차량 매개변수 정의에 따릅니다.

연결 및 장치 관리

항목: 더 보기 (…) → 차량 OBD 연결. 장치 페이지에는 주변 어댑터와 저장된 장치가 표시되며, 어댑터의 매개변수 구성은 장치 설정에 저장됩니다.

최초 연결 및 재연결

처음 연결할 때 앱은 블루투스 통신을 설정하고, 어댑터를 초기화하고, 차량 프로토콜을 식별하고, 차량에 쿼리하여 지원되는 표준 매개변수를 보고합니다. 성공하면 초기화 가능한 표준 매개변수가 장치 목록에 추가됩니다. 표준 매개변수가 현재 상태의 값을 가지고 있는지 여부는 실제 판독 결과에 따라 달라집니다.

기존 장치가 다시 연결되면 수정된 매개변수와 적극적으로 삭제된 목록을 포함하여 원래 구성을 계속 사용합니다. 매개변수를 삭제한 후 다시 연결해도 다시 추가되지 않습니다. 보충 판독이 필요한 경우 사전 설정 또는 새 매개변수를 가져올 수 있습니다.

현재 데이터 소스

"현재 장치"는 CapDrive에 차량 데이터를 제공하는 어댑터를 의미합니다. 한 번에 하나의 장치만 현재 데이터 소스로 사용할 수 있습니다. 각 장치의 매개변수와 설정은 독립적으로 저장됩니다. 다른 장치로 전환할 때 이전 장치의 매개변수 참조는 자동으로 사용되지 않습니다.

연결을 끊으면 구성이 유지됩니다. 기기 무시은 장치의 구성과 캐시를 제거합니다. 매개변수를 마이그레이션해야 하는 경우 구성을 내보낸 다음 대상 장치로 가져올 수 있습니다. 맞춤형 장비의 경우 대상 장치 아래의 매개변수를 다시 선택해야 합니다.

매개변수 사전 설정 및 구성 파일

기본값은 이미 작성된 매개변수 읽기 구성 세트이므로 항목별로 요청 및 공식을 채울 필요가 없습니다. 표준 OBD-II 사전 설정은 표준 매개변수를 제공하고 차량 모델 사전 설정은 해당 차량 모델에 대한 매개변수 정의를 제공합니다. 모델 프리셋 선택 시 모델연도와 파워 버전을 확인해야 합니다.

지정된 장치로 가져오기

장치 매개변수 목록 하단에서 구성 라이브러리를 엽니다. 앱에서 다운로드하면 장치의 가져오기 인터페이스로 들어갑니다. 브라우저를 통해 JSON 파일을 다운로드하면 장치 설정 메뉴에서 설정 가져오기을 선택할 수 있습니다.

가져오기 목록은 기본적으로 선택 취소되어 있으며 명시적으로 선택한 매개변수만 저장됩니다. 먼저 이름과 현재 판독값을 확인한 후 오른쪽의 기어를 통해 구성을 확인할 수 있습니다. 가져오기 인터페이스를 닫아도 확인되지 않은 초안은 저장되지 않습니다.

중복 및 구성 업데이트

이미 동일한 읽기 방법, 디코딩 규칙 및 출력 단위가 있는 매개변수는 중복으로 표시되고 원래 매개변수 식별자를 계속 사용합니다. 표시 이름만 수정한다고 해서 동일한 매개변수가 새로운 읽기 항목이 되는 것은 아닙니다.

요청은 동일한 응답에서 두 개의 온도와 같은 여러 매개변수를 제공할 수 있습니다. 동일한 이름이 다른 컨트롤러나 다른 공식에서 나올 수도 있으므로 이름만으로는 중복을 판단할 수 없습니다. 수정된 요청 또는 디코딩 규칙이 있는 항목은 새 매개변수로 가져오며 이름만으로 이전 항목을 덮어쓰지 않습니다.

다른 어댑터로 가져오면 대상 장치의 자체 매개변수 참조가 설정됩니다. 사용자 정의 계측은 입력 바인딩에서 대상 장치의 해당 매개변수를 다시 선택해야 합니다. 입력 식별자를 변경하지 않고 유지하고 코드를 수정할 필요가 없습니다.

파일 제약

구성은 JSON를 사용하고 형식 식별자는 capdrive.obd이며 appVersion은 필수 앱 버전입니다. 내보낼 때 현재 앱 버전 번호가 기록됩니다. 버전이 부족하면 업그레이드하라는 메시지가 표시됩니다. 단일 파일은 최대 5개의 MiB이 될 수 있으며 최대 3,000개의 매개변수를 포함할 수 있습니다. 파일은 읽기 구성을 저장하며 장치의 Bluetooth 연결을 포함하지 않으며 대상 차량에서 모든 항목을 읽을 수 있다는 것을 보장하지도 않습니다.

OBD 프리셋

매개변수 구성 및 디코딩

매개변수 오른쪽에 있는 기어를 통해 편집기를 엽니다. 다음은 "차량에서 읽을 내용 → 변환 방법 → 유효성 판단 방법"순으로 해당 항목을 설명합니다. 읽기 테스트은 편집기의 현재 구성을 사용하여 결과를 확인합니다. 저장을 클릭하면 수정 사항이 장치의 저장된 구성이 됩니다.

이름 및 업데이트 빈도

이름은 차량 매개변수를 식별하는 데 사용됩니다. 내부 식별자는 앱에서 자동으로 관리되며 매개변수 편집기에 입력되지 않으며 PID 요청되지도 않습니다. 내보낸 사전 설정에는 장치 고유 식별자가 포함되어 있지 않습니다. 기기 스크립트는 자체 정의된 입력 식별자를 사용하고 입력 바인딩을 통해 차량 매개변수를 선택합니다.

**읽기 간격(초)**은 초 단위로 채워지며 범위는 0.3–99999입니다. 예를 들어 1초는 대상 쿼리 간격이 1초라는 의미입니다. 실제 업데이트는 차량 응답, 기타 요청 및 현재 읽기 요구 사항의 영향도 받습니다. 매개변수 목록, 기기 선택 및 여행 데이터 사용량에 표시되는 항목은 읽기 요구 사항을 생성합니다. 단순히 매개변수를 가져오는 것만으로는 전체 목록이 항상 고정된 빈도로 폴링되는 것은 아닙니다. 동일한 요청을 공유하는 매개변수는 응답에서 재사용될 수 있습니다.

요청 설정

필드 의미와 작성방법
제공하다 16진수를 사용하는 요청 카테고리입니다. 예를 들어, 0105에 대해 요청된 서비스는 01입니다.
PID 이 서비스의 데이터 항목 번호입니다. 예를 들어, 0105의 PID은 05입니다. 01 및 21은 두 자리 PID을 사용하고 22는 네 자리 PID을 사용합니다.
CAN ID 요청 요청을 받는 차량 컨트롤러의 주소입니다. 공백으로 두면 프로토콜은 기능적 주소 지정을 사용합니다. 일치하는 기본값은 일반적으로 원래 주소를 유지해야 합니다.
CAN ID 필터링에 대한 응답 여러 컨트롤러가 데이터를 반환할 때 잘못된 소스를 선택하는 것을 방지하기 위해 어떤 컨트롤러의 응답을 사용할지 지정합니다.
확장 대상 주소, 확장 수신 주소 이를 필요로 하는 차량 프로토콜에서 사용하기 위한 추가 통신 주소 지정 구성입니다.
응답 시간 초과 매개변수 어댑터에서 사용하는 16진수 시간 초과 구성으로, 초 단위로 채워지지 않습니다. 읽기 간격과는 다른 설정입니다.
맞춤형 CAN 흐름 제어 해당 차량에서 정의한 대로 특정 흐름 제어 구성이 필요한 요청에 사용됩니다.

변환 공식, 바이트 순서 및 단위

차량 응답은 일반적으로 데이터 바이트입니다. A은 첫 번째 데이터 바이트를 나타내고, B은 두 번째 데이터 바이트를 나타내는 식으로 프로토콜 헤더를 제외합니다. 수식은 산술, 비트 연산, 비교, 논리 연산 및 조건식을 지원합니다. 임의의 JavaScript 함수를 호출할 수 있는 스크립트가 아닙니다.

예를 들어 냉각수 온도는 A - 40을 사용합니다. 표준 엔진 속도(RPM)는 (A * 256 + B) / 4을 사용합니다. A = 26, B = 248이면 후자가 1726 rpm을 얻습니다. 매개변수의 공식은 요청에서 반환된 바이트의 의미와 일치해야 합니다.

엔디안은 멀티바이트 필드가 해석되는 방식을 결정합니다. 빅 엔디안은 상위 바이트를 먼저 배치하고 리틀 엔디안은 하위 바이트를 먼저 배치합니다. 앱은 구성된 처리 순서 후에 숫자 공식을 실행하며 공식은 반복적으로 바이트를 다시 교환해서는 안 됩니다.

수식 결과의 단위는 표시 단위와 구별되어야 합니다. 사용자 정의 단위 이름을 수정하면 라벨만 변경되고 공식 값은 수정되지 않습니다. 기존 표준 물리량에 대해 호환 가능한 표시 단위를 선택하면 앱에서 해당 변환을 수행할 수 있습니다. 반복적인 변환을 피하기 위해 공식에 사용된 원래 단위를 확인하십시오.

읽기 조건 및 유효 범위

구성 실제 효과
최소 응답 바이트 수 바이트가 누락된 경우 계산이 계속되지 않도록 길이가 부족한 반환을 제외합니다.
읽기 조건 조건은 A != 0과 같은 원시 응답 바이트에서 평가됩니다. 결과가 0이거나 바이트가 누락되었거나 계산이 실패한 경우 이 읽기를 사용할 수 없습니다.
최소값, 최대값 수치 결과를 클램프합니다. 예를 들어 유효 범위를 0~100으로 구성하면 120은 100으로 표시됩니다. 최대값은 최소값보다 커야 합니다. 최소값이 설정되지 않은 경우 0으로 처리됩니다. 최소값만 설정하면 진폭이 별도로 제한되지 않습니다.
유효하한, 유효상한 유효하지 않은 결과는 경계 자체와 마찬가지로 제외됩니다. 예를 들어 상한이 100인 경우 100보다 크거나 같은 결과는 사용할 수 없습니다.

응답은 디코딩되기 전에 길이 및 읽기 조건 검사를 통과합니다. 디지털 결과가 먼저 제한되고, 그 다음 유효 상한과 하한이 확인됩니다. 유한한 값을 얻을 수 없으면 판독값이 출력되지 않습니다. 읽기 조건은 바이트 순서 변환 전의 원시 응답을 사용합니다.

텍스트 매핑

텍스트 매핑은 수식으로 얻은 값을 1 → D과 같은 텍스트로 표시합니다. 키는 소수와 음수를 지원하며 고유한 유한 값이어야 합니다. 1.5 및 1.50은 동일한 항목을 나타냅니다. 리터럴은 빈 문자열이 될 수 있습니다.

매핑이 적중되면 해당 문자열이 반환됩니다. 히트하지 않으면 일치하지 않으면 원래 숫자 반환이 켜지면 숫자가 반환되고 꺼지면 null이 반환됩니다. 일치하지 않는 이 설정은 매핑이 존재할 때 적용됩니다. 히트 텍스트는 계속해서 디지털 클리핑을 수행하지 않습니다.

따라서 동일한 매개변수가 숫자, 텍스트 또는 null 값을 반환할 수 있으며 계측 코드는 매개변수의 실제 유형을 처리해야 합니다. "일부 값은 표시되고 다른 값은 사라지는" 상황이 발생하는 경우 매핑이 일치하는지, 설정이 일치하지 않는지 확인해야 합니다.

저장 및 오류 메시지

잘못된 구성은 해당 필드와 이유를 표시한 후 수정 후 저장하거나 테스트합니다. 서비스 01 및 21의 PID는 두 자리 16진수이고, 22는 네 자리입니다. CAN ID은 3자리 또는 8자리이고 확장 주소 및 시간 초과 매개변수는 2자리입니다. 읽기 간격은 0.3–99999초이고, 최소 응답 바이트 수는 0–4096의 정수이며, 수식 및 읽기 조건은 각각 최대 1,024 UTF-8바이트입니다. 값은 제한되어야 하며 최소값은 최대값보다 클 수 없으며 유효한 하한은 유효한 상한보다 작아야 합니다. 텍스트 매핑 키는 반복될 수 없습니다.

여행 데이터 교체

주행 데이터 대체은 기본 판독이 지정된 OBD 매개변수를 사용하도록 합니다. 예를 들어 차량 속도 매개변수를 "Speed"로 지정하면 기본 속도 필드, 관련 내장 게이지 및 주행 기록에서 이 차량 판독값을 사용할 수 있습니다.

대체 목표에는 속도, 세로 G, 측면 G, 피치 및 롤이 포함됩니다. 속도의 경우 km/h 또는 mph, 가속도의 경우 g 또는 m/s², 각도의 경우 도 또는 라디안을 허용합니다. 앱은 대상에 맞게 필요에 따라 단위를 변환합니다.

대체하려면 매개변수에 적절한 숫자, 단위 및 범위가 제공되어야 합니다. 텍스트 매핑이 있는 매개변수는 획 교체에 사용할 수 없습니다. 구성 범위를 벗어난 원래 결과도 거부되며 제한 후의 한계 값은 유효한 스트로크 측정으로 간주되지 않습니다.

유효한 OBD 판독값이 있는 경우 이 소스를 사용하십시오. 판독값이 누락되거나 만료되거나 유효하지 않은 경우 모바일 데이터로 대체됩니다. 모바일 소스도 사용할 수 없는 경우에도 이 기본 판독값은 여전히 ​​비어 있을 수 있습니다. 일반 매개변수 가져오기는 대체 대상을 자동으로 지정하지 않습니다.

냉각수 온도, 회전 속도(RPM) 등과 같은 매개변수는 맞춤형 계측기에 별도로 표시될 수 있으며 해당 OBD 참조는 스트로크 교체를 구성하지 않고도 직접 사용할 수 있습니다.

맞춤형 기기 액세스

계기 설정 → 입력 바인딩 옆의 톱니바퀴를 클릭하여 매개변수 설정를 입력하고 OBD 데이터 입력(예: 식별자 coolant)을 추가합니다. 입력 바인딩으로 돌아가서 장치 아래에서 냉각수 온도 매개변수를 선택합니다. 스크립트는 $data.current.coolant을 통해 읽습니다. 차량 매개변수의 UUID는 코드에 기록될 필요가 없습니다.

읽기에는 value 및 unit(예: { value: 83, unit: '°C' })이 포함됩니다. 값과 텍스트 매핑은 문자열을 반환할 수도 있으므로 숫자 형식을 지정하기 전에 유형을 확인해야 합니다. 바인딩되지 않은 경우 전체 입력은 null입니다. 바인딩되었지만 일시적으로 읽을 수 없는 경우 value는 null이고 unit은 여전히 ​​구성 단위를 사용합니다.

다른 사람의 작품을 가져오거나 어댑터를 변경한 후 기존 입력을 다시 바인딩하면 코드를 계속 사용할 수 있습니다. 예상 유형이 힌트에 사용되었으며 차량 반환 값이 캐스팅되지 않았습니다. 미리보기는 아날로그 입력을 사용하며, 실제 차량 데이터 확인 시 현재 장치와 읽기 테스트을 확인해야 합니다.

기기 데이터

데이터 유효성 및 결함 진단

읽기 상태

연결이 유효하고, 응답이 수신되고, 판독값이 유효하다는 세 가지 조건이 있습니다. 길이가 부족하거나, 읽기 조건이 만족되지 않거나, 수식이 잘못되었거나, 텍스트 매핑이 누락되어 응답이 사용 가능한 값을 생성하지 못할 수 있습니다.

런타임 판독값에는 만료 날짜가 있습니다. 연결 끊김, 읽기 실패 또는 데이터 만료, 계측기 및 트립 교체 후에는 이전 값을 현재 유효한 데이터로 계속 사용해서는 안 됩니다. 매개변수 목록은 유효한 실시간 출력과 동일하지 않은 데모 목적으로 마지막으로 성공한 판독값을 유지할 수 있습니다. 현재 요청 결과는 읽기 테스트 을 사용하여 확인할 수 있습니다.

0은 유효한 값이고, null 값은 현재 사용 가능한 판독값이 없음을 의미합니다. 텍스트 맵의 빈 문자열은 일치하는 텍스트 결과이며 누락된 측정값와도 다릅니다.

결함 수준별로 찾기

성능 해당 검사 범위
장치를 찾을 수 없습니다 어댑터 전원, BLE 유형, iPhone Bluetooth 및 앱 권한.
블루투스가 연결되었지만 초기화에 실패했습니다. 어댑터 명령 지원, 차량 통신 상태 및 프로토콜 식별.
매개변수 목록이 비어 있습니다. 현재 장치의 저장된 구성, 첫 번째 기능 쿼리 결과 및 목록이 적극적으로 지워졌는지 여부입니다. 다시 연결해도 삭제된 항목은 자동으로 복원되지 않습니다.
단일 매개변수에 대한 유효한 판독값이 없습니다. 쿼리 주소 및 PID, 응답 길이, 읽기 조건, 디코딩 수식, 범위 및 텍스트 매핑.
값은 존재하지만 의미나 단위가 이상합니다. 해당 자동차 모델, 바이트 순서, 공식 및 단위가 일치하는지 사전 설정합니다.
목록에는 이전 값이 표시되고 미터에는 값이 없습니다. 현재 읽기가 만료되었거나 읽지 못했는지 여부. 목록 표시 캐시가 실시간 데이터가 유효하다는 의미는 아닙니다.
유효한 판독값이 있지만 맞춤 측정기가 표시되지 않습니다. 현재 장치, 선택한 매개변수, 표현식 및 코드의 숫자, 리터럴 및 null 값 처리.
대체 여정이 적용되지 않았습니다. 대체 대상, 매개변수 값 유형, 단위 및 범위 호환성, 판독 유효성.

문제 피드백에는 연결 문제, 구성 문제, 디스플레이 문제를 구별하기 위한 다음 정보가 포함될 수 있습니다.

  • 모델, 연식, 전원 버전 및 어댑터 모델.
  • 현재 장치, 사전 설정 및 매개변수 이름.
  • 읽기 결과 또는 특정 오류를 테스트합니다.
  • 모든 매개변수에 영향을 미치는지, 개별 매개변수에 영향을 미치는지, 매개변수 목록, 트립 교체 또는 맞춤 계측기에서 문제가 발생하는지 여부.

관련 문서