A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Parámetros de configuración de la propiedad
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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 ID de la propiedad. Debe ser una de las propiedades del sistema definidas en VehicleProperty.aidl o una propiedad del proveedor. El ID de la propiedad se construye con el operador or de bits de los siguientes campos (de derecha a izquierda):
- (0x00000000) 16 bits: Es un ID único del rango 0x0100 a 0xffff.
- (0x00000000) 8 bits: Tipos de propiedades, que define el tipo de la propiedad.
- (0x00000000) 4 bits: Tipos de área.
- (0x00000000) 4 bits:
VehiclePropertyGroup Es SYSTEM (0x10000000) o VENDOR (0x20000000). Consulta Propiedades del proveedor para ver las propiedades que puedes personalizar.
Por ejemplo,
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)
|
access |
- Es el modo de acceso de la propiedad. Debe ser
READ , WRITE o READ_WRITE .
- Para las propiedades del sistema, este debe ser uno de los modos de acceso definidos que se documentan en
VehicleProperty.aidl .
- Para las propiedades que tienen acceso por área, este es el subconjunto máximo del acceso por área. Por ejemplo, si las propiedades tienen dos áreas cuyo acceso es
READ y READ_WRITE , este se debe establecer en READ .
|
changeMode |
- Cambia el modo de la propiedad. Debe ser
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 el VHAL debe informar cuando cambia el valor. CONTINUOUS significa que el valor de la propiedad cambia de forma continua y que VHAL debe informar en función de la tasa de muestreo de la suscripción.
- En el caso de las propiedades del sistema, este debe ser igual al modo de cambio documentado en
VehicleProperty.aidl .
|
configArray |
Es un array opcional para contener la configuración específica de la propiedad. Puede estar vacío. Para ciertas propiedades del sistema, por ejemplo, GEAR_SELECTION , el array de configuración tiene un significado especial y se debe especificar.
|
configString |
Es una cadena opcional que contiene la configuración específica de la propiedad. Puede estar vacío. |
minSampleRate y maxSampleRate |
La tasa de muestreo mínima y máxima admitida para la propiedad continua (en hercios). No se usa si la propiedad
no es continua. La implementación de VHAL debe poder lograr minSampleRate y maxSampleRate . No se deben admitir todas las tasas de muestreo entre el mínimo y el máximo. |
Tipos de propiedad
Se definen como enums en VehiclePropertyType.aidl
. Los tipos de propiedades admitidos se enumeran en la siguiente tabla.
Tipo de propiedad |
Valor |
Descripción |
---|
STRING |
0x00100000 |
Es una propiedad de cadena que usa el campo stringValue en Valor de la propiedad del vehículo. |
BOOLEAN |
0x00200000 |
La propiedad Boolean usa el primer elemento del campo int32Values en Valor de la propiedad del vehículo.
0 significa false , None 0 significa true . |
INT32 |
0x00400000 |
La propiedad Integer usa el primer elemento del campo int32Values en Valor de la propiedad del vehículo. |
INT32_VEC |
0x00410000 |
La propiedad Integer[] usa los elementos del campo int32Values en Valor de la propiedad del vehículo. |
INT64 |
0x00500000 |
Es una propiedad larga que usa el primer elemento en el campo int64Values en Valor de la propiedad del vehículo. |
INT64_VEC |
0x00510000 |
La propiedad Long[] usa los elementos del campo int64Values en Valor de la propiedad del vehículo. |
FLOAT |
0x00600000 |
La propiedad Float usa el primer elemento del campo floatValues en Valor de la propiedad del vehículo. |
FLOAT_VEC |
0x00610000 |
La propiedad Float[] usa los elementos del campo floatValues en Valor de la propiedad del vehículo. |
BYTES |
0x00700000 |
La propiedad byte[] usa los elementos del campo byteValues en Valor de la propiedad del vehículo. |
MIXED |
0x00e00000 |
Es una propiedad de tipo mixto. Cualquier combinación de tipos escalares o vectoriales El formato exacto se debe proporcionar en el array de configuración en la configuración de la propiedad.
En el caso de las propiedades de tipo MIXED del proveedor, configArray debe tener el formato de esta estructura:
configArray[0] , 1 indica que la propiedad tiene un valor String .
configArray[1] , 1 indica que la propiedad tiene un valor Boolean .
configArray[2] , 1 indica que la propiedad tiene un valor Integer .
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 Float .
configArray[7] , el número indica el tamaño de Float[] en la propiedad
configArray[8] , el número indica el tamaño de byte[] en la propiedad.
Por ejemplo, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} indica que la
propiedad tiene un valor String , un valor Boolean , un valor Integer y un array con
tres números enteros.
|
Configuración del 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 las propiedades globales y obligatoria para las propiedades con zonas (propiedades con varias áreas compatibles). Cada configuración de ID de área tiene los siguientes campos.
Campo |
Descripción |
---|
areaId |
El ID de esta área. Consulta IDs de área. |
minInt32Value y maxInt32Value |
- Valor mínimo y máximo opcionales para las propiedades de tipo INT32 en el momento del inicio. Debe ser 0 para todos los demás tipos. Se ignora si ambos son 0.
- En el caso de la propiedad global, si se deben definir los valores mínimo y máximo, se debe usar una configuración de área con el ID de área 0.
- Este valor es estático y no cambiará, incluso si el valor mínimo o máximo cambia durante el tiempo de ejecución. Implementa
IVehicle#getMinMaxSupportedValue para el valor mínimo o máximo dinámico.
|
minInt64Value y maxInt64Value |
- Valor mínimo y máximo opcionales para las propiedades de tipo INT64 en el momento del inicio. Debe ser 0 para todos los demás tipos. Se ignora si ambos son 0.
- En el caso de la propiedad global, si se deben definir los valores mínimo y máximo, se debe usar una configuración de área con el ID de área 0.
- Este valor es estático y no cambiará, incluso si el valor mínimo o máximo cambia durante el tiempo de ejecución. Implementa
IVehicle#getMinMaxSupportedValue para el valor mínimo o máximo dinámico.
|
minFloatValue y maxFloatValue |
- Valor mínimo y máximo opcional para las propiedades de tipo de número de punto flotante en el momento del inicio. Debe ser 0 para todos los demás tipos. Se ignora si ambos son 0.0.
- En el caso de la propiedad global, si se deben definir los valores mínimo y máximo, se debe usar una configuración de área con el ID de área 0.
- Este valor es estático y no cambiará, incluso si el valor mínimo o máximo cambia durante el tiempo de ejecución. Implementa
IVehicle#getMinMaxSupportedValue para el valor mínimo o máximo dinámico.
|
(Novedad de Android 14)
supportedEnumValues |
- Es una lista opcional de valores admitidos en el momento del inicio si la propiedad se define como una propiedad de tipo enumeración. Si no se especifica (está vacío) o es anterior a Android 14, se supone que todos los valores de enumeración son compatibles.
- En el caso de la propiedad global, si se deben definir los valores de enumeración admitidos, se debe usar una configuración de área con el ID de área 0.
- Este valor es estático y no cambiará, incluso si los valores admitidos cambian durante el tiempo de ejecución. Implementa
IVehicle#getSupportedValuesLists para los valores dinámicos admitidos.
- Esto solo se aplica a las propiedades de tipo enum. Para otros tipos, este campo debe estar vacío.
Para exponer los valores admitidos para otros tipos que no sean enum, usa
IVehicle#getSupportedValuesLists .
|
(Novedad de Android 15)
supportVariableUpdateRate |
- Indica si se admite la tasa de actualización variable. Esto solo se aplica a las propiedades continuas.
- Si es
true , la app puede habilitar la tasa de actualización variable para que una suscripción reciba eventos de actualización de propiedad solo cuando cambie el valor de la propiedad (lo que trata las propiedades continuas como propiedades de cambio).
- Si todos los suscriptores de una propiedad habilitan la tasa de actualización variable, la solicitud de suscripción a VHAL habilita la tasa de actualización variable para la propiedad, y VHAL debe enviar eventos de actualización de la propiedad solo cuando cambia el valor de la propiedad.
- Si algún suscriptor solicita una tasa de actualización fija, la solicitud de suscripción a VHAL inhabilita la tasa de actualización variable para la propiedad y AAOS filtra los eventos duplicados para los clientes que solicitan una tasa de actualización variable.
- SE RECOMIENDA ALTAMENTE admitir una tasa de actualización variable para todas las propiedades continuas que no sean de latidos para obtener un mejor rendimiento, a menos que los datos de la propiedad sean grandes (por ejemplo, un array de bytes de 1,000 de tamaño) y puedan ocupar una gran cantidad de memoria para la caché.
|
(Novedad de Android 16)
hasSupportedValueInfo |
- Si no es
null , muestra si esta propiedad especifica valores mínimos o máximos compatibles, o una lista de valores compatibles.
- Este campo controla si las APIs de valores admitidos dinámicos:
getMinMaxSupportedValue , getSupportedValuesLists , subscribeSupportedValueChange , unsubscribeSupportedValueChange son compatibles con este ID de propiedad y este ID de área.
- Si no es
null , VHAL debe implementar estas APIs para este ID de propiedad y este ID de área.
- Si se usa
null o Android 15 o versiones anteriores, no se admiten los valores dinámicos compatibles para este ID de propiedad y el ID de área. El cliente debe usar la información de valores compatibles estáticos que se proporciona en la configuración de la propiedad del vehículo.
|
Tipos de áreas
Se definen como enums en VehicleArea.aidl
. A continuación, se muestran los tipos de áreas admitidos.
Tipo de área |
Valor |
Descripción |
---|
GLOBAL |
0x01000000 |
Esta propiedad es global y no tiene varias áreas. |
VENTANA |
0x03000000 |
Área basada en ventanas, usa la enumeración VehicleAreaWindow . |
MIRROR |
0x04000000 |
Área basada en espejos, usa la enumeración VehicleAreaMirror . |
SEAT |
0x05000000 |
Área basada en asientos, usa la enumeración VehicleAreaSeat . |
PUERTA |
0x06000000 |
Área basada en puertas, usa la enumeración VehicleAreaDoor . |
RUEDA |
0x07000000 |
Área basada en ruedas, usa enum VehicleAreaWheel . |
Cada propiedad con zonas debe usar un tipo de área predefinido. Cada tipo de área tiene un conjunto de marcas de bits definidas 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
...
IDs de área
Las propiedades con zonas se abordan a través de los IDs de área. Cada propiedad con zonas puede admitir uno o más ID de área. Un ID de área consta de una o más marcas de su enum respectiva. Por ejemplo, una propiedad que usa VehicleAreaSeat
podría usar los siguientes IDs de área:
Artículo |
Descripción |
---|
ROW_1_LEFT | ROW_1_RIGHT |
El ID de área se aplica a ambos asientos delanteros. |
ROW_2_LEFT |
Solo se aplica al asiento trasero izquierdo. |
ROW_2_RIGHT |
Solo se aplica al asiento trasero derecho. |
Para obtener más información, consulta HVAC.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-06-12 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-06-12 (UTC)"],[],[]]