किसी मौजूदा HIDL VHAL को AIDL VHAL पर माइग्रेट करने के लिए, IVehicleHardware
इंटरफ़ेस को लागू करने के लिए, AIDL रेफ़रंस लागू करने वाले स्ट्रक्चर का इस्तेमाल करें.
अगर मौजूदा HIDL लागू करने का तरीका भी HIDL रेफ़रंस लागू करने का तरीका के मुताबिक है, तो इसका मतलब है कि वेंडर ने VehicleHal
क्लास लागू कर दिया है. IVehicleHardware
,
VehicleHal
से काफ़ी मिलता-जुलता है.
एचआईडीएल वीएचएल | AIDL VHAL |
---|---|
getAllPropertyConfigs() |
VehicleHal.listProperties() के बराबर किराया |
getValues(callback, requests) |
हर अनुरोध के लिए VehicleHal.get() को कॉल कर सकता है और कॉलबैक को कॉल कर सकता है.
|
dump() |
VehicleHal.dump() के बराबर किराया |
checkHealth() |
VehicleHal.get() को वापस लाया जा सकता है |
registerPropertyChangeCallback() |
VehicleHal.mOnHalEvent सेटिंग से मिलता-जुलता |
एआईडीएल में टाइप में अंतर
HIDL VHAL से AIDL VHAL पर माइग्रेट करते समय, इन अंतरों का ध्यान रखें.
- HIDL एक हेडर फ़ाइल (
types.h
) जनरेट करता है. यहtypes.hal
से जनरेट होने वाले सभी टाइप के लिए होता है. AIDL, हर टाइप के लिए एक हेडर फ़ाइल जनरेट करता है. उदाहरण के लिए,VehiclePropValue.aidl
सेVehiclePropValue.h
.इसलिए, आपको अपनी ज़रूरत के हिसाब से सभी हेडर फ़ाइलें शामिल करनी होंगी.
VehicleHalUtils
लाइब्रेरी में मौजूदVehicleHalTypes.h
हेल्पर फ़ाइल में, इनमें से ज़्यादातर सामान्य टाइप को शामिल किया गया है. types.hal
में बताए गए सभी टाइप, एआईडीएल में एक जैसे हैं इसे छोड़कर:SubscribeFlags
को हटा दिया गया है, क्योंकि इसका इस्तेमाल नहीं किया गया है, क्योंकिonPropertySet
को हटा दिया गया हैUserFlags
की जानकारी अबUserInfo.aidl
में दी गई है. इसे enum के बजाय, फ़्लैग के तौर पर बताया जाना चाहिए. उपयोगकर्ता फ़्लैग फ़ील्ड एक पूर्णांक होता है, जिसमें एक से ज़्यादा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 |