Конфигурации недвижимости

Каждое поддерживаемое свойство определяется конфигурацией свойства, определенной через структуру VehiclePropConfig , и имеет следующие поля.

Поле Описание
prop

Идентификатор свойства. Это должно быть либо одно из определенных системных свойств в разделе «Поддерживаемые системные свойства» , либо свойство поставщика. Идентификатор свойства создается с использованием битов или следующих полей (справа налево):

  • (0x0000 0000 ) 16 бит: уникальный идентификатор в диапазоне 0x0100–0xffff.
  • (0x00 00 0000) 8 бит: типы свойств , определяющие тип свойства.
  • (0x0 0 000000) 4 бита: типы областей .
  • (0x 0 0000000) 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 Необязательная строка, содержащая конфигурацию конкретного свойства. Может быть пустым.
minSampleRate и maxSampleRate

Минимальная и максимальная поддерживаемая частота дискретизации для непрерывного свойства. Не используется, если свойство не является непрерывным.

Типы недвижимости

Определено как перечисление в VehiclePropertyType.aidl . Поддерживаемые типы свойств перечислены в следующей таблице.

Тип недвижимости Ценить Описание
НИТЬ 0x00100000 Свойство String использует поле stringValue в значении свойства транспортного средства.
БУЛЕВОЕ значение 0x00200000 Логическое свойство использует первый элемент в поле int32Values ​​в значении свойства Vehicle . 0 означает false , None 0 означает true .
ИНТ32 0x00400000 Свойство Integer использует первый элемент в поле int32Values ​​в значении свойства Vehicle .
INT32_VEC 0x00410000 Свойство Integer[] использует элементы из поля int32Values ​​в значении свойства Vehicle .
ИНТ64 0x00500000 Свойство Long использует первый элемент в поле int64Values ​​в значении свойства Vehicle .
INT64_VEC 0x00510000 Свойство Long[] использует элементы из поля int64Values ​​в значении свойства Vehicle .
ПЛАВАТЬ 0x00600000 Свойство Float использует первый элемент в поле floatValues ​​в значении свойства Vehicle .
FLOAT_VEC 0x00610000 Свойство Float[] использует элементы из поля floatValues ​​в значении свойства Vehicle .
БАЙТЫ 0x00700000 Свойство byte[] использует элементы из поля byteValues ​​в значении свойства Vehicle .
СМЕШАННЫЙ 0x00e00000 Недвижимость смешанного типа. Любая комбинация скалярных или векторных типов. Точный формат должен быть указан в массиве конфигурации в конфигурации свойства.

Для свойств типа MIXED поставщика configArray должен быть отформатирован в следующей структуре:

  • configArray[0], 1 указывает, что свойство имеет строковое значение.
  • configArray[1], 1 указывает, что свойство имеет логическое значение.
  • configArray[2], 1 указывает, что свойство имеет целочисленное значение.
  • configArray[3], число указывает размер Integer[] в свойстве
  • configArray[4], 1 указывает, что свойство имеет длинное значение.
  • configArray[5], число указывает размер Long[] в свойстве
  • configArray[6], 1 указывает, что свойство имеет значение с плавающей запятой.
  • configArray[7], число указывает размер Float[] в свойстве
  • configArray[8], число указывает размер байта[] в свойстве.

Например, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} указывает, что свойство имеет строковое значение, логическое значение, целочисленное значение и массив с тремя целыми числами.

Конфигурация идентификатора области

Каждая конфигурация свойства также может содержать список конфигураций идентификаторов областей. Этот список является необязательным для глобальных свойств и обязательным для зональных свойств (свойств с несколькими поддерживаемыми областями). Каждая конфигурация идентификатора области имеет следующие поля.

Поле Описание
areaId Идентификатор этой области. См. раздел «Идентификаторы областей» .
minInt32Value и maxInt32Value
  • Необязательное минимальное и максимальное значение для свойств типа INT32. Игнорируется для всех остальных типов. Игнорируется, если оба равны 0.
  • Если для глобального свойства необходимо определить минимальное и максимальное значение, необходимо использовать одну конфигурацию области с идентификатором области 0.
minInt64Value и maxInt64Value
  • Необязательное минимальное и максимальное значение для свойств типа INT64. Игнорируется для всех остальных типов. Игнорируется, если оба равны 0.
  • Если для глобального свойства необходимо определить минимальное и максимальное значение, необходимо использовать одну конфигурацию области с идентификатором области 0.
minFloatValue и maxFloatValue
  • Необязательное минимальное и максимальное значение для свойств типа Float. Игнорируется для всех остальных типов. Игнорируется, если оба значения равны 0,0.
  • Если для глобального свойства необходимо определить минимальное и максимальное значение, необходимо использовать одну конфигурацию области с идентификатором области 0.
( Новое в Android 14 )
supportedEnumValues
  • Необязательный список поддерживаемых значений, если свойство определено как свойство типа перечисления. Если не указано (пусто) или до версии Android 14, предполагается, что поддерживаются все значения перечисления.
  • Если для глобального свойства необходимо определить поддерживаемые значения перечисления, необходимо использовать одну конфигурацию области с идентификатором области 0.

Типы территорий

Определено как перечисление в VehicleArea.aidl . Поддерживаемые типы областей перечислены ниже.

Тип района Ценить Описание
ГЛОБАЛЬНЫЙ 0x01000000 Это свойство является глобальным и не имеет нескольких областей.
ОКНО 0x03000000 Область на основе окон использует перечисление VehicleAreaWindow .
ЗЕРКАЛО 0x04000000 Область на основе зеркал использует перечисление VehicleAreaMirror .
СИДЕНЬЕ 0x05000000 Площадь на основе мест, использует перечисление VehicleAreaSeat .
ДВЕРЬ 0x06000000 Область на основе дверей использует перечисление VehicleAreaDoor .
КОЛЕСО 0x07000000 Площадь на основе колес использует перечисление VehicleAreaWheel .

Для каждого зонированного объекта недвижимости должен использоваться предварительно определенный тип территории. Каждый тип области имеет набор битовых флагов, определенных в перечислении для типа области. Например, область SEAT определяет перечисления VehicleAreaSeat :

  • 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
  • ...

Идентификаторы областей

Зонированные объекты рассматриваются через идентификаторы территорий. Каждый зонированный объект может поддерживать один или несколько идентификаторов территории. Идентификатор области состоит из одного или нескольких флагов из соответствующего перечисления. Например, свойство, использующее VehicleAreaSeat может использовать следующие идентификаторы областей:

Элемент Описание
ROW_1_LEFT | ROW_1_RIGHT Идентификатор зоны применяется к обоим передним сиденьям.
ROW_2_LEFT Относится только к заднему левому сиденью.
ROW_2_RIGHT Относится только к заднему правому сиденью.

Чтобы узнать больше, см. HVAC .