مصادر البيانات

تتيح خدمة 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 غير متوافقة
1 متوافقة إذا نفّذت طريقة CreateSubscription
2 متوافقة إذا نفّذت طريقة GetLatestMessage
3 متوافقة إذا كانت قيمة PublisherInfo.supportsGet هي true
4 متوافقة مع connection_type: SUBSCRIPTION، ولا تنطبق على connection_type: ON_DEMAND
5 متوافقة مع 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. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة سجلّ الناشرين القابل للضبط.