Configurações de propriedade

Cada propriedade suportada é especificada por uma configuração de propriedade definida por meio da estrutura VehiclePropConfig e possui os campos a seguir.

Campo Descrição
prop

O ID da propriedade. Esta deve ser uma das propriedades do sistema definidas nas Propriedades do Sistema Suportado ou uma propriedade do fornecedor. O ID da propriedade é construído usando bit ou dos seguintes campos (da direita para a esquerda):

  • (0x0000 0000 ) 16 bits: um ID exclusivo do intervalo 0x0100 - 0xffff.
  • (0x00 00 0000) 8 bits: Tipos de propriedade que definem o tipo da propriedade.
  • (0x0 0 000000) 4 bits: Tipos de área .
  • (0x 0 0000000) 4 bits: VehiclePropertyGroup > Este é SYSTEM (0x10000000) ou VENDOR (0x20000000). Consulte Propriedades do fornecedor para propriedades que você pode personalizar.

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

access O modo de acesso da propriedade. Deve ser READ , WRITE ou READ_WRITE . Deve ser igual ao modo de acesso definido em Propriedades do Sistema Suportado .
changeMode
  • Altere o modo da propriedade. Deve 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 deve reportar quando o valor for alterado. CONTINUOUS significa que o valor da propriedade muda continuamente e o VHAL deve reportar com base na taxa de amostragem da assinatura.
  • O modo de alteração deve ser igual ao modo de alteração definido em Propriedades do Sistema Suportado .
configArray Uma matriz opcional para conter configuração específica da propriedade. Pode estar vazio.
configString Uma string opcional para conter a configuração específica da propriedade. Pode estar vazio.
minSampleRate e maxSampleRate

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

Tipos de propriedade

Definido como enums em VehiclePropertyType.aidl . Os tipos de propriedade suportados estão listados na tabela a seguir.

Tipo de Propriedade Valor Descrição
CORDA 0x00100000 Propriedade String, usa o campo stringValue em Valor da propriedade do veículo.
BOLEANO 0x00200000 Propriedade booleana, usa o primeiro elemento no campo int32Values ​​na propriedade Vehicle value . 0 significa false , None 0 significa true .
INT32 0x00400000 Propriedade Integer, usa o primeiro elemento no campo int32Values ​​na propriedade Vehicle value .
INT32_VEC 0x00410000 Propriedade Integer[], usa os elementos do campo int32Values ​​em Vehicle property value .
INT64 0x00500000 Propriedade Long, usa o primeiro elemento no campo int64Values ​​em Vehicle property value .
INT64_VEC 0x00510000 Propriedade Long[] , usa os elementos do campo int64Values ​​na propriedade Vehicle value .
FLUTUADOR 0x00600000 Propriedade Float, usa o primeiro elemento no campo floatValues ​​no valor da propriedade Vehicle .
FLOAT_VEC 0x00610000 Propriedade Float[], usa os elementos do campo floatValues ​​na propriedade Vehicle value .
BYTES 0x00700000 propriedade byte[], usa os elementos no campo byteValues ​​na propriedade Vehicle value .
MISTURADO 0x00e00000 Propriedade de tipo misto. Qualquer combinação de tipos escalares ou vetoriais. O formato exato deve ser fornecido na matriz de configuração na configuração da propriedade.

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

  • configArray[0], 1 indica que a propriedade tem um valor 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 Float
  • configArray[7], o número indica o tamanho de Float[] na propriedade
  • configArray[8], o número indica o tamanho do byte[] na propriedade.

Por exemplo, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} indica que a propriedade tem um valor String, um valor Booleano, um valor Integer e uma matriz com três inteiros.

Configuração de ID de área

Cada configuração de propriedade também pode conter uma lista de configurações de ID de área. Esta lista é opcional para propriedades globais e obrigatória para propriedades zoneadas (propriedades com diversas áreas suportadas). Cada configuração de ID de área possui 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. Ignorado se ambos forem 0.
  • Para propriedade global, se o valor mínimo e máximo precisar ser definido, uma configuração de área com ID de área 0 deverá ser usada.
minInt64Value e maxInt64Value
  • Valor mínimo e máximo opcional para propriedades do tipo INT64. Ignorado para todos os outros tipos. Ignorado se ambos forem 0.
  • Para propriedade global, se o valor mínimo e máximo precisar ser definido, uma configuração de área com ID de área 0 deverá ser usada.
minFloatValue e maxFloatValue
  • Valor mínimo e máximo opcional para propriedades do tipo Float. Ignorado para todos os outros tipos. Ignorado se ambos forem 0,0.
  • Para propriedade global, se o valor mínimo e máximo precisar ser definido, uma configuração de área com ID de área 0 deverá ser usada.
( Novo no Android 14 )
supportedEnumValues
  • Lista opcional de valores suportados se a propriedade for definida como uma propriedade do tipo enum. Se não for especificado (vazio) ou antes do Android 14, presume-se que todos os valores enum são suportados.
  • Para propriedade global, se valores enum suportados precisarem ser definidos, uma configuração de área com o ID de área 0 deverá ser usada.

Tipos de área

Definido como enums em VehicleArea.aidl . Os tipos de área suportados estão listados abaixo.

Tipo de área Valor Descrição
GLOBAL 0x01000000 Esta propriedade é uma propriedade global e não possui múltiplas áreas.
JANELA 0x03000000 Área baseada em janelas, usa enum VehicleAreaWindow .
ESPELHO 0x04000000 Área baseada em espelhos, usa enum VehicleAreaMirror .
ASSENTO 0x05000000 Área baseada em assentos, usa enum VehicleAreaSeat .
PORTA 0x06000000 Área baseada em portas, usa enum VehicleAreaDoor .
RODA 0x07000000 Área baseada em rodas, usa enum VehicleAreaWheel .

Cada propriedade zoneada deve usar um tipo de área predefinido. Cada tipo de área possui um conjunto de sinalizadores de bits definidos em uma enumeração para o tipo de área. Por exemplo, a área SEAT define enums 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 zoneadas são endereçadas por meio de IDs de área. Cada propriedade zoneada pode suportar um ou mais IDs de área. Um ID de área consiste em um ou mais sinalizadores de seu respectivo enum. Por exemplo, uma propriedade que usa VehicleAreaSeat pode usar os seguintes IDs de área:

Item Descrição
ROW_1_LEFT | ROW_1_RIGHT O Area ID aplica-se a ambos os bancos dianteiros.
ROW_2_LEFT Aplica-se apenas ao banco traseiro esquerdo.
ROW_2_RIGHT Aplica-se apenas ao banco traseiro direito.

Para saber mais, consulte HVAC .