एचआईडीएल वाले वीएचएएल को एआईडीएल वाले वीएचएएल में माइग्रेट करने के लिए, IVehicleHardware
इंटरफ़ेस को लागू करने के लिए, एआईडीएल रेफ़रंस लागू करने वाले स्ट्रक्चर का इस्तेमाल करें.
अगर मौजूदा एचआईडीएल लागू करने का तरीका भी एचआईडीएल रेफ़रंस लागू करने का तरीका के मुताबिक है, तो इसका मतलब है कि वेंडर ने VehicleHal
क्लास लागू कर दिया है. IVehicleHardware
,
VehicleHal
से काफ़ी मिलता-जुलता है.
HIDL VHAL | एआईडीएल वीएचएएल |
---|---|
getAllPropertyConfigs() |
VehicleHal.listProperties() के बराबर किराया |
getValues(callback, requests) |
हर अनुरोध के लिए VehicleHal.get() को कॉल कर सकता है और कॉलबैक को कॉल कर सकता है.
|
dump() |
VehicleHal.dump() के बराबर किराया |
checkHealth() |
VehicleHal.get() को वापस लाया जा सकता है |
registerPropertyChangeCallback() |
VehicleHal.mOnHalEvent सेटिंग से मिलती-जुलती |
एआईडीएल में टाइप के अंतर
HIDL VHAL से AIDL VHAL पर माइग्रेट करते समय, इन अंतरों का ध्यान रखें.
- HIDL,
types.hal
से जनरेट किए गए सभी टाइप के लिए एक हेडर फ़ाइल (types.h
) जनरेट करता है. AIDL, हर टाइप के लिए एक हेडर फ़ाइल जनरेट करता है. उदाहरण के लिए,VehiclePropValue.aidl
सेVehiclePropValue.h
.इसलिए, आपको अपनी ज़रूरत के हिसाब से सभी हेडर फ़ाइलें शामिल करनी होंगी.
VehicleHalUtils
लाइब्रेरी में मौजूदVehicleHalTypes.h
हेल्पर फ़ाइल में, आम तौर पर इस्तेमाल होने वाले ज़्यादातर टाइप शामिल होते हैं. types.hal
में तय किए गए सभी टाइप, एआईडीएल में एक जैसे होते हैं. हालांकि, इनमें ये टाइप शामिल नहीं होते:SubscribeFlags
को हटा दिया गया है, क्योंकि इसका इस्तेमाल नहीं किया जाता है, क्योंकिonPropertySet
को हटा दिया गया हैUserFlags
को अबUserInfo.aidl
में तय किया गया है और इसे सूची के बजाय, फ़्लैग के तौर पर तय किया जाना चाहिए. उपयोगकर्ता फ़्लैग फ़ील्ड एक पूर्णांक होता है, जिसमें कईUserInfo.USER_FLAG_XXX
बिट-या एक साथ होते हैं.VehiclePropValue
मेंRawValue
का नाम बदलकरRawPropValue
कर दिया गया हैRawValue
मेंbytes
का नाम बदलकरbyteValues
कर दिया गया है
इसके बजाय ... | इस्तेमाल करें |
---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |