每个受支持的属性均由通过 VehiclePropConfig
结构定义的属性配置指定,并且具有以下字段。
字段 | 说明 |
---|---|
prop |
属性 ID。它必须是支持的系统属性或供应商属性中定义的系统属性之一。属性 ID 是使用以下字段的按位或运算构造的(从右到左)
例如, |
access |
属性的访问模式。必须是 READ 、WRITE 或 READ_WRITE 之一。这必须等于支持的系统属性中定义的访问模式。 |
changeMode |
|
configArray |
一个可选数组,用于包含属性特定的配置。可以为空。 |
configString |
一个可选字符串,用于包含属性特定的配置。可以为空。 |
minSampleRate 和 maxSampleRate 连续属性支持的最小和最大采样率。如果属性不是连续的,则不使用。 |
属性类型
在 VehiclePropertyType.aidl
中定义为枚举。下表列出了支持的属性类型。
属性类型 | 值 | 说明 |
---|---|---|
STRING | 0x00100000 | 字符串属性,使用车辆属性值中的 stringValue 字段。 |
BOOLEAN | 0x00200000 | 布尔值属性,使用车辆属性值中 int32Values 字段中的第一个元素。0 表示 false ,非 0 表示 true 。 |
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 数组中提供。 对于供应商 MIXED 类型属性,configArray 需要按以下结构格式化
例如, |
区域 ID 配置
每个属性配置还可以包含区域 ID 配置列表。对于全局属性,此列表是可选的,对于分区属性(具有多个受支持区域的属性),此列表是必需的。每个区域 ID 配置都具有以下字段。
字段 | 说明 |
---|---|
areaId |
此区域的 ID。请参阅区域 ID。 |
minInt32Value 和 maxInt32Value |
|
minInt64Value 和 maxInt64Value |
|
minFloatValue 和 maxFloatValue |
|
(Android 14 中的新增功能)supportedEnumValues |
|
区域类型
在 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 由其各自枚举中的一个或多个标志组成。例如,使用 VehicleAreaSeat
的属性可能会使用以下区域 ID
项目 | 说明 |
---|---|
ROW_1_LEFT | ROW_1_RIGHT |
区域 ID 适用于前排座椅。 |
ROW_2_LEFT |
仅适用于后排左侧座椅。 |
ROW_2_RIGHT |
仅适用于后排右侧座椅。 |
要了解详情,请参阅HVAC。