Zintegruj skalowalne oprogramowanie pośredniczące zorientowane na usługi przez IP (SOME/IP) z pojazdem definiowanym przez oprogramowanie (SDV), wdrażając i konfigurując kilka komponentów. Każda instancja brokera wymaga odpowiedniej lokalnej implementacji stosu. Z tego dokumentu dowiesz się, jak:
- Konfigurowanie wdrożenia pojedynczego brokera
- Wdrożenie brokera SOME/IP jako pojedynczej lub wielu instancji
- Wdróż agenta języka interaktywnych danych usług pojazdu (VSIDL)
- Używanie Soong z
vsidl_rc_generator
Przykładowa konfiguracja
Przykłady SDV, takie jak te dotyczące wirtualnych urządzeń z Androidem Cuttlefish
sdv_core_cf i sprzętu sdv_core_arm64, pokazują elastyczny schemat wdrażania. Broker i stos zaczynają działać na podstawie właściwości systemowej czasu rozruchu,
ro.boot.sdv.someip.enable.
Pojedynczy schemat wdrażania brokera możesz uzyskać, ustawiając wartość androidboot.sdv.someip.enable=true tylko w jednej z instancji SDV działających w systemie.
# 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
Inny przykład:
#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
Wdrożenie brokera
W przypadku SDV możesz wdrożyć brokera SOME/IP jako jedną lub kilka instancji. Domeny (lub podsieci) SOME/IP można podzielić na różne niezależne instancje. Możesz to zrobić, aby zrównoważyć obciążenie lub zwiększyć izolację ze względów bezpieczeństwa.
Każda instancja musi przetwarzać rozłączne zbiory punktów końcowych SOME/IP i SDV. Nie możesz używać specjalnego kierowania ani synchronizacji między agentami. Nieprawidłowa konfiguracja może prowadzić do duplikowania publikacji lub niespójnych wyników wykrywania usług.
Dostawca języka interaktywnych danych o usługach związanych z pojazdami
SOME/IP pobiera metadane wymagane do tłumaczeń od agenta VSIDL. Musisz wdrożyć agenta VSIDL na tej samej maszynie wirtualnej co broker SOME/IP.
W przypadku użycia z opcją wariantu runtime-config-prebuilts agent VSIDL może wygenerować plik Android.bp. Ten plik zawiera gotowe reguły, które tworzą i wdrażają odpowiednią konfigurację środowiska wykonawczego.
Soong
Aby uruchomić vsidl_rc_generator dostarczony przez SDV:
vsidl_rc_generator [OPTIONS] --catalog-path <CATALOG_PATH> --output-path <OUTPUT_PATH>
Musisz podać te argumenty:
--vsidl-path <VSIDL_PATH>--catalog-path <CATALOG_PATH>--output-path <OUTPUT_PATH>
Możesz też podać te argumenty opcjonalne:
Opcjonalnie:
--dependency-catalog-path <DEPENDENCY_CATALOG_PATH>...Określa katalogi zależnych plików proto poza
catalog_path. Aby wygenerować interfejs API w języku Rust dla zależnych plików proto, każdy katalog musi zawierać plikAndroid.bp. Ten plik musi zawieraćrust_protobufelement docelowy kompilacji.Opcjonalnie:
--variant <VARIANT>Domyślnie jest to
RuntimeConfig. Określa tryb, w którym musi działać generator konfiguracji środowiska wykonawczego.RuntimeConfiggeneruje pliki konfiguracji środowiska wykonawczego dla SOME/IP i diagnostyki.RuntimeConfigPrebuiltsgeneruje pliki kompilacji. Te pliki zawierają gotowe moduły. Za pomocą tych modułów możesz uwzględniać pliki wygenerowane przez wariantRuntimeConfigw innych modułach lub w obrazie maszyny wirtualnej.Opcjonalnie:
--service-bundle-name <SERVICE_BUNDLE_NAME>Argument określający pakiet usług, do którego ma być zastosowany generator konfiguracji środowiska wykonawczego.
Opcjonalnie:
--package-name <PACKAGE_NAME>Oprócz argumentu nazwy pakietu usług użyj tego argumentu, aby określić nazwę pakietu usług, do którego ma być zastosowany generator konfiguracji środowiska wykonawczego.
Opcjonalnie:
--filegroup <FILEGROUP>Musi być zdefiniowany, gdy używasz trybu
RuntimeConfigPrebuilts.