Configurations de propriété

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

Champ Description
prop

ID de la propriété. Il doit s'agir de l'une des propriétés système définies dans la section Propriétés système compatibles ou d'une propriété du fournisseur. L'ID de propriété est construit à l'aide de l'opérateur OR de bits des champs suivants (de droite à gauche):

  • (0x00000000) 16 bits: identifiant unique compris entre 0x0100 et 0xffff.
  • (0x00000000) 8 bits: types de propriétés qui définit le type de la propriété.
  • (0x00000000) 4 bits: types de zones.
  • (0x00000000) 4 bits: VehiclePropertyGroup> Il s'agit de SYSTEM (0x10000000) ou de VENDOR (0x20000000). Consultez la section Propriétés de fournisseur pour connaître les propriétés que vous pouvez personnaliser.

Exemple :
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)

access Mode d'accès de la propriété. Doit être défini sur READ, WRITE ou READ_WRITE. Cette valeur doit être égale au mode d'accès défini dans la section Propriétés système compatibles.
changeMode
  • Changer de mode pour la propriété Doit être l'un des suivants : STATIC, ON_CHANGE ou CONTINUOUS. STATIC signifie que la valeur de la propriété ne change jamais après le 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 en continu et que VHAL doit générer des rapports en fonction du taux d'échantillonnage de l'abonnement.
  • Le mode de modification doit être égal au mode de modification défini dans la section Propriétés système compatibles.
configArray Tableau facultatif contenant une configuration spécifique à la propriété. Ce champ peut être vide.
configString Chaîne facultative contenant la configuration spécifique à la propriété. Ce champ peut être vide.
minSampleRate et maxSampleRate

Fréquence d'échantillonnage minimale et maximale compatible pour la propriété continue. Non utilisé si la propriété n'est pas continue.

Types de propriétés

Définis comme énumérations dans VehiclePropertyType.aidl. Les types de propriétés compatibles sont répertoriés dans le tableau suivant.

Type de propriété Valeur Description
Chaîne 0x00100000 Propriété de chaîne, utilise le champ stringValue dans la valeur de la propriété du véhicule.
BOOLEAN 0x00200000 Propriété booléenne, utilise le premier élément du champ int32Values dans la valeur de la propriété du véhicule. 0 signifie false, None 0 signifie true.
INT32 0x00400000 Propriété entière, utilise le premier élément du champ int32Values dans la valeur de la propriété du véhicule.
INT32_VEC 0x00410000 La propriété Integer[] utilise les éléments du champ int32Values dans la valeur de la propriété du véhicule.
INT64 0x00500000 Propriété Long, utilise le premier élément du champ int64Values dans la valeur de la propriété du véhicule.
INT64_VEC 0x00510000 La propriété Long[] utilise les éléments du champ int64Values dans la valeur de la propriété du véhicule.
FLOAT 0x00600000 Propriété flottante, qui utilise le premier élément du champ floatValues dans la valeur de la propriété de véhicule.
FLOAT_VEC 0x00610000 La propriété Float[] utilise les éléments du champ floatValues dans la valeur de la propriété du véhicule.
BYTES 0x00700000 La propriété byte[] utilise les éléments du champ byteValues dans la valeur de la propriété du véhicule.
MIXTE 0x00e00000 Propriété de type mixte. Toute combinaison de types scalaires ou vectoriels. Le format exact doit être fourni dans le tableau de configuration de la propriété.

Pour les propriétés de type MIXED du fournisseur, configArray doit être formaté selon la structure suivante:

  • configArray[0], 1 indique que la propriété a une valeur de chaîne
  • 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 d'Integer[] dans la propriété
  • configArray[4], 1 indique que la propriété a une valeur Long
  • 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é comporte une valeur de chaîne, une valeur booléenne, une valeur entière et un tableau avec 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 compatibles). Chaque configuration d'identifiant de zone comporte les champs suivants.

Champ Description
areaId ID de cette zone. Consultez la section 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 valeurs sont égales à 0.
  • Pour une propriété globale, si des valeurs minimales et maximales 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 valeurs sont égales à 0.
  • Pour une propriété globale, si des valeurs minimale et maximale doivent être définies, une configuration d'aire avec l'identifiant de zone 0 doit être utilisée.
minFloatValue et maxFloatValue
  • Valeur minimale et maximale facultatives pour les propriétés de type Float. Ignoré pour tous les autres types. Ignoré si les deux valeurs sont égales à 0,0.
  • Pour une propriété globale, si des valeurs minimales et maximales doivent être définies, une configuration de zone avec l'ID de zone 0 doit être utilisée.
(Nouveauté d'Android 14)
supportedEnumValues
  • Liste facultative des valeurs acceptées si la propriété est définie comme une propriété de type énumération. Si ce n'est pas le cas (si la valeur est vide) ou avant Android 14, on considère que toutes les valeurs d'énumération sont acceptées.
  • Pour une propriété globale, si des valeurs d'énumération acceptées doivent être définies, une configuration de zone ayant l'identifiant de zone 0 doit être utilisée.

Types de zones

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

Type de zone Valeur Description
GÉNÉRAL 0x01000000 Cet établissement est un site international et ne comporte pas plusieurs zones.
WINDOW 0x03000000 Zone basée sur les fenêtres, utilise l'énumération VehicleAreaWindow.
MIRROR 0x04000000 Aire basée sur des miroirs, utilise l'énumération VehicleAreaMirror.
SEAT 0x05000000 Zone basée sur le nombre de sièges, utilise l'énumération VehicleAreaSeat.
DOOR 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 d'espace prédéfini. Chaque type d'aire possède un ensemble d'indicateurs définis dans une énumération pour le type d'aire. 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 à l'aide d'ID 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 de 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, consultez CVC.