Cấu hình thuộc tính

Mỗi thuộc tính được hỗ trợ được chỉ định bởi cấu hình thuộc tính được xác định thông qua cấu trúc VehiclePropConfig và có các trường sau.

Cánh đồng Sự miêu tả
prop

ID thuộc tính. Đây phải là một trong các thuộc tính hệ thống được xác định từ Thuộc tính hệ thống được hỗ trợ hoặc thuộc tính của nhà cung cấp. ID thuộc tính được xây dựng bằng cách sử dụng bit-hoặc của các trường sau (từ phải sang trái):

  • (0x0000 0000 ) 16 bit: ID duy nhất trong phạm vi 0x0100 - 0xffff.
  • (0x00 00 0000) 8 bit: Loại thuộc tính xác định loại cho thuộc tính.
  • (0x0 0 000000) 4 bit: Loại vùng .
  • (0x 0 0000000) 4 bit: VehiclePropertyGroup > Đây là SYSTEM (0x10000000) hoặc VENDOR (0x20000000). Xem Thuộc tính của nhà cung cấp để biết các thuộc tính bạn có thể tùy chỉnh.

Ví dụ,
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)

access Chế độ truy cập cho thuộc tính. Phải là một trong READ , WRITE hoặc READ_WRITE . Điều này phải bằng chế độ truy cập được xác định trong Thuộc tính hệ thống được hỗ trợ .
changeMode
  • Thay đổi chế độ cho thuộc tính. Phải là một trong STATIC , ON_CHANGE hoặc CONTINUOUS . STATIC có nghĩa là giá trị thuộc tính không bao giờ thay đổi sau khi khởi động hệ thống. ON_CHANGE nghĩa là VHAL phải báo cáo khi giá trị thay đổi. CONTINUOUS có nghĩa là giá trị thuộc tính thay đổi liên tục và VHAL phải báo cáo dựa trên tỷ lệ mẫu đăng ký.
  • Chế độ thay đổi phải bằng chế độ thay đổi được xác định trong Thuộc tính hệ thống được hỗ trợ .
configArray Một mảng tùy chọn để chứa cấu hình cụ thể của thuộc tính. Có thể trống.
configString Một chuỗi tùy chọn để chứa cấu hình cụ thể của thuộc tính. Có thể trống.
minSampleRatemaxSampleRate

Tốc độ mẫu được hỗ trợ tối thiểu và tối đa cho thuộc tính liên tục. Không được sử dụng nếu thuộc tính không liên tục.

Loại tài sản

Được xác định là enum trong VehiclePropertyType.aidl . Các loại thuộc tính được hỗ trợ được liệt kê trong bảng sau.

Loại tài sản Giá trị Sự miêu tả
SỢI DÂY 0x00100000 Thuộc tính chuỗi, sử dụng trường stringValue trong Giá trị thuộc tính xe.
BOOLEAN 0x00200000 Thuộc tính Boolean, sử dụng phần tử đầu tiên trong trường int32Values ​​trong giá trị thuộc tính Xe . 0 có nghĩa là false , None 0 có nghĩa là true .
INT32 0x00400000 Thuộc tính Integer, sử dụng phần tử đầu tiên trong trường int32Values ​​trong giá trị thuộc tính Xe .
INT32_VEC 0x00410000 Thuộc tính Integer[], sử dụng các phần tử trong trường int32Values ​​trong giá trị thuộc tính Xe .
INT64 0x00500000 Thuộc tính Long, sử dụng phần tử đầu tiên trong trường int64Values ​​trong giá trị thuộc tính Xe .
INT64_VEC 0x00510000 Thuộc tính Long[] , sử dụng các phần tử trong trường int64Values ​​trong giá trị thuộc tính Xe .
TRÔI NỔI 0x00600000 Thuộc tính Float, sử dụng phần tử đầu tiên trong trường floatValues ​​trong giá trị thuộc tính Vehicle .
FLOAT_VEC 0x00610000 Thuộc tính Float[], sử dụng các phần tử trong trường floatValues ​​trong giá trị thuộc tính Vehicle .
byte 0x00700000 thuộc tính byte[], sử dụng các phần tử trong trường byteValues ​​trong giá trị thuộc tính Xe .
TRỘN 0x00e00000 Thuộc tính loại hỗn hợp. Bất kỳ sự kết hợp nào của các loại vô hướng hoặc vectơ. Định dạng chính xác phải được cung cấp trong mảng cấu hình trong cấu hình thuộc tính.

Đối với các thuộc tính loại MIXED của nhà cung cấp, configArray cần được định dạng theo cấu trúc này:

  • configArray[0], 1 cho biết thuộc tính có giá trị Chuỗi
  • configArray[1], 1 cho biết thuộc tính có giá trị Boolean
  • configArray[2], 1 cho biết thuộc tính có giá trị Số nguyên
  • configArray[3], số biểu thị kích thước của Integer[] trong thuộc tính
  • configArray[4], 1 cho biết thuộc tính có giá trị Long
  • configArray[5], số biểu thị kích thước của Long[] trong thuộc tính
  • configArray[6], 1 cho biết thuộc tính có giá trị Float
  • configArray[7], số biểu thị kích thước của Float[] trong thuộc tính
  • configArray[8], số biểu thị kích thước của byte[] trong thuộc tính.

Ví dụ: configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} cho biết thuộc tính có giá trị Chuỗi, giá trị Boolean, giá trị Số nguyên và một mảng có ba số nguyên.

Cấu hình ID khu vực

Mỗi cấu hình thuộc tính cũng có thể chứa danh sách cấu hình ID khu vực. Danh sách này là tùy chọn cho các thuộc tính chung và bắt buộc đối với các thuộc tính được khoanh vùng (thuộc tính có nhiều khu vực được hỗ trợ). Mỗi cấu hình ID khu vực có các trường sau.

Cánh đồng Sự miêu tả
areaId ID cho khu vực này. Xem ID khu vực .
minInt32ValuemaxInt32Value
  • Giá trị tối thiểu và tối đa tùy chọn cho thuộc tính loại INT32. Bỏ qua tất cả các loại khác. Bỏ qua nếu cả hai đều bằng 0.
  • Đối với thuộc tính toàn cục, nếu cần xác định giá trị tối thiểu và tối đa thì phải sử dụng một cấu hình vùng có ID vùng 0.
minInt64ValuemaxInt64Value
  • Giá trị tối thiểu và tối đa tùy chọn cho thuộc tính loại INT64. Bỏ qua tất cả các loại khác. Bỏ qua nếu cả hai đều bằng 0.
  • Đối với thuộc tính toàn cục, nếu cần xác định giá trị tối thiểu và tối đa thì phải sử dụng một cấu hình vùng có ID vùng 0.
minFloatValuemaxFloatValue
  • Giá trị tối thiểu và tối đa tùy chọn cho thuộc tính loại Float. Bỏ qua tất cả các loại khác. Bỏ qua nếu cả hai đều là 0,0.
  • Đối với thuộc tính toàn cục, nếu cần xác định giá trị tối thiểu và tối đa thì phải sử dụng một cấu hình vùng có ID vùng 0.
( Tính năng mới trong Android 14 )
supportedEnumValues
  • Danh sách tùy chọn các giá trị được hỗ trợ nếu thuộc tính được xác định là thuộc tính loại enum. Nếu không được chỉ định (trống) hoặc trước Android 14, thì giả định rằng tất cả các giá trị enum đều được hỗ trợ.
  • Đối với thuộc tính chung, nếu cần xác định các giá trị enum được hỗ trợ thì phải sử dụng một cấu hình vùng có ID vùng 0.

Các loại diện tích

Được xác định là enum trong VehicleArea.aidl . Các loại khu vực được hỗ trợ được liệt kê dưới đây.

Loại diện tích Giá trị Sự miêu tả
TOÀN CẦU 0x01000000 Thuộc tính này là thuộc tính toàn cầu và không có nhiều khu vực.
CỬA SỔ 0x03000000 Khu vực dựa trên cửa sổ, sử dụng VehicleAreaWindow enum.
GƯƠNG 0x04000000 Khu vực dựa trên gương, sử dụng VehicleAreaMirror enum.
GHẾ 0x05000000 Diện tích dựa trên chỗ ngồi, sử dụng VehicleAreaSeat enum.
CỬA 0x06000000 Diện tích dựa trên cửa ra vào, sử dụng VehicleAreaDoor enum.
BÁNH XE 0x07000000 Diện tích dựa trên bánh xe, sử dụng VehicleAreaWheel enum.

Mỗi thuộc tính được khoanh vùng phải sử dụng loại khu vực được xác định trước. Mỗi loại khu vực có một tập hợp các cờ bit được xác định trong một enum cho loại khu vực đó. Ví dụ: khu vực SEAT xác định các enum 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 khu vực

Các thuộc tính được khoanh vùng được giải quyết thông qua ID Khu vực. Mỗi thuộc tính được khoanh vùng có thể hỗ trợ một hoặc nhiều ID khu vực. ID khu vực bao gồm một hoặc nhiều cờ từ enum tương ứng. Ví dụ: thuộc tính sử dụng VehicleAreaSeat có thể sử dụng ID khu vực sau:

Mục Sự miêu tả
ROW_1_LEFT | ROW_1_RIGHT ID khu vực áp dụng cho cả hai ghế trước.
ROW_2_LEFT Chỉ áp dụng cho ghế sau bên trái.
ROW_2_RIGHT Chỉ áp dụng cho ghế sau bên phải.

Để tìm hiểu thêm, xem HVAC .