속성 구성

지원되는 각 속성은 VehiclePropConfig 구조를 통해 정의된 속성 구성으로 지정되며 다음 필드를 포함합니다.

필드 설명
prop

속성 ID입니다. 이는 지원되는 시스템 속성에 정의된 시스템 속성 중 하나이거나 공급업체 속성 중 하나여야 합니다. 속성 ID는 다음 필드의 비트 또는 값을 사용하여 생성됩니다 (오른쪽에서 왼쪽으로).

  • (0x00000000) 16비트: 0x0100 - 0xffff 범위의 고유 ID
  • (0x00000000) 8비트: 속성의 유형을 정의하는 속성 유형입니다.
  • (0x00000000) 4비트: 지역 유형입니다.
  • (0x00000000) 4비트: VehiclePropertyGroup> SYSTEM(0x10000000) 또는 VENDOR (0x20000000)입니다. 맞춤설정할 수 있는 속성은 공급업체 속성을 참고하세요.

예:
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)

access 속성의 액세스 모드입니다. READ, WRITE 또는 READ_WRITE 중 하나여야 합니다. 이 값은 지원되는 시스템 속성에 정의된 액세스 모드와 같아야 합니다.
changeMode
  • 속성의 모드를 변경합니다. STATIC, ON_CHANGE, CONTINUOUS 중 하나여야 합니다. STATIC는 시스템 부팅 후에 속성 값이 변경되지 않음을 의미합니다. ON_CHANGE는 값이 변경될 때 VHAL이 보고해야 함을 의미합니다. CONTINUOUS는 속성 값이 연속적으로 변경되며 VHAL이 구독 샘플링 레이트를 기반으로 보고해야 함을 의미합니다.
  • 변경 모드는 지원되는 시스템 속성에 정의된 변경 모드와 동일해야 합니다.
configArray 속성별 구성을 포함하는 선택적 배열입니다. 비워 둘 수 있습니다.
configString 속성별 구성을 포함하는 선택사항 문자열입니다. 비워 둘 수 있습니다.
minSampleRatemaxSampleRate

연속 속성에 지원되는 최소 및 최대 샘플링 레이트입니다. 속성이 연속적이지 않은 경우에는 사용되지 않습니다.

속성 유형

VehiclePropertyType.aidl에 enum으로 정의됩니다. 지원되는 속성 유형은 다음 표에 나와 있습니다.

속성 유형 설명
문자열 0x00100000 문자열 속성으로, 차량 속성 값의 stringValue 필드를 사용합니다.
BOOLEAN 0x00200000 불리언 속성으로, 차량 속성 값int32Values 필드에 있는 첫 번째 요소를 사용합니다. 0false를 의미하고 None 0true를 의미합니다.
INT32 0x00400000 정수 속성으로, 차량 속성 값int32Values 필드에 있는 첫 번째 요소를 사용합니다.
INT32_VEC 0x00410000 Integer[] 속성: 차량 속성 값int32Values 필드에 있는 요소를 사용합니다.
INT64 0x00500000 Long 속성으로, 차량 속성 값int64Values 필드에 있는 첫 번째 요소를 사용합니다.
INT64_VEC 0x00510000 Long[] 속성: 차량 속성 값int64Values 필드에 있는 요소를 사용합니다.
FLOAT 0x00600000 부동 소수점 수 속성으로, 차량 속성 값floatValues 필드에 있는 첫 번째 요소를 사용합니다.
FLOAT_VEC 0x00610000 Float[] 속성: 차량 속성 값floatValues 필드에 있는 요소를 사용합니다.
BYTES 0x00700000 byte[] 속성: 차량 속성 값byteValues 필드에 있는 요소를 사용합니다.
혼합 0x00e00000 혼합 유형 속성 스칼라 또는 벡터 유형의 조합 정확한 형식은 속성 구성의 config 배열에 제공되어야 합니다.

공급업체 MIXED 유형 속성의 경우 configArray의 형식이 다음 구조여야 합니다.

  • configArray[0], 1은 속성에 문자열 값이 있음을 나타냅니다.
  • configArray[1], 1은 속성에 불리언 값이 있음을 나타냅니다.
  • configArray[2], 1은 속성에 정수 값이 있음을 나타냅니다.
  • configArray[3]의 경우, 숫자는 속성의 Integer[] 의 크기를 나타냅니다.
  • configArray[4], 1은 속성에 Long 값이 있음을 나타냅니다.
  • configArray[5]: 이 숫자는 속성의 Long[] 크기를 나타냅니다.
  • configArray[6], 1은 속성에 부동 소수점 값이 있음을 나타냅니다.
  • configArray[7]에서, 숫자는 속성의 Float[] 크기를 나타냅니다.
  • configArray[8]: 이 숫자는 속성의 byte[] 크기를 나타냅니다.

예를 들어 configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0}는 속성에 문자열 값, 불리언 값, 정수 값, 정수가 3개인 배열이 있음을 나타냅니다.

지역 ID 구성

각 속성 구성에는 영역 ID 구성 목록도 포함될 수 있습니다. 이 목록은 글로벌 속성의 경우 선택사항이며 구역 분할 속성 (지원되는 여러 영역이 있는 속성)의 경우 필수입니다. 각 지역 ID 구성에는 다음 필드가 있습니다.

필드 설명
areaId 이 영역의 ID입니다. 지역 ID를 참고하세요.
minInt32ValuemaxInt32Value
  • INT32 유형 속성의 최솟값 및 최댓값(선택사항)입니다. 다른 모든 유형에서는 무시됩니다. 둘 다 0이면 무시됩니다.
  • 전역 속성의 경우 최솟값과 최댓값을 정의해야 하는 경우 영역 ID가 0인 영역 구성 하나를 사용해야 합니다.
minInt64ValuemaxInt64Value
  • INT64 유형 속성의 최솟값 및 최댓값(선택사항)입니다. 다른 모든 유형에서는 무시됩니다. 둘 다 0이면 무시됩니다.
  • 전역 속성의 경우 최솟값과 최댓값을 정의해야 하는 경우 영역 ID가 0인 영역 구성 하나를 사용해야 합니다.
minFloatValuemaxFloatValue
  • 선택사항인 부동 소수점 유형 속성의 최솟값 및 최댓값입니다. 다른 모든 유형에서는 무시됩니다. 둘 다 0.0이면 무시됩니다.
  • 전역 속성의 경우 최솟값과 최댓값을 정의해야 하는 경우 영역 ID가 0인 영역 구성 하나를 사용해야 합니다.
(Android 14의 새로운 기능)
supportedEnumValues
  • 속성이 enum 유형 속성으로 정의된 경우 지원되는 값의 선택적 목록입니다. 지정하지 않거나 (비어 있음) Android 14 이전인 경우 모든 enum 값이 지원된다고 가정합니다.
  • 전역 속성의 경우 지원되는 enum 값을 정의해야 하는 경우 영역 ID가 0인 영역 구성 하나를 사용해야 합니다.

영역 유형

VehicleArea.aidl에서 enum으로 정의됩니다. 지원되는 지역 유형은 다음과 같습니다.

영역 유형 설명
전 세계 0x01000000 이 속성은 전역 속성이며 여러 영역이 없습니다.
WINDOW 0x03000000 창을 기준으로 한 영역으로, VehicleAreaWindow enum을 사용합니다.
Mirror 0x04000000 미러를 기준으로 한 영역으로, VehicleAreaMirror enum을 사용합니다.
SEAT 0x05000000 좌석을 기준으로 한 영역으로, VehicleAreaSeat enum을 사용합니다.
DOOR 0x06000000 도어를 기준으로 한 영역으로, VehicleAreaDoor enum을 사용합니다.
WHEEL 0x07000000 바퀴를 기준으로 한 영역으로, VehicleAreaWheel enum을 사용합니다.

각 구역 분할 속성은 사전 정의된 영역 유형을 사용해야 합니다. 각 영역 유형에는 영역 유형의 enum에 정의된 일련의 비트 플래그가 있습니다. 예를 들어 SEAT 영역은 VehicleAreaSeat enum을 정의합니다.

  • ROW_1_LEFT = 0x0001
  • ROW_1_CENTER = 0x0002
  • ROW_1_RIGHT = 0x0004
  • ROW_2_LEFT = 0x0010
  • ROW_2_CENTER = 0x0020
  • ROW_2_RIGHT = 0x0040
  • ROW_3_LEFT = 0x0100
  • ...

영역 ID

구역 분할 속성은 영역 ID를 통해 주소가 지정됩니다. 각 구역 분할 속성은 하나 이상의 영역 ID를 지원할 수 있습니다. 영역 ID는 개별 enum의 플래그 하나 이상으로 구성됩니다. 예를 들어 VehicleAreaSeat를 사용하는 속성은 다음 영역 ID를 사용할 수 있습니다.

항목 설명
ROW_1_LEFT | ROW_1_RIGHT 영역 ID가 앞좌석 모두에 적용됩니다.
ROW_2_LEFT 왼쪽 뒷좌석에만 적용됩니다.
ROW_2_RIGHT 오른쪽 뒷좌석에만 적용됩니다.

자세한 내용은 HVAC를 참고하세요.