Mülk yapılandırmaları

Desteklenen her özellik, VehiclePropConfig yapısıyla tanımlanan bir mülk yapılandırmasıyla belirtilir ve aşağıdaki alanlara sahiptir.

Alan Açıklama
prop

Mülk kimliği. Bu, Desteklenen Sistem Özellikleri bölümündeki tanımlanmış sistem özelliklerinden biri veya bir tedarikçi özelliği olmalıdır. Mülk kimliği, aşağıdaki alanların bit-veya işlemi kullanılarak oluşturulur (sağdan sola):

  • (0x00000000) 16 bit: 0x0100 - 0xffff aralığındaki benzersiz bir kimlik.
  • (0x00000000) 8 bit: Mülkün türünü tanımlayan mülk türleri.
  • (0x00000000) 4 bit: Alan türleri.
  • (0x00000000) 4 bit: VehiclePropertyGroup> Bu, SYSTEM (0x10000000) veya VENDOR (0x20000000) değerini alır. Özelleştirebileceğiniz özellikler için Tedarikçi Özellikleri bölümüne bakın.

Örneğin,
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)

access Tesisin erişim modu. READ, WRITE veya READ_WRITE olmalıdır. Bu, Desteklenen Sistem Özellikleri'nde tanımlanan erişim moduna eşit olmalıdır.
changeMode
  • Mülkün modunu değiştirin. STATIC, ON_CHANGE veya CONTINUOUS olmalıdır. STATIC, sistem açıldığında özellik değerinin hiçbir zaman değişmediği anlamına gelir. ON_CHANGE, değer değiştiğinde VHAL'in bildirimde bulunması gerektiği anlamına gelir. CONTINUOUS, özellik değerinin sürekli olarak değiştiği ve VHAL'nin, abonelik örnek hızına göre raporlama yapması gerektiği anlamına gelir.
  • Değişiklik modu, Desteklenen Sistem Özellikleri bölümünde tanımlanan değişiklik moduna eşit olmalıdır.
configArray Mülke özgü yapılandırmayı içeren isteğe bağlı bir dizi. Boş bırakılabilir.
configString Mülke özgü yapılandırmayı içeren isteğe bağlı bir dize. Boş bırakılabilir.
minSampleRate ve maxSampleRate

Sürekli mülk için desteklenen minimum ve maksimum örnek hızı. Mülk kesintisiz değilse kullanılmaz.

Mülk türleri

VehiclePropertyType.aidl içinde enum olarak tanımlanır. Desteklenen mülk türleri aşağıdaki tabloda listelenmiştir.

Mülk türü Değer Açıklama
Dize 0x00100000 Dize özelliği, Araç Mülk Değeri'nde stringValue alanını kullanır.
BOOLE 0x00200000 Boole mülkü, Araç mülk değeri alanındaki int32Values alanındaki ilk öğeyi kullanır. 0, false anlamına gelir. None 0, true anlamına gelir.
İT32 0x00400.000 Tam sayı özelliği, Araç özelliği değeri alanındaki int32Values alanındaki ilk öğeyi kullanır.
INT32_VEC 0x00410000 Tam sayı dizisi özelliği, Araç mülkü değeri alanındaki int32Values alanındaki öğeleri kullanır.
İT64 0x00500000 Uzun mülk, Araç mülkü değeri alanındaki int64Values alanındaki ilk öğeyi kullanır.
INT64_VEC 0x00510.000 Long[] mülkü, Araç mülkü değeri'nde int64Values alanındaki öğeleri kullanır.
KAYAN NOKTALI 0x00600000 Kayan nokta mülkü, Araç mülkü değeri alanındaki floatValues alanındaki ilk öğeyi kullanır.
FLOAT_VEC 0x00610000 Kayan özellik[], Araç özelliği değeri içindeki floatValues alanında bulunan öğeleri kullanır.
BAYT 0x00700000 byte[] özelliği, Araç mülk değeri alanındaki byteValues alanındaki öğeleri kullanır.
KARMA 0x00e00000 Karma türde mülk. Skaler veya vektör türlerinin herhangi bir kombinasyonu. Tam biçim, mülk yapılandırmasında config dizisinde sağlanmalıdır.

Satıcı MIXED türündeki mülkler için configArray'ın şu yapıda biçimlendirilmesi gerekir:

  • configArray[0], 1, özelliğin bir Dize değerine sahip olduğunu gösterir
  • configArray[1], 1, özelliğin bir Boole değerine sahip olduğunu gösterir
  • configArray[2], 1, özelliğin tam sayı değerine sahip olduğunu gösterir
  • configArray[3], sayı, mülkte Integer[] boyutunu gösterir
  • configArray[4], 1, mülkün Long değerine sahip olduğunu belirtir
  • configArray[5], sayı, mülkte Long[] boyutunu gösterir
  • configArray[6], 1, özelliğin bir Kayan değer değerine sahip olduğunu gösterir
  • configArray[7], sayı, mülkte Float[] boyutunu belirtir
  • configArray[8], sayı, özellikteki baytın[] boyutunu gösterir.

Örneğin, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0}, özelliğin bir dize değeri, bir boole değeri, bir tam sayı değeri ve üç tam sayı içeren bir dizi içerdiğini gösterir.

Alan kimliği yapılandırması

Her mülk yapılandırması, alan kimliği yapılandırmalarının bir listesini de içerebilir. Bu liste, global mülkler için isteğe bağlıdır ve bölgelendirilmiş mülkler (birden fazla desteklenen alana sahip mülkler) için zorunludur. Her alan kimliği yapılandırmasında aşağıdaki alanlar bulunur.

Alan Açıklama
areaId Bu bölgenin kimliği. Alan kimlikleri bölümüne bakın.
minInt32Value ve maxInt32Value
  • INT32 türündeki mülkler için isteğe bağlı minimum ve maksimum değer. Diğer tüm türler için yoksayılır. Her ikisi de 0 ise yoksayılır.
  • Genel mülk için minimum ve maksimum değerin tanımlanması gerekiyorsa 0 bölge kimliğine sahip bir bölge yapılandırması kullanılmalıdır.
minInt64Value ve maxInt64Value
  • INT64 türü mülkler için isteğe bağlı minimum ve maksimum değerler. Diğer tüm türler için yoksayılır. Her ikisi de 0 ise yoksayılır.
  • Genel mülk için minimum ve maksimum değerin tanımlanması gerekiyorsa 0 bölge kimliğine sahip bir bölge yapılandırması kullanılmalıdır.
minFloatValue ve maxFloatValue
  • Float türündeki özellikler için isteğe bağlı minimum ve maksimum değer. Diğer tüm türler için yoksayılır. İkisi de 0,0 ise yoksayılır.
  • Global mülk için minimum ve maksimum değerin tanımlanması gerekiyorsa alan kimliği 0 olan bir alan yapılandırması kullanılmalıdır.
(Android 14'te yeni)
supportedEnumValues
  • Mülk, enum türü mülkü olarak tanımlanmışsa desteklenen değerlerin isteğe bağlı listesi. Belirtilmemişse (boş) veya Android 14'ten önceyse tüm enum değerlerinin desteklendiği varsayılır.
  • Genel mülk için desteklenen enum değerlerinin tanımlanması gerekiyorsa bölge kimliği 0 olan bir bölge yapılandırması kullanılmalıdır.

Alan türleri

VehicleArea.aidl içinde enum olarak tanımlanır. Desteklenen alan türleri aşağıda listelenmiştir.

Alan türü Değer Açıklama
GLOBAL 0x01000000 Bu mülk küresel bir mülktür ve birden fazla alanı yoktur.
DÖNEMSEL 0x03000000 Pencereye göre alan, VehicleAreaWindow numaralandırmasını kullanır.
MIRROR 0x04000000 Aynalar temelli alan, VehicleAreaMirror enum kullanır.
SEAT 0x05000000 Koltuğa dayalı alan, VehicleAreaSeat enum kullanır.
KAPI 0x06000000 Kapılara dayalı alan, VehicleAreaDoor enum kullanır.
WHEEL 0x07000000 Tekerleklere dayalı alan, VehicleAreaWheel enum kullanır.

Her imar planı bölgesi, önceden tanımlanmış bir alan türü kullanmalıdır. Her alan türünün, alan türü için bir enum içinde tanımlanmış bir dizi bit işareti vardır. Örneğin, SEAT alanı VehicleAreaSeat enum'larını tanımlar:

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

Alan kimlikleri

Bölgelendirilmiş mülkler, alan kimlikleri aracılığıyla adreslenir. Her bölgeye ayrılmış mülk, bir veya daha fazla alan kimliğini destekleyebilir. Alan kimliği, ilgili enum'daki bir veya daha fazla işaretten oluşur. Örneğin, VehicleAreaSeat kullanan bir mülk aşağıdaki Alan Kimliklerini kullanabilir:

Öğe Açıklama
ROW_1_LEFT | ROW_1_RIGHT Alan kimliği her iki ön koltuk için de geçerlidir.
ROW_2_LEFT Yalnızca arka sol koltuk için geçerlidir.
ROW_2_RIGHT Yalnızca sağ arka koltuk için geçerlidir.

Daha fazla bilgi için Isıtma, Havalandırma ve Soğutma başlıklı makaleyi inceleyin.