プロパティの設定

サポートされている各プロパティは、VehiclePropConfig 構造によって定義されるプロパティの構成で指定され、各プロパティには以下のフィールドがあります。

フィールド 説明
prop

プロパティ ID。この ID はサポートされているシステム プロパティまたはベンダー プロパティからの定義済みシステム プロパティのいずれかである必要があります。プロパティ ID は、以下のフィールドのビット OR を使用して構築されます(右から左)。

  • (0x00000000) 16 ビット: 0x0100 - 0xffff の範囲の一意の ID。
  • (0x00000000) 8 ビット: プロパティのタイプを定義するプロパティ タイプ
  • (0x00000000) 4 ビット: エリアタイプ
  • (0x00000000) 4 ビット: VehiclePropertyGroup> SYSTEM (0x10000000) または VENDOR (0x20000000) のいずれか。カスタマイズ可能なプロパティについては、ベンダー プロパティをご覧ください。

たとえば、
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000) です。

access プロパティのアクセスモード。READWRITEREAD_WRITE のいずれかにする必要があります。サポートされているシステム プロパティで定義されているアクセスモードと同じである必要があります。
changeMode
  • プロパティの変更モード。STATICON_CHANGECONTINUOUS のいずれかにする必要があります。STATIC は、システム起動後に変更されることのないプロパティ値を意味します。ON_CHANGE は、値の変更時に VHAL がレポートする必要があることを意味します。CONTINUOUS は、プロパティ値が継続的に変更され、VHAL はサブスクリプションのサンプルレートに基づいてレポートしなければならないことを意味します。
  • 変更モードは、サポートされているシステム プロパティで定義される変更モードと同じである必要があります。
configArray プロパティ固有の構成を含む任意の配列。これは空でもかまいません。
configString プロパティ固有の構成を含む任意の文字列。これは空でもかまいません。
minSampleRatemaxSampleRate

継続プロパティのサポートされている最小と最大のサンプルレート。プロパティが継続的でない場合は使用されません。

プロパティのタイプ

VehiclePropertyType.aidl で列挙型として定義されます。サポートされているプロパティのタイプを以下の表に示します。

プロパティのタイプ 説明
STRING 0x00100000 文字列プロパティ。車両プロパティ値で stringValue フィールドを使用します。
BOOLEAN 0x00200000 ブール値プロパティ。int32Values フィールドの最初の要素を車両プロパティ値で使用します。0falseを、None 0true を意味します。
INT32 0x00400000 整数プロパティ。int32Values フィールドの最初の要素を車両プロパティ値で使用します。
INT32_VEC 0x00410000 Integer[] プロパティ。int32Values フィールドの要素を車両プロパティ値で使用します。
INT64 0x00500000 Long 型プロパティ。int64Values フィールドの最初の要素を車両プロパティ値で使用します。
INT64_VEC 0x00510000 Long[] プロパティ。int64Values フィールドの要素を車両プロパティ値で使用します。
FLOAT 0x00600000 Float プロパティ。floatValues フィールドの最初の要素を車両プロパティ値で使用します。
FLOAT_VEC 0x00610000 Float[] プロパティ。floatValues フィールドの要素を車両プロパティ値で使用します。
BYTES 0x00700000 byte[] プロパティ。byteValues フィールドの要素を車両プロパティ値で使用します。
MIXED 0x00e00000 混合型のプロパティ。スカラー型またはベクター型の任意の組み合わせ。プロパティの構成で config 配列に正確な形式を指定する必要があります。

ベンダー混合型のプロパティの場合、configArray はこの構造でフォーマットする必要があります。

  • configArray[0]。1 はプロパティに文字列値があることを示します
  • configArray[1]。1 はプロパティに Boolean 値があることを示します
  • configArray[2]。1 はプロパティに整数値があることを示します
  • configArray[3]。数はプロパティの Integer[] の大きさを示します
  • configArray[4]。1 はプロパティに Long 値があることを示します
  • configArray[5]。数はプロパティの Long[] の大きさを示します
  • configArray[6]。1 はプロパティに浮動小数点値があることを示します
  • configArray[7]。数はプロパティの Float[] の大きさを示します
  • configArray[8]。数はプロパティの byte[] の大きさを示します。

たとえば、configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} はプロパティに文字列値、Boolean 値、整数値、3 つの整数を使用した配列があることを示します。

エリア ID 構成

各プロパティ構成には、エリア ID 構成のリストが含まれる場合もあります。このリストは、グローバル プロパティについては任意、ゾーン プロパティには必須です(複数のサポート対象エリアがあるプロパティ)。各エリア ID 構成には以下のフィールドがあります。

フィールド 説明
areaId このエリアの ID。エリア ID をご覧ください。
minInt32ValuemaxInt32Value
  • INT32 型プロパティの任意の最小値と最大値。その他のタイプはすべて無視されます。どちらも 0 の場合は無視されます。
  • グローバル プロパティでは、最小値と最大値を定義する必要がある場合は、エリア ID が 0 の 1 つのエリア構成を使用する必要があります。
minInt64ValuemaxInt64Value
  • INT64 型プロパティの任意の最小値と最大値。その他のすべてのタイプが無視されます。どちらも 0 の場合は無視されます。
  • グローバル プロパティでは、最小値と最大値を定義する必要がある場合は、エリア ID が 0 の 1 つのエリア構成を使用する必要があります。
minFloatValuemaxFloatValue
  • Float 型プロパティの任意の最小値と最大値。その他のタイプはすべて無視されます。どちらも 0.0 の場合は無視されます。
  • グローバル プロパティでは、最小値と最大値を定義する必要がある場合は、エリア ID が 0 の 1 つのエリア構成を使用する必要があります。
(Android 14 の新機能
supportedEnumValues
  • プロパティが列挙型プロパティとして定義されている場合にサポートされる値の任意のリスト。指定されていない(空)または Android 14 より前のバージョンの場合、すべての列挙値がサポートされていると想定されます。
  • グローバル プロパティでは、サポートされている列挙値を定義する必要がある場合は、エリア ID が 0 の 1 つのエリア構成を使用する必要があります。

エリアタイプ

VehicleArea.aidl で列挙型として定義されます。サポートされているエリアタイプを以下に示します。

エリアタイプ 説明
GLOBAL 0x01000000 このプロパティはグローバル プロパティで、複数のエリアはありません。
WINDOW 0x03000000 窓に基づくエリア。VehicleAreaWindow 列挙値を使用します。
MIRROR 0x04000000 ミラーに基づくエリア。VehicleAreaMirror 列挙値を使用します。
SEAT 0x05000000 シートに基づくエリア。VehicleAreaSeat 列挙値を使用します。
DOOR 0x06000000 ドアに基づくエリア。VehicleAreaDoor 列挙値を使用します。
WHEEL 0x07000000 車輪に基づくエリア。VehicleAreaWheel 列挙値を使用します。

各ゾーン プロパティでは、事前定義したエリアタイプを使用する必要があります。各エリアタイプには、エリアタイプの列挙値で定義されたビットフラグのセットがあります。たとえば、SEAT エリアでは、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

ゾーン プロパティはエリア ID によって区別されます。ゾーン プロパティはそれぞれ、複数のエリア ID をサポートできます。エリア ID は、それぞれの列挙値からの 1 つ以上のフラグで構成されます。たとえば、VehicleAreaSeat を使用するプロパティでは次のようなエリア ID を使用します。

アイテム 説明
ROW_1_LEFT | ROW_1_RIGHT このエリア ID は、左右の前部座席に適用されます。
ROW_2_LEFT 後部の左シートにのみ適用されます。
ROW_2_RIGHT 後部の右シートにのみ適用されます。

詳しくは、HVAC をご覧ください。