Konfigurasi properti

Setiap properti yang didukung ditentukan oleh konfigurasi properti yang ditentukan melalui struktur VehiclePropConfig dan memiliki kolom berikut.

Kolom Deskripsi
prop

ID properti. Ini harus berupa salah satu properti sistem yang ditentukan dari Properti Sistem yang Didukung atau properti vendor. ID properti dibuat menggunakan bit-or dari kolom berikut (kanan ke kiri):

  • (0x00000000) 16 bit: ID unik dari rentang 0x0100 - 0xffff.
  • (0x00000000) 8 bit: Jenis properti yang menentukan jenis untuk properti.
  • (0x00000000) 4 bit: Jenis area.
  • (0x00000000) 4 bit: VehiclePropertyGroup> Ini adalah SYSTEM (0x10000000) atau VENDOR (0x20000000). Lihat Properti Vendor untuk properti yang dapat Anda sesuaikan.

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

access Mode akses untuk properti. Harus salah satu dari READ, WRITE, atau READ_WRITE. Nilai ini harus sama dengan mode akses yang ditentukan dalam Properti Sistem yang Didukung.
changeMode
  • Ubah mode untuk properti. Harus salah satu dari STATIC, ON_CHANGE, atau CONTINUOUS. STATIC berarti nilai properti tidak pernah berubah setelah sistem melakukan booting. ON_CHANGE berarti VHAL harus melaporkan saat nilai berubah. CONTINUOUS berarti nilai properti berubah secara terus-menerus dan VHAL harus melaporkan berdasarkan frekuensi sampel langganan.
  • Mode perubahan harus sama dengan mode perubahan yang ditentukan dalam Properti Sistem yang Didukung.
configArray Array opsional untuk berisi konfigurasi khusus properti. Dapat kosong.
configString String opsional untuk berisi konfigurasi khusus properti. Boleh kosong.
minSampleRate dan maxSampleRate

Frekuensi sampel minimum dan maksimum yang didukung untuk properti berkelanjutan. Tidak digunakan jika properti tidak kontinu.

Jenis properti

Ditentukan sebagai enum di VehiclePropertyType.aidl. Jenis properti yang didukung tercantum dalam tabel berikut.

Jenis properti Nilai Deskripsi
STRING 0x00100000 Properti string, menggunakan kolom stringValue di Nilai Properti Kendaraan.
BOOLEAN 0x00200000 Properti Boolean, menggunakan elemen pertama di kolom int32Values di Nilai properti kendaraan. 0 berarti false, None 0 berarti true.
INT32 0x00400000 Properti bilangan bulat, menggunakan elemen pertama di kolom int32Values di Nilai properti kendaraan.
INT32_VEC 0x00410000 Properti Integer[], menggunakan elemen di kolom int32Values di Nilai properti kendaraan.
INT64 0x00500000 Properti panjang, menggunakan elemen pertama di kolom int64Values pada Nilai properti kendaraan.
INT64_VEC 0x00510000 Properti Long[], menggunakan elemen di kolom int64Values di Nilai properti kendaraan.
FLOAT 0x00600000 Properti mengambang, menggunakan elemen pertama di kolom floatValues pada Nilai properti kendaraan.
FLOAT_VEC 0x00610000 Properti Float[], menggunakan elemen di kolom floatValues di Nilai properti kendaraan.
BYTES 0x00700000 byte[], menggunakan elemen pada kolom byteValues pada Nilai properti kendaraan.
CAMPURAN 0x00e00000 Properti jenis campuran. Kombinasi jenis skalar atau vektor. Format yang tepat harus diberikan dalam array konfigurasi di konfigurasi properti.

Untuk properti jenis MIXED vendor, configArray harus diformat dalam struktur ini:

  • configArray[0], 1 menunjukkan bahwa properti memiliki nilai String
  • configArray[1], 1 menunjukkan bahwa properti memiliki nilai Boolean
  • configArray[2], 1 menunjukkan properti memiliki nilai Bilangan Bulat
  • configArray[3], angka menunjukkan ukuran Integer[] dalam properti
  • configArray[4], 1 menunjukkan bahwa properti memiliki nilai Long
  • configArray[5], angka menunjukkan ukuran Long[] dalam properti
  • configArray[6], 1 menunjukkan bahwa properti memiliki nilai Float
  • configArray[7], angka ini menunjukkan ukuran Float[] di properti
  • configArray[8], angka ini menunjukkan ukuran byte[] dalam properti.

Misalnya, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} menunjukkan bahwa properti memiliki nilai String, nilai Boolean, nilai Bilangan Bulat, dan array dengan tiga bilangan bulat.

Konfigurasi ID area

Setiap konfigurasi properti juga dapat berisi daftar konfigurasi ID area. Daftar ini bersifat opsional untuk properti global dan wajib untuk properti berzona (properti dengan beberapa area yang didukung). Setiap konfigurasi ID area memiliki kolom berikut.

Kolom Deskripsi
areaId ID untuk area ini. Lihat ID Area.
minInt32Value dan maxInt32Value
  • Nilai minimum dan maksimum opsional untuk properti jenis INT32. Diabaikan untuk semua jenis lainnya. Diabaikan jika keduanya 0.
  • Untuk properti global, jika nilai min dan maks perlu ditentukan, satu konfigurasi area dengan ID area 0 harus digunakan.
minInt64Value dan maxInt64Value
  • Nilai minimum dan maksimum opsional untuk properti jenis INT64. Diabaikan untuk semua jenis lainnya. Diabaikan jika keduanya 0.
  • Untuk properti global, jika nilai min dan maks perlu ditentukan, satu konfigurasi area dengan ID area 0 harus digunakan.
minFloatValue dan maxFloatValue
  • Nilai minimum dan maksimum opsional untuk properti jenis Float. Diabaikan untuk semua jenis lainnya. Diabaikan jika keduanya 0,0.
  • Untuk properti global, jika nilai min dan maksimum perlu ditentukan, satu konfigurasi area dengan ID area 0 harus digunakan.
(Baru di Android 14)
supportedEnumValues
  • Daftar opsional nilai yang didukung jika properti ditentukan sebagai properti jenis enum. Jika tidak ditentukan (kosong) atau sebelum Android 14, semua nilai enum diasumsikan didukung.
  • Untuk properti global, jika nilai enum yang didukung perlu ditentukan, satu konfigurasi area dengan ID area 0 harus digunakan.

Jenis area

Ditentukan sebagai enum di VehicleArea.aidl. Jenis area yang didukung tercantum di bawah.

Jenis area Nilai Deskripsi
GLOBAL 0x01000000 Properti ini adalah properti global dan tidak memiliki beberapa area.
JENDELA 0x03000000 Area berdasarkan jendela, menggunakan enum VehicleAreaWindow.
CERMIN 0x04000000 Area berdasarkan mirror, menggunakan enum VehicleAreaMirror.
SEAT 0x05000000 Area berdasarkan kursi, menggunakan enum VehicleAreaSeat.
PINTU 0x06000000 Area berdasarkan pintu, menggunakan enum VehicleAreaDoor.
BIANGLALA 0x07000000 Area berdasarkan roda, menggunakan enum VehicleAreaWheel.

Setiap properti zona harus menggunakan jenis area yang telah ditentukan sebelumnya. Setiap jenis area memiliki kumpulan flag bit yang ditentukan dalam enum untuk jenis area. Misalnya, area SEAT menentukan 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 Area

Properti zona ditangani melalui ID Area. Setiap properti berzona dapat mendukung satu atau beberapa ID Area. ID Area terdiri dari satu atau beberapa tanda dari enum masing-masing. Misalnya, properti yang menggunakan VehicleAreaSeat dapat menggunakan ID Area berikut:

Item Deskripsi
ROW_1_LEFT | ROW_1_RIGHT ID Area berlaku untuk kedua kursi depan.
ROW_2_LEFT Hanya berlaku untuk kursi kiri belakang.
ROW_2_RIGHT Hanya berlaku untuk kursi belakang kanan.

Untuk mempelajari lebih lanjut, lihat HVAC.