Configurações da propriedade

Cada propriedade aceita é especificada por uma configuração de propriedade definida pela estrutura VehiclePropConfig e tem os campos a seguir.

Campo Descrição
prop

O ID da propriedade. Ela precisa ser uma das propriedades do sistema definidas em Propriedades do sistema com suporte ou uma propriedade do fornecedor. O ID da propriedade é criado usando a operação OR de bits dos seguintes campos (da direita para a esquerda):

  • (0x00000000) 16 bits: um ID exclusivo do intervalo 0x0100 a 0xffff.
  • (0x00000000) 8 bits: tipos de propriedade, que define o tipo da propriedade.
  • (0x00000000) 4 bits: tipos de área.
  • (0x00000000) 4 bits: VehiclePropertyGroup> É SYSTEM (0x10000000) ou VENDOR (0x20000000). Consulte Propriedades do fornecedor para saber quais propriedades podem ser personalizadas.

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

access O modo de acesso da propriedade. Precisa ser READ, WRITE ou READ_WRITE. Ele precisa ser igual ao modo de acesso definido em Propriedades do sistema compatíveis.
changeMode
  • Mude o modo da propriedade. Precisa ser STATIC, ON_CHANGE ou CONTINUOUS. STATIC significa que o valor da propriedade nunca muda após a inicialização do sistema. ON_CHANGE significa que a VHAL precisa informar quando o valor mudar. CONTINUOUS significa que o valor da propriedade muda continuamente, e o VHAL precisa informar com base na taxa de amostragem de assinatura.
  • O modo de mudança precisa ser igual ao definido em Propriedades do sistema com suporte.
configArray Uma matriz opcional para conter a configuração específica da propriedade. Pode ficar em branco.
configString Uma string opcional para conter a configuração específica da propriedade. Pode ficar vazio.
minSampleRate e maxSampleRate

A taxa de amostra mínima e máxima aceita para a propriedade contínua. Não é usado se a propriedade não for contínua.

Tipos de propriedade

Definidas como tipos enumerados em VehiclePropertyType.aidl. Os tipos de propriedade compatíveis estão listados na tabela a seguir.

Tipo de propriedade Valor Descrição
STRING 0x00100000 Propriedade de string, usa o campo stringValue em "Valor da propriedade do veículo".
BOOLEANO 0x00200000 Propriedade booleana, usa o primeiro elemento no campo int32Values em Valor da propriedade do veículo. 0 significa false, None 0 significa true.
INT32 0x00400000 Propriedade de número inteiro, usa o primeiro elemento no campo int32Values em Valor da propriedade do veículo.
INT32_VEC 0x00410000 A propriedade Integer[], usa os elementos no campo int32Values em Valor da propriedade do veículo.
INT64 0x00500000 Propriedade longa, usa o primeiro elemento no campo int64Values em Valor da propriedade do veículo.
INT64_VEC 0x00510000 A propriedade Long[] usa os elementos no campo int64Values em Valor da propriedade do veículo.
FLOAT 0x00600000 A propriedade flutuante usa o primeiro elemento no campo floatValues em Valor da propriedade do veículo.
FLOAT_VEC 0x00610000 Float[], usa os elementos no campo floatValues no valor de propriedade do veículo.
BYTES 0x00700000 A propriedade byte[], usa os elementos no campo byteValues em Valor da propriedade do veículo.
MISTO 0x00e00000 Propriedade de tipo misto. Qualquer combinação de tipos escalar ou vetor. O formato exato precisa ser fornecido no array de configuração na configuração da propriedade.

Para propriedades do tipo MIXED do fornecedor, o configArray precisa ser formatado nesta estrutura:

  • configArray[0], 1 indica que a propriedade tem um valor de string
  • configArray[1], 1 indica que a propriedade tem um valor booleano
  • configArray[2], 1 indica que a propriedade tem um valor inteiro
  • configArray[3], o número indica o tamanho de Integer[] na propriedade
  • configArray[4], 1 indica que a propriedade tem um valor Long
  • configArray[5], o número indica o tamanho de Long[] na propriedade
  • configArray[6], 1 indica que a propriedade tem um valor de ponto flutuante
  • configArray[7], o número indica o tamanho de Float[] na propriedade
  • configArray[8], o número indica o tamanho de byte[] na propriedade.

Por exemplo, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} indica que a propriedade tem um valor de string, um valor booleano, um valor inteiro e uma matriz com três números inteiros.

Configuração do ID da área

Cada configuração de propriedade também pode conter uma lista de configurações de ID de área. Essa lista é opcional para propriedades globais e obrigatória para propriedades com zonas (propriedades com várias áreas com suporte). Cada configuração de ID de área tem os seguintes campos.

Campo Descrição
areaId O ID desta área. Consulte IDs de área.
minInt32Value e maxInt32Value
  • Valor mínimo e máximo opcional para propriedades do tipo INT32. Ignorado para todos os outros tipos. Será ignorado se ambos forem 0.
  • Em propriedades globais, se for necessário definir os valores mínimo e máximo, use uma configuração de área com o ID 0.
minInt64Value e maxInt64Value
  • Valor mínimo e máximo opcional para propriedades do tipo INT64. Ignorado para todos os outros tipos. Será ignorado se ambos forem 0.
  • Para a propriedade global, se os valores mínimo e máximo precisam ser definidos, uma configuração de área com o ID de área 0 precisa ser usada.
minFloatValue e maxFloatValue
  • Valor mínimo e máximo opcional para propriedades do tipo "float". Ignorado para todos os outros tipos. Será ignorado se ambos forem 0,0.
  • Em propriedades globais, se for necessário definir os valores mínimo e máximo, use uma configuração de área com o ID 0.
(Novidades do Android 14)
supportedEnumValues
  • Lista opcional de valores aceitos se a propriedade for definida como uma propriedade de tipo enum. Se não for especificado (vazio) ou antes do Android 14, será presumido que todos os valores de tipo enumerado têm suporte.
  • Para a propriedade global, se for necessário definir valores de tipo enumerado compatíveis, será necessário usar uma configuração de área com o ID de área 0.

Tipos de área

Definidos como tipos enumerados em VehicleArea.aidl. Confira abaixo os tipos de área aceitos.

Tipo de área Valor Descrição
GLOBAL 0x01000000 Essa propriedade é global e não tem várias áreas.
JANELA 0x03000000 Área baseada em janelas, usa a enumeração VehicleAreaWindow.
MIRROR 0x04000000 Área baseada em espelhos, usa o tipo enumerado VehicleAreaMirror.
SEAT 0x05000000 Área com base nos assentos, usa o tipo enumerado VehicleAreaSeat.
PORTA 0x06000000 Área com base em portas, usa o tipo enumerado VehicleAreaDoor.
RODA 0x07000000 Área baseada em rodas, usa a enumeração VehicleAreaWheel.

Cada propriedade com zona precisa usar um tipo de área predefinido. Cada tipo de área tem um conjunto de sinalizações de bit definidas em um tipo enumerado para o tipo de área. Por exemplo, a área SEAT define enumerações 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

As propriedades com zonas são tratadas usando IDs de área. Cada propriedade zonada pode oferecer suporte a um ou mais IDs de área. Um ID de área consiste em uma ou mais flags do respectivo tipo enumerado. Por exemplo, uma propriedade que usa VehicleAreaSeat pode usar os seguintes IDs de área:

Nome Descrição
ROW_1_LEFT | ROW_1_RIGHT O ID de área é válido para os dois assentos da frente.
ROW_2_LEFT Válido apenas para o assento esquerdo traseiro.
ROW_2_RIGHT Aplicável apenas ao banco traseiro direito.

Para saber mais, consulte AVAC (aquecimento, ventilação e ar-condicionado).