SOME/IP را با SDV ادغام کنید

با استقرار و پیکربندی چندین مؤلفه، میان‌افزار سرویس‌گرای مقیاس‌پذیر روی IP ( SOME/IP ) را با وسیله نقلیه تعریف‌شده توسط نرم‌افزار (SDV) ادغام کنید. هر نمونه کارگزار نیاز به پیاده‌سازی پشته محلی مربوطه دارد. این سند نحوه انجام موارد زیر را شرح می‌دهد:

  • پیکربندی استقرار یک کارگزار واحد
  • کارگزار SOME/IP را به صورت تکی یا چندگانه مستقر کنید
  • عامل زبان داده تعاملی خدمات خودرو (VSIDL) را مستقر کنید
  • استفاده از Soong با vsidl_rc_generator

پیکربندی نمونه

مثال‌های SDV، مانند نمونه‌های مربوط به دستگاه‌های مجازی اندروید Cuttlefish sdv_core_cf و سخت‌افزار sdv_core_arm64 ، یک طرح استقرار انعطاف‌پذیر را نشان می‌دهند. کارگزار و پشته هر کدام بر اساس یک ویژگی سیستم زمان بوت، ro.boot.sdv.someip.enable ، شروع می‌شوند.

شما می‌توانید با تنظیم androidboot.sdv.someip.enable=true فقط روی یکی از نمونه‌های SDV که روی سیستم اجرا می‌شوند، به یک طرح استقرار تک واسطه‌ای دست یابید.

# device/google/sdv/sdv_core_base/sdv.agents.rc
# Declare and start the SDV SOME/IP broker agent.
service sdv_someip_broker_agent /system_ext/bin/sdv_someip_broker_agent_comms
    class core
    disabled
    user system_ext_sdv_someip
    group system
on property:ro.sdv.orchestrator.state.ready=true && property:ro.boot.sdv.someip.enable=true
    start sdv_someip_broker_agent

مثال دیگر:

#device/google/sdv/sdv_core_cf/init.sdv_core_cf.rc
# Declare and start the sample SDV SOME/IP stack agent.
service sdv_someip_stack_agent /vendor/bin/sdv_someip_stack_agent
    class core
    disabled
    user system
    group system
    setenv VSOMEIP_CONFIGURATION /vendor/etc/someip/vsomeip_config.json
    setenv VSOMEIP_BASE_PATH /data/vendor/vsomeip/
on property:dev.bootcomplete=1 && property:ro.boot.sdv.someip.enable=true
    start sdv_someip_stack_agent

استقرار کارگزار

شما می‌توانید کارگزار SOME/IP را به صورت تکی یا چندگانه در SDV مستقر کنید. می‌توانید دامنه‌های SOME/IP (یا زیرشبکه‌ها) را به نمونه‌های مستقل مختلف تقسیم کنید. می‌توانید این کار را برای متعادل کردن بار یا بهبود جداسازی برای اهداف امنیتی انجام دهید.

هر نمونه باید مجموعه‌ای از نقاط پایانی SOME/IP و SDV را که به هم متصل نیستند، پردازش کند. شما نمی‌توانید از مسیریابی ویژه یا همگام‌سازی بین عاملی استفاده کنید. پیکربندی نامناسب می‌تواند منجر به انتشارهای تکراری یا نتایج ناهماهنگ کشف سرویس شود.

ارائه دهنده زبان داده تعاملی خدمات خودرو

SOME/IP فراداده‌های مورد نیاز برای ترجمه را از عامل VSIDL دریافت می‌کند. شما باید عامل VSIDL را در همان ماشین مجازی که کارگزار SOME/IP در آن قرار دارد، مستقر کنید.

وقتی از گزینه‌ی runtime-config-prebuilts استفاده شود، عامل VSIDL می‌تواند یک فایل Android.bp تولید کند. این فایل حاوی قوانین از پیش ساخته شده‌ای است که پیکربندی زمان اجرای مربوطه را ایجاد و مستقر می‌کنند.

سونگ

برای اجرای vsidl_rc_generator ارائه شده توسط SDV:

vsidl_rc_generator [OPTIONS] --catalog-path <CATALOG_PATH> --output-path <OUTPUT_PATH>

شما باید این استدلال‌ها را ارائه دهید:

  • --vsidl-path <VSIDL_PATH>
  • --catalog-path <CATALOG_PATH>
  • --output-path <OUTPUT_PATH>

همچنین می‌توانید این آرگومان‌های اختیاری را ارائه دهید:

  • اختیاری: --dependency-catalog-path <DEPENDENCY_CATALOG_PATH>...

    دایرکتوری‌های پروتوتایپ‌های وابسته را خارج از catalog_path مشخص می‌کند. برای تولید API Rust برای پروتوتایپ‌های وابسته، هر دایرکتوری باید حاوی یک فایل Android.bp باشد. این فایل باید شامل یک هدف ساخت rust_protobuf باشد.

  • اختیاری: --variant <VARIANT>

    پیش‌فرض روی RuntimeConfig است و حالتی را مشخص می‌کند که تولیدکننده پیکربندی زمان اجرا باید در آن اجرا شود. RuntimeConfig فایل‌های پیکربندی زمان اجرا را برای SOME/IP و عیب‌یابی تولید می‌کند.

    RuntimeConfigPrebuilts فایل‌های ساخت را تولید می‌کند. این فایل‌ها حاوی ماژول‌های از پیش ساخته شده هستند. می‌توانید از این ماژول‌ها برای گنجاندن فایل‌های تولید شده توسط نوع RuntimeConfig در ماژول‌های دیگر یا در تصویر ماشین مجازی استفاده کنید.

  • اختیاری: --service-bundle-name <SERVICE_BUNDLE_NAME>

    آرگومانی برای مشخص کردن بسته‌ی سرویسی که قرار است تولیدکننده‌ی پیکربندی زمان اجرا روی آن اعمال شود.

  • اختیاری: --package-name <PACKAGE_NAME>

    علاوه بر آرگومان نام بسته سرویس، از این آرگومان برای مشخص کردن نام بسته سرویسی که قرار است تولیدکننده پیکربندی زمان اجرا روی آن اعمال شود، استفاده کنید.

  • اختیاری: --filegroup <FILEGROUP>

    هنگام استفاده از حالت RuntimeConfigPrebuilts باید تعریف شود.