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 Eigenschaften des Anbieters finden Sie Informationen zu Eigenschaften, 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.

Property-Typen

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

Immobilienart Wert Beschreibung
STRING 0x00100000 Stringeigenschaft: verwendet das Feld stringValue im Fahrzeugeigenschaftswert.
BOOLESCH 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 Integer[] verwenden, verwendet die Elemente im Feld int32Values unter Wert der Fahrzeugeigenschaft.
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[] verwendet die Elemente im Feld floatValues in Wert der Fahrzeugeigenschaft.
BYTES 0x00700000 byte[] die Elemente im Feld byteValues des Werts der Fahrzeugeigenschaft verwendet.
GEMISCHT 0x00e00000 Gemischter Typ-Attribut. Beliebige Kombination von Skalar- oder Vektortypen. Das genaue Format muss im config-Array in der Property-Konfiguration angegeben werden.

Bei Properties vom Typ „MIXED“ muss configArray so formatiert sein:

  • configArray[0], 1 gibt an, dass die Property einen Stringwert hat
  • configArray[1], 1 gibt an, dass die Eigenschaft einen booleschen Wert hat
  • configArray[2], 1 gibt an, dass das Attribut einen Ganzzahlwert hat
  • configArray[3]: Die Zahl gibt die Größe von Integer[] in der Eigenschaft 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 mit Bereichs-ID-Konfigurationen enthalten. Diese Liste ist für globale Properties optional und für zonenspezifische Properties (Properties mit mehreren unterstützten Gebieten) erforderlich. Jede Bereichs-ID-Konfiguration 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 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 Höchstwert für Eigenschaften vom Typ INT64. Für alle anderen Typen wird sie ignoriert. Wird ignoriert, wenn beide Werte 0 sind.
  • Wenn für ein globales Attribut der Mindest- und Höchstwert definiert werden muss, muss eine Bereichskonfiguration mit der Bereichs-ID 0 verwendet werden.
minFloatValue und maxFloatValue
  • Optionaler Mindest- und Höchstwert für Eigenschaften des Float-Typs. Für alle anderen Typen wird sie ignoriert. Wird ignoriert, wenn beide Werte 0,0 sind.
  • Wenn für ein globales Attribut der Mindest- und Höchstwert definiert werden muss, muss eine Bereichskonfiguration mit der Bereichs-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

Definiert als Enums in VehicleArea.aidl. 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 Sitzplä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 Bereichstyp ist eine Reihe von Bit-Flags in einer Enum für den Bereichstyp definiert. Beispielsweise definiert der SEAT-Bereich VehicleAreaSeat-Enums:

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