Android Automotive OS (AAOS), aşağıdaki işlemleri gerçekleştirmek için kullanılan VHAL özelliklerini içerir: bir emülatörün VHAL penceresinde görüntülenebilir. Sonuç olarak, sitenizde yer alan birçok bilgiyi VHAL'ler hakkında bilgi (ör. adlar, açıklamalar ve değerlerin anlamı). Bilgiler, kodu, VHAL mülklerinin meta verilerinden ayıklanır ve QEMU emülatörü.
Cihazlarınızda özel kullanım için kendi VHAL mülklerinizi eklediğinizde VHAL meta verilerini görüntüleme kodunu değiştirmeniz ve özelleştirilmiş bir QEMU emülatörü oluşturmanız gerekir. Alıcı: Bu sorunu çözmek için kendi açıklamalarınızı JSON biçiminde, dilerseniz de kendi açıklamalarınızı görüntüsüdür.
Genel Bakış
Bu sayfada, AAOS emülatöründe VHAL özellikleri açıklamalarını nasıl genişletebileceğiniz açıklanmaktadır.
VHAL özelliklerini genişletmek için JSON meta verileri oluşturma
Emülatör, -types-meta.json
ile biten tüm dosyalarda ek meta veri arar
Android Sanal Cihaz (AVD) yolunda JSON dosyalarının bir dizi
Enum
nesne aşağıda gösterildiği gibidir.
Sıralama nesnesi
VehicleProperty
adlı Enum
nesnesi, That'teki özel bir durumdur.
bunu bir kök olarak düşünebilirsiniz. İçerikleri, araç özellikleri haritasına eklenir. Diğer
Enums
(VehicleProperty
dışında bir adla), adların haritalarını tanımlar
seçmeniz gerekir.
Enum: { "name" : String, "values" : Array of { ValueObject } }
DeğerNesnesi
ValueObject: { "name" : String, "value" : Integer, "data_enum" : String, VehicleProperty only, optional, }
VehicleProperty
için Enum
adı bunun nasıl olduğunu açıklar
özelliği, emülatörün VHAL penceresinde görüntülenir. Değer
ValueObject
tarafından açıklanan özelliğin property_id
.
data_enum
, ValueObject
öğesini başka bir Enum
ile ilişkilendirir.
Bu ilişkilendirme, bir değeri okunabilir bir dizeyle eşlemek için kullanılır ve yalnızca
VehicleProperty
için Enum
wicket'ta ValueObjects
.
Aşağıda bir VehicleProperty
örneği verilmiştir:
[ { "name": "VehicleProperty", "values": [ { "name": "CURRENT_GEAR", "value": 289408001 } ] } ]
Bu örnekte, value
değerine sahip bir property_id
289408001, CURRENT_GEAR
için name
olarak sağlanır.
Bu özellik emülatörde zaten Current Gear adıyla sabit kodlanmıştır.
(Bu sayfa, sabit kodlu tüm dosyalar kaldırıldıktan sonra yazıldığı için bu senaryoyu yeniden oluşturamazsınız
özel mülk olabilir.)
Şekil 1. VehicleProperty, ad ve değeriyle tanımlanır.
Emülatörün VHAL Özellikleri sekmesinde ad, okunacak şekilde yenilenir.
Beklendiği gibi CURRENT_GEAR
.
veri_sıralaması
Yukarıdaki örnekte, dişli çark olarak ayarlandığında görüntülenen değer 4'tür. P.
Şekil 2. Değer 4 olarak gösterilir.
Amaçlandığı gibi emülatördeki VHAL Özellikleri sekmesinde ad şu şekilde görünür:
CURRENT_GEAR
. Bu,
P.
enum VehicleGear { GEAR_UNKNOWN = 0x0000, GEAR_NEUTRAL = 0x0001, GEAR_REVERSE = 0x0002, GEAR_PARK = 0x0004, GEAR_DRIVE = 0x0008, GEAR_1 = 0x0010, GEAR_2 = 0x0020, GEAR_3 = 0x0040, GEAR_4 = 0x0080, GEAR_5 = 0x0100, GEAR_6 = 0x0200, GEAR_7 = 0x0400, GEAR_8 = 0x0800, GEAR_9 = 0x1000, }
Daha fazla bilgi edinmek için AIDL belirler.
AIDL'de tanımlandığı gibi, Park dişlisinin değeri 4'tür.
4 değerini P'ye çevirmeniz gerektiği anlamına gelir. Bu aşamada
bu özellik değerini başka bir yerde okunabilir bir dizeyle eşleyen data_enum
kullanın
Enum
. Emülatör, mülk değerlerini çevirmek için bu haritayı kullanır. Örnek:
[ { "name": "VehicleProperty", "values": [ { "name": "CURRENT_GEAR", "value": 289408001, "data_enum": "VehicleGear" } ] }, { "name": "VehicleGear", "values": [ { "name": "GEAR_UNKNOWN", "value": 0 }, { "name": "GEAR_PARK", "value": 4 } ] } ]
Emülatörün Enum
kullanması için "data_enum": "VehicleGear"
ekleyin
VehicleGear
olarak adlandırıldı. Başka bir Enum
ekle
VehicleGear
adlı bir ValueObject
dizisidir. Burada
özellik değeri (değerle birlikte) bir ad olarak görüntülenmelidir.
Şekil 3. Değer GEAR_PARK olarak gösteriliyor.
Emülatörün VHAL Özellikleri sekmesinde ad, okunmak üzere yenilenir.
Beklendiği gibi CURRENT_GEAR
. 4
özellik değeri şu şekilde görüntülenir:
GEAR_PARK
.
VHAL özelliklerini genişletmek için JSON meta verilerini kullanma
JSON meta verilerini kullanarak VHAL özelliklerinizi genişletmek için şu komutu çalıştırın: Python komut dosyası (Android kaynağında yer alır) AIDL.
Sonuçta ortaya çıkan JSON, change_mode
gibi bazı gereksiz değerler içerir.
access
ve unit
. Bu bilgiler VHAL mülkünün bir parçası olsa da
bu JSON değerleri, emülatörün VHAL özellik penceresinde gösterilenleri etkilemez.
Sistem görüntüsüne JSON meta verilerini ekleyin
Dosya adının -types-meta.json
ile bitmesi gerektiğini unutmayın. Değilse dosya
yoksayıldı.
Derleme hedefi ekleme
-types-meta.json
dosyasını PRODUCT_COPY_FILE
klasörüne ekleyin. Örneğin,
örnek:
PRODUCT_COPY_FILES += \ device/generic/car/common/vehicle-types-meta.json:vehicle-types-meta.json
Bu kod, dosyayı kök olan out/target/product/{your_target_path}/
klasörüne kopyalar
sayısını artırır.