Property-Konfigurationen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Jede unterstützte Property wird durch eine Property-Konfiguration angegeben, die durch die Struktur VehiclePropConfig
definiert wird und die folgenden Felder hat.
Feld |
Beschreibung |
---|
prop |
Die Property-ID. Dies muss entweder eine der definierten Systemeigenschaften aus VehicleProperty.aidl oder eine Anbietereigenschaft sein. Die Property-ID wird durch eine bitweise ODER-Verknüpfung der folgenden Felder (von rechts nach links) erstellt:
- (0x00000000) 16 Bit: Eine eindeutige ID aus dem Bereich 0x0100 bis 0xffff.
- (0x00000000) 8 Bit: Attributtypen, die den Typ für das Attribut definieren.
- (0x00000000) 4 Bit: Bereichstypen.
- (0x00000000) 4 Bit:
VehiclePropertyGroup Dies ist entweder SYSTEM (0x10000000) oder VENDOR (0x20000000). Unter Anbietereigenschaften finden Sie die 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.
- Für Systemeigenschaften muss dies einer der definierten Zugriffsmodi sein, die in
VehicleProperty.aidl dokumentiert sind.
- Bei Properties mit Zugriff pro Bereich ist dies die maximale Teilmenge des Zugriffs pro Bereich. Wenn die Properties beispielsweise zwei Bereiche mit den Zugriffen
READ und READ_WRITE haben, sollte dies auf READ festgelegt werden.
|
changeMode |
- Ändern Sie den Modus für die Property. Muss
STATIC , ON_CHANGE oder CONTINUOUS sein. STATIC bedeutet, dass sich der Attributwert nach dem Systemstart nie ändert. ON_CHANGE bedeutet, dass das VHAL melden muss, wenn sich der Wert ändert. CONTINUOUS bedeutet, dass sich der Attributwert kontinuierlich ändert und VHAL basierend auf der Abo-Abtastrate berichten muss.
- Bei Systemeigenschaften muss dieser Wert dem Änderungsmodus entsprechen, der in
VehicleProperty.aidl dokumentiert ist.
|
configArray |
Ein optionales Array, das die attributspezifische Konfiguration enthält. Kann leer sein. Für bestimmte Systemattribute, z. B. GEAR_SELECTION , hat das Konfigurationsarray eine besondere Bedeutung und muss angegeben werden.
|
configString |
Ein optionaler String, der die Property-spezifische Konfiguration enthält. Kann leer sein. |
minSampleRate und maxSampleRate |
Die minimale und maximale unterstützte Abtastrate für die kontinuierliche Eigenschaft (in Hertz). Wird nicht verwendet, wenn die Property nicht kontinuierlich ist. minSampleRate und maxSampleRate müssen durch die VHAL-Implementierung erreicht werden können. Es müssen nicht alle Abtastraten zwischen dem Mindest- und dem Höchstwert unterstützt werden. |
Property-Typen
Als Enums in VehiclePropertyType.aidl
definiert. Die unterstützten Attributtypen sind in der folgenden Tabelle aufgeführt.
Property-Typ |
Wert |
Beschreibung |
---|
STRING |
0x00100000 |
String-Property, für die das Feld stringValue in Vehicle property value verwendet wird. |
BOOLEAN |
0x00200000 |
Boolean -Property, verwendet das erste Element im Feld int32Values in Vehicle property value.
0 bedeutet false , None 0 bedeutet true . |
INT32 |
0x00400000 |
Integer -Property, verwendet das erste Element im Feld int32Values in Vehicle property value. |
INT32_VEC |
0x00410000 |
Für die Integer[] -Property werden die Elemente im Feld int32Values in Vehicle property value verwendet. |
INT64 |
0x00500000 |
Lange Property, verwendet das erste Element im Feld int64Values in Vehicle property value. |
INT64_VEC |
0x00510000 |
Für die Long[] -Property werden die Elemente im Feld int64Values in Vehicle property value verwendet. |
FLOAT |
0x00600000 |
Float -Property, verwendet das erste Element im Feld floatValues in Vehicle property value. |
FLOAT_VEC |
0x00610000 |
Für die Float[] -Property werden die Elemente im Feld floatValues in Vehicle property value verwendet. |
BYTES |
0x00700000 |
Für die byte[] -Property werden die Elemente im Feld byteValues in Vehicle property value verwendet. |
MIXED |
0x00e00000 |
Attribut mit gemischtem Typ. Beliebige Kombinationen von Skalar- oder Vektortypen. Das genaue Format muss im Konfigurationsarray in der Attributkonfiguration angegeben werden.
Bei Properties vom Typ MIXED des Anbieters muss configArray so formatiert sein:
configArray[0] : 1 bedeutet, dass das Attribut den Wert String hat.
configArray[1] : 1 bedeutet, dass das Attribut den Wert Boolean hat.
configArray[2] : 1 bedeutet, dass das Attribut den Wert Integer hat.
configArray[3] : Die Zahl gibt die Größe von Integer[] in der Property an.
configArray[4] : 1 bedeutet, dass das Attribut den Wert Long hat.
configArray[5] : Die Zahl gibt die Größe von Long[] in der Property an.
configArray[6] : 1 bedeutet, dass das Attribut den Wert Float hat.
configArray[7] : Die Zahl gibt die Größe von Float[] in der Property an.
configArray[8] : Die Zahl 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 String -Wert, einen Boolean -Wert, einen Integer -Wert und ein Array mit drei Ganzzahlen hat.
|
Konfiguration der Bereichs-ID
Jede Property-Konfiguration kann auch eine Liste von Bereichs-ID-Konfigurationen enthalten. Diese Liste ist für globale Properties optional und für Properties mit Zonen (Properties mit mehreren unterstützten Bereichen) erforderlich. Jede Konfiguration für Bereichs-IDs hat die folgenden Felder.
Feld |
Beschreibung |
---|
areaId |
Die ID für diesen Bereich. Weitere Informationen finden Sie unter Gebiets-IDs. |
minInt32Value und maxInt32Value |
- Optionaler Mindest- und Höchstwert für INT32-Typparameter zur Bootzeit. Muss für alle anderen Typen 0 sein. 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 Bereichskonfiguration mit der Bereichs-ID 0 verwendet werden.
- Dieser Wert ist statisch und ändert sich auch dann nicht, wenn sich der Mindest- oder Höchstwert zur Laufzeit ändert. Implementieren Sie
IVehicle#getMinMaxSupportedValue für dynamische Mindest- oder Höchstwerte.
|
minInt64Value und maxInt64Value |
- Optionaler Mindest- und Höchstwert für INT64-Attribute beim Booten. Muss für alle anderen Typen 0 sein. 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 Bereichskonfiguration mit der Bereichs-ID 0 verwendet werden.
- Dieser Wert ist statisch und ändert sich auch dann nicht, wenn sich der Mindest- oder Höchstwert zur Laufzeit ändert. Implementieren Sie
IVehicle#getMinMaxSupportedValue für dynamische Mindest- oder Höchstwerte.
|
minFloatValue und maxFloatValue |
- Optionaler Mindest- und Höchstwert für Eigenschaften vom Typ „Float“ beim Booten. Muss für alle anderen Typen 0 sein. 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 Bereichskonfiguration mit der Bereichs-ID 0 verwendet werden.
- Dieser Wert ist statisch und ändert sich auch dann nicht, wenn sich der Mindest- oder Höchstwert zur Laufzeit ändert. Implementieren Sie
IVehicle#getMinMaxSupportedValue für dynamische Mindest- oder Höchstwerte.
|
(Neu in Android 14)
supportedEnumValues |
- Optionale Liste der unterstützten Werte beim Booten, wenn die Property als Enum-Typ-Property definiert ist. Wenn nicht angegeben (leer) oder vor Android 14, wird davon ausgegangen, dass alle Enumerationswerte unterstützt werden.
- Für globale Properties muss eine Bereichskonfiguration mit der Bereichs-ID 0 verwendet werden, wenn unterstützte Enum-Werte definiert werden müssen.
- Dieser Wert ist statisch und ändert sich auch dann nicht, wenn sich die unterstützten Werte zur Laufzeit ändern. Implementieren Sie
IVehicle#getSupportedValuesLists für dynamische unterstützte Werte.
- Dies gilt nur für Properties vom Typ „enum“. Bei anderen Typen muss dieses Feld leer sein.
Wenn Sie unterstützte Werte für andere Nicht-Enum-Typen verfügbar machen möchten, verwenden Sie
IVehicle#getSupportedValuesLists .
|
(Neu in Android 15)
supportVariableUpdateRate |
- Gibt an, ob die Aktualisierungsrate von Variablen unterstützt wird. Das gilt nur für kontinuierliche Eigenschaften.
- Wenn dies
true ist, kann die App eine variable Aktualisierungsrate für ein Abo aktivieren, um Ereignisse für die Aktualisierung von Attributen nur dann zu empfangen, wenn sich der Attributwert ändert (kontinuierliche Attribute werden also wie „Bei Änderung“-Attribute behandelt).
- Wenn alle Abonnenten für ein Attribut die variable Aktualisierungsrate aktivieren, wird mit der Aboanfrage an VHAL die variable Aktualisierungsrate für das Attribut aktiviert. VHAL muss Attributaktualisierungsereignisse nur senden, wenn sich der Attributwert ändert.
- Wenn ein Abonnent eine feste Aktualisierungsrate anfordert, wird durch die Aboanfrage an VHAL die variable Aktualisierungsrate für die Property deaktiviert. AAOS filtert die doppelten Ereignisse für die Clients heraus, die eine variable Aktualisierungsrate anfordern.
- Es wird DRINGEND EMPFOHLEN, für alle kontinuierlichen Eigenschaften, die keine Heartbeats sind, eine variable Aktualisierungsrate zu unterstützen, um eine bessere Leistung zu erzielen. Dies gilt nicht, wenn die Eigenschaftsdaten groß sind (z. B. ein Byte-Array mit einer Größe von 1 KB) und möglicherweise viel Speicherplatz für das Caching belegen.
|
(Neu in Android 16)
hasSupportedValueInfo |
- Wenn nicht
null , wird angegeben, ob für dieses Attribut Mindest- oder Höchstwerte oder eine Liste der unterstützten Werte angegeben werden.
- Mit diesem Feld wird gesteuert, ob die APIs für dynamische unterstützte Werte:
getMinMaxSupportedValue , getSupportedValuesLists , subscribeSupportedValueChange , unsubscribeSupportedValueChange für diese Property-ID und Bereichs-ID unterstützt werden.
- Wenn nicht
null , muss VHAL diese APIs für diese Property-ID und Bereichs-ID implementieren.
- Wenn
null oder Android 15 oder niedriger verwendet wird, werden dynamisch unterstützte Werte für diese Property-ID und Bereichs-ID nicht unterstützt. Der Client muss die statischen unterstützten Werte verwenden, die in der Konfiguration der Fahrzeugeigenschaft angegeben sind.
|
Gebietstypen
Als Enums in VehicleArea.aidl
definiert. Die unterstützten Flächentypen sind unten aufgeführt.
Bereichstyp |
Wert |
Beschreibung |
---|
GLOBAL |
0x01000000 |
Diese Property ist eine globale Property und hat keine mehreren Bereiche. |
WINDOW |
0x03000000 |
Bereich basierend auf Fenstern, verwendet die VehicleAreaWindow -Enumeration. |
MIRROR |
0x04000000 |
Bereich basierend auf Spiegeln, verwendet die VehicleAreaMirror -Enumeration. |
SEAT |
0x05000000 |
Bereich basierend auf Nutzerlizenzen, verwendet die VehicleAreaSeat -Enumeration. |
TÜR |
0x06000000 |
Bereich basierend auf Türen, verwendet die VehicleAreaDoor -Enumeration. |
DIAGRAMM |
0x07000000 |
Fläche basierend auf Rädern, verwendet die VehicleAreaWheel -Enumeration. |
Für jede zonierte Property muss ein vordefinierter Bereichstyp verwendet werden. Für jeden Bereichstyp ist eine Reihe von Bit-Flags definiert, die in einer Enumeration für den Bereichstyp enthalten sind. Im SEAT-Bereich werden beispielsweise VehicleAreaSeat
Enums 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 Eigenschaften werden über Bereichs-IDs angesprochen. Jede zonierte Property kann eine oder mehrere Bereichs-IDs unterstützen. Eine Bereichs-ID besteht aus einem oder mehreren Flags aus dem entsprechenden Enum. Für ein Attribut mit VehicleAreaSeat
können beispielsweise die folgenden Bereichs-IDs verwendet werden:
Artikel |
Beschreibung |
---|
ROW_1_LEFT | ROW_1_RIGHT |
Die Bereichs-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.