تتيح خدمة SDV Telemetry أنواعًا متعدّدة من مصادر البيانات. تقدّم هذه الصفحة نظرة عامة على هذه الأنواع والميزات التي تتيحها خدمة Telemetry لكل نوع من أنواع مصادر البيانات.
يتوفّر رمز نموذجي لعمليات تنفيذ مصدر البيانات في الدليل system/software_defined_vehicle/samples/telemetry.
تعريف مصدر البيانات في إعدادات المقاييس
تحدّد إعدادات المقاييس مصدر بيانات واحدًا أو أكثر لجمع المقاييس
منها. يتم تحديد كل مصدر بيانات من خلال source_identifier. يعتمد تنسيق source_identifier على مصدر البيانات:
| مصدر البيانات | التنسيق | الوصف | أمثلة |
|---|---|---|---|
| خدمة SDV | اسم رسالة Protobuf |
اسم رسالة Protobuf المؤهَّل بالكامل إذا كانت الخدمة تتضمّن نُسخًا متعدّدة
، ألحِق اسم وحدة الخدمة مفصولاً بشرطة عمودية (|).
|
"com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam"
|
| اسم النُسخة المؤهَّل بالكامل (FQIN) مع اسم وحدة الخدمة |
اسم النُسخة المؤهَّل بالكامل واسم وحدة الخدمة مفصولَين بشرطة عمودية (|)
|
"vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure"
|
|
| ناشر مستند إلى "سجلّ الناشرين القابل للضبط" | اسم الناشر | serviceName المستخدَم بالضبط لتسجيل الناشر في "سجلّ الناشرين القابل للضبط" |
أي سلسلة نصية صالحة |
لكل مصدر بيانات، يمكنك استخدام الخيارات التالية لتحديد مَعلمات استرداد الرسائل. يمكنك تحديد مصدر البيانات نفسه عدة مرات باستخدام خيارات مختلفة في إعدادات المقاييس نفسها. على سبيل المثال، يمكنك أن تجعل جزءًا من معالجة البيانات على الأجهزة الطرفية يستخدم فترة فرعية مختلفة لأخذ العيّنات عن الأجزاء الأخرى من معالجة البيانات على الأجهزة الطرفية.
| Option | النوع | الوصف |
|---|---|---|
connection_type |
SUBSCRIPTION أو ON_DEMAND |
إذا تم ضبط هذه القيمة على SUBSCRIPTION، تشترك خدمة Telemetry في مصدر البيانات. إذا تم ضبط هذه القيمة على ON_DEMAND، تستردّ خدمة Telemetry الرسائل من مصدر البيانات عند الطلب فقط. |
configuration |
google.protobuf.Any |
إذا تم ضبط هذه القيمة، تمرِّر خدمة Telemetry عنصر الإعداد إلى مصدر البيانات عند التواصل معه. |
sub_sampling_interval |
google.protobuf.Duration |
إذا تم ضبط هذه القيمة، يتم أخذ عيّنات فرعية من الرسائل، ما يعني أنّ خدمة Telemetry تعالج رسالة واحدة على الأكثر كل فترة sub_sampling_interval. |
fetch_last_message |
bool |
إذا تم ضبط هذه القيمة، تستردّ خدمة Telemetry آخر رسالة منشورة عند الاشتراك في مصدر البيانات، حتى إذا تم نشر هذه الرسالة في الماضي. |
استنادًا إلى نوع مصدر البيانات (راجِع الأقسام التالية)، لا تتوافق خدمة Telemetry إلا مع مجموعة فرعية من المَعلمات. يقدّم الجدول التالي نظرة عامة.
| Option | خدمة RPC SDV | خدمة النشر/الاشتراك (pub/sub) SDV | ناشرون مستندون إلى "سجلّ الناشرين القابل للضبط" |
|---|---|---|---|
connection_type: SUBSCRIPTION |
متوافقة 1 | متوافقة | متوافقة |
connection_type: ON_DEMAND |
متوافقة 2 | متوافقة | متوافقة 3 |
configuration |
متوافقة | لا تنطبق | متوافقة |
sub_sampling_interval |
غير متوافقة | متوافقة 4 | غير متوافقة |
fetch_last_message |
غير متوافقة | متوافقة 5 | غير متوافقة |
CreateSubscription
GetLatestMessage
PublisherInfo.supportsGet هي true
connection_type: SUBSCRIPTION، ولا تنطبق على connection_type: ON_DEMAND
connection_type: SUBSCRIPTION، ولا تنطبق على connection_type: ON_DEMAND
خدمات SDV (من خلال حزمة اتصالات SDV)
يمكن لخدمة Telemetry جمع البيانات من خدمات SDV الأخرى. تتوافق هذه الخدمة مع خدمات RPC وpub/sub SDV. بما أنّ خدمة Telemetry لا تعرف قائمة الخدمات التي ستشترك فيها في مدّة التصميم، فإنّها تعتمد على انعكاس Protobuf لفك ترميز الرسائل الواردة من خدمات SDV.
لا توفّر خدمات SDV بيانات الانعكاس الوصفية تلقائيًا. لاستخدام خدمة SDV كمصدر لبيانات القياس عن بُعد، عليك تفعيل إنشاء إعدادات وقت التشغيل لكتالوج VSIDL الخاص بالخدمة. لمزيد من المعلومات، يُرجى الاطّلاع على دليل موفّر VSIDL لمطوّري حِزم الخدمات.
لأغراض الاختبار والتقييم فقط، يمكنك بدلاً من ذلك ضبط الخيار register_reflection_metadata على true في تعريف حزمة الخدمة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة حزمة الخدمة.
خدمات RPC SDV
تتيح خدمة Telemetry دعمًا محدودًا لخدمات 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 المحدّد في تعريف مصدر البيانات لإعدادات المقاييس، تستدعي خدمة Telemetry إما CreateSubscription (لـ connection_type: SUBSCRIPTION) أو GetLatestMessage (لـ connection_type: ON_DEMAND).
خدمات Pub/sub SDV
تتيح خدمة Telemetry دعمًا كاملاً لمراقبة قنوات النشر/الاشتراك المحدّدة في VSIDL التي تعرضها خدمات SDV بدون الحاجة إلى أي إعدادات إضافية. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إضافة ناشر إلى حزمة خدمة.
بالإضافة إلى الاشتراك في قنوات النشر/الاشتراك، تتيح خدمة Telemetry أيضًا استرداد آخر رسالة منشورة في قناة عند الطلب.
سجلّ الناشرين القابل للضبط
بالإضافة إلى جمع البيانات من خدمات SDV باستخدام حزمة اتصالات SDV، تتيح خدمة Telemetry جمع البيانات من التطبيقات والخدمات التي تسجّل الناشرين في "سجلّ الناشرين القابل للضبط" التابع لخدمة Telemetry. تكون هذه الإمكانية مفيدة جدًا في نظام المعلومات والترفيه داخل السيارة (IVI)، حيث لا تتوفّر حزمة اتصالات SDV.
يمكن أن يكون "سجلّ الناشرين القابل للضبط" مفيدًا أيضًا في تصحيح الأخطاء وإنشاء النماذج الأولية بدون الحاجة إلى كتابة حِزم خدمات SDV. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة سجلّ الناشرين القابل للضبط.