Configuraciones de propiedad

Cada propiedad admitida se especifica mediante una configuración de propiedad definida a través de la estructura VehiclePropConfig y tiene los siguientes campos.

Campo Descripción
prop

El identificador de propiedad. Debe ser una de las propiedades del sistema definidas en Propiedades del sistema admitidas o una propiedad del proveedor. El ID de propiedad se construye utilizando bits o de los siguientes campos (de derecha a izquierda):

  • (0x0000 0000 ) 16 bits: una identificación única del rango 0x0100 - 0xffff.
  • (0x00 00 0000) 8 bits: Tipos de propiedad que define el tipo de propiedad.
  • (0x0 0 000000) 4 bits: Tipos de área .
  • (0x 0 0000000) 4 bits: VehiclePropertyGroup > Este es SYSTEM (0x10000000) o VENDOR (0x20000000). Consulte Propiedades del proveedor para conocer las propiedades que puede personalizar.

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

access El modo de acceso a la propiedad. Debe ser uno de READ , WRITE o READ_WRITE . Esto debe ser igual al modo de acceso definido en Propiedades del sistema admitidas .
changeMode
  • Cambiar modo de la propiedad. Debe ser uno de STATIC , ON_CHANGE o CONTINUOUS . STATIC significa que el valor de la propiedad nunca cambia después de un inicio del sistema. ON_CHANGE significa que VHAL debe informar cuando cambia el valor. CONTINUOUS significa que el valor de la propiedad cambia continuamente y VHAL debe informar según la tasa de muestra de la suscripción.
  • El modo de cambio debe ser igual al modo de cambio definido en Propiedades del sistema admitidas .
configArray Una matriz opcional que contiene la configuración específica de la propiedad. Puede estar vacío.
configString Una cadena opcional para contener la configuración específica de la propiedad. Puede estar vacío.
minSampleRate y maxSampleRate

La frecuencia de muestreo mínima y máxima admitida para propiedad continua. No se utiliza si la propiedad no es continua.

Tipos de propiedad

Definido como enumeraciones en VehiclePropertyType.aidl . Los tipos de propiedades admitidos se enumeran en la siguiente tabla.

Tipo de propiedad Valor Descripción
CADENA 0x00100000 Propiedad de cadena, utiliza el campo stringValue en Valor de propiedad del vehículo.
BOOLEANO 0x00200000 Propiedad booleana, utiliza el primer elemento en el campo int32Values ​​en el valor de la propiedad del vehículo . 0 significa false , None 0 significa true .
INT32 0x00400000 Propiedad entera, utiliza el primer elemento en el campo int32Values ​​en el valor de la propiedad del vehículo .
INT32_VEC 0x00410000 Propiedad Integer[], utiliza los elementos del campo int32Values ​​en Valor de propiedad del vehículo .
INT64 0x00500000 Propiedad larga, utiliza el primer elemento en el campo int64Values ​​en el valor de propiedad del vehículo .
INT64_VEC 0x00510000 Propiedad Long[] , utiliza los elementos del campo int64Values ​​en el valor de propiedad del vehículo .
FLOTAR 0x00600000 Propiedad flotante, utiliza el primer elemento en el campo floatValues ​​en el valor de la propiedad del vehículo .
FLOAT_VEC 0x00610000 Propiedad Float[], utiliza los elementos del campo floatValues ​​en el valor de la propiedad del vehículo .
BYTES 0x00700000 Propiedad byte[], utiliza los elementos del campo byteValues ​​en el valor de propiedad del vehículo .
MEZCLADO 0x00e00000 Propiedad de tipo mixto. Cualquier combinación de tipos escalares o vectoriales. El formato exacto debe proporcionarse en la matriz de configuración en la configuración de la propiedad.

Para las propiedades de tipo MIXED del proveedor, configArray debe formatearse en esta estructura:

  • configArray[0], 1 indica que la propiedad tiene un valor de cadena
  • configArray[1], 1 indica que la propiedad tiene un valor booleano
  • configArray[2], 1 indica que la propiedad tiene un valor entero
  • configArray[3], el número indica el tamaño de Integer[] en la propiedad
  • configArray[4], 1 indica que la propiedad tiene un valor Long
  • configArray[5], el número indica el tamaño de Long[] en la propiedad
  • configArray[6], 1 indica que la propiedad tiene un valor flotante
  • configArray[7], el número indica el tamaño de Float[] en la propiedad
  • configArray[8], el número indica el tamaño del byte[] en la propiedad.

Por ejemplo, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} indica que la propiedad tiene un valor de cadena, un valor booleano, un valor entero y una matriz con tres enteros.

Configuración de ID de área

Cada configuración de propiedad también puede contener una lista de configuraciones de ID de área. Esta lista es opcional para propiedades globales y obligatoria para propiedades zonales (propiedades con múltiples áreas admitidas). Cada configuración de ID de área tiene los siguientes campos.

Campo Descripción
areaId El ID de esta área. Consulte ID de área .
minInt32Value y maxInt32Value
  • Valor mínimo y máximo opcional para propiedades de tipo INT32. Ignorado para todos los demás tipos. Se ignora si ambos son 0.
  • Para la propiedad global, si es necesario definir los valores mínimo y máximo, se debe utilizar una configuración de área con el ID de área 0.
minInt64Value y maxInt64Value
  • Valor mínimo y máximo opcional para propiedades de tipo INT64. Ignorado para todos los demás tipos. Se ignora si ambos son 0.
  • Para la propiedad global, si es necesario definir los valores mínimo y máximo, se debe utilizar una configuración de área con el ID de área 0.
minFloatValue y maxFloatValue
  • Valor mínimo y máximo opcional para propiedades de tipo flotante. Ignorado para todos los demás tipos. Se ignora si ambos son 0,0.
  • Para la propiedad global, si es necesario definir los valores mínimo y máximo, se debe utilizar una configuración de área con el ID de área 0.
( Nuevo en Android 14 )
supportedEnumValues
  • Lista opcional de valores admitidos si la propiedad se define como una propiedad de tipo enumeración. Si no se especifica (vacío) o es anterior a Android 14, se supone que todos los valores de enumeración son compatibles.
  • Para la propiedad global, si es necesario definir valores de enumeración admitidos, se debe utilizar una configuración de área con el ID de área 0.

Tipos de área

Definido como enumeraciones en VehicleArea.aidl . Los tipos de áreas admitidas se enumeran a continuación.

Tipo de área Valor Descripción
GLOBAL 0x01000000 Esta propiedad es una propiedad global y no tiene múltiples áreas.
VENTANA 0x03000000 Área basada en ventanas, utiliza la enumeración VehicleAreaWindow .
ESPEJO 0x04000000 Área basada en espejos, utiliza la enumeración VehicleAreaMirror .
ASIENTO 0x05000000 Área basada en asientos, utiliza la enumeración VehicleAreaSeat .
PUERTA 0x06000000 Área basada en puertas, utiliza la enumeración VehicleAreaDoor .
RUEDA 0x07000000 Área basada en ruedas, utiliza la enumeración VehicleAreaWheel .

Cada propiedad zonificada debe utilizar un tipo de área predefinido. Cada tipo de área tiene un conjunto de indicadores de bits definidos en una enumeración para el tipo de área. Por ejemplo, el área SEAT define las enumeraciones 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 área

Las propiedades zonificadas se abordan a través de ID de área. Cada propiedad zonificada puede admitir una o más ID de área. Un ID de área consta de uno o más indicadores de su enumeración respectiva. Por ejemplo, una propiedad que utiliza VehicleAreaSeat podría utilizar los siguientes ID de área:

Artículo Descripción
ROW_1_LEFT | ROW_1_RIGHT El Area ID se aplica a ambos asientos delanteros.
ROW_2_LEFT Aplica únicamente para el asiento trasero izquierdo.
ROW_2_RIGHT Aplica únicamente para el asiento trasero derecho.

Para obtener más información, consulte HVAC .