Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release
, bukan aosp-main
, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Konfigurasi properti
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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
VehicleProperty.aidl
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 .
- Untuk properti sistem, ini harus berupa salah satu mode akses yang ditentukan dan didokumentasikan dalam
VehicleProperty.aidl .
- Untuk properti yang memiliki akses per area, ini adalah subset maksimum dari akses per area, misalnya, jika properti memiliki dua area yang aksesnya adalah
READ dan READ_WRITE , ini harus ditetapkan ke READ .
|
changeMode |
- Mengubah 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.
- Untuk properti sistem, nilai ini harus sama dengan mode perubahan yang didokumentasikan dalam
VehicleProperty.aidl .
|
configArray |
Array opsional untuk berisi konfigurasi khusus properti. Dapat kosong. Untuk properti sistem
tertentu, misalnya, GEAR_SELECTION , array konfigurasi memiliki arti khusus dan
harus ditentukan.
|
configString |
String opsional untuk berisi konfigurasi khusus properti. Dapat kosong. |
minSampleRate dan maxSampleRate |
Frekuensi sampel minimum dan maksimum yang didukung untuk properti berkelanjutan (dalam Hertz). Tidak digunakan jika properti
tidak berkelanjutan. minSampleRate dan maxSampleRate harus dapat dicapai oleh implementasi
VHAL. Tidak semua frekuensi sampel antara minimum dan maksimum harus didukung. |
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 Integer , 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 di
Nilai properti kendaraan. |
INT64_VEC |
0x00510000 |
Properti Long[] , menggunakan elemen di kolom int64Values di
Nilai properti kendaraan. |
FLOAT |
0x00600000 |
Properti Float , menggunakan elemen pertama di kolom floatValues di
Nilai properti kendaraan. |
FLOAT_VEC |
0x00610000 |
Properti Float[] , menggunakan elemen di kolom floatValues di
Nilai properti kendaraan. |
BYTES |
0x00700000 |
Properti byte[] , menggunakan elemen di kolom byteValues di
Nilai properti kendaraan. |
MIXED |
0x00e00000 |
Properti jenis campuran. Kombinasi jenis skalar atau vektor apa pun. 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 bahwa properti memiliki nilai Integer
configArray[3] , angka menunjukkan ukuran Integer[] di properti
configArray[4] , 1 menunjukkan bahwa properti memiliki nilai Long
configArray[5] , angka menunjukkan ukuran Long[] di properti
configArray[6] , 1 menunjukkan bahwa properti memiliki nilai Float
configArray[7] , angka menunjukkan ukuran Float[] di properti
configArray[8] , angka ini menunjukkan ukuran byte[] di properti.
Misalnya, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} menunjukkan bahwa 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 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 pada waktu booting. Harus 0
untuk semua jenis lainnya. Diabaikan jika keduanya 0.
- Untuk properti global, jika nilai minimum dan maksimum perlu ditentukan, satu konfigurasi area dengan ID area 0 harus digunakan.
- Nilai ini bersifat statis dan tidak akan berubah meskipun nilai minimum atau maksimum berubah
saat runtime. Terapkan
IVehicle#getMinMaxSupportedValue untuk nilai minimum atau maksimum
dinamis.
|
minInt64Value dan maxInt64Value |
- Nilai minimum dan maksimum opsional untuk properti jenis INT64 pada waktu booting. Harus 0
untuk semua jenis lainnya. Diabaikan jika keduanya 0.
- Untuk properti global, jika nilai minimum dan maksimum perlu ditentukan, satu konfigurasi area dengan ID area 0 harus digunakan.
- Nilai ini bersifat statis dan tidak akan berubah meskipun nilai minimum atau maksimum berubah
saat runtime. Terapkan
IVehicle#getMinMaxSupportedValue untuk nilai minimum atau maksimum
dinamis.
|
minFloatValue dan maxFloatValue |
- Nilai minimum dan maksimum opsional untuk properti jenis Float pada waktu booting. Harus 0
untuk semua jenis lainnya. Diabaikan jika keduanya 0,0.
- Untuk properti global, jika nilai minimum dan maksimum perlu ditentukan, satu konfigurasi area dengan ID area 0 harus digunakan.
- Nilai ini bersifat statis dan tidak akan berubah meskipun nilai minimum atau maksimum berubah
saat runtime. Terapkan
IVehicle#getMinMaxSupportedValue untuk nilai minimum atau maksimum
dinamis.
|
(Baru di Android 14)
supportedEnumValues |
- Daftar opsional nilai yang didukung pada waktu booting 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.
- Nilai ini bersifat statis dan tidak akan berubah meskipun nilai yang didukung berubah
saat runtime. Terapkan
IVehicle#getSupportedValuesLists untuk nilai dinamis yang didukung.
- Hal ini hanya berlaku untuk properti jenis enum. Untuk jenis lainnya, kolom ini harus kosong.
Untuk mengekspos nilai yang didukung untuk jenis non-enum lainnya, gunakan
IVehicle#getSupportedValuesLists .
|
(Baru di Android 15)
supportVariableUpdateRate |
- Apakah kecepatan update variabel didukung. Hal ini hanya berlaku untuk properti berkelanjutan.
- Jika
true , aplikasi dapat mengaktifkan frekuensi pembaruan variabel untuk langganan agar
menerima peristiwa pembaruan properti hanya saat nilai properti berubah
(yang memperlakukan properti berkelanjutan sebagai properti saat berubah).
- Jika semua pelanggan untuk properti mengaktifkan frekuensi pembaruan variabel, permintaan
langganan ke VHAL akan mengaktifkan frekuensi pembaruan variabel untuk properti dan VHAL harus
mengirim peristiwa pembaruan properti hanya saat nilai properti berubah.
- Jika ada pelanggan yang meminta frekuensi pembaruan tetap, permintaan langganan ke VHAL
akan menonaktifkan frekuensi pembaruan variabel untuk properti dan AAOS akan memfilter
peristiwa duplikat untuk klien yang meminta frekuensi pembaruan variabel.
- SANGAT DISARANKAN untuk mendukung kecepatan pembaruan variabel untuk semua properti berkelanjutan non-heartbeat
untuk performa yang lebih baik, kecuali jika data properti berukuran besar (misalnya, array byte berukuran 1k) dan mungkin menempati memori dalam jumlah besar untuk penyimpanan dalam cache.
|
(Baru di Android 16)
hasSupportedValueInfo |
- Jika bukan
null , menunjukkan apakah properti ini menentukan nilai minimum atau maksimum yang didukung atau daftar nilai yang didukung.
- Kolom ini mengontrol apakah API nilai yang didukung dinamis:
getMinMaxSupportedValue , getSupportedValuesLists ,
subscribeSupportedValueChange , unsubscribeSupportedValueChange
didukung untuk ID properti dan ID area ini.
- Jika bukan
null , VHAL harus menerapkan API ini untuk ID properti dan ID area ini.
- Jika
null atau di Android 15 atau yang lebih lama, nilai yang didukung
secara dinamis untuk ID properti dan ID area ini tidak didukung. Klien harus menggunakan
informasi nilai statis yang didukung yang diberikan dalam konfigurasi properti kendaraan.
|
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. |
WINDOW |
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 yang dizonasi 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 dengan zona ditangani melalui ID Area. Setiap properti berzona dapat mendukung satu atau beberapa ID Area. ID Area terdiri dari satu atau beberapa flag 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 kanan belakang. |
Untuk mempelajari lebih lanjut, lihat HVAC.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-06-12 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-06-12 UTC."],[],[]]