تلهمتری SDV از انواع مختلفی از منابع داده پشتیبانی میکند. این صفحه مروری بر این انواع و ویژگیهایی که تلهمتری در هر نوع منبع داده پشتیبانی میکند، ارائه میدهد.
کد نمونه برای پیادهسازیهای منبع داده در دایرکتوری system/software_defined_vehicle/samples/telemetry موجود است.
تعریف منبع داده در پیکربندی معیارها
پیکربندیهای معیارها، یک یا چند منبع داده را برای جمعآوری معیارها تعریف میکنند. هر منبع داده با source_identifier خود شناسایی میشود. قالب source_identifier به منبع داده بستگی دارد:
| منبع داده | قالب | توضیحات | مثالها |
|---|---|---|---|
| خدمات SDV | نام پیام پروتوباف | نام کامل پیام protobuf. اگر سرویس چندین نمونه دارد، نام واحد سرویس را که با یک خط عمودی ( | ) از هم جدا شده است، اضافه کنید. | "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 تنظیم شود، سرویس Telemetry در منبع داده مشترک میشود. اگر روی ON_DEMAND تنظیم شود، سرویس Telemetry فقط در صورت تقاضا پیامها را از منبع داده دریافت میکند. |
configuration | google.protobuf.Any | در صورت تنظیم، سرویس تلهمتری هنگام برقراری ارتباط با منبع داده، از طریق شیء پیکربندی به آن منبع داده منتقل میشود. |
sub_sampling_interval | google.protobuf.Duration | در صورت تنظیم، پیامها زیرنمونهبرداری میشوند، به طوری که سرویس تلهمتری حداکثر در هر مدت زمان sub_sampling_interval یک پیام را پردازش میکند. |
fetch_last_message | bool | در صورت تنظیم، سرویس تلهمتری آخرین پیام منتشر شده را هنگام اشتراک در منبع داده بازیابی میکند، حتی اگر آن پیام در گذشته منتشر شده باشد. |
بسته به نوع منبع داده (به بخشهای بعدی مراجعه کنید)، فقط زیرمجموعهای از پارامترها توسط سرویس تلهمتری پشتیبانی میشوند. جدول زیر مروری بر آنها ارائه میدهد.
| گزینه | سرویس RPC SDV | سرویس SDV انتشار-اشتراک (pub/sub) | ناشران قابل تنظیم مبتنی بر رجیستری ناشر |
|---|---|---|---|
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 (از طریق بسته ارتباطی SDV)
سرویس تلهمتری میتواند دادهها را از سایر سرویسهای SDV جمعآوری کند. هر دو سرویس RPC و pub/sub SDV پشتیبانی میشوند. از آنجایی که سرویس تلهمتری در زمان ساخت، لیست سرویسهایی را که در آنها مشترک خواهد شد، نمیداند، برای رمزگشایی پیامهای دریافتی از سرویسهای SDV به بازتاب Protobuf متکی است.
سرویسهای SDV به طور پیشفرض فرادادههای بازتابی ارائه نمیدهند. برای اینکه یک سرویس SDV به عنوان منبع داده تلهمتری قابل استفاده باشد، باید تولید پیکربندی زمان اجرا از کاتالوگ VSIDL سرویس را فعال کنید. برای اطلاعات بیشتر، به راهنمای ارائه دهنده VSIDL برای توسعهدهندگان بسته خدمات مراجعه کنید.
فقط برای اهداف آزمایش و ارزیابی، میتوانید در تعریف بسته سرویس، گزینه register_reflection_metadata را روی true تنظیم کنید. برای اطلاعات بیشتر، به بسته سرویس مراجعه کنید.
خدمات RPC SDV
تلهمتری پشتیبانی محدودی از سرویسهای RPC SDV دارد. برای اطلاعات بیشتر، به بخش تعریف سرویسهای RPC مراجعه کنید. برای جمعآوری دادهها از یک سرویس RPC SDV، سرویس باید یک یا هر دو روش RPC زیر را ارائه دهد:
CreateSubscriptionجریانی از پاسخهای تعریفشده توسط کاربر را برمیگرداند:rpc CreateSubscription(<configuration>) returns (stream <response>)GetLatestMessageیک پاسخ تعریفشده توسط کاربر را برمیگرداند:rpc GetLatestMessage(<configuration>) returns (<response>)
شما میتوانید از آرگومان پیکربندی برای پارامتری کردن رفتار منبع داده خود استفاده کنید، برای مثال، برای درخواست فرکانس انتشار متفاوت یا انتخاب موجودیتی که میخواهید در آن مشترک شوید (مثلاً اینکه فشار باد تایر را از کدام تایر بخوانید).
هنگام تعریف یک سرویس RPC SDV به عنوان منبع داده در پیکربندی متریک، میتوانید یک مقدار configuration را در تعریف منبع داده مشخص کنید که به عنوان آرگومان برای این RPC استفاده میشود. سرویس Telemetry شیء پیکربندی را به صورت شفاف مدیریت میکند و از هر آنچه که تعریف میکنید عبور میدهد.
نوع آرگومان پیکربندی برای هر دو روش میتواند google.protobuf.Any یا یک نوع تعریفشده توسط کاربر باشد. اگر هر دو روش را ارائه میدهید، انواع آرگومانها باید یکسان باشند. اگر برای این روشهای RPC به آرگومان پیکربندی نیاز ندارید، google.protobuf.Empty استفاده کنید.
بسته به connection_type مشخص شده در تعریف منبع داده پیکربندی معیارها، سرویس تلهمتری یا CreateSubscription (برای connection_type: SUBSCRIPTION ) یا GetLatestMessage (برای connection_type: ON_DEMAND ) را فراخوانی میکند.
خدمات SDV در میخانه/شعبه
تلهمتری از نظارت بر کانالهای pub/sub تعریفشده در VSIDL که توسط سرویسهای SDV در معرض نمایش قرار میگیرند، بدون نیاز به هیچ پیکربندی اضافی، پشتیبانی کامل دارد. برای اطلاعات بیشتر، به بخش «افزودن ناشر به بسته سرویس» مراجعه کنید.
علاوه بر عضویت در کانالهای عمومی/زیرکانالها، تلهمتری از بازیابی آخرین پیام منتشر شده در یک کانال به صورت درخواستی نیز پشتیبانی میکند.
رجیستری ناشر قابل تنظیم
علاوه بر جمعآوری دادهها از سرویسهای SDV با استفاده از پشته ارتباطی SDV، تلهمتری از جمعآوری دادهها از برنامهها و سرویسهایی که ناشران را در رجیستری ناشر قابل پیکربندی سرویس تلهمتری ثبت میکنند، پشتیبانی میکند. این قابلیت در IVI، جایی که پشته ارتباطی SDV در دسترس نیست، بیشترین کاربرد را دارد.
رجیستری ناشر قابل پیکربندی همچنین میتواند برای اشکالزدایی و نمونهسازی اولیه بدون نیاز به نوشتن بستههای سرویس SDV مفید باشد. برای اطلاعات بیشتر، به رجیستری ناشر قابل پیکربندی مراجعه کنید.