Optimiser les performances

La traduction SOME/IP de base a été conçue pour fournir une solution évolutive permettant l'intégration aux services AUTOSAR. Le principal défi pour le broker était de traduire les messages et les appels RPC qui n'étaient pas connus au moment de la compilation. Pour résoudre ce problème, les mises à jour d'exécution supposent des ajouts ou des mises à jour dynamiques des services SDV, de la même manière que de nouveaux types d'unités sont introduits.

La solution pour cette traduction dynamique est basée sur les informations de type d'exécution (RTTI). Le broker consomme la configuration de tous les bundles de services installés et effectue une traduction basée sur la réflexion à l'aide de schémas de données issus de cette configuration.

Bien que la traduction basée sur RTTI offre une certaine flexibilité, elle est intrinsèquement plus lente que les méthodes précompilées. Pour optimiser les chemins de données fortement chargés, utilisez une technique qui contourne la traduction.

Pour prendre en charge la consommation de messages volumineux et fréquents, SDV vous permet de contourner la traduction et de transférer les octets au format SOME/IP vers les bundles de services consommateurs.

Le bundle de services gère la charge utile au format SOME/IP, qui peut soit consommer la charge utile, soit la traduire en protobuf.

Spécifiez message_translation_mode: INTERPRET_AS_BYTES pour l'événement dans un fichier de mappage SOME/IP afin de contourner la traduction. Consultez un exemple dans samples/some_ip/catalog/integration_test/byte_forward_someip.vsidl.

Compromis de la méthode de traduction

Lorsque vous choisissez une méthode de traduction, tenez compte des compromis suivants :

  • Interaction avec le système : les autres services SDV ne peuvent pas interpréter les octets transférés au format SOME/IP sans connaître les détails du format brut. Par exemple, SDV Telemetry ne peut pas traiter les champs individuels de ces messages.

  • Efforts supplémentaires : la traduction de la charge utile brute au format SOME/IP nécessite des efforts supplémentaires de la part du développeur du bundle de services.

Générateur de bibliothèque

SDV fournit un générateur automatisé pour traduire le format SOME/IP. Ce générateur crée des bibliothèques basées sur les définitions et les mappages de messages disponibles pour une traduction directe sans réflexion. Les bundles de services qui consomment des octets SOME/IP transférés peuvent utiliser les bibliothèques générées.

Recommandation : N'utilisez le générateur que si votre OEM identifie des événements critiques pour les performances qui ne peuvent pas être traduits dans les exigences de performances de votre projet. Dans ce cas, votre OEM doit déjà disposer de la définition protobuf et du mappage SOME/IP utilisés pour la traduction basée sur RTTI. Cette même configuration peut servir d'entrée au générateur. Pour en savoir plus, consultez le fichier README.md dans le répertoire core_services/tools/someip_translation_generator/.