Özellik yapılandırmaları

Desteklenen her özellik, VehiclePropConfig yapısı aracılığıyla tanımlanan bir özellik konfigürasyonu tarafından belirtilir ve aşağıdaki alanlara sahiptir.

Alan Tanım
prop

Mülk kimliği. Bu, Desteklenen Sistem Özellikleri'nde tanımlanan sistem özelliklerinden biri veya bir satıcı özelliği olmalıdır. Özellik kimliği aşağıdaki alanlardan (sağdan sola) bit-veya kullanılarak oluşturulur:

  • (0x0000 0000 ) 16 bit: 0x0100 - 0xffff aralığında benzersiz bir kimlik.
  • (0x00 00 0000) 8 bit: Özelliğin türünü tanımlayan özellik türleri .
  • (0x0 0 000000) 4 bit: Alan türleri .
  • (0x 0 0000000) 4 bit: VehiclePropertyGroup > Bu ya SYSTEM (0x10000000) ya da VENDOR (0x20000000)'dur. Özelleştirebileceğiniz özellikler için Satıcı Özellikleri'ne bakın.

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

access Özelliğin erişim modu. READ , WRITE veya READ_WRITE değerlerinden biri olmalıdır. Bu , Desteklenen Sistem Özellikleri'nde tanımlanan erişim moduna eşit olmalıdır.
changeMode
  • Özelliğin modunu değiştirin. STATIC , ON_CHANGE veya CONTINUOUS biri olmalıdır. STATIC , özellik değerinin sistem önyüklemesinden sonra asla değişmediği anlamına gelir. ON_CHANGE değer değiştiğinde VHAL'in rapor vermesi gerektiği anlamına gelir. CONTINUOUS , özellik değerinin sürekli değiştiği ve VHAL'in abonelik örnek hızına göre raporlama yapması gerektiği anlamına gelir.
  • Değişiklik modu, Desteklenen Sistem Özellikleri'nde tanımlanan değişiklik moduna eşit olmalıdır.
configArray Özelliğe özgü konfigürasyonu içeren isteğe bağlı bir dizi. Boş olabilir.
configString Özelliğe özgü konfigürasyonu içeren isteğe bağlı bir dize. Boş olabilir.
minSampleRate ve maxSampleRate

Sürekli özellik için desteklenen minimum ve maksimum örnekleme hızı. Özellik sürekli değilse kullanılmaz.

Mülk türleri

VehiclePropertyType.aidl dosyasında numaralandırmalar olarak tanımlanır. Desteklenen özellik türleri aşağıdaki tabloda listelenmiştir.

Emlak Tipi Değer Tanım
SİCİM 0x00100000 String özelliği, Araç Özellik Değeri'ndeki stringValue alanını kullanır.
BOOLE 0x00200000 Boolean özelliği, Araç özelliği değeri içindeki int32Values ​​alanındaki ilk öğeyi kullanır. 0 false anlamına gelir, None 0 true anlamına gelir.
INT32 0x00400000 Integer özelliği, Araç özelliği value içindeki int32Values ​​alanındaki ilk öğeyi kullanır.
INT32_VEC 0x00410000 Integer[] özelliği, Araç özelliği value içindeki int32Values ​​alanındaki öğeleri kullanır.
INT64 0x00500000 Long özelliği, Araç özellik değeri içindeki int64Values ​​alanındaki ilk öğeyi kullanır.
INT64_VEC 0x00510000 Long[] özelliği, Araç özelliği değeri içindeki int64Values ​​alanındaki öğeleri kullanır.
BATMADAN YÜZMEK 0x00600000 Float özelliği, Araç özelliği değeri içindeki floatValues ​​alanındaki ilk öğeyi kullanır.
FLOAT_VEC 0x00610000 Float[] özelliği, Araç özelliği değeri içindeki floatValues ​​alanındaki öğeleri kullanır.
bayt 0x00700000 byte[] özelliği, Araç özelliği değeri içindeki byteValues ​​alanındaki öğeleri kullanır.
KARIŞIK 0x00e00000 Karışık tip özelliği. Skaler veya vektör türlerinin herhangi bir kombinasyonu. Özellik yapılandırmasındaki yapılandırma dizisinde tam formatın sağlanması gerekir.

Satıcının MIXED türü özellikleri için configArray'in bu yapıda biçimlendirilmesi gerekir:

  • configArray[0], 1, özelliğin bir String değerine sahip olduğunu gösterir
  • configArray[1], 1, özelliğin bir Boolean değerine sahip olduğunu gösterir
  • configArray[2], 1, özelliğin bir Tamsayı değerine sahip olduğunu gösterir
  • configArray[3], sayı özellikteki Tamsayı[]'nın boyutunu gösterir
  • configArray[4], 1, özelliğin Long değerine sahip olduğunu gösterir
  • configArray[5], sayı özellikteki Long[] boyutunu belirtir
  • configArray[6], 1, özelliğin bir Float değerine sahip olduğunu gösterir
  • configArray[7], sayı, özellikteki Float[]'ın boyutunu gösterir
  • configArray[8], sayı, özellikteki bayt[] boyutunu gösterir.

Örneğin, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} özelliğin bir String değerine, bir Boolean değerine, bir Tamsayı değerine ve üç tam sayıdan oluşan bir diziye sahip olduğunu belirtir.

Alan Kimliği yapılandırması

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

Alan Tanım
areaId Bu alanın kimliği. Bkz. Alan Kimlikleri .
minInt32Value ve maxInt32Value
  • INT32 tipi özellikler için isteğe bağlı minimum ve maksimum değer. Diğer tüm türler için göz ardı edildi. Her ikisi de 0 ise dikkate alınmaz.
  • Global özellik için minimum ve maksimum değerin tanımlanması gerekiyorsa alan kimliği 0 olan bir alan konfigürasyonu kullanılmalıdır.
minInt64Value ve maxInt64Value
  • INT64 tipi özellikler için isteğe bağlı minimum ve maksimum değer. Diğer tüm türler için göz ardı edildi. Her ikisi de 0 ise dikkate alınmaz.
  • Global özellik için minimum ve maksimum değerin tanımlanması gerekiyorsa alan kimliği 0 olan bir alan konfigürasyonu kullanılmalıdır.
minFloatValue ve maxFloatValue
  • Float tipi özellikler için isteğe bağlı minimum ve maksimum değer. Diğer tüm türler için göz ardı edildi. Her ikisi de 0,0 ise dikkate alınmaz.
  • Global özellik için minimum ve maksimum değerin tanımlanması gerekiyorsa alan kimliği 0 olan bir alan konfigürasyonu kullanılmalıdır.
( Android 14'te yeni )
supportedEnumValues
  • Özellik bir numaralandırma türü özelliği olarak tanımlandıysa desteklenen değerlerin isteğe bağlı listesi. Belirtilmezse (boş) veya Android 14'ten önceyse tüm numaralandırma değerlerinin desteklendiği varsayılır.
  • Genel özellik için desteklenen numaralandırma değerlerinin tanımlanması gerekiyorsa alan kimliği 0 olan bir alan yapılandırması kullanılmalıdır.

Alan türleri

VehicleArea.aidl dosyasında numaralandırmalar olarak tanımlanır. Desteklenen alan türleri aşağıda listelenmiştir.

Alan türü Değer Tanım
KÜRESEL 0x01000000 Bu mülk küresel bir mülktür ve birden fazla alana sahip değildir.
PENCERE 0x03000000 Pencereleri temel alan alan, VehicleAreaWindow numaralandırmasını kullanır.
AYNA 0x04000000 Aynaları temel alan alan, VehicleAreaMirror numaralandırmasını kullanır.
KOLTUK 0x05000000 Koltuklara dayalı alan, VehicleAreaSeat numaralandırmasını kullanır.
KAPI 0x06000000 Kapıları temel alan alan, VehicleAreaDoor numaralandırmasını kullanır.
TEKER 0x07000000 Tekerlekleri temel alan alan, VehicleAreaWheel numaralandırmasını kullanır.

Her imarlı mülkün önceden tanımlanmış bir alan türü kullanması gerekir. Her alan tipi, alan tipi için bir numaralandırmada tanımlanan bir dizi bit bayrağına sahiptir. Örneğin SEAT alanı, VehicleAreaSeat numaralandırmaları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

İmarlı mülkler Alan Kimlikleri aracılığıyla adreslenir. Her imarlı mülk bir veya daha fazla Alan Kimliğini destekleyebilir. Bir Alan Kimliği, ilgili numaralandırmadaki bir veya daha fazla işaretten oluşur. Örneğin, VehicleAreaSeat kullanan bir mülk aşağıdaki Alan Kimliklerini kullanabilir:

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

Daha fazla bilgi edinmek için HVAC'a bakın.