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. Nilai ini harus berupa salah satu properti sistem yang ditentukan dari
VehicleProperty.aidl
atau properti vendor. ID properti dibuat menggunakan bit-or dari kolom berikut
(dari 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 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 salah satu dari
READ , WRITE , atau
READ_WRITE .
- Untuk properti sistem, nilai ini harus berupa salah satu mode akses yang ditentukan dan didokumentasikan dalam
VehicleProperty.aidl .
- Untuk properti yang memiliki akses per area, ini adalah subset maksimal dari akses per area, misalnya, jika properti memiliki dua area yang aksesnya adalah
READ dan READ_WRITE , ini harus ditetapkan ke READ .
|
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 saat nilai berubah. CONTINUOUS berarti nilai properti
berubah terus-menerus dan VHAL harus melaporkan berdasarkan frekuensi pengambilan sampel langganan.
- Untuk properti sistem, nilai ini harus sama dengan mode perubahan yang didokumentasikan di
VehicleProperty.aidl .
|
configArray |
Array opsional yang berisi konfigurasi khusus properti. Boleh kosong. Untuk properti sistem tertentu, misalnya, GEAR_SELECTION , array config memiliki arti khusus dan harus ditentukan.
|
configString |
String opsional untuk berisi konfigurasi khusus properti. Boleh kosong. |
minSampleRate dan maxSampleRate |
Frekuensi sampling 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 dalam
Nilai properti kendaraan.
0 berarti false , None 0 berarti true . |
INT32 |
0x00400000 |
properti Integer , menggunakan elemen pertama di kolom int32Values dalam
Nilai properti kendaraan. |
INT32_VEC |
0x00410000 |
properti Integer[] , menggunakan elemen di kolom int32Values dalam
Nilai properti kendaraan. |
INT64 |
0x00500000 |
Properti panjang, menggunakan elemen pertama di kolom int64Values dalam
Nilai properti kendaraan. |
INT64_VEC |
0x00510000 |
properti Long[] , menggunakan elemen di kolom int64Values dalam
Nilai properti kendaraan. |
FLOAT |
0x00600000 |
properti Float , menggunakan elemen pertama di kolom floatValues dalam
Nilai properti kendaraan. |
FLOAT_VEC |
0x00610000 |
properti Float[] , menggunakan elemen di kolom floatValues dalam
Nilai properti kendaraan. |
BYTES |
0x00700000 |
properti byte[] , menggunakan elemen di kolom byteValues dalam
Nilai properti kendaraan. |
MIXED |
0x00e00000 |
Properti jenis campuran. Kombinasi jenis skalar atau vektor apa pun. Format persisnya harus
disediakan dalam array config 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[] 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 menunjukkan ukuran Float[] dalam properti
configArray[8] , angka 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 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 yang dikelompokkan menurut zona (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 saat 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 saat waktu booting. Harus 0
untuk semua jenis lainnya. Diabaikan jika keduanya adalah 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 saat waktu booting jika properti ditentukan sebagai properti
jenis enum. Jika tidak ditentukan (kosong) atau sebelum Android 14, semua nilai enum
dianggap didukung.
- Untuk properti global, jika nilai enum yang didukung perlu ditentukan, 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 yang didukung
secara dinamis.
- 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 kecepatan update variabel untuk langganan guna
menerima peristiwa update properti hanya saat nilai properti berubah
(yang memperlakukan properti berkelanjutan sebagai properti saat berubah).
- Jika semua pelanggan untuk properti mengaktifkan frekuensi update variabel, permintaan
langganan ke VHAL akan mengaktifkan frekuensi update variabel untuk properti dan VHAL harus
mengirim peristiwa update properti hanya saat nilai properti berubah.
- Jika ada pelanggan yang meminta kecepatan update tetap, permintaan langganan ke VHAL
akan menonaktifkan kecepatan update variabel untuk properti dan AAOS akan memfilter
peristiwa duplikat untuk klien yang meminta kecepatan update variabel.
- SANGAT DISARANKAN untuk mendukung kecepatan update variabel untuk semua properti berkelanjutan non-detak jantung untuk performa yang lebih baik, kecuali jika data properti berukuran besar (misalnya, array byte berukuran 1k) dan dapat menempati sejumlah besar memori untuk caching.
|
(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 tidak
null , VHAL harus menerapkan API ini untuk
ID properti dan ID area ini.
- Jika
null atau di Android 15 atau yang lebih rendah, nilai yang didukung 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 cermin, menggunakan enum VehicleAreaMirror . |
SEAT |
0x05000000 |
Area berdasarkan tempat duduk, menggunakan enum VehicleAreaSeat . |
DOOR |
0x06000000 |
Area berdasarkan pintu, menggunakan enum VehicleAreaDoor . |
RODA |
0x07000000 |
Area berdasarkan roda, menggunakan enum VehicleAreaWheel . |
Setiap properti yang dikelompokkan dalam zona harus menggunakan jenis area yang telah ditentukan sebelumnya. Setiap jenis area memiliki serangkaian 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 yang dikelompokkan menurut zona diatasi melalui ID Area. Setiap properti yang dikelompokkan dalam zona dapat mendukung satu atau beberapa
ID Area. ID Area terdiri dari satu atau beberapa tanda dari enumnya 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.