Özel mülkler

Tedarikçi firma mülkleri

VHAL, iş ortağına özel ihtiyaçları desteklemek için erişilen tedarikçi firma mülklerine izin verir API'leri kullanabilirsiniz. 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ığı zaman 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 2.5 numaralı bölüme, Otomobil Gereksinimleri'ne bakın.
  • Mülk Kimliğini oluşturmak için aşağıdaki alanları kullanın:
    • VehiclePropertyGroup:VENDOR TEDARİKÇİ grubu yalnızca tedarikçi firma 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.
  • VehiclePropConfig.configString alanına tedarikçi firmanın kısa bir açıklamasını girin Bu, geçerlilik kontrolü araçlarının mevcut dokümanların yanlışlıkla kopyalanmasını işaretlemesini sağlar araç özellikleri. Örneğin, "XYZ için özel mülküm".
  • Erişim: CarPropertyManager (Java bileşenleri için) veya libvhalclient (yerel için). Yapılması gerekenler diğer araba API'lerinde değişiklik yapmak gelecekte uyumluluk sorunlarına yol açabileceğinden.

Tedarikçi firma mülkleri izni

Tanımlanmış tüm tedarikçi firma özellikleri için varsayılan izin: android.car.Car.PERMISSION_VENDOR_EXTENSION İzin denetiminde daha ayrıntılı düzeyler için SUPPORT_CUSTOMIZE_VENDOR_PERMISSION mülkünü destekleyin. Bu STATIC mülkü salt okunurdur ve yapılandırma dizisi, tedarikçi mülkleri için 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 firma özelliğinin mülk kimliği.
  • configArray[3 * i + 1] VehicleVendorPermission.aidl içindeki bir sıralamayı özellik değerini okuma iznini belirtir.
  • configArray[3 * i + 2] VehicleVendorPermission.aidl içindeki bir sıralamayı özellik değerini yazma iznini gösterin.

Örneğin, aşağıdaki yapılandırma dizisi iki tedarikçi firma mülkünü (vendor_prop_1 ve vendor_prop_2) aşağıdaki 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. Yalnızca yerel VHAL istemcileri bu mülke yazabilir.

Gelişmiş sürüş yardımı sistemleri (ADAS)

ADAS Araç Özellikleri'ne bakın.

KOLTUK ve DİREKSİYON

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 tesisi araçtaki belirli alanlarla ilişkilidir. Bunların bazıları küresel mülklerdir. Tanımlanmış örnek özellikler arasında şunlar bulunur:

Özellik Amaç
HVAC_TEMPERATURE_SET Alan kimliği başına sıcaklığı ayarlayın.
HVAC_POWER_ON HVAC sisteminin alan kimliğine göre 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'te HVAC_*'yi arayın. Desteklenen Sistem Özellikleri bölümüne bakın. mülkleri.

GLOBAL olmayan VehicleArea türü HVAC özelliklerini FieldID'lerle eşleme kuralları: Mülkten etkilenen belirli bir VehicleArea türüne ait her "alan" şu şekilde olmalıdır: bu mülkün alan kimliğine dahil edilir. Sıcaklık kontrol cihazları "en fazla etkide bulunan" koltuklar Ancak etkilenen her koltuğun tam olarak bir kez dahil edilmesi gerekiyor. 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 araçta 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ı 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ına ilişkin alternatif bir eşleme şöyle olur:

  • ROW_1_LEFT | ROW_2_CENTER | SATIRSAY_2_SOL
  • ROW_1_RIGHT | ROW_2_SAĞ

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 için birer tane 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 arabanın iki ön koltuğu (ROW_1_LEFT, ROW_1_RIGHT) ve üç arka koltuğu var (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). 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 kümesi tek olur öğe dizisi:

  • ROW_1_LEFT | ROW_1_RIGHT

HVAC_AUTO_ON konumunda, sürücü tarafı ve yolcu için iki ayrı kontrol birimi olsaydı yerine, alternatif eşleme iki öğe dizisidir:

  • 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.

Şekil 1. Araç dış boyutları, önden görünüm.
Şekil 2. Araç dış boyutları, yan görünüm.

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] Zemin ile aracın en yüksek noktası arasındaki dikey mesafe. Bu varsayımım şişirilmiş fabrika tekerlekleri vardı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 iki tarafındaki en dıştaki iki nokta arasındaki yatay mesafe.
Aynalar dahil genişlik int32Values[3] Aracın her iki tarafındaki en dıştaki iki nokta arasındaki yatay mesafe, yan aynalar dahil.
Tekerlek tabanı int32Values[4] Aracın ön ve arka tekerlekleri arasındaki mesafe.
Parça genişliği, ön int32Values[5] Ön tekerlek arasındaki mesafe, bir lastik dişinin orta çizgisinden yana kadar ölçülür. orta çizgisini çizin.
Parça genişliği, arka int32Values[6] Arka tekerlek arasındaki mesafe, bir lastik dişinin orta çizgisinden bitişe kadar ölçülür orta çizgisini çizin.
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'de tanımlandığı şekilde GSR-ISA (Akıllı Hız Desteği) kullanım alanına örnek olarak verilebilir. 2019/2144 yönetmeliği. Bu özellik, Android 13'ten AIDL VHAL'ye eklenmiş ancak şu şekildedir: Android 12 sürümünden itibaren Araba Hizmeti'nde desteklenir. Bu özellik salt okunur olarak tanımlanmış olası değerleri tanımlanan statik genel tam sayı özelliği GsrComplianceRequirementType sıralaması:

Ad Değer Açıklama
GSR_COMPLIANCE_NOT_REQUIRED 0 GSR'ye uygunluk gerekli değildir
GSR_COMPLIANCE_REQUIRED_V1 1 GSR uyumluluğu gereklidir ve gereksinim çö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, referans HIDL'de bunun nasıl desteklendiğini göstermektedir VHAL DefaultConfig.h:

{
  .config =
      {
          // GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT
          .prop = 0x11400F47,
          .access = VehiclePropertyAccess::READ,
          .changeMode = VehiclePropertyChangeMode::STATIC,
      },
  // GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1
  .initialValue = {.int32Values = {1}},
}

Satıcılar, bu tesisi AIDL VHAL'de (Android 13'ten) desteklemek için VehicleProperty.h ve GsrComplianceRequirementType.h öğesinden numaralandırma. Örneğin, referans AIDL VHAL'de DefaultProperties.json:

{
  "property": "VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT",
  "defaultValue": {
    "int32Values": [
      "GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1"
    ]
  }
}

Bu mülkü bir Android uygulamasından okumak için şunu kullanın: CarPropertyManager.getIntProperty.