Na tej stronie znajdziesz informacje o tym, jak korzystać z obowiązkowych i opcjonalnych pól metadanych pakietu usług.
Obowiązkowe metadane
Model wykonywania pakietu usług wymaga, aby każdy pakiet usług definiował te metadane:
- Nazwa usługi zgodna z konwencją nazewnictwa SDV
- Liczbowa i tekstowa reprezentacja wersji pakietu usług
- Ścieżka do biblioteki pakietu usług
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"
...
}
Opcjonalne metadane
Opcjonalne metadane obsługują określone funkcje SDV.
Metadane administracji
Konfiguracja orkiestracji SDV zapewnia mechanizm sterowania zachowaniem pakietów usług podczas uruchamiania i zamykania. Konfiguracja orkiestracji SDV definiuje zestaw reguł, które określają, kiedy i jak wykonywane są działania na instancjach pakietów usług. Reguły te są oparte na trybach pojazdu, zasilania i niestandardowych.
Aby powiązać konfigurację orkiestracji z pakietem usług, podaj ścieżkę do modułu prebuilt_etc w opcjonalnym polu 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"
}
Ścieżka zasady autoryzacji
Zasady autoryzacji SDV zapewniają mechanizm deklarowania uprawnień dla pakietu usług. Zasady autoryzacji określają, jakie działania może wykonywać pakiet usług (np. publikowanie, subskrybowanie, wyświetlanie lub wywoływanie).
Aby powiązać zasadę autoryzacji z pakietem usług, podaj ścieżkę do modułu prebuilt_etc w opcjonalnym polu 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"
}
Metadane dostawcy VSIDL
Metadane dostawcy VSIDL są częścią mechanizmu integrującego pakiety usług z agentami platform diagnostycznych i SOME/IP.
Aby powiązać metadane dostawcy VSIDL z pakietem usług, podaj ścieżkę do plików prebuilt_etc zawierających wygenerowane metadane w opcjonalnym polu vsidl_schemas_path / diagnostics_config_path / external_service_bundle_metadata_path (tylko w przypadku konfiguracji APEX SOME/IP):
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"
}
Więcej informacji znajdziesz w artykule Omówienie dostawcy VSIDL.
Metadane tagu logu
Atrybut tagu logu określa unikalny identyfikator logów generowanych przez pakiet usług. Jeśli ten atrybut nie jest zdefiniowany, domyślny tag jest generowany automatycznie na podstawie nazwy pakietu, nazwy pakietu usług i nazwy instancji. Aby zapewnić optymalną przejrzystość, zdefiniuj zwięzły i unikalny tag logu.
Niestandardowe metadane
Metadane niestandardowe umożliwiają producentom OEM i dostawcom określanie niektórych metadanych pakietu usług.
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"
}
}
Pełny przykład
# 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"
}
}