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 bit a 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 definiscono il tipo di proprietà.
- (0x00000000) 4 bit: Tipi di area.
- (0x00000000) 4 bit:
VehiclePropertyGroup questo valore è SYSTEM
(0x10000000) o VENDOR (0x20000000). Consulta
Proprietà del fornitore
per le 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 alla 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 il cui accesso è
READ e READ_WRITE , questo valore deve essere impostato su READ .
|
changeMode |
- Modifica la modalità per la proprietà. Deve essere uno tra
STATIC ,
ON_CHANGE o CONTINUOUS . STATIC significa che il valore della proprietà non cambia mai dopo l'avvio del sistema. ON_CHANGE significa che l'HAL del veicolo
deve segnalare quando il valore cambia. CONTINUOUS significa che il valore della proprietà
cambia continuamente e VHAL deve generare report in base alla frequenza di campionamento dell'abbonamento.
- Per le proprietà di sistema, questo valore deve essere uguale alla modalità di modifica documentata in
VehicleProperty.aidl .
|
configArray |
Un array facoltativo per contenere la configurazione specifica della proprietà. Può essere vuoto. Per alcune proprietà di sistema, ad esempio GEAR_SELECTION , l'array di configurazione ha un significato speciale e deve essere specificato.
|
configString |
Una stringa facoltativa che contiene 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
di VHAL. Non è necessario supportare tutte le frequenze di campionamento comprese tra il valore minimo e quello massimo. |
Tipi di proprietà
Definito come enumerazioni 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 |
Boolean utilizza il primo elemento nel campo int32Values in
Valore proprietà veicolo.
0 significa false , None 0 significa true . |
INT32 |
0x00400000 |
Integer utilizza il primo elemento nel campo int32Values in
Valore proprietà veicolo. |
INT32_VEC |
0x00410000 |
Integer[] utilizza gli elementi nel campo int32Values in
Valore proprietà veicolo. |
INT64 |
0x00500000 |
Proprietà lunga, utilizza il primo elemento nel campo int64Values in
Valore proprietà veicolo. |
INT64_VEC |
0x00510000 |
Long[] utilizza gli elementi nel campo int64Values in
Valore proprietà veicolo. |
FLOAT |
0x00600000 |
Float utilizza il primo elemento nel campo floatValues in
Valore proprietà veicolo. |
FLOAT_VEC |
0x00610000 |
Float[] utilizza gli elementi nel campo floatValues in
Valore proprietà veicolo. |
BYTES |
0x00700000 |
byte[] utilizza gli elementi nel 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 di configurazione nella configurazione della proprietà.
Per le proprietà di tipo MISTO 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 la dimensione di Integer[] nella proprietà
configArray[4] , 1 indica che la proprietà ha un valore Long
configArray[5] , il numero indica la dimensione di Long[] nella proprietà
configArray[6] , 1 indica che la proprietà ha un valore Float
configArray[7] , il numero indica la dimensione 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 dell'ID area. Questo elenco è
facoltativo per le proprietà globali e obbligatorio per le proprietà zonali (proprietà con più
aree supportate). Ogni configurazione dell'ID area ha i seguenti campi.
Campo |
Descrizione |
---|
areaId |
L'ID di questa area. Vedi ID area. |
minInt32Value e maxInt32Value |
- Valore minimo e massimo facoltativo per le proprietà di tipo INT32 al momento dell'avvio. Deve essere 0
per tutti gli altri tipi. Ignorato se entrambi sono 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 runtime. Implementa
IVehicle#getMinMaxSupportedValue per il valore minimo o massimo dinamico.
|
minInt64Value e maxInt64Value |
- Valore minimo e massimo facoltativo per le proprietà di tipo INT64 al momento dell'avvio. Deve essere 0
per tutti gli altri tipi. Ignorato se entrambi sono 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 runtime. Implementa
IVehicle#getMinMaxSupportedValue per il valore minimo o massimo dinamico.
|
minFloatValue e maxFloatValue |
- Valore minimo e massimo facoltativo per le proprietà di tipo Float al momento dell'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 runtime. Implementa
IVehicle#getMinMaxSupportedValue per il valore minimo o massimo dinamico.
|
(Novità di Android 14)
supportedEnumValues |
- Elenco facoltativo di valori supportati all'avvio se la proprietà è definita come proprietà di tipo enum. Se non specificato (vuoto) o prima di Android 14, si presume che tutti i valori enum
siano supportati.
- Per la proprietà globale, se è necessario definire i valori enum supportati, deve essere utilizzata una configurazione dell'area con l'ID area 0.
- Questo valore è statico e non cambierà anche se i valori supportati cambiano
in fase di runtime. 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 |
- Se la frequenza di aggiornamento delle variabili è supportata. Questo vale solo per le proprietà continue.
- Se questo valore è
true , l'app può attivare la frequenza di aggiornamento variabile per un abbonamento per
ricevere eventi di aggiornamento delle proprietà solo quando il valore della proprietà cambia
(ovvero trattando le proprietà continue come proprietà di modifica).
- Se tutti i sottoscrittori di una proprietà attivano la frequenza di aggiornamento variabile, la richiesta di sottoscrizione 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 client che richiedono una frequenza di aggiornamento variabile.
- È VIVAMENTE CONSIGLIATO supportare la frequenza di aggiornamento variabile per tutte le proprietà continue non heartbeat
per prestazioni migliori, a meno che i dati della proprietà non siano di grandi dimensioni (ad esempio,
un array di byte di 1 k) e potrebbero occupare una grande quantità di memoria per la memorizzazione nella cache.
|
(Novità di Android 16)
hasSupportedValueInfo |
- Se non
null , indica se questa proprietà specifica valori minimi o massimi
supportati o un elenco di valori supportati.
- Questo campo controlla se le API dei valori supportati dinamici:
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 in Android 15 o versioni precedenti, i valori dinamici supportati
per questo ID proprietà e ID area non sono supportati. Il client deve utilizzare le informazioni sui valori statici supportati fornite nella configurazione della proprietà del veicolo.
|
Tipi di area
Definito come enumerazioni in VehicleArea.aidl
. Di seguito sono elencati i tipi di area supportati.
Tipo di area |
Valore |
Descrizione |
---|
GLOBALE |
0x01000000 |
Questa proprietà è globale e non ha più aree. |
FINESTRA |
0x03000000 |
Area basata sulle finestre, utilizza l'enumerazione VehicleAreaWindow . |
MIRROR: |
0x04000000 |
Area basata sugli specchietti, utilizza l'enumerazione VehicleAreaMirror . |
SEAT |
0x05000000 |
Area in base ai posti, utilizza l'enumerazione VehicleAreaSeat . |
PORTA |
0x06000000 |
Area basata sulle porte, utilizza l'enumerazione VehicleAreaDoor . |
RUOTA |
0x07000000 |
Area basata sulle ruote, utilizza l'enumerazione VehicleAreaWheel . |
Ogni proprietà suddivisa in zone deve utilizzare un tipo di area predefinito. Ogni tipo di area ha un insieme di bit flag
definiti in un'enumerazione per il tipo di area. Ad esempio, l'area SEAT definisce
le 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 area
Le proprietà suddivise in zone vengono indirizzate tramite gli ID area. Ogni proprietà suddivisa in zone può supportare uno o più
ID area. Un ID area è composto da uno o più flag della rispettiva enumerazione. 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 saperne di più, consulta la sezione 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-10-10 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-10-10 UTC."],[],[]]