La traducción básica de SOME/IP se diseñó para proporcionar una solución actualizable para la integración con los servicios de AUTOSAR. El principal desafío para el agente era traducir los mensajes y las llamadas a RPC que no se conocían en el momento de la compilación. Para abordar este problema, las actualizaciones del entorno de ejecución suponen adiciones o actualizaciones dinámicas de los servicios de SDV, de manera similar a cómo se introducen los nuevos tipos de unidades.
La solución para esta traducción dinámica se basa en la información de tipo de tiempo de ejecución (RTTI). El agente consume la configuración de todos los paquetes de servicios instalados y realiza la traducción basada en la reflexión con esquemas de datos de esa configuración.
Si bien la traducción basada en RTTI ofrece flexibilidad, es inherentemente más lenta que los métodos precompilados. Para optimizar las rutas de datos con mucha carga, usa una técnica que omita la traducción.
Para admitir el consumo de mensajes grandes y frecuentes, SDV te permite omitir la traducción y reenviar bytes con formato SOME/IP a los paquetes de servicios del consumidor.
El paquete de servicios controla la carga útil con formato SOME/IP, que puede consumir la carga útil o traducirla a protobuf.
Especifica message_translation_mode: INTERPRET_AS_BYTES para el evento en un archivo de asignación de SOME/IP para omitir la traducción. Consulta un ejemplo en samples/some_ip/catalog/integration_test/byte_forward_someip.vsidl.
Intercambios de métodos de traducción
Cuando elijas un método de traducción, ten en cuenta las siguientes compensaciones:
Interacción del sistema: Otros servicios de SDV no pueden interpretar los bytes reenviados en formato SOME/IP sin conocer los detalles del formato sin procesar. Por ejemplo, la telemetría de SDV no puede procesar campos individuales de esos mensajes.
Esfuerzo adicional: Traducir la carga útil sin procesar en formato SOME/IP requiere un esfuerzo adicional del desarrollador del paquete de servicios.
Generador de bibliotecas
SDV proporciona un generador automático para traducir el formato SOME/IP. Este generador crea bibliotecas basadas en las definiciones y las asignaciones de mensajes disponibles para la traducción directa sin reflexión. Los paquetes de servicios que consumen bytes de SOME/IP reenviados pueden usar las bibliotecas generadas.
Recomendación: Usa el generador solo si tu OEM identifica eventos críticos para el rendimiento que no se pueden traducir dentro de los requisitos de rendimiento de tu proyecto. En esos casos, tu OEM ya debería tener la definición de protobuf y la asignación de SOME/IP que se usan para la traducción basada en RTTI. Esta misma configuración puede servir como entrada para el generador. Para obtener más detalles, consulta el archivo README.md en el directorio core_services/tools/someip_translation_generator/.