Konfigurasi properti

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

Bidang Keterangan
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-atau bidang berikut (kanan ke kiri):

  • (0x0000 0000 ) 16 bit: ID unik dari rentang 0x0100 - 0xffff.
  • (0x00 00 0000) 8 bit: Tipe properti yang mendefinisikan tipe properti.
  • (0x0 0 000000) 4 bit: Tipe area .
  • (0x 0 0000000) 4 bit: VehiclePropertyGroup > Ini adalah SYSTEM (0x10000000) atau VENDOR (0x20000000). Lihat Properti Vendor untuk mengetahui 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 berupa salah satu dari READ , WRITE , atau READ_WRITE . 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 di-boot. ON_CHANGE berarti VHAL harus melaporkan bila nilainya berubah. CONTINUOUS berarti nilai properti berubah secara terus-menerus dan VHAL harus melaporkan berdasarkan tingkat sampel berlangganan.
  • Mode perubahan harus sama dengan mode perubahan yang ditentukan dalam Properti Sistem yang Didukung .
configArray Array opsional untuk memuat konfigurasi spesifik properti. Bisa kosong.
configString String opsional untuk memuat konfigurasi spesifik properti. Bisa kosong.
minSampleRate dan maxSampleRate

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

Jenis properti

Didefinisikan sebagai enum di VehiclePropertyType.aidl . Tipe properti yang didukung tercantum dalam tabel berikut.

Jenis properti Nilai Keterangan
RANGKAIAN 0x00100000 Properti string, menggunakan bidang stringValue di Nilai Properti Kendaraan.
BOOLEAN 0x00200000 Properti Boolean, menggunakan elemen pertama di bidang int32Values ​​di nilai properti Kendaraan . 0 berarti false , None 0 berarti true .
INT32 0x00400000 Properti bilangan bulat, menggunakan elemen pertama di bidang int32Values ​​di nilai properti Kendaraan .
INT32_VEC 0x00410000 Properti Integer[], menggunakan elemen di bidang int32Values ​​di nilai properti Kendaraan .
INT64 0x00500000 Properti panjang, menggunakan elemen pertama di bidang int64Values ​​di nilai properti Kendaraan .
INT64_VEC 0x00510000 Properti Long[] , menggunakan elemen di bidang int64Values ​​di nilai properti Kendaraan .
MENGAMBANG 0x00600000 Properti float, menggunakan elemen pertama di bidang floatValues ​​di nilai properti Kendaraan .
FLOAT_VEC 0x00610000 Properti Float[], menggunakan elemen di bidang floatValues ​​di nilai properti Kendaraan .
BYTE 0x00700000 properti byte[], menggunakan elemen dalam bidang byteValues ​​di nilai properti Kendaraan .
CAMPURAN 0x00e00000 Properti tipe campuran. Kombinasi tipe skalar atau vektor apa pun. Format persisnya harus disediakan dalam array config di konfigurasi properti.

Untuk properti tipe vendor MIXED, configArray perlu diformat dalam struktur ini:

  • configArray[0], 1 menunjukkan properti memiliki nilai String
  • configArray[1], 1 menunjukkan properti memiliki nilai Boolean
  • configArray[2], 1 menunjukkan properti memiliki nilai Integer
  • configArray[3], angka tersebut menunjukkan ukuran Integer[] pada properti
  • configArray[4], 1 menunjukkan properti memiliki nilai Panjang
  • configArray[5], angka tersebut menunjukkan ukuran Long[] pada properti
  • configArray[6], 1 menunjukkan properti memiliki nilai Float
  • configArray[7], angka tersebut menunjukkan ukuran Float[] pada properti
  • configArray[8], angka tersebut menunjukkan ukuran byte[] di properti.

Misalnya, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} menunjukkan properti memiliki nilai String, nilai Boolean, nilai Integer, 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 diperlukan untuk properti yang dikategorikan (properti dengan beberapa area yang didukung). Setiap konfigurasi ID area memiliki bidang berikut.

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

Tipe wilayah

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

Tipe wilayah Nilai Keterangan
GLOBAL 0x01000000 Properti ini adalah properti global dan tidak memiliki banyak area.
JENDELA 0x03000000 Area berdasarkan windows, menggunakan enum VehicleAreaWindow .
CERMIN 0x04000000 Area berdasarkan cermin, menggunakan enum VehicleAreaMirror .
KURSI 0x05000000 Area berdasarkan tempat duduk, menggunakan enum VehicleAreaSeat .
PINTU 0x06000000 Area berdasarkan pintu, menggunakan enum VehicleAreaDoor .
RODA 0x07000000 Area berdasarkan roda, menggunakan enum VehicleAreaWheel .

Setiap properti yang dikategorikan harus menggunakan tipe area yang telah ditentukan sebelumnya. Setiap tipe area memiliki sekumpulan bendera bit yang ditentukan dalam enum untuk tipe area tersebut. Misalnya, area SEAT mendefinisikan 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 Wilayah

Properti yang dikategorikan ditangani melalui ID Area. Setiap properti yang dikategorikan dapat mendukung satu atau lebih ID Area. ID Area terdiri dari satu atau lebih bendera dari enumnya masing-masing. Misalnya, properti yang menggunakan VehicleAreaSeat mungkin menggunakan ID Area berikut:

Barang Keterangan
ROW_1_LEFT | ROW_1_RIGHT ID Area berlaku untuk kedua kursi depan.
ROW_2_LEFT Hanya berlaku untuk jok kiri belakang.
ROW_2_RIGHT Hanya berlaku untuk jok kanan belakang.

Untuk mempelajari lebih lanjut, lihat HVAC .