সফটওয়্যার ডিফাইন্ড ভেহিকেল (SDV) প্ল্যাটফর্মের কোডবেস জুড়ে অসংখ্য VSIDL ক্যাটালগ রয়েছে। CATALOG_UPDATE ফাইলটি প্রতিটি ক্যাটালগের জন্য একটি কেন্দ্রীভূত কনফিগারেশন প্রদান করে, যা স্বয়ংক্রিয় আপডেট এবং IDE ইন্টিগ্রেশন উভয়ই সক্ষম করে।
CATALOG_UPDATE ফাইলের ভূমিকা
CATALOG_UPDATE ফাইলটির দুটি প্রধান উদ্দেশ্য রয়েছে:
- স্বয়ংক্রিয় আপডেট: কম্পাইলার বা ডিপেন্ডেন্সি পরিবর্তিত হলে, এই ফাইলটি
regeneratorটুলকে সিস্টেমের সমস্ত ক্যাটালগ খুঁজে বের করে পুনরায় কম্পাইল করতে সাহায্য করে। - ল্যাঙ্গুয়েজ সার্ভার প্রোটোকল (LSP) সাপোর্ট: VSIDL ল্যাঙ্গুয়েজ সার্ভার ক্যাটালগ রুট খুঁজে বের করতে এবং নির্ভরতা সমাধান করতে এই ফাইলটি ব্যবহার করে। এটি অন্যান্য ক্যাটালগে সংজ্ঞায়িত টাইপগুলির জন্য "গো টু ডেফিনিশন," অটোকমপ্লিশন এবং রিয়েল-টাইম ভ্যালিডেশনের মতো বৈশিষ্ট্যগুলি সক্ষম করে।
একটি ক্যাটালগ কনফিগার করুন
একটি VSIDL ক্যাটালগের জন্য স্বয়ংক্রিয় আপডেট এবং LSP সমর্থন সক্রিয় করতে, ক্যাটালগটির রুট ডিরেক্টরিতে একটি CATALOG_UPDATE ফাইল তৈরি করুন। এই ফাইলটি একটি টেক্সট প্রোটোবাফ ফাইল।
ক্যাটালগ কনফিগারেশন ক্ষেত্রগুলি
-
output_path(স্ট্রিং, ঐচ্ছিক): ক্যাটালগ রুট থেকে সেই ডিরেক্টরির আপেক্ষিক পথ, যেখানে তৈরি করা মিডলওয়্যার কোড রাখা হবে। -
dependency_catalog_paths(পুনরাবৃত্ত স্ট্রিং): অন্যান্য ক্যাটালগ ডিরেক্টরিগুলির আপেক্ষিক পাথের একটি তালিকা। LSP সার্ভার এক্সটার্নাল টাইপগুলি রিজলভ করার জন্য এই পাথগুলি ব্যবহার করে। -
vsidlc_gen_args(স্ট্রিং, ঐচ্ছিক):vsidlcতে প্রেরিত আর্গুমেন্টসমূহ। LSP সার্ভার সঠিক বৈধতা বিধি (যেমন,"--apex") প্রয়োগ করার জন্য এগুলি পরীক্ষা করে। -
prebuilts_output_path(স্ট্রিং, ঐচ্ছিক): তৈরি করা রানটাইম কনফিগারেশন প্রি-বিল্টগুলোর জন্য পাথ। -
prebuilts_filegroup(স্ট্রিং, ঐচ্ছিক): প্রি-বিল্টগুলোর জন্য Soongfilegroupনাম।
উদাহরণ কনফিগারেশন
# proto-file: //system/software_defined_vehicle/tools/regenerator/proto/catalog.proto
# proto-message: Catalog
output_path: ".."
dependency_catalog_paths: "../../../../../automotive_services/diagnostics/vsidl/v1"
vsidlc_gen_args: "--apex"
কেন স্বয়ংক্রিয় আপডেট প্রয়োজন
বিভিন্ন কারণে প্রতিটি ক্যাটালগের জন্য তৈরি করা কোড ম্যানুয়ালি রক্ষণাবেক্ষণ করা সমস্যাজনক:
- কম্পাইলার আপডেট: যখন বাগ ফিক্স বা নতুন ফিচার সহ কম্পাইলার আপডেট করা হয়, তখন সামঞ্জস্য বজায় রাখার জন্য
Android.bpফাইলের কোনোgenruleদ্বারা আচ্ছাদিত নয় এমন সমস্ত জেনারেটেড কোড এবং ফাইল রিফ্রেশ করা উচিত। - নির্ভরশীলতা ব্যবস্থাপনা: মূল ক্যাটালগে কোনো পরিবর্তনের ফলে প্রায়শই পরবর্তী ক্যাটালগগুলোকে পুনরায় তৈরি করার প্রয়োজন হয়।
- নির্ভুলতা: স্বয়ংক্রিয় আপডেট পাথ এবং ডিপেন্ডেন্সি নির্দিষ্ট করার সময় মানুষের ভুলের ঝুঁকি কমিয়ে দেয়।
রিজেনারেটর টুলটি চালান
regenerator টুলটি SDV রুট থেকে ডিরেক্টরি ট্রি-তে অনুসন্ধান শুরু করে এবং হুবহু CATALOG_UPDATE নামের ফাইলগুলো খোঁজে।
সমস্ত কনফিগার করা ক্যাটালগ আপডেট করতে:
টুলটি তৈরি করুন:
m regeneratorটুলটি চালান:
regeneratorঐচ্ছিকভাবে, একটি নির্দিষ্ট ডিরেক্টরির জন্য এটি রিকার্সিভলি চালান:
console regenerator --root /path/to/directory
টুলটি তৈরি করা ফাইলগুলো আপডেট করে এবং পরিবর্তনগুলো সিস্টেমের বাকি অংশের সাথে সামঞ্জস্যপূর্ণ কিনা তা যাচাই করার জন্য একটি সম্পূর্ণ বিল্ড ( m droid ) সম্পাদন করে।