Tedarikçi özellikleri
VHAL, iş ortağına özel ihtiyaçları desteklemek için yalnızca sistem API'leri aracılığıyla erişilen satıcı özelliklerine izin verir. Tedarikçi özellikleriyle çalışırken aşağıdaki yönergeleri kullanın:
- Öncelikle her zaman sistem özelliklerini kullanmaya çalışın. Sistem özelliklerinden hiçbiri ihtiyacınızı karşılamadığında tedarikçi özelliklerini son çare olarak kullanın.
- Ekosistem parçalanmasını önlemek için tedarikçi özellikleri, SDK'da VehiclePropertyIds içinde zaten bulunan araç özelliklerini kopyalamak için kullanılmamalıdır. Daha fazla bilgi edinmek için CDD'deki Bölüm 2.5, Otomotiv Şartları'na bakın.
- Mülk kimliğini oluşturmak için aşağıdaki alanları kullanın:
VehiclePropertyGroup:VENDOR
VENDOR grubu yalnızca satıcı mülkleri için kullanılır.VehicleArea
Uygun bir Alan Türü seçin.VehiclePropertyType
Doğru veri türünü seçin. BYTES türü, çoğu durumda yeterli olan ham verilerin iletilmesine olanak tanır. Büyük verilerin satıcı mülkleri üzerinden sık sık gönderilmesi, tüm araç ağı erişimini yavaşlatabilir. Büyük bir yük eklerken dikkatli olun.Property ID
Tedarikçi mülkü için benzersiz bir iki baytlık kimlik seçin. Örneğin, 0x1234.
VehiclePropConfig.configString
yerine satıcı mülkünün kısa bir açıklamasını girin. Bu sayede geçerlilik kontrolü araçları, mevcut araç özelliklerinin yanlışlıkla kopyalanmasını işaretleyebilir. Örneğin, "XYZ için özel özelliğim".- Erişim:
CarPropertyManager
(Java bileşenleri için) veya
libvhalclient
(yerel için) üzerinden yapılır. Diğer araba API'lerini değiştirmeyin. Aksi takdirde gelecekte uyumluluk sorunları yaşanabilir.
Tedarikçi mülkleri izni
Tanımlanan tüm tedarikçi mülkleri için varsayılan izin android.car.Car.PERMISSION_VENDOR_EXTENSION
şeklindedir. İzin denetiminin daha ayrıntılı olması için SUPPORT_CUSTOMIZE_VENDOR_PERMISSION
özelliğini destekleyin. Bu STATIC
özelliği salt okunurdur. Yapılandırma dizisi, tedarikçi özelliklerinin izinlerini belirtir.
configArray
şu şekilde ayarlanır (i, 0'dan başlayan bir tam sayıdır):
configArray[3 * i]
propId, tedarikçi mülkünün mülk kimliği.configArray[3 * i + 1]
Özellik değerini okuma iznini belirtmek içinVehicleVendorPermission.aidl
içinde bir enum.configArray[3 * i + 2]
Özellik değerini yazma iznini belirtmek içinVehicleVendorPermission.aidl
içinde bir enum.
Örneğin, aşağıdaki yapılandırma dizisi, vendor_prop_1
ve vendor_prop_2
olmak üzere iki tedarikçi mülkünün şu izinlere sahip olmasını sağlar:
vendor_prop_1
,android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT
için okuma,android.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT
için yazma izni gerektirir.vendor_prop-2
, okunmak içinandroid.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO
gerekir ve Android uygulamaları için yazılabilir değildir.
configArray = { PERMISSION_SET_VENDOR_CATEGORY_SEAT vendor_prop_2, PERMISSION_GET_VENDOR_CATEGORY_INFO, PERMISSION_NOT_ACCESSIBLE }
Bu dizide yer almayan tedarikçi mülkleri, varsayılan tedarikçi iznini alır. PERMISSION_NOT_ACCESSIBLE
seçildiğinde Android uygulamaları mülke erişemez.
Örnekte, Android uygulamaları vendor_prop_2
için değer yazamıyor. Bu özelliğe yalnızca yerel VHAL istemcileri yazabilir.
Gelişmiş sürücü destek sistemleri (ADAS)
ADAS Araç Özellikleri konusunu inceleyin.SEAT ve STEERING
Koltuk ve Direksiyon Özellikleri başlıklı makaleyi inceleyin.
Isıtma, Havalandırma ve Soğutma
HVAC ile ilgili özellikleri ayarlayarak HVAC'yi kontrol etmek için VHAL'yi kullanabilirsiniz. Çoğu ısıtma, havalandırma ve soğutma özelliği, birkaç küresel özellik olsa da araçtaki belirli alanlarla ilişkilendirilir. Tanımlanmış örnek özellikler şunlardır:
Özellik | Amaç |
---|---|
HVAC_TEMPERATURE_SET |
Sıcaklığı alan kimliğine göre ayarlayın. |
HVAC_POWER_ON |
Alan kimliğine göre HVAC sisteminin güç durumu. |
HVAC sisteminin güç durumuna bağlı olan HVAC özellikleri, HVAC_POWER_ON
yapılandırma dizisinde listelenmelidir. HVAC özelliklerinin tam listesini görmek için HVAC_*
içinde VehicleProperty.aidl
araması yapın. Desteklenen Sistem Özellikleri başlıklı makaleyi inceleyin.
özellikler.
GLOBAL olmayan VehicleArea türü HVAC özelliklerini AreaID'lere eşleme kuralları:
Özellikten etkilenen belirli bir VehicleArea
türündeki her "alan", bu özelliğin bir alan kimliğine dahil edilmelidir. Sıcaklık denetleyicileri,"en çok etkiledikleri" koltuklara atanır ancak etkilenen her koltuk tam olarak bir kez dahil edilmelidir.
Arkadaki orta koltuğun sol veya sağ AreaID'ye atanması rastgele gibi görünebilir ancak etkilenen her koltuğun tam olarak bir AreaID'ye dahil edilmesi, arabadaki tüm koltukların ifade edilmesini ve her koltuğu etkilemenin makul bir yolunun olmasını sağlar.
1. örnek
Bir arabada iki ön koltuk (ROW_1_LEFT, ROW_1_RIGHT) ve üç arka koltuk (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) vardır. Sürücü tarafı ve yolcu tarafı için birer tane olmak üzere iki sıcaklık kontrol ünitesi vardır. HVAC_TEMPERATURE_SET
için geçerli bir AreaID eşleme grubu iki öğeli bir dizi olur:
- ROW_1_LEFT | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RIGHT
Aynı donanım yapılandırması için alternatif bir eşleme şu şekilde olabilir:
- ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_RIGHT
2. örnek
Bir arabada ön sırada iki koltuk (ROW_1_LEFT, ROW_1_RIGHT), ikinci (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) ve üçüncü sıralarda (ROW_3_LEFT, ROW_3_CENTER, ROW_3_RIGHT) üç koltuk olmak üzere üç sıra koltuk vardır. Sürücü tarafı, yolcu tarafı ve arka için olmak üzere üç sıcaklık kontrol birimi vardır. HVAC_TEMPERATURE_SET
öğesini AreaID'lere eşlemenin makul bir yolu üç öğeli bir dizidir:
- ROW_1_LEFT
- ROW_1_RIGHT
- ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RIGHT
3. Örnek
Bir arabada iki ön koltuk (ROW_1_LEFT, ROW_1_RIGHT) ve üç arka koltuk (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) vardır. Örneğin, araba yalnızca iki ön koltuk için HVAC_AUTO_ON'u destekliyor. HVAC_AUTO_ON için geçerli bir AreaID eşleme grubu tek bir öğe dizisi olur:
- ROW_1_LEFT | ROW_1_RIGHT
HVAC_AUTO_ON
, sürücü tarafı ve yolcu tarafı için iki ayrı kontrol birimine sahipse alternatif eşleme iki öğeli bir dizi olur:
- ROW_1_LEFT
- ROW_1_RIGHT
INFO_EXTERIOR_DIMENSIONS
Bir aracın dış boyutları, Şekil 1'de gösterildiği gibi milimetre cinsinden ölçülür.


Bir aracın dış boyutlarını tanımlamak için bu tabloda açıklanan özellikleri kullanın.
Araç mülkü | VHAL alanı | Açıklama |
---|---|---|
Yükseklik | int32Values[0] |
Zemin ile araçtaki en yüksek nokta arasındaki dikey mesafe. Bu, normalde şişirilmiş fabrika tekerlekleri olduğu varsayımına dayanır. |
Uzunluk | int32Values[1] |
Aracın ön ve arka tarafının en dış noktaları arasındaki yatay mesafe. |
Aynalar hariç genişlik | int32Values[2] |
Yan aynalar hariç olmak üzere, aracın her iki tarafındaki en dıştaki iki nokta arasındaki yatay mesafe. |
Aynalar dahil genişlik | int32Values[3] |
Yan aynalar dahil olmak üzere, aracın her iki tarafındaki en dıştaki iki nokta arasındaki yatay mesafe. |
Tekerlek tabanı | int32Values[4] |
Aracın ön ve arka tekerleklerinin merkezi arasındaki mesafe. |
Ön tekerlek izi genişliği | int32Values[5] |
Ön tekerlekler arasındaki mesafe, bir lastik sırtının merkez çizgisinden karşı taraftaki lastik sırtının merkez çizgisine kadar ölçülür. |
İz genişliği, arka | int32Values[6] |
Arka tekerlekler arasındaki mesafe, bir lastik sırtının merkez çizgisinden karşı lastik sırtının merkez çizgisine kadar ölçülür. |
Kaldırımdan kaldırıma dönüş çapı | int32Values[7] |
Tamamen kilitlenmiş bir direksiyonla tam dönüş yaparken aracın dış tekerleklerinin oluşturduğu dairenin çapı. |
Avrupa Birliği genel güvenlik tüzüğüne uygunluk
Araç, Android aracılığıyla Avrupa Birliği Genel Güvenlik Tüzüğü (GSR) şartlarına uymak zorundaysa GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT
özelliği desteklenmelidir. Kullanım alanı örneği olarak, AB Tüzüğü 2019/2144'te tanımlanan GSR-ISA (Akıllı Hız Desteği) verilebilir. Bu özellik, Android 13'ten itibaren AIDL VHAL'ye eklenmiştir ancak Android 12'nin yayınlanmasından beri Car Service'te desteklenmektedir. Bu özellik, olası değerleri GsrComplianceRequirementType
enum'u tarafından tanımlanan, salt okunur statik bir genel tam sayı özelliği olarak tanımlanır:
Ad | Değer | Açıklama |
---|---|---|
GSR_COMPLIANCE_NOT_REQUIRED |
0 | GSR uyumluluğu gerekli değildir. |
GSR_COMPLIANCE_REQUIRED_V1 |
1 | GSR'ye uygunluk zorunludur ve gerekli çözüm sürümü 1'dir. |
Bu özelliği HIDL VHAL'de (Android 12'de) desteklemek için satıcıların özellik kimliğini sabit kodlaması gerekir.
Örneğin, aşağıdaki snippet'te bunun referans HIDL VHAL'de nasıl desteklendiği gösterilmektedir
DefaultConfig.h
:
{ .config = { // GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT .prop = 0x11400F47, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::STATIC, }, // GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1 .initialValue = {.int32Values = {1}}, }
Tedarikçiler, bu özelliği AIDL VHAL'de (Android 13'ten itibaren) desteklemek için VehicleProperty.h
içindeki özellik kimliğini ve GsrComplianceRequirementType.h
içindeki numaralandırmayı kullanabilir. Örneğin, referans AIDL VHAL'de olduğu gibi
DefaultProperties.json
:
{ "property": "VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", "defaultValue": { "int32Values": [ "GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1" ] } }
Bu özelliği bir Android uygulamasından okumak için CarPropertyManager.getIntProperty
kullanın.
- Android 13 ve sonraki sürümlerde özellik kimliği olarak
VehiclePropertyIds.GENERAL_SAFETY_REGULATION_COMPLIANCE
kullanın. - Android 12'de özellik kimliği olarak sabit kodlanmış 0x11400F47 değerini kullanın. Bu özellik için
Car#PERMISSION_CAR_INFO
izni gerekir.