Configurations de propriété

Chaque propriété prise en charge est spécifiée par une configuration de propriété définie via la structure VehiclePropConfig et comporte les champs suivants.

Champ Description
prop

L'identifiant de la propriété. Il doit s'agir de l'une des propriétés système définies dans les propriétés système prises en charge ou d'une propriété du fournisseur. L'ID de propriété est construit à l'aide du bit-or des champs suivants (de droite à gauche) :

  • (0x0000 0000 ) 16 bits : un identifiant unique compris entre 0x0100 et 0xffff.
  • (0x00 00 0000) 8 bits : Types de propriété qui définit le type de la propriété.
  • (0x0 0 000000) 4 bits : Types de zones .
  • (0x 0 0000000) 4 bits : VehiclePropertyGroup > Il s'agit soit SYSTEM (0x10000000), soit VENDOR (0x20000000). Voir Propriétés du fournisseur pour les propriétés que vous pouvez personnaliser.

Par exemple,
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)

access Le mode d'accès à la propriété. Doit être l'un des READ , WRITE ou READ_WRITE . Cela doit être égal au mode d'accès défini dans Propriétés système prises en charge .
changeMode
  • Changer de mode pour la propriété. Doit être l'un des STATIC , ON_CHANGE ou CONTINUOUS . STATIC signifie que la valeur de la propriété ne change jamais après un démarrage du système. ON_CHANGE signifie que le VHAL doit signaler lorsque la valeur change. CONTINUOUS signifie que la valeur de la propriété change continuellement et que VHAL doit produire un rapport basé sur le taux d'échantillonnage de l'abonnement.
  • Le mode de modification doit être égal au mode de modification défini dans Propriétés système prises en charge .
configArray Un tableau facultatif pour contenir une configuration spécifique à une propriété. Peut être vide.
configString Une chaîne facultative pour contenir une configuration spécifique à la propriété. Peut être vide.
minSampleRate et maxSampleRate

Taux d'échantillonnage minimum et maximum pris en charge pour la propriété continue. Non utilisé si la propriété n’est pas continue.

Types de propriétés

Défini comme énumérations dans VehiclePropertyType.aidl . Les types de propriétés pris en charge sont répertoriés dans le tableau suivant.

Type de propriété Valeur Description
CHAÎNE 0x00100000 Propriété String, utilise le champ stringValue dans Vehicle Property Value.
BOOLÉEN 0x00200000 Propriété booléenne, utilise le premier élément du champ int32Values ​​dans la valeur de la propriété Vehicle . 0 signifie false , None 0 signifie true .
INT32 0x00400000 Propriété Integer, utilise le premier élément du champ int32Values ​​dans la valeur de la propriété Vehicle .
INT32_VEC 0x00410000 Propriété Integer[], utilise les éléments du champ int32Values ​​dans la valeur de la propriété Vehicle .
INT64 0x00500000 Propriété longue, utilise le premier élément du champ int64Values ​​dans la valeur de la propriété Vehicle .
INT64_VEC 0x00510000 Propriété Long[] , utilise les éléments du champ int64Values ​​dans la valeur de la propriété Vehicle .
FLOTTER 0x00600000 Propriété Float, utilise le premier élément du champ floatValues ​​dans la valeur de la propriété Vehicle .
FLOAT_VEC 0x00610000 Propriété Float[], utilise les éléments du champ floatValues ​​dans la valeur de la propriété Vehicle .
OCTETS 0x00700000 Propriété byte[], utilise les éléments du champ byteValues ​​dans la valeur de la propriété Vehicle .
MIXTE 0x00e00000 Propriété de type mixte. Toute combinaison de types scalaires ou vectoriels. Le format exact doit être fourni dans le tableau config de la configuration de la propriété.

Pour les propriétés de type MIXED du fournisseur, configArray doit être formaté dans cette structure :

  • configArray[0], 1 indique que la propriété a une valeur String
  • configArray[1], 1 indique que la propriété a une valeur booléenne
  • configArray[2], 1 indique que la propriété a une valeur entière
  • configArray[3], le nombre indique la taille de Integer[] dans la propriété
  • configArray[4], 1 indique que la propriété a une valeur longue
  • configArray[5], le nombre indique la taille de Long[] dans la propriété
  • configArray[6], 1 indique que la propriété a une valeur Float
  • configArray[7], le nombre indique la taille de Float[] dans la propriété
  • configArray[8], le nombre indique la taille de l'octet[] dans la propriété.

Par exemple, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} indique que la propriété a une valeur String, une valeur booléenne, une valeur Integer et un tableau de trois entiers.

Configuration de l'ID de zone

Chaque configuration de propriété peut également contenir une liste de configurations d'ID de zone. Cette liste est facultative pour les propriétés globales et obligatoire pour les propriétés zonées (propriétés avec plusieurs zones prises en charge). Chaque configuration d'ID de zone comporte les champs suivants.

Champ Description
areaId L'ID de cette zone. Voir ID de zone .
minInt32Value et maxInt32Value
  • Valeurs minimale et maximale facultatives pour les propriétés de type INT32. Ignoré pour tous les autres types. Ignoré si les deux valent 0.
  • Pour la propriété globale, si les valeurs min et max doivent être définies, une configuration de zone avec l'ID de zone 0 doit être utilisée.
minInt64Value et maxInt64Value
  • Valeurs minimale et maximale facultatives pour les propriétés de type INT64. Ignoré pour tous les autres types. Ignoré si les deux valent 0.
  • Pour la propriété globale, si les valeurs min et max doivent être définies, une configuration de zone avec l'ID de zone 0 doit être utilisée.
minFloatValue et maxFloatValue
  • Valeurs minimale et maximale facultatives pour les propriétés de type Float. Ignoré pour tous les autres types. Ignoré si les deux valent 0,0.
  • Pour la propriété globale, si les valeurs min et max doivent être définies, une configuration de zone avec l'ID de zone 0 doit être utilisée.
( Nouveau dans Android 14 )
supportedEnumValues
  • Liste facultative des valeurs prises en charge si la propriété est définie comme propriété de type enum. Si non spécifié (vide) ou avant Android 14, il est supposé que toutes les valeurs d'énumération sont prises en charge.
  • Pour la propriété globale, si les valeurs d'énumération prises en charge doivent être définies, une configuration de zone avec l'ID de zone 0 doit être utilisée.

Types de zones

Défini comme énumérations dans VehicleArea.aidl . Les types de zones pris en charge sont répertoriés ci-dessous.

Type de zone Valeur Description
MONDIAL 0x01000000 Cette propriété est une propriété globale et ne comporte pas plusieurs zones.
FENÊTRE 0x03000000 Zone basée sur Windows, utilise l'énumération VehicleAreaWindow .
MIROIR 0x04000000 Zone basée sur des miroirs, utilise l'énumération VehicleAreaMirror .
SIÈGE 0x05000000 Zone basée sur les sièges, utilise l'énumération VehicleAreaSeat .
PORTE 0x06000000 Zone basée sur les portes, utilise l'énumération VehicleAreaDoor .
ROUE 0x07000000 Zone basée sur les roues, utilise l'énumération VehicleAreaWheel .

Chaque propriété zonée doit utiliser un type de zone prédéfini. Chaque type de zone possède un ensemble d'indicateurs binaires définis dans une énumération pour le type de zone. Par exemple, la zone SEAT définit les énumérations 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 de zone

Les propriétés zonées sont adressées via des identifiants de zone. Chaque propriété zonée peut prendre en charge un ou plusieurs ID de zone. Un ID de zone se compose d’un ou plusieurs indicateurs de son énumération respective. Par exemple, une propriété utilisant VehicleAreaSeat peut utiliser les ID de zone suivants :

Article Description
ROW_1_LEFT | ROW_1_RIGHT L'ID de zone s'applique aux deux sièges avant.
ROW_2_LEFT S'applique uniquement au siège arrière gauche.
ROW_2_RIGHT S'applique uniquement au siège arrière droit.

Pour en savoir plus, voir CVC .