Encapsula campos de cabecera comunes, como marcas de tiempo y números de secuencia, para flujos AVTPDU de IEEE 1722 como valores opcionales.
Contexto
La clase ara::rds::IEEE1722DatagramAVTPDUCommonStreamHeaderFields proporciona, dentro del módulo Raw Data Stream (rds) de AUTOSAR Adaptive Platform, la representación común de los campos de cabecera de flujo para datagramas AVTPDU de IEEE 1722 SWS RawDataStream p. 1. Se incluye a través de la cabecera #include "ara/rds/raw_data_stream_IEEE1722.h" y constituye el fundamento estandarizado para el procesamiento de Audio/Video Transport Protocol Data Units (AVTPDU) a través de flujos de datos basados en Ethernet. Todas las variables de protocolo definidas en la especificación cuentan con el modificador de acceso protected ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90237], [SWS_RDS_90238], [SWS_RDS_90239], [SWS_RDS_90240], [SWS_RDS_90241]). Interpretación: Esto sugiere que la clase está concebida como base de herencia para tipos de datagramas especializados y probablemente no esté destinada a utilizarse directamente como un objeto independiente en el código de aplicación. Pregunta Q-11a6ac64bcd3c7d8 (abierta)
La clase agrupa atributos de protocolo del flujo AVTP IEEE 1722. Entre ellos se encuentran el número de secuencia sequenceNum [SWS_RDS_90240] para el seguimiento del orden de los paquetes, la marca de tiempo avtp_timestamp del tipo ara::tsync::Timestamp [SWS_RDS_90237] para la clasificación temporal en la red sincronizada, así como el flag de incertidumbre temporal tu [SWS_RDS_90241]. Campos de cabecera adicionales como dirección MAC, identificador y flags completan la trama de protocolo ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90238], [SWS_RDS_90239]). La encapsulación sistemática de cada campo de datos en un ara::core::Optional tiene en cuenta que, según la variante de formato de AVTPDU, no siempre tienen que estar ocupados todos los campos.
Ciclo de vida
La instanciación y el tiempo de vida de los campos de cabecera comunes están directamente vinculados a la respectiva clase de datagrama derivada. Dado que los miembros están declarados como protected, se crean típicamente en el constructor de una subclase especializada tan pronto como se recibe un flujo AVTPDU o se ensambla para su envío SWS RawDataStream p. 1.
Para una destrucción adecuada, la clase declara un destructor virtual con el identificador ~IEEE1722DatagramAVTPDUCommonStreamHeaderFields() noexcept [SWS_RDS_90242]. La virtualidad garantiza que, al eliminar un datagrama mediante un puntero a la clase base, se ejecute la llamada completa al destructor de la instancia derivada. Su designación como noexcept garantiza que no se lancen excepciones durante la destrucción.
En lo relativo a la concurrencia, la clase no proporciona mecanismos de sincronización. Interpretación: previsiblemente, el acceso seguro para subprocesos a los miembros protegidos en caso de procesamiento paralelo debe garantizarse mediante mecanismos de nivel superior de las capas consumidoras. Pregunta (abierta)
Ruta de uso
En la práctica, el uso se realiza típicamente a lo largo de la siguiente secuencia:
- Creación y asignación: una clase de datagrama derivada instancia la estructura de cabecera. Al transmitir, asigna los campos
ara::core::Optional requeridos, por ejemplo el número de secuencia sequenceNum [SWS_RDS_90240] y la marca de tiempo AVTP avtp_timestamp [SWS_RDS_90237].
- Procesamiento en la ruta de recepción: los datos sin procesar entrantes se deserializan y se asignan a los atributos. La lógica de evaluación comprueba la presencia de los valores opcionales y procesa, por ejemplo, la temporización a través de la marca de tiempo de sincronización [SWS_RDS_90237] o descarta paquetes duplicados en función de
sequenceNum [SWS_RDS_90240].
- Liberación: tras procesar el flujo, la instancia se limpia mediante el destructor [SWS_RDS_90242].
Escenarios de error
Para la clase no se definen códigos de error específicos ni tipos de excepción en la especificación. Los posibles estados de error se limitan a la manipulación de los campos de datos opcionales y a las condiciones de interfaz:
Dado que todos los campos están encapsulados como ara::core::Optional ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90237], [SWS_RDS_90238], [SWS_RDS_90239], [SWS_RDS_90240], [SWS_RDS_90241]), antes de acceder a su valor debe asegurarse de que el campo contenga un valor válido. Un acceso directo no comprobado a un objeto opcional vacío provoca un comportamiento erróneo.
El destructor está declarado como noexcept [SWS_RDS_90242]. Por lo tanto, los errores que pudieran producirse durante la limpieza de recursos en estructuras derivadas no deben propagarse como excepciones, sino que deben gestionarse internamente.
Esta guía se basa en la especificación AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán