Tedarikçi firma özellikleri
VHAL, iş ortaklarına özgü ihtiyaçları desteklemek için yalnızca sistem API'leri aracılığıyla erişilen tedarikçi mülklerine izin verir. Tedarikçi firma mülkleriyle çalışırken aşağıdaki yönergeleri kullanın:
- Her zaman önce sistem özelliklerini kullanmayı deneyin. Tedarikçi firma özellikleri, sistem özelliklerinden hiçbiri ihtiyacınızı karşılamadığı durumlarda son çare olarak kullanılmalıdır.
- Ekosistemin parçalanmasını önlemek için, SDK'da zaten mevcut olan araç özelliklerini (VehiclePropertyIds) kopyalamak amacıyla tedarikçi firma özellikleri kullanılmamalıdır. Daha fazla bilgi için CDD'deki Bölüm 2.5, Otomotiv Gereksinimleri'ne bakın.
- Mülk kimliğini oluşturmak için aşağıdaki alanları kullanın:
VehiclePropertyGroup:VENDOR
VENDOR grubu yalnızca tedarikçi mülkleri için kullanılır.VehicleArea
Uygun bir alan türü seçin.VehiclePropertyType
Uygun veri türünü seçin. BYTES türü, ham verilerin iletilmesine olanak tanır. Bu tür, çoğu durumda yeterlidir. Tedarikçi mülkleri aracılığıyla sık sık büyük veri göndermek, araç ağına erişimin tamamını yavaşlatabilir. Büyük bir yük eklerken dikkatli olun.Property ID
Tedarikçi firma mülkü için benzersiz bir iki baytlık kimlik seçin. Örneğin, 0x1234.
- Tedarikçi mülkünün kısa bir açıklamasını
VehiclePropConfig.configString
alanına girin. Bu sayede geçerlilik kontrolü araçları, mevcut araç özelliklerinin yanlışlıkla kopyalanmasını işaretleyebilir. Örneğin, "XYZ için özel mülküm". - CarPropertyManager (Java bileşenleri için) veya
libvhalclient
(yerel bileşenler için) üzerinden erişin. Gelecekte uyumluluk sorunlarına yol açabileceği için diğer araç API'lerini değiştirmeyin.
Tedarikçi firma mülkleri izni
Tanımlanmış tüm tedarikçi firma mülkleri için varsayılan izin android.car.Car.PERMISSION_VENDOR_EXTENSION
'tür. Daha ayrıntılı izin denetimi için SUPPORT_CUSTOMIZE_VENDOR_PERMISSION
mülkünü destekleyin. Bu STATIC özelliği salt okunurdur. Bu özellik için yapılandırma dizisi, tedarikçi firma özelliklerine ait izinleri belirtir.
configArray
aşağıdaki gibi 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ğidir.configArray[3 * i + 1]
Mülk değerini okuma iznini belirtmek içinVehicleVendorPermission.aidl
içinde bir enum.configArray[3 * i + 2]
Mülk 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
adlı iki tedarikçi firma özelliğini gerekli izinlere sahip olacak şekilde yapılandırır:
vendor_prop_1
,android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT
okuma,android.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT
yazma işlemlerini gerektirir.vendor_prop-2
,android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO
'nin okunmasını gerektirir 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 dizi içinde olmayan 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 bir değer yazamaz. Bu mülke yalnızca yerel VHAL istemcileri yazabilir.
Gelişmiş sürüş yardımı sistemleri (ADAS)
ADAS Araç Özellikleri'ne bakın.KOLTUK ve DÖNÜŞÜM
Koltuk ve Direksiyon Özellikleri başlıklı makaleyi inceleyin.
Isıtma, Havalandırma ve Soğutma
Isıtma, havalandırma ve soğutma ile ilgili özellikleri ayarlayarak VHAL'ı kullanarak Isıtma, havalandırma ve soğutmayı kontrol edebilirsiniz. Çoğu HVAC mülkü, araçtaki belirli alanlarla ilişkilendirilir ancak bazı mülkler genel mülkleridir. Tanımlanan özellikler örnekleri arasında şunlar bulunur:
Özellik | Amaç |
---|---|
HVAC_TEMPERATURE_SET |
Alan kimliği başına sıcaklığı ayarlayın. |
HVAC_POWER_ON |
Alan kimliği başına 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
VehicleProperty.aidl
içinde HVAC_*
öğesini arayın.
Desteklenen Sistem Özellikleri bölümüne bakın.
mülkleri.
GLOBAL olmayan VehicleArea türü HVAC mülklerinin AreaID'lerle eşlenmesine ilişkin kurallar:
Mülkten etkilenen belirli bir VehicleArea
türüne ait her "alan", söz konusu mülkün bir alan kimliğine dahil edilmelidir. Sıcaklık kontrolörleri,"en çok etkiledikleri" koltuklara atanır ancak etkilenen her koltuk tam olarak bir kez dahil edilmelidir.
Orta arka koltuğun sol veya sağ AreaID'ye atanması keyfi görünebilir ancak etkilenen her koltuğun tam olarak bir AreaID'ye eklenmesi, araçtaki tüm koltukların ifade edilmesini ve her koltuğun etkilenmesini sağlayacak makul bir yöntemin kullanılmasını sağlar.
1. Örnek
Bir aracın iki ön koltuğu (ROW_1_LEFT, ROW_1_RIGHT) ve üç arka koltuğu (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) vardır. Sürücü tarafı ve yolcu tarafı olmak üzere iki sıcaklık kontrol birimi 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 olur:
- ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_RIGHT
2. Örnek
Bir arabanın üç koltuk sırası vardır. Ön sırada iki koltuk (ROW_1_LEFT, ROW_1_RIGHT), ikinci sırada üç koltuk (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) ve üçüncü sırada da üç koltuk (ROW_3_LEFT, ROW_3_CENTER, ROW_3_RIGHT) bulunur. Sürücü tarafı, yolcu tarafı ve arka taraf olmak üzere üç sıcaklık kontrol birimi vardır. HVAC_TEMPERATURE_SET
değerini AreaIDs ile eşlemenin makul bir yolu, üç öğeli bir dizidir:
- ROW_1_LEFT
- ROW_1_SAĞ
- ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RIGHT
3. Örnek
Bir aracın iki ön koltuğu (ROW_1_LEFT, ROW_1_RIGHT) ve üç arka koltuğu (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) vardır. Aracın yalnızca iki ön koltuk için HVAC_AUTO_ON özelliğini desteklediğini varsayalım. HVAC_AUTO_ON için geçerli bir AreaID eşleme grubu tek bir öğe dizisi olacaktır:
- ROW_1_LEFT | ROW_1_RIGHT
HVAC_AUTO_ON
sürücü tarafı ve yolcu tarafı için iki ayrı kontrol birimine sahipse alternatif bir eşleme iki öğe dizisi 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ç özelliği | VHAL alanı | Açıklama |
---|---|---|
Boy | int32Values[0] |
Yerden aracın en yüksek noktası arasındaki dikey mesafe. Bu değer, fabrika çıkışlı tekerleklerin normal şekilde şişirilmiş olduğu varsayılarak hesaplanı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ç, aracın her bir tarafındaki en dıştaki iki nokta arasındaki yatay mesafedir. |
Aynalar dahil genişlik | int32Values[3] |
Yan aynalar dahil olmak üzere aracın her iki tarafındaki en dış iki nokta arasındaki yatay mesafe. |
Tekerlek tabanı | int32Values[4] |
Aracın ön ve arka tekerlekleri arasındaki mesafe. |
Parça genişliği, ön | int32Values[5] |
Bir lastik dişinin merkez çizgisinden karşı lastik dişinin merkez çizgisine kadar ölçülen ön tekerlek arasındaki mesafe. |
Arka tekerlek genişliği | int32Values[6] |
Bir lastik dişinin merkez çizgisinden karşı lastik dişinin merkez çizgisine kadar ölçülen arka tekerlek arasındaki mesafe. |
Kaldırıma dönme çapı | int32Values[7] |
Direksiyon tamamen kilitliyken aracın dış tekerlekleri tam bir dönüş yaptığında oluşturduğu dairenin çapı. |
Avrupa Birliği genel güvenlik yönetmeliği uygunluğu
Aracın Android üzerinden Avrupa Birliği Genel Güvenlik Tüzüğü (GSR) şartlarına uyması gerekiyorsa GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT
mülkü desteklenmelidir. AB 2019/2144 Tüzüğü'nde tanımlanan GSR-ISA (Akıllı Hız Desteği) örnek bir kullanım alanıdır. Bu mülk, Android 13'ten itibaren AIDL VHAL'e eklenmiştir ancak Android 12'nin yayınlanmasından beri Car Service'te desteklenmektedir. Bu özellik, GsrComplianceRequirementType
enum tarafından tanımlanan olası değerlere sahip, salt okunur statik bir global tam sayı özelliği olarak tanımlanır:
Ad | Değer | Açıklama |
---|---|---|
GSR_COMPLIANCE_NOT_REQUIRED |
0 | GSR'ye uygunluk gerekli değildir |
GSR_COMPLIANCE_REQUIRED_V1 |
1 | GSR uygunluğu gereklidir ve şart çözümü sürümü 1'dir. |
Satıcıların, bu özelliği HIDL VHAL'de (Android 12'de) desteklemek için mülk kimliğini sabit olarak kodlaması gerekir.
Örneğin, aşağıdaki snippet'te bunun referans HIDL VHAL'da 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
'teki mülk kimliğini ve GsrComplianceRequirementType.h
'teki enum'u kullanabilir. Örneğin, referans AIDL VHAL'de 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
VehiclePropertyIds.GENERAL_SAFETY_REGULATION_COMPLIANCE
mülkü kimliği olarak kullanın. - Android 12'de mülk kimliği olarak sabit kodlu 0x11400F47 değerini kullanın. Bu mülk için
Car#PERMISSION_CAR_INFO
izni gerekir.