توضّح هذه الصفحة كيفية استخدام حقول البيانات الوصفية الإلزامية والاختيارية لحزمة الخدمات.
البيانات الوصفية الإلزامية
يتطلّب نموذج تنفيذ حزمة الخدمات أن تحدّد كل حزمة خدمات البيانات الوصفية التالية:
- اسم الخدمة وفقًا لاصطلاح التسمية في SDV
- تمثيل عدد صحيح وسلسلة لإصدار حزمة الخدمات
- المسار إلى مكتبة حزمة الخدمات
sdv_service_bundle_metadata {
# Name of the service bundle.
#
# Must follow SDV service naming convention rules.
# Ref: https:/automotive/sdv/core-areas/naming-conventions
#
# When using VSIDL catalog and middleware generation, this name must be
# equal to the service bundle name defined in the catalog.
name: "TheNameOfTheServiceBundle"
# Service Bundle Version Number.
# Must be non-negative number.
version_number: 1
# Service Bundle Version Name.
# Must be non-empty string.
version_name: "1.0 alpha"
# Path to the native library to be loaded as service bundle.
# Must be the relative path from the APEX root directory
native_library_path: "lib64/libservice_bundle.so"
}
# Service bundle one.
sdv_service_bundle_metadata {
name: "ServiceBundleOne"
...
}
# Service bundle two.
sdv_service_bundle_metadata {
name: "ServiceBundleTwo"
...
}
البيانات الوصفية الاختيارية
تتيح البيانات الوصفية الاختيارية إمكانات معيّنة في SDV.
البيانات الوصفية للتنسيق
يوفر إعداد التنسيق في SDV آلية للتحكّم في سلوك بدء تشغيل حزم الخدمات وإيقافها. يحدّد إعداد التنسيق في SDV مجموعة من القواعد التي تحدّد متى وكيف يتم تنفيذ الإجراءات على مثيلات حزمة الخدمات. تستند هذه القواعد إلى أوضاع المركبة والطاقة والأوضاع المخصّصة.
لربط إعداد تنسيق بحزمة الخدمات، أدخِل المسار إلى وحدة prebuilt_etc في الحقل الاختياري orchestration_config_path:
sdv_service_bundle_metadata {
...
# Path to the orchestration config file.
# Warning: Shall be relative path to the APEX root directory.
orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"
}
مسار سياسة التفويض
توفر سياسة التفويض في SDV آلية للإعلان عن الأذونات لحزمة الخدمات. تحدّد سياسة التفويض الإجراءات التي يمكن أن تنفّذها حزمة الخدمات (مثل النشر أو الاشتراك أو العرض أو الاتصال).
لربط سياسة تفويض بحزمة الخدمات، أدخِل المسار إلى وحدة prebuilt_etc في الحقل الاختياري authorization_policy_path:
sdv_service_bundle_metadata {
...
# Path to the authorization policy file.
# Warning: Shall be relative path to the APEX root directory.
authorization_policy_path: "etc/authz/permissions.textproto"
}
البيانات الوصفية لموفِّر VSIDL
البيانات الوصفية لموفِّر VSIDL هي جزء من آلية لدمج حزم الخدمات مع وكلاء منصات التشخيص وSOME/IP.
لربط بيانات وصفية لموفِّر VSIDL بحزمة خدمات، أدخِل المسار إلى ملفات prebuilt_etc التي تحتوي على ملفات البيانات الوصفية التي تم إنشاؤها في الحقل الاختياري vsidl_schemas_path أو diagnostics_config_path أو (إعداد SOME/IP config APEX فقط) external_service_bundle_metadata_path:
sdv_service_bundle_metadata {
...
# Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
# Warning: Must be relative path to the APEX root directory.
vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"
# Path to the diagnostics config file.
# Warning: Shall be relative path to the APEX root directory.
diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"
# Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
# Warning: Must be relative path to the APEX root directory.
external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"
}
لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على موفِّر VSIDL.
البيانات الوصفية لعلامة السجلّ
تحدّد سمة علامة السجلّ المعرّف الفريد للسجلات التي تنشئها حزمة الخدمات. إذا لم يتم تحديد هذه السمة، يتم تلقائيًا إنشاء علامة تلقائية باستخدام اسم الحزمة واسم حزمة الخدمات واسم المثال. لتحقيق أفضل وضوح، حدِّد علامة سجلّ موجزة وفريدة.
البيانات الوصفية المخصّصة
تسمح البيانات الوصفية المخصّصة لمصنّعي المعدات الأصلية والمورّدين بتحديد بعض البيانات الوصفية الخاصة بحزمة الخدمات.
sdv_service_bundle_metadata {
...
# Custom service bundle metadata map.
# Key is a string, value is a string.
#
# 1st custom metadata value.
custom_metadata {
key: "question"
value: "Answer to the Ultimate Question of Life, the Universe, and Everything"
}
# 2nd custom metadata value.
custom_metadata {
key: "answer" value: "42"
}
}
sdv_service_bundle_metadata {
...
# Custom metadata values are stored in etc/.
custom_metadata {
key: "path_to_custom_metadata"
value: "etc/configuration/file"
}
}
مثال كامل
# proto-file: //system/software_defined_vehicle/core_services/service_bundles_registry/proto/sdv_service_bundles_manifest.proto
# proto-message: SdvServiceBundleManifestEntry
# SDV service bundle.
sdv_service_bundle_metadata {
# Name of the service bundle.
# Must follow SDV service naming convention rules.
name: "TheNameOfTheServiceBundle"
# Service Bundle Version Number.
# Must be non-negative number.
version_number: 42
# Service Bundle Version Name.
# Must be non-empty string.
version_name: "42.0.beta"
# Path to the native library to be loaded as service bundle.
# Must be the relative path from the APEX root directory.
native_library_path: "lib64/libservice_bundle.so"
# The log tag used for Android logging for the service bundle.
# If not specified, a tag derived from service bundle FQIN will be used.
log_tag: "current_service_bundle"
# Path to the orchestration config file.
# Warning: Shall be relative path to the APEX root directory.
orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"
# Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
# Warning: Must be relative path to the APEX root directory.
vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"
# Path to the diagnostics config file.
# Warning: Must be relative path to the APEX root directory.
diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"
# Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
# Warning: Must be relative path to the APEX root directory.
external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"
# Custom service bundle metadata string.
# Key is a string, value is a string.
custom_metadata {
key: "key" value: "value"
}
# Custom metadata values are stored in etc/.
custom_metadata {
key: "path_to_custom_metadata"
value: "etc/configuration/file"
}
}