Każda obsługiwana właściwość jest określana przez konfigurację usługi zdefiniowaną za pomocą struktury VehiclePropConfig
i zawiera poniższe pola.
Pole | Opis |
---|---|
prop |
Identyfikator usługi. Musi to być jedna z definiowanych właściwości systemowych z Obsługiwanych właściwości systemowych lub właściwość dostawcy. Identyfikator usługi jest tworzony na podstawie funkcji bitowej OR z tych pól (od prawej do lewej):
Na przykład: |
access |
Tryb dostępu do usługi. Musi mieć wartość READ , WRITE lub READ_WRITE . Musi być równy trybowi dostępu zdefiniowanemu w Obsługiwanych właściwościach systemu. |
changeMode |
|
configArray |
Opcjonalny tablica zawierająca konfigurację specyficzną dla usługi. Może być puste. |
configString |
Opcjonalny ciąg tekstowy zawierający konfigurację specyficzną dla usługi. Może być puste. |
minSampleRate i maxSampleRate
Minimalna i maksymalna obsługiwana częstotliwość próbkowania w przypadku właściwości ciągłej. Nieużywana, jeśli obiekt nie jest ciągły. |
Typy obiektów
Zdefiniowane jako typy zbiorcze w VehiclePropertyType.aidl
. Obsługiwane typy właściwości zostały wymienione w tabeli poniżej.
Typ obiektu | Wartość | Opis |
---|---|---|
CIĄG ZNAKÓW | 0x00100000 | Właściwość ciągu znaków, która korzysta z pola stringValue w sekcji Wartość właściwości pojazdu. |
WARTOŚĆ LOGICZNA | 0x00200000 | Właściwość logiczna, która używa pierwszego elementu w polu int32Values w wartości właściwości pojazdu.
0 oznacza false , a None 0 – true . |
INT32 | 0x00400000 | Właściwość typu liczba całkowita, która używa pierwszego elementu w polu int32Values w wartości właściwości pojazdu. |
INT32_VEC | 0x00410000 | Właściwość Integer[] korzysta z elementów w polu int32Values w wartości właściwości Pojazd. |
INT64 | 0x00500000 | Długa właściwość, która używa pierwszego elementu w polu int64Values w wartości właściwości pojazdu. |
INT64_VEC | 0x00510000 | Właściwość Long[] korzysta z elementów w polu int64Values w Właściwości pojazdu. |
FLOAT | 0x00600000 | Właściwość typu float, która używa pierwszego elementu w polu floatValues w wartości właściwości pojazdu. |
FLOAT_VEC | 0x00610000 | Właściwość float[], która korzysta z elementów w polu floatValues w wartości właściwości pojazdu. |
BYTES | 0x00700000 | Właściwość byte[], która korzysta z elementów w polu byteValues w Wartości właściwości Pojazd. |
MIESZANE STYLE | 0x00e00000 | Obiekt typu mieszanego. dowolna kombinacja typów skalarnych lub wektorowych. W tablicy config w konfiguracji usługi musi być podany dokładny format.
W przypadku właściwości typu MIXED dostawcy parametr configArray musi mieć taki format:
Na przykład |
Konfiguracja identyfikatora obszaru
Każda konfiguracja usługi może też zawierać listę konfiguracji identyfikatorów obszaru. Ta lista jest opcjonalna w przypadku usług globalnych i wymagana w przypadku usług strefowych (usług z wieloma obsługiwanymi obszarami). Każda konfiguracja identyfikatora obszaru zawiera te pola.
Pole | Opis |
---|---|
areaId |
Identyfikator tego obszaru. Zobacz identyfikatory obszarów. |
minInt32Value i maxInt32Value |
|
minInt64Value i maxInt64Value |
|
minFloatValue i maxFloatValue |
|
(nowość w Androidzie 14)supportedEnumValues |
|
Typy obszarów
Zdefiniowane jako typy zbiorcze w VehicleArea.aidl
. Obsługiwane typy obszarów są wymienione poniżej.
Typ obszaru | Wartość | Opis |
---|---|---|
GLOBAL | 0x01000000 | To jest usługa globalna i nie obejmuje wielu obszarów. |
OKNO | 0x03000000 | Obszar na podstawie okien, używa enum VehicleAreaWindow . |
MIRROR | 0x04000000 | Obszar oparty na lustrach, używa enum VehicleAreaMirror . |
SEAT | 0x05000000 | Obszar na podstawie miejsc, używa enum VehicleAreaSeat . |
DZWONEK | 0x06000000 | Obszar na podstawie drzwi, używa enum VehicleAreaDoor . |
KOŁO | 0x07000000 | Obszar na podstawie kół, korzysta z wyliczenia VehicleAreaWheel . |
Każda strefa w danej usłudze musi używać zdefiniowanego wstępnie typu obszaru. Każdy typ obszaru ma zestaw flag bitowych zdefiniowanych w enumeracji dla tego typu. Na przykład obszar SEAT definiuje wyliczenia 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
...
Identyfikatory obszarów
Właściwości z podziałem na strefy są adresowane za pomocą identyfikatorów obszarów. Każda usługa z podziałem na strefy może obsługiwać co najmniej 1 identyfikator obszaru. Identyfikator obszaru składa się z co najmniej 1 flagi z odpowiedniego wyliczenia. Na przykład usługa korzystająca z usługi VehicleAreaSeat
może używać tych identyfikatorów obszaru:
Produkt | Opis |
---|---|
ROW_1_LEFT | ROW_1_RIGHT |
Identyfikator obszaru dotyczy obu miejsc z przodu. |
ROW_2_LEFT |
Dotyczy tylko lewego tylnego siedzenia. |
ROW_2_RIGHT |
Dotyczy tylko prawego tylnego siedzenia. |
Więcej informacji znajdziesz w artykule Ogrzewanie, wentylacja i klimatyzacja.