每项受支持的属性都由通过 VehiclePropConfig
结构定义的属性配置指定,并包含以下字段。
字段 | 说明 |
---|---|
prop |
属性 ID。此属性必须是支持的系统属性中定义的系统属性之一,或者是供应商属性。属性 ID 是使用以下字段的按位或(从右到左)构造的:
例如: |
access |
属性的访问模式。必须是 READ 、WRITE 或 READ_WRITE 中的一个。这必须等同于支持的系统属性中定义的访问模式。 |
changeMode |
|
configArray |
一个可选数组,用于包含特定于属性的配置。可以留空。 |
configString |
一个可选字符串,用于包含特定于属性的配置。可以留空。 |
minSampleRate 和maxSampleRate
连续属性支持的最小和最大采样率。如果属性不是连续的,则不使用。 |
属性类型
在 VehiclePropertyType.aidl
中定义为枚举。下表列出了支持的属性类型。
属性类型 | 值 | 说明 |
---|---|---|
字符串 | 0x00100000 | String 属性,使用“车辆属性值”中的 stringValue 字段。 |
BOOLEAN | 0x00200000 | Boolean 属性,使用车辆属性值中 int32Values 字段里的第一个元素。0 表示 false ,None 0 表示 true 。 |
INT32 | 0x00400000 | Integer 属性,使用车辆属性值中 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 字段里的元素。 |
混合 | 0x00e00000 | Mixed 类型属性。标量类型或矢量类型的任意组合。必须在属性配置的 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。