এসডিভি টেলিমেট্রি একাধিক ধরনের ডেটা সোর্স সমর্থন করে। এই পৃষ্ঠায় এই প্রকারগুলো এবং প্রতিটি ডেটা সোর্সের ধরন অনুযায়ী টেলিমেট্রি কী কী বৈশিষ্ট্য সমর্থন করে, তার একটি সংক্ষিপ্ত বিবরণ দেওয়া হয়েছে।
ডেটা সোর্স বাস্তবায়নের জন্য নমুনা কোড system/software_defined_vehicle/samples/telemetry ডিরেক্টরিতে পাওয়া যাবে।
মেট্রিক্স কনফিগারেশনে ডেটা উৎসের সংজ্ঞা
মেট্রিক্স কনফিগারেশন এক বা একাধিক ডেটা সোর্স নির্ধারণ করে, যেখান থেকে মেট্রিক্স সংগ্রহ করা হবে। প্রতিটি ডেটা সোর্স তার source_identifier দ্বারা চিহ্নিত করা হয়। source_identifier এর ফরম্যাট ডেটা সোর্সের উপর নির্ভর করে:
| ডেটা উৎস | ফর্ম্যাট | বর্ণনা | উদাহরণ |
|---|---|---|---|
| এসডিভি পরিষেবা | প্রোটোবাফ বার্তার নাম | সম্পূর্ণ যোগ্য প্রোটোবাফ বার্তার নাম। যদি পরিষেবাটির একাধিক ইনস্ট্যান্স থাকে, তাহলে পাইপ ( | ) দ্বারা পৃথক করে পরিষেবা ইউনিটের নামটি যুক্ত করুন। | "com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam" |
| সার্ভিস ইউনিট নেম সহ সম্পূর্ণ যোগ্য ইনস্ট্যান্স নাম ( FQIN ) | FQIN এবং সার্ভিস ইউনিটের নাম একটি পাইপ ( | ) চিহ্ন দিয়ে আলাদা করা হয়। | "vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure" | |
| কনফিগারযোগ্য প্রকাশক রেজিস্ট্রি-ভিত্তিক প্রকাশক | প্রকাশকের নাম | কনফিগারযোগ্য পাবলিশার রেজিস্ট্রি-তে পাবলিশারকে নিবন্ধন করতে ব্যবহৃত সঠিক serviceName । | যেকোনো স্ট্রিংই বৈধ। |
প্রতিটি ডেটা সোর্সের জন্য, মেসেজ পুনরুদ্ধারকে প্যারামিটারাইজ করতে আপনি নিম্নলিখিত অপশনগুলো ব্যবহার করতে পারেন। আপনি একই মেট্রিক্স কনফিগারেশনে ভিন্ন ভিন্ন অপশন সহ একই ডেটা সোর্স একাধিকবার সংজ্ঞায়িত করতে পারেন। উদাহরণস্বরূপ, আপনি আপনার এজ প্রসেসিংয়ের কোনো একটি অংশের জন্য অন্য অংশগুলোর চেয়ে ভিন্ন একটি সাব-স্যাম্পলিং ইন্টারভাল ব্যবহার করতে পারেন।
| বিকল্প | প্রকার | বর্ণনা |
|---|---|---|
connection_type | SUBSCRIPTION অথবা ON_DEMAND | SUBSCRIPTION এ সেট করা থাকলে, টেলিমেট্রি পরিষেবাটি ডেটা সোর্সে সাবস্ক্রাইব করে। ON_DEMAND এ সেট করা থাকলে, টেলিমেট্রি পরিষেবাটি শুধুমাত্র চাহিদার ভিত্তিতে ডেটা সোর্স থেকে মেসেজ সংগ্রহ করে। |
configuration | google.protobuf.Any | সেট করা থাকলে, টেলিমেট্রি পরিষেবাটি ডেটা সোর্সের সাথে যোগাযোগের সময় কনফিগারেশন অবজেক্টটি পাঠিয়ে দেয়। |
sub_sampling_interval | google.protobuf.Duration | এটি সেট করা থাকলে, মেসেজগুলো উপ-নমুনা করা হয়, যাতে টেলিমেট্রি পরিষেবাটি সর্বাধিক প্রতি sub_sampling_interval সময়কালে একটি মেসেজ প্রসেস করে। |
fetch_last_message | bool | সেট করা থাকলে, ডেটা সোর্সে সাবস্ক্রাইব করার সময় টেলিমেট্রি সার্ভিসটি সর্বশেষ প্রকাশিত মেসেজটি সংগ্রহ করে, এমনকি সেই মেসেজটি অতীতে প্রকাশিত হয়ে থাকলেও। |
ডেটা উৎসের প্রকারভেদের উপর নির্ভর করে (পরবর্তী বিভাগগুলো দেখুন), টেলিমেট্রি পরিষেবা দ্বারা শুধুমাত্র কিছু নির্দিষ্ট প্যারামিটার সমর্থিত হয়। নিম্নলিখিত সারণিতে এর একটি সংক্ষিপ্ত বিবরণ দেওয়া হয়েছে।
| বিকল্প | আরপিসি এসডিভি পরিষেবা | প্রকাশ-সাবস্ক্রাইব (পাব/সাব) এসডিভি পরিষেবা | কনফিগারযোগ্য প্রকাশক রেজিস্ট্রি-ভিত্তিক প্রকাশক |
|---|---|---|---|
connection_type: SUBSCRIPTION | সমর্থিত ১ | সমর্থিত | সমর্থিত |
connection_type: ON_DEMAND | সমর্থিত ২ | সমর্থিত | সমর্থিত ৩ |
configuration | সমর্থিত | প্রযোজ্য নয় | সমর্থিত |
sub_sampling_interval | সমর্থিত নয় | সমর্থিত ৪ | সমর্থিত নয় |
fetch_last_message | সমর্থিত নয় | ৫ সমর্থিত | সমর্থিত নয় |
CreateSubscription মেথডটি ইমপ্লিমেন্ট করেন, তবে এটি সমর্থিত হবে।GetLatestMessage মেথডটি ইমপ্লিমেন্ট করেন।PublisherInfo.supportsGet true হয়।connection_type: SUBSCRIPTION জন্য সমর্থিত, connection_type: ON_DEMAND জন্য প্রযোজ্য নয়।connection_type: SUBSCRIPTION জন্য সমর্থিত, connection_type: ON_DEMAND জন্য প্রযোজ্য নয়।এসডিভি পরিষেবা (এসডিভি কমিউনিকেশন স্ট্যাকের মাধ্যমে)
টেলিমেট্রি সার্ভিস অন্যান্য SDV সার্ভিস থেকে ডেটা সংগ্রহ করতে পারে। RPC এবং pub/sub উভয় প্রকার SDV সার্ভিসই সমর্থিত। যেহেতু বিল্ড টাইমে টেলিমেট্রি সার্ভিসটি জানে না যে এটি কোন কোন সার্ভিসে সাবস্ক্রাইব করবে, তাই এটি SDV সার্ভিসগুলো থেকে প্রাপ্ত মেসেজ ডিকোড করার জন্য প্রোটোবাফ রিফ্লেকশনের উপর নির্ভর করে।
এসডিভি সার্ভিসগুলো ডিফল্টভাবে রিফ্লেকশন মেটাডেটা প্রদান করে না। একটি এসডিভি সার্ভিসকে টেলিমেট্রি ডেটা সোর্স হিসেবে ব্যবহারযোগ্য করতে হলে, আপনাকে অবশ্যই সার্ভিসটির ভিএসআইডিএল ক্যাটালগের রানটাইম কনফিগারেশন জেনারেশন সক্ষম করতে হবে। আরও তথ্যের জন্য, সার্ভিস বান্ডেল ডেভেলপারদের জন্য ভিএসআইডিএল প্রোভাইডার গাইড দেখুন।
শুধুমাত্র পরীক্ষা এবং মূল্যায়নের উদ্দেশ্যে, আপনি এর পরিবর্তে সার্ভিস বান্ডেল ডেফিনিশনে register_reflection_metadata অপশনটি true তে সেট করতে পারেন। আরও তথ্যের জন্য, সার্ভিস বান্ডেল দেখুন।
আরপিসি এসডিভি পরিষেবা
টেলিমেট্রিতে RPC SDV সার্ভিসের জন্য সীমিত সমর্থন রয়েছে। আরও তথ্যের জন্য, ‘RPC সার্ভিস সংজ্ঞায়িত করুন ’ দেখুন। একটি RPC SDV সার্ভিস থেকে ডেটা সংগ্রহ করতে হলে, সার্ভিসটিকে অবশ্যই নিম্নলিখিত এক বা উভয় RPC মেথড প্রকাশ করতে হবে:
CreateSubscriptionব্যবহারকারী-সংজ্ঞায়িত প্রতিক্রিয়াগুলির একটি ধারা ফেরত দেয়:rpc CreateSubscription(<configuration>) returns (stream <response>)GetLatestMessageএকটি ব্যবহারকারী-সংজ্ঞায়িত প্রতিক্রিয়া ফেরত দেয়:rpc GetLatestMessage(<configuration>) returns (<response>)
আপনি আপনার ডেটা সোর্সের আচরণকে প্যারামিটারাইজ করতে কনফিগারেশন আর্গুমেন্ট ব্যবহার করতে পারেন, যেমন, একটি ভিন্ন পাবলিশিং ফ্রিকোয়েন্সির অনুরোধ করতে অথবা আপনি যে এনটিটিতে সাবস্ক্রাইব করতে চান তা নির্বাচন করতে (উদাহরণস্বরূপ, কোন টায়ার থেকে টায়ারের প্রেশার পড়তে হবে)।
মেট্রিক্স কনফিগারেশনে একটি RPC SDV সার্ভিসকে ডেটা সোর্স হিসেবে সংজ্ঞায়িত করার সময়, আপনি ডেটা সোর্স ডেফিনিশনে একটি configuration ভ্যালু নির্দিষ্ট করতে পারেন, যা এই RPC-এর আর্গুমেন্ট হিসেবে ব্যবহৃত হয়। টেলিমেট্রি সার্ভিসটি কনফিগারেশন অবজেক্টটি স্বচ্ছভাবে পরিচালনা করে এবং আপনি যা কিছু সংজ্ঞায়িত করেন, তা পাস করে দেয়।
উভয় মেথডের জন্য কনফিগারেশন আর্গুমেন্টের টাইপ google.protobuf.Any অথবা ব্যবহারকারী-সংজ্ঞায়িত টাইপ হতে পারে। আপনি যদি উভয় মেথড প্রদান করেন, তবে আর্গুমেন্টের টাইপ অবশ্যই অভিন্ন হতে হবে। যদি এই RPC মেথডগুলোর জন্য আপনার কোনো কনফিগারেশন আর্গুমেন্টের প্রয়োজন না হয়, তবে google.protobuf.Empty ব্যবহার করুন।
মেট্রিক্স কনফিগারেশনের ডেটা সোর্স ডেফিনিশনে নির্দিষ্ট করা connection_type উপর নির্ভর করে, টেলিমেট্রি সার্ভিসটি হয় CreateSubscription ( connection_type: SUBSCRIPTION জন্য) অথবা GetLatestMessage ( connection_type: ON_DEMAND জন্য) কল করে।
পাব/সাব এসডিভি পরিষেবা
কোনো অতিরিক্ত কনফিগারেশন ছাড়াই, SDV সার্ভিস দ্বারা প্রকাশিত VSIDL-এ সংজ্ঞায়িত পাব/সাব চ্যানেলগুলো মনিটর করার জন্য টেলিমেট্রির সম্পূর্ণ সমর্থন রয়েছে। আরও তথ্যের জন্য, ‘Add a publisher to a service bundle’ দেখুন।
পাব/সাব চ্যানেল সাবস্ক্রাইব করার পাশাপাশি, টেলিমেট্রি কোনো চ্যানেলে প্রকাশিত সর্বশেষ মেসেজ চাহিদা অনুযায়ী পাওয়ার সুবিধাও প্রদান করে।
কনফিগারযোগ্য প্রকাশক রেজিস্ট্রি
SDV কমস স্ট্যাক ব্যবহার করে SDV সার্ভিসগুলো থেকে ডেটা সংগ্রহের পাশাপাশি, টেলিমেট্রি সেইসব অ্যাপ্লিকেশন ও সার্ভিস থেকেও ডেটা সংগ্রহ সমর্থন করে, যারা টেলিমেট্রি সার্ভিসের কনফিগারযোগ্য পাবলিশার রেজিস্ট্রি-তে পাবলিশার নিবন্ধন করে। এই সক্ষমতাটি IVI-তে সবচেয়ে বেশি উপযোগী, যেখানে SDV কমস স্ট্যাক উপলব্ধ নয়।
এসডিভি সার্ভিস বান্ডেল না লিখেই ডিবাগিং এবং প্রোটোটাইপিংয়ের জন্য কনফিগারযোগ্য পাবলিশার রেজিস্ট্রি সহায়ক হতে পারে। আরও তথ্যের জন্য, কনফিগারযোগ্য পাবলিশার রেজিস্ট্রি দেখুন।