با استقرار و پیکربندی چندین مؤلفه، میانافزار سرویسگرای مقیاسپذیر روی 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باید تعریف شود.