Configurazioni delle proprietà

Ciascuna proprietà supportata è specificata da una configurazione di proprietà definita tramite la struttura VehiclePropConfig e presenta i seguenti campi.

Campo Descrizione
prop

L'ID della proprietà. Deve essere una delle proprietà di sistema definite da Proprietà di sistema supportate o una proprietà del fornitore. L'ID della proprietà viene costruito utilizzando bit-or dei seguenti campi (da destra a sinistra):

  • (0x0000 0000 ) 16 bit: un ID univoco compreso nell'intervallo 0x0100 - 0xffff.
  • (0x00 00 0000) 8 bit: tipi di proprietà che definisce il tipo della proprietà.
  • (0x0 0 000000) 4 bit: Tipi di aree .
  • (0x 0 0000000) 4 bit: VehiclePropertyGroup > Questo è SYSTEM (0x10000000) o VENDOR (0x20000000). Consulta Proprietà del venditore per le proprietà che puoi personalizzare.

Per 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 . Deve essere uguale alla modalità di accesso definita in Proprietà del sistema supportate .
changeMode
  • Cambia modalità per l'immobile. 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 il VHAL deve segnalare quando il valore cambia. CONTINUOUS significa che il valore della proprietà cambia continuamente e VHAL deve riferire in base alla frequenza di campionamento dell'abbonamento.
  • La modalità di modifica deve essere uguale alla modalità di modifica definita in Proprietà di sistema supportate .
configArray Un array facoltativo per contenere la configurazione specifica della proprietà. Può essere vuoto.
configString Una stringa facoltativa per contenere la configurazione specifica della proprietà. Può essere vuoto.
minSampleRate e maxSampleRate

La frequenza di campionamento minima e massima supportata per la proprietà continua. Non utilizzato se la proprietà non è continua.

Tipi di proprietà

Definito come enumerazioni in VehiclePropertyType.aidl . I tipi di proprietà supportati sono elencati nella tabella seguente.

Tipo di proprietà Valore Descrizione
CORDA 0x00100000 Proprietà stringa, utilizza il campo stringValue in Valore proprietà veicolo.
BOOLEANO 0x00200000 Proprietà booleana, utilizza il primo elemento nel campo int32Values ​​nel valore della proprietà Vehicle . 0 significa false , None 0 significa true .
INT32 0x00400000 Proprietà intera, utilizza il primo elemento nel campo int32Values ​​nel valore della proprietà Vehicle .
INT32_VEC 0x00410000 La proprietà Integer[] utilizza gli elementi nel campo int32Values ​​nella proprietà Vehicle value .
INT64 0x00500000 Proprietà lunga, utilizza il primo elemento nel campo int64Values ​​nel valore della proprietà Vehicle .
INT64_VEC 0x00510000 La proprietà Long[] utilizza gli elementi nel campo int64Values ​​nella proprietà Vehicle value .
GALLEGGIANTE 0x00600000 Proprietà float, utilizza il primo elemento nel campo floatValues ​​nel valore della proprietà Vehicle .
FLOAT_VEC 0x00610000 Proprietà Float[], utilizza gli elementi nel campo floatValues ​​nel valore della proprietà Vehicle .
BYTE 0x00700000 proprietà byte[], utilizza gli elementi nel campo byteValues ​​nella proprietà Vehicle value .
MISTO 0x00e00000 Immobile 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 booleano
  • configArray[2], 1 indica che la proprietà ha un valore intero
  • 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 ID area

Ciascuna configurazione di proprietà può contenere anche un elenco di configurazioni ID di area. Questo elenco è facoltativo per le proprietà globali e obbligatorio per le proprietà a zone (proprietà con più aree supportate). Ciascuna configurazione dell'ID area presenta i seguenti campi.

Campo Descrizione
areaId L'ID di quest'area. Vedi ID area .
minInt32Value e maxInt32Value
  • Valore minimo e massimo facoltativo per le proprietà del tipo INT32. Ignorato per tutti gli altri tipi. Ignorato se entrambi sono 0.
  • Per la proprietà globale, se è necessario definire i valori minimo e massimo, è necessario utilizzare una configurazione di area con ID area 0.
minInt64Value e maxInt64Value
  • Valore minimo e massimo facoltativo per le proprietà di tipo INT64. Ignorato per tutti gli altri tipi. Ignorato se entrambi sono 0.
  • Per la proprietà globale, se è necessario definire i valori minimo e massimo, è necessario utilizzare una configurazione di area con ID area 0.
minFloatValue e maxFloatValue
  • Valore minimo e massimo facoltativo per le proprietà di tipo Float. Ignorato per tutti gli altri tipi. Ignorato se entrambi sono 0.0.
  • Per la proprietà globale, se è necessario definire i valori minimo e massimo, è necessario utilizzare una configurazione di area con ID area 0.
( Novità in Android 14 )
supportedEnumValues
  • Elenco facoltativo di valori supportati se la proprietà è definita come proprietà di tipo enum. Se non specificato (vuoto) o prima di Android 14, si presuppone che tutti i valori enum siano supportati.
  • Per la proprietà globale, se è necessario definire valori enumerativi supportati, è necessario utilizzare una configurazione di area con ID area 0.

Tipi di aree

Definito come enumerazioni in VehicleArea.aidl . I tipi di area supportati sono elencati di seguito.

Tipologia di zona Valore Descrizione
GLOBALE 0x01000000 Questa proprietà è una proprietà globale e non dispone di più aree.
FINESTRA 0x03000000 Area basata su finestre, utilizza l'enumerazione VehicleAreaWindow .
SPECCHIO 0x04000000 Area basata sui mirror, utilizza l'enumerazione VehicleAreaMirror .
POSTO A SEDERE 0x05000000 Area basata sui 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 .

Ciascuna proprietà suddivisa in zone deve utilizzare un tipo di area predefinito. Ogni tipo di area ha una serie di flag di bit 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
  • ...

Identificativi di area

Le proprietà suddivise in zone vengono indirizzate tramite ID area. Ciascuna proprietà suddivisa in zone può supportare uno o più ID di area. Un ID area è costituito da uno o più flag dalla 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 Vale solo per il sedile posteriore sinistro.
ROW_2_RIGHT Vale solo per il sedile posteriore destro.

Per saperne di più, vedere HVAC .