Property-Konfigurationen

Jede unterstützte Property wird durch eine Property-Konfiguration angegeben, die über die Struktur VehiclePropConfig definiert ist. Sie enthält die folgenden Felder.

Feld Beschreibung
prop

Die Property-ID. Dies muss entweder eine der definierten Systemeigenschaften aus den unterstützten Systemeigenschaften oder eine Anbietereigenschaft sein. Die Property-ID wird durch Bitor der folgenden Felder (von rechts nach links) erstellt:

  • (0x00000000) 16 Bit: Eine eindeutige ID aus dem Bereich 0x0100–0xffff.
  • (0x00000000) 8 Bit: Property-Typen, die den Typ der Property definieren.
  • (0x00000000) 4 Bit: Flächentypen.
  • (0x00000000) 4 Bit: VehiclePropertyGroup> Dies ist entweder SYSTEM (0x10000000) oder VENDOR (0x20000000). Unter Anbietereigenschaften finden Sie Informationen zu Attributen, die Sie anpassen können.

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

access Der Zugriffsmodus für die Property. Muss READ, WRITE oder READ_WRITE sein. Dieser muss mit dem Zugriffsmodus übereinstimmen, der unter Unterstützte Systemeigenschaften definiert ist.
changeMode
  • Modus für die Property ändern Muss STATIC, ON_CHANGE oder CONTINUOUS sein. STATIC bedeutet, dass sich der Attributwert nach einem Systemstart nie ändert. ON_CHANGE bedeutet, dass die VHAL melden muss, wenn sich der Wert ändert. CONTINUOUS bedeutet, dass sich der Property-Wert kontinuierlich ändert und VHAL basierend auf der Abo-Stichprobenrate melden muss.
  • Der Änderungsmodus muss mit dem in Unterstützte Systemeigenschaften definierten Änderungsmodus übereinstimmen.
configArray Ein optionales Array, das eine standortspezifische Konfiguration enthält. Kann leer sein.
configString Ein optionaler String, der eine standortspezifische Konfiguration enthält. Kann leer sein.
minSampleRate und maxSampleRate

Die minimale und maximale unterstützte Abtastrate für kontinuierliche Eigenschaften. Wird nicht verwendet, wenn die Property nicht kontinuierlich ist.

Immobilienarten

In VehiclePropertyType.aidl als Enumerationen definiert. Die unterstützten Property-Typen sind in der folgenden Tabelle aufgeführt.

Property-Typ Wert Beschreibung
STRING 0x00100000 String-Property, für die das Feld stringValue in „Fahrzeugeigenschaft – Wert“ verwendet wird.
BOOLEAN 0x00200000 Boolesche Property, für die das erste Element im Feld int32Values im Wert der Fahrzeugeigenschaft verwendet wird. 0 bedeutet false, None 0 bedeutet true.
INT32 0x00400000 Ganzzahleigenschaft, für die das erste Element im Feld int32Values in Wert der Fahrzeugeigenschaft verwendet wird.
INT32_VEC 0x00410000 Für die Property „Integer[]“ werden die Elemente im Feld int32Values in Wert der Fahrzeugeigenschaft verwendet.
INT64 0x00500000 Lange Property, für die das erste Element im Feld int64Values in Wert der Fahrzeugeigenschaft verwendet wird.
INT64_VEC 0x00510000 Für die Property Long[] werden die Elemente im Feld int64Values im Wert für Fahrzeugeigenschaft verwendet.
FLOAT 0x00600000 Gleitkommazahl-Property, für die das erste Element im Feld floatValues in Wert der Fahrzeugeigenschaft verwendet wird.
FLOAT_VEC 0x00610000 Float[]-Property, verwendet die Elemente im Feld floatValues im Wert der Fahrzeugeigenschaft.
BYTES 0x00700000 Für die byte[]-Property werden die Elemente im Feld byteValues im Wert der Fahrzeugeigenschaft verwendet.
GEMISCHT 0x00e00000 Property mit gemischten Typen. Beliebige Kombination von Skalar- oder Vektortypen. Das genaue Format muss im config-Array in der Property-Konfiguration angegeben werden.

Bei Properties vom Typ „MIXED“ des Anbieters muss „configArray“ in dieser Struktur formatiert sein:

  • configArray[0], 1 gibt an, dass die Property einen Stringwert hat
  • configArray[1], 1 gibt an, dass das Attribut einen booleschen Wert hat
  • configArray[2], 1 gibt an, dass die Property einen Ganzzahlwert hat
  • configArray[3]: Die Zahl gibt die Größe von Integer[] in der Property an.
  • configArray[4], 1 gibt an, dass die Property einen Long-Wert hat
  • configArray[5]: Die Zahl gibt die Größe von Long[] in der Property an.
  • configArray[6], 1 gibt an, dass die Property einen Float-Wert hat
  • configArray[7]: Die Zahl gibt die Größe von Float[] in der Property an.
  • configArray[8] gibt die Größe von „byte[]“ in der Property an.

configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} gibt beispielsweise an, dass das Attribut einen Stringwert, einen booleschen Wert, einen Ganzzahlwert und ein Array mit drei Ganzzahlen hat.

Konfiguration der Gebiets-ID

Jede Property-Konfiguration kann auch eine Liste von Konfigurationen für Gebiets-IDs enthalten. Diese Liste ist für globale Properties optional und für zonenspezifische Properties (Properties mit mehreren unterstützten Gebieten) erforderlich. Jede Konfiguration der Gebiets-ID enthält die folgenden Felder.

Feld Beschreibung
areaId Die ID für diesen Bereich. Weitere Informationen finden Sie unter Region-IDs.
minInt32Value und maxInt32Value
  • Optionaler Mindest- und Höchstwert für Eigenschaften vom Typ INT32. Für alle anderen Typen wird sie ignoriert. Wird ignoriert, wenn beide Werte 0 sind.
  • Wenn für eine globale Property ein Mindest- und ein Höchstwert definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.
minInt64Value und maxInt64Value
  • Optionaler Mindest- und Maximalwert für Eigenschaften vom Typ INT64. Für alle anderen Typen wird sie ignoriert. Wird ignoriert, wenn beide Werte 0 sind.
  • Wenn für eine globale Property ein Mindest- und ein Höchstwert definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.
minFloatValue und maxFloatValue
  • Optionaler Mindest- und Höchstwert für Properties vom Typ „Float“. Für alle anderen Typen wird sie ignoriert. Wird ignoriert, wenn beide Werte 0,0 sind.
  • Wenn für eine globale Property ein Mindest- und ein Höchstwert definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.
(Neu in Android 14)
supportedEnumValues
  • Optionale Liste der unterstützten Werte, wenn die Property als Property vom Typ „enum“ definiert ist. Wenn nicht angegeben (leer) oder vor Android 14 wird davon ausgegangen, dass alle Enum-Werte unterstützt werden.
  • Wenn für eine globale Property unterstützte Enum-Werte definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.

Gebietstypen

In VehicleArea.aidl als Enumerationen definiert. Die unterstützten Gebietstypen sind unten aufgeführt.

Gebietstyp Wert Beschreibung
GLOBAL 0x01000000 Diese Property ist eine globale Property und hat keine verschiedenen Bereiche.
WINDOW 0x03000000 Fensterbasierter Bereich, verwendet VehicleAreaWindow-Enum.
MIRROR 0x04000000 Gebiet basierend auf Spiegeln, verwendet VehicleAreaMirror-Enum.
SEAT 0x05000000 Bereich basierend auf Plätzen, verwendet VehicleAreaSeat-Enum.
DOOR 0x06000000 Bereich basierend auf Türen, verwendet VehicleAreaDoor-Enum.
WHEEL 0x07000000 Fläche basierend auf Rädern, verwendet VehicleAreaWheel-Enum.

Für jede Zoneneigenschaft muss ein vordefinierter Gebietstyp verwendet werden. Für jeden Gebietstyp gibt es eine Reihe von Bitflags, die in einem Enum für den Gebietstyp definiert sind. Für den Bereich „SEAT“ sind beispielsweise VehicleAreaSeat Enum-Typen definiert:

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

Gebiets-IDs

Zonenspezifische Properties werden über Gebiets-IDs adressiert. Jede Zoneneigenschaft kann eine oder mehrere Gebiets-IDs unterstützen. Eine Regions-ID besteht aus einem oder mehreren Flags aus dem entsprechenden Enum. Für eine Property mit VehicleAreaSeat können beispielsweise die folgenden Gebiets-IDs verwendet werden:

Artikel Beschreibung
ROW_1_LEFT | ROW_1_RIGHT Die Zonen-ID gilt für beide Vordersitze.
ROW_2_LEFT Gilt nur für den linken Rücksitz.
ROW_2_RIGHT Gilt nur für den rechten Rücksitz.

Weitere Informationen finden Sie unter HLK.