A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Configurazioni delle proprietà
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Ogni proprietà supportata è specificata da una configurazione della proprietà definita tramite la struttura VehiclePropConfig
e ha i seguenti campi.
Campo |
Descrizione |
---|
prop |
L'ID proprietà. Deve essere una delle proprietà di sistema definite in
VehicleProperty.aidl
o una proprietà del fornitore. L'ID proprietà viene creato utilizzando l'operatore OR di bit dei seguenti campi
(da destra a sinistra):
- (0x00000000) 16 bit: un ID univoco nell'intervallo 0x0100 - 0xffff.
- (0x00000000) 8 bit: tipi di proprietà che definisce il tipo di proprietà.
- (0x00000000) 4 bit: Tipi di aree.
- (0x00000000) 4 bit:
VehiclePropertyGroup può essere SYSTEM
(0x10000000) o VENDOR (0x20000000). Consulta
Proprietà del fornitore
per informazioni sulle proprietà che puoi personalizzare.
Ad esempio,
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)
|
access |
- La modalità di accesso per la proprietà. Deve essere uno tra
READ , WRITE o
READ_WRITE .
- Per le proprietà di sistema, deve essere una delle modalità di accesso definite documentate in
VehicleProperty.aidl .
- Per le proprietà con accesso per area, questo è il sottoinsieme massimo dell'accesso per area. Ad esempio, se le proprietà hanno due aree di cui l'accesso è
READ e READ_WRITE , questo valore deve essere impostato su READ .
|
changeMode |
- Modifica la modalità per la proprietà. Deve essere
STATIC ,
ON_CHANGE o CONTINUOUS . STATIC indica che il valore della proprietà non cambia mai dopo l'avvio del sistema. ON_CHANGE indica che VHAL deve segnalare quando il valore cambia. CONTINUOUS indica che il valore della proprietà
cambia continuamente e che VHAL deve generare report in base alla frequenza di campionamento dell'abbonamento.
- Per le proprietà di sistema, deve essere uguale alla modalità di modifica descritta in
VehicleProperty.aidl .
|
configArray |
Un array facoltativo per contenere la configurazione specifica della proprietà. Può essere vuoto. Per determinate proprietà di sistema, ad esempio GEAR_SELECTION , l'array config ha un significato speciale e deve essere specificato.
|
configString |
Una stringa facoltativa contenente la configurazione specifica della proprietà. Può essere vuoto. |
minSampleRate e maxSampleRate |
La frequenza di campionamento minima e massima supportata per la proprietà continua (in Hertz). Non utilizzato se la proprietà
non è continua. minSampleRate e maxSampleRate devono essere raggiungibili dall'implementazione VHAL. Non è necessario supportare tutte le frequenze di campionamento comprese tra il valore minimo e il valore massimo. |
Tipi di proprietà
Definiti come enum in VehiclePropertyType.aidl
. I tipi di proprietà supportati sono elencati nella tabella seguente.
Tipo di proprietà |
Valore |
Descrizione |
---|
STRING |
0x00100000 |
Proprietà stringa, utilizza il campo stringValue in Valore proprietà veicolo. |
BOOLEAN |
0x00200000 |
La proprietà Boolean utilizza il primo elemento del campo int32Values in
Valore proprietà veicolo.
0 significa false , None 0 significa true . |
INT32 |
0x00400000 |
La proprietà Integer utilizza il primo elemento del campo int32Values in
Valore proprietà veicolo. |
INT32_VEC |
0x00410000 |
La proprietà Integer[] utilizza gli elementi del campo int32Values in
Valore proprietà veicolo. |
INT64 |
0x00500000 |
Proprietà di tipo Long, utilizza il primo elemento del campo int64Values in
Valore proprietà veicolo. |
INT64_VEC |
0x00510000 |
La proprietà Long[] utilizza gli elementi del campo int64Values in
Valore proprietà veicolo. |
FLOAT |
0x00600000 |
La proprietà Float utilizza il primo elemento del campo floatValues in
Valore proprietà veicolo. |
FLOAT_VEC |
0x00610000 |
La proprietà Float[] utilizza gli elementi del campo floatValues in
Valore proprietà veicolo. |
BYTES |
0x00700000 |
La proprietà byte[] utilizza gli elementi del campo byteValues in
Valore proprietà veicolo. |
MIXED |
0x00e00000 |
Proprietà di tipo misto. Qualsiasi combinazione di tipi scalari o vettoriali. Il formato esatto deve essere fornito nell'array config nella configurazione della proprietà.
Per le proprietà di tipo MIXED del fornitore, configArray deve essere formattato in questa struttura:
configArray[0] , 1 indica che la proprietà ha un valore String
configArray[1] , 1 indica che la proprietà ha un valore Boolean
configArray[2] , 1 indica che la proprietà ha un valore Integer
configArray[3] , il numero indica le dimensioni di Integer[] nella proprietà
configArray[4] , 1 indica che la proprietà ha un valore Long
configArray[5] , il numero indica le dimensioni di Long[] nella proprietà
configArray[6] , 1 indica che la proprietà ha un valore Float
configArray[7] , il numero indica le dimensioni di Float[] nella proprietà
configArray[8] , il numero indica la dimensione di byte[] nella proprietà.
Ad esempio, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} indica che la proprietà ha un valore String , un valore Boolean , un valore Integer e un array con tre numeri interi.
|
Configurazione dell'ID area
Ogni configurazione della proprietà può contenere anche un elenco di configurazioni degli ID area. Questo elenco è facoltativo per le proprietà globali e obbligatorio per le proprietà con zone (proprietà con più aree supportate). Ogni configurazione dell'ID area ha i seguenti campi.
Campo |
Descrizione |
---|
areaId |
L'ID di questa area. Consulta la sezione ID area. |
minInt32Value e maxInt32Value |
- Valore minimo e massimo facoltativi per le proprietà di tipo INT32 all'avvio. Deve essere 0
per tutti gli altri tipi. Ignorato se entrambi sono pari a 0.
- Per la proprietà globale, se è necessario definire il valore minimo e massimo, deve essere utilizzata una configurazione dell'area con l'ID area 0.
- Questo valore è statico e non cambia anche se il valore minimo o massimo cambia
in fase di esecuzione. Implementa
IVehicle#getMinMaxSupportedValue per il valore minimo o massimo dinamico.
|
minInt64Value e maxInt64Value |
- Valore minimo e massimo facoltativi per le proprietà di tipo INT64 all'avvio. Deve essere 0
per tutti gli altri tipi. Ignorato se entrambi sono pari a 0.
- Per la proprietà globale, se è necessario definire il valore minimo e massimo, deve essere utilizzata una configurazione dell'area con l'ID area 0.
- Questo valore è statico e non cambia anche se il valore minimo o massimo cambia
in fase di esecuzione. Implementa
IVehicle#getMinMaxSupportedValue per il valore minimo o massimo dinamico.
|
minFloatValue e maxFloatValue |
- Valore minimo e massimo facoltativi per le proprietà di tipo Float all'avvio. Deve essere 0
per tutti gli altri tipi. Ignorato se entrambi sono 0,0.
- Per la proprietà globale, se è necessario definire il valore minimo e massimo, deve essere utilizzata una configurazione dell'area con l'ID area 0.
- Questo valore è statico e non cambia anche se il valore minimo o massimo cambia
in fase di esecuzione. Implementa
IVehicle#getMinMaxSupportedValue per il valore minimo o massimo dinamico.
|
(Novità di Android 14)
supportedEnumValues |
- Elenco facoltativo dei valori supportati all'avvio se la proprietà è definita come proprietà di tipo enumerato. Se non specificato (vuoto) o prima di Android 14, si presume che tutti i valori enumerati siano supportati.
- Per la proprietà globale, se è necessario definire i valori dell'enum supportati, deve essere utilizzata una configurazione della zona con l'ID zona 0.
- Questo valore è statico e non cambia anche se i valori supportati cambiano
in fase di esecuzione. Implementa
IVehicle#getSupportedValuesLists per i valori dinamici supportati.
- Questo vale solo per le proprietà di tipo enum. Per gli altri tipi, questo campo deve essere vuoto.
Per esporre i valori supportati per altri tipi non enum, utilizza
IVehicle#getSupportedValuesLists .
|
(Novità di Android 15)
supportVariableUpdateRate |
- Indica se la frequenza di aggiornamento delle variabili è supportata. Questo vale solo per le proprietà continue.
- Se il valore è
true , l'app può attivare la frequenza di aggiornamento variabile per un abbonamento in modo da
ricevere eventi di aggiornamento della proprietà solo quando il valore della proprietà cambia
(ovvero tratta le proprietà continue come proprietà on-change).
- Se tutti gli abbonati di una proprietà attivano la frequenza di aggiornamento variabile, la richiesta di abbonamento a VHAL attiva la frequenza di aggiornamento variabile per la proprietà e VHAL deve inviare eventi di aggiornamento della proprietà solo quando il valore della proprietà cambia.
- Se un abbonato richiede una frequenza di aggiornamento fissa, la richiesta di abbonamento a VHAL
disattiva la frequenza di aggiornamento variabile per la proprietà e AAOS filtra
gli eventi duplicati per i clienti che richiedono la frequenza di aggiornamento variabile.
- È MOLTO CONSIGLIATO supportare la frequenza di aggiornamento variabile per tutte le proprietà continue non heartbeat per migliorare le prestazioni, a meno che i dati della proprietà non siano di grandi dimensioni (ad esempio, un array di byte di 1 KB) e potrebbero occupare una grande quantità di memoria per la memorizzazione nella cache.
|
(Novità di Android 16)
hasSupportedValueInfo |
- Se non è
null , mostra se questa proprietà specifica valori supportati minimi o massimi o l'elenco dei valori supportati.
- Questo campo controlla se le API di valore supportate dinamiche:
getMinMaxSupportedValue , getSupportedValuesLists ,
subscribeSupportedValueChange , unsubscribeSupportedValueChange
sono supportate per questo ID proprietà e ID area.
- In caso contrario,
null , VHAL deve implementare queste API per questo
ID proprietà e ID area.
- Se
null o Android 15 o versioni precedenti, i valori supportati dinamici per questo ID proprietà e ID area non sono supportati. Il cliente deve utilizzare le informazioni sui valori supportati statici fornite nella configurazione della proprietà del veicolo.
|
Tipi di aree
Definiti come enum in VehicleArea.aidl
. Di seguito sono elencati i tipi di aree supportati.
Tipo di area |
Valore |
Descrizione |
---|
GLOBALE |
0x01000000 |
Questa proprietà è globale e non ha più aree. |
WINDOW |
0x03000000 |
Area basata sulle finestre, utilizza l'enum VehicleAreaWindow . |
MIRROR: |
0x04000000 |
Area basata su specchi, utilizza l'enum VehicleAreaMirror . |
SEAT |
0x05000000 |
Area in base ai posti, utilizza l'enum VehicleAreaSeat . |
DOOR |
0x06000000 |
Area in base alle porte, utilizza l'enum VehicleAreaDoor . |
RUOTA |
0x07000000 |
Area basata sulle ruote, utilizza l'enum VehicleAreaWheel . |
Ogni proprietà con zone deve utilizzare un tipo di area predefinito. Ogni tipo di area ha un insieme di bit flag
definiti in un enum per il tipo di area. Ad esempio, l'area SEAT definisce enumerazioni 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
...
ID aree
Le proprietà con zone sono indirizzate tramite ID area. Ogni proprietà con zone può supportare uno o più ID area. Un ID area è costituito da uno o più flag del rispettivo enum. Ad esempio, una proprietà che utilizza VehicleAreaSeat
potrebbe utilizzare i seguenti ID area:
Articolo |
Descrizione |
---|
ROW_1_LEFT | ROW_1_RIGHT |
L'ID area si applica a entrambi i sedili anteriori. |
ROW_2_LEFT |
Si applica solo al sedile posteriore sinistro. |
ROW_2_RIGHT |
Si applica solo al sedile posteriore destro. |
Per scoprire di più, consulta la sezione Impianti di climatizzazione.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-06-12 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-06-12 UTC."],[],[]]