HIDL VHAL माइग्रेशन गाइड

एचआईडीएल वाले वीएचएएल को एआईडीएल वाले वीएचएएल में माइग्रेट करने के लिए, 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 पर माइग्रेट करते समय, इन अंतरों का ध्यान रखें.

  1. HIDL, types.hal से जनरेट किए गए सभी टाइप के लिए एक हेडर फ़ाइल (types.h) जनरेट करता है. AIDL, हर टाइप के लिए एक हेडर फ़ाइल जनरेट करता है. उदाहरण के लिए, VehiclePropValue.aidl से VehiclePropValue.h.

    इसलिए, आपको अपनी ज़रूरत के हिसाब से सभी हेडर फ़ाइलें शामिल करनी होंगी. VehicleHalUtils लाइब्रेरी में मौजूद VehicleHalTypes.h हेल्पर फ़ाइल में, आम तौर पर इस्तेमाल होने वाले ज़्यादातर टाइप शामिल होते हैं.

  2. इसके बजाय ... इस्तेमाल करें
    hidl_vec std::vector
    hidl_string std::string
    android::sp std::shared_ptr
    android::wp std::weak_ptr
  3. types.hal में तय किए गए सभी टाइप, एआईडीएल में एक जैसे होते हैं. हालांकि, इनमें ये टाइप शामिल नहीं होते:
    • SubscribeFlags को हटा दिया गया है, क्योंकि इसका इस्तेमाल नहीं किया जाता है, क्योंकि onPropertySet को हटा दिया गया है
    • UserFlags को अब UserInfo.aidl में तय किया गया है और इसे सूची के बजाय, फ़्लैग के तौर पर तय किया जाना चाहिए. उपयोगकर्ता फ़्लैग फ़ील्ड एक पूर्णांक होता है, जिसमें कई UserInfo.USER_FLAG_XXX बिट-या एक साथ होते हैं.
    • VehiclePropValue में RawValue का नाम बदलकर RawPropValue कर दिया गया है
    • RawValue में bytes का नाम बदलकर byteValues कर दिया गया है