Configurações da propriedade

Cada propriedade compatível é especificada por uma configuração de propriedade definida pela estrutura VehiclePropConfig e tem os seguintes campos.

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 o VHAL precisa informar quando o valor muda. 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 vazio.
configString Uma string opcional para conter a configuração específica da propriedade. Pode ficar vazio.
minSampleRate e maxSampleRate

A taxa de amostragem 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

Definidos como tipos enumerados em VehiclePropertyType.aidl. Os tipos de propriedade aceitos 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 A propriedade Float[] usa os elementos no campo floatValues em Valor da 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 zonais (propriedades com várias áreas com suporte). Cada configuração de ID de área tem os seguintes campos.

Campo Descrição
areaId O ID dessa á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.
  • Para a propriedade global, se os valores mínimo e máximo precisarem ser definidos, 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 precisarem ser definidos, use uma configuração de área com o ID 0.
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.
  • Para a propriedade global, se os valores mínimo e máximo precisarem ser definidos, 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 com suporte, use 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 flags de bit definido em um tipo enumerado para o tipo de área. Por exemplo, a área SEAT define os tipos enumerados 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 abordadas 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 se aplica aos dois assentos dianteiros.
ROW_2_LEFT Aplicável apenas ao banco traseiro esquerdo.
ROW_2_RIGHT Aplicável apenas ao banco traseiro direito.

Para saber mais, consulte HVAC.