Integra il middleware scalabile orientato ai servizi su IP (SOME/IP) con il veicolo definito dal software (SDV) eseguendo il deployment e la configurazione di diversi componenti. Ogni istanza del broker richiede un'implementazione dello stack locale corrispondente. Questo documento descrive come:
- Configura un deployment di un singolo broker
- Esegui il deployment del broker SOME/IP come singola istanza o come più istanze
- Esegui il deployment dell'agente VSIDL (Vehicle Services Interactive Data Language)
- Utilizzare Soong con
vsidl_rc_generator
Configurazione di esempio
Gli esempi di SDV, come quelli per i dispositivi Android virtuali Cuttlefish
sdv_core_cf e l'hardware sdv_core_arm64, mostrano uno schema di deployment flessibile. Il broker e lo stack vengono avviati in base a una proprietà di sistema del tempo di avvio,
ro.boot.sdv.someip.enable.
Puoi ottenere uno schema di deployment di un singolo broker impostando
androidboot.sdv.someip.enable=true su una sola delle istanze SDV in esecuzione sul
sistema.
# 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
Un altro esempio:
#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
Deployment del broker
Puoi eseguire il deployment del broker SOME/IP come una o più istanze in SDV. Puoi dividere i domini (o le subnet) SOME/IP in diverse istanze indipendenti. Puoi farlo per bilanciare il carico o per migliorare l'isolamento per motivi di sicurezza.
Ogni istanza deve elaborare un insieme disgiunto di endpoint SOME/IP e SDV. Non puoi utilizzare il routing speciale o la sincronizzazione cross-agent. Una configurazione errata può comportare la duplicazione delle pubblicazioni o risultati di rilevamento dei servizi incoerenti.
Fornitore di linguaggio interattivo dei dati dei servizi per i veicoli
SOME/IP riceve i metadati necessari per le traduzioni dall'agente VSIDL. Devi deploy l'agente VSIDL sulla stessa VM del broker SOME/IP.
Se utilizzato con l'opzione della variante runtime-config-prebuilts, l'agente VSIDL
può generare un file Android.bp. Questo file contiene regole predefinite che creano
e implementano la configurazione di runtime pertinente.
Soong
Per eseguire vsidl_rc_generator fornito da SDV:
vsidl_rc_generator [OPTIONS] --catalog-path <CATALOG_PATH> --output-path <OUTPUT_PATH>
Devi fornire questi argomenti:
--vsidl-path <VSIDL_PATH>--catalog-path <CATALOG_PATH>--output-path <OUTPUT_PATH>
Puoi anche fornire questi argomenti facoltativi:
Facoltativo:
--dependency-catalog-path <DEPENDENCY_CATALOG_PATH>...Specifica le directory dei proto dipendenti al di fuori di
catalog_path. Per generare l'API Rust per i proto dipendenti, ogni directory deve contenere un fileAndroid.bp. Questo file deve includere una destinazione di buildrust_protobuf.Facoltativo:
--variant <VARIANT>Il valore predefinito è
RuntimeConfige specifica la modalità di esecuzione del generatore di configurazione di runtime.RuntimeConfiggenera file di configurazione di runtime per SOME/IP e la diagnostica.RuntimeConfigPrebuiltsgenera i file di build. Questi file contengono moduli predefiniti. Puoi utilizzare questi moduli per includere i file generati dalla varianteRuntimeConfigin altri moduli o nell'immagine VM.Facoltativo:
--service-bundle-name <SERVICE_BUNDLE_NAME>Argomento per specificare il service bundle a cui applicare il generatore di configurazione di runtime.
Facoltativo:
--package-name <PACKAGE_NAME>Oltre all'argomento del nome del pacchetto di servizi, utilizza questo argomento per specificare il nome del pacchetto di servizi a cui applicare il generatore di configurazione di runtime.
Facoltativo:
--filegroup <FILEGROUP>Deve essere definito quando si utilizza la modalità
RuntimeConfigPrebuilts.