Mülk yapılandırmaları

Desteklenen her mülk, VehiclePropConfig yapısı üzerinden 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 değer, Desteklenen Sistem Özellikleri bölümünde tanımlanan erişim moduyla eşleşmelidir.
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, VHAL'ın değer değiştiğinde bildirmesi gerektiği anlamına gelir. CONTINUOUS, özellik değerinin sürekli olarak değiştiği ve VHAL'in abonelik örnek oranına göre raporlanması 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 örnekleme hızı. Mülk sürekli değilse kullanılmaz.

Tesis 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 mülkü, Araç Mülk Değeri'ndeki 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 ise true anlamına gelir.
INT32 0x00400000 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.
INT64 0x00500000 Uzun mülk, Araç mülkü değeri alanındaki int64Values alanındaki ilk öğeyi kullanır.
INT64_VEC 0x00510000 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 Float[] mülkü, Araç mülk değeri alanındaki floatValues alanındaki öğeleri kullanır.
BAYT 0x00700000 byte[] mülkü, 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, mülkün dize değerine sahip olduğunu gösterir
  • configArray[1], 1, özelliğin Boole değerine sahip olduğunu gösterir
  • configArray[2], 1, mülkün 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 gösterir
  • configArray[5], sayı, mülkte Long[] boyutunu gösterir
  • configArray[6], 1, mülkün kayan noktalı değere sahip olduğunu gösterir
  • configArray[7], sayı, mülkte Float[] boyutunu gösterir
  • configArray[8], sayı, mülkte byte[] değerinin 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 alanın 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ü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.
minFloatValue ve maxFloatValue
  • Kayan nokta 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.
  • 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.
(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
KÜRESEL 0x01000000 Bu mülk küresel bir mülktür ve birden fazla alanı yoktur.
WINDOW 0x03000000 Pencerelere dayalı alan, VehicleAreaWindow enum 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.