HIDL VHAL মাইগ্রেশন গাইড

বিদ্যমান HIDL VHAL ইমপ্লিমেন্টেশনকে AIDL VHAL-এ মাইগ্রেট করতে, AIDL রেফারেন্স ইমপ্লিমেন্টেশন স্ট্রাকচার ব্যবহার করে IVehicleHardware ইন্টারফেসটি ইমপ্লিমেন্ট করুন।

যদি বিদ্যমান HIDL ইমপ্লিমেন্টেশনটিও HIDL রেফারেন্স ইমপ্লিমেন্টেশন অনুসরণ করে, তাহলে ভেন্ডর VehicleHal ক্লাসটি ইমপ্লিমেন্ট করেছে। IVehicleHardware VehicleHal সাথে খুবই সাদৃশ্যপূর্ণ।

HIDL VHAL AIDL VHAL
getAllPropertyConfigs() VehicleHal.listProperties() এর মতোই
getValues(callback, requests) প্রতিটি অনুরোধের জন্য VehicleHal.get() এবং কলব্যাক কল করা যায়।
dump() VehicleHal.dump() এর মতোই
checkHealth() VehicleHal.get() ফেরত দিতে পারে
registerPropertyChangeCallback() VehicleHal.mOnHalEvent সেট করার অনুরূপ

AIDL-এ প্রকারের পার্থক্য

HIDL VHAL থেকে AIDL VHAL-এ স্থানান্তরের সময় এই পার্থক্যগুলো বিবেচনা করুন।

  1. HIDL, types.hal থেকে তৈরি হওয়া সমস্ত টাইপের জন্য একটি হেডার ফাইল ( types.h ) তৈরি করে। AIDL প্রতিটি টাইপের জন্য একটি করে হেডার ফাইল তৈরি করে। উদাহরণস্বরূপ, VehiclePropValue.h থেকে VehiclePropValue.aidl

    ফলস্বরূপ, আপনার প্রয়োজনীয় টাইপগুলোর জন্য সমস্ত হেডার ফাইল অন্তর্ভুক্ত করতে হবে। 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 এ সংজ্ঞায়িত সমস্ত টাইপ AIDL-এ একই, শুধুমাত্র নিম্নলিখিত ব্যতিক্রমগুলি ছাড়া :
    • onPropertySet সরিয়ে ফেলার কারণে SubscribeFlags আর ব্যবহৃত হয় না, তাই এটিও সরিয়ে ফেলা হয়েছে।
    • UserFlags এখন UserInfo.aidl এ সংজ্ঞায়িত করা হয়েছে এবং এটিকে enum-এর পরিবর্তে একটি flag হিসেবে সংজ্ঞায়িত করা উচিত। একটি ইউজার ফ্ল্যাগ ফিল্ড হলো একটি পূর্ণসংখ্যা যা একাধিক UserInfo.USER_FLAG_XXX একসাথে bit-or করে।
    • VehiclePropValue এর মধ্যে থাকা RawValue RawPropValue নামে পরিবর্তন করা হয়েছে।
    • RawValue এর bytes byteValues ​​হিসেবে পুনঃনামকরণ করা হয়েছে