Configurazioni proprietà

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 Proprietà di sistema supportate 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 area.
  • (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. Deve essere uguale alla modalità di accesso definita in Proprietà di sistema supportate.
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 VHAL deve generare un report in base alla tariffa di campionamento dell'abbonamento.
  • La modalità di modifica deve essere uguale a quella definita in Proprietà di sistema supportate.
configArray Un array facoltativo per contenere la configurazione specifica della proprietà. Può essere vuoto.
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. Non utilizzato se la proprietà non è continua.

Tipi di proprietà

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

Tipo di proprietà Valore Descrizione
STRINGA 0x00100000 Proprietà stringa, utilizza il campo stringValue in Valore proprietà veicolo.
BOOLEAN 0x00200000 Proprietà booleana, utilizza il primo elemento nel campo int32Values in Valore proprietà veicolo. 0 significa false, None 0 significa true.
INT32 0x00400000 Proprietà intera, utilizza il primo elemento nel campo int32Values in Valore proprietà veicolo.
INT32_VEC 0x00410000 Numero intero [], utilizza gli elementi nel campo int32Values in Valore della proprietà del veicolo.
INT64 0x00500000 Proprietà lunga, utilizza il primo elemento nel campo int64Values in Valore della proprietà del veicolo.
INT64_VEC 0x00510000 Long[], utilizza gli elementi nel campo int64Values in Valore della proprietà del veicolo.
FLOAT 0x00600000 Proprietà Float, utilizza il primo elemento nel campo floatValues in Valore proprietà veicolo.
FLOAT_VEC 0x00610000 La proprietà Float[], utilizza gli elementi del campo floatValues in Valore proprietà veicolo.
BYTES 0x00700000 byte[], utilizza gli elementi nel campo byteValues in Valore della proprietà del veicolo.
MISTO 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 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 Stringa, un valore Booleano, un valore Integer e un array con tre numeri interi.

Configurazione dell'ID area

Ogni configurazione della proprietà può anche contenere un elenco di configurazioni degli ID area. Questo elenco è facoltativo per le proprietà globali ed obbligatorio per le proprietà con zone (proprietà con più aree supportate). Ogni configurazione di ID area include 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. Viene ignorato per tutti gli altri tipi. Ignorati se entrambi sono pari a 0.
  • Per la proprietà globale, se è necessario definire i valori minimo e massimo, deve essere utilizzata una configurazione dell'area con ID area 0.
minInt64Value e maxInt64Value
  • Valore minimo e massimo facoltativi per le proprietà di tipo INT64. Viene ignorato per tutti gli altri tipi. Ignorato se entrambi sono pari a 0.
  • Per la proprietà globale, se è necessario definire i valori minimo e massimo, deve essere utilizzata una configurazione dell'area con l'ID area 0.
minFloatValue e maxFloatValue
  • Valore minimo e massimo facoltativo per le proprietà di tipo in virgola mobile. Viene ignorato per tutti gli altri tipi. Ignorato se entrambi sono 0,0.
  • Per la proprietà globale, se è necessario definire i valori minimo e massimo, deve essere utilizzata una configurazione dell'area con ID area 0.
(Novità di Android 14)
supportedEnumValues
  • Elenco facoltativo dei valori supportati se la proprietà è definita come proprietà di tipo enum. 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.

Tipi di aree

Definiti come enum in VehicleArea.aidl. I tipi di aree supportati sono elencati di seguito.

Tipo di area Valore Descrizione
GLOBALE 0x01000000 Questa proprietà è globale e non ha più aree.
FINESTRA 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 definito 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 area

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.