Encapsula campos de cabeçalho comuns, como carimbos de data/hora e números de sequência para streams AVTPDU IEEE 1722, como valores opcionais.
Contexto
A classe ara::rds::IEEE1722DatagramAVTPDUCommonStreamHeaderFields disponibiliza, dentro do módulo Raw Data Stream (rds) da AUTOSAR Adaptive Platform, a representação comum dos campos de cabeçalho de stream para datagramas AVTPDU IEEE 1722 SWS RawDataStream p. 1. Ela é incluída por meio do cabeçalho #include "ara/rds/raw_data_stream_IEEE1722.h" e forma a base padronizada para o processamento de Audio/Video Transport Protocol Data Units (AVTPDU) através de fluxos de dados baseados em Ethernet. Todas as variáveis de protocolo definidas na especificação são providas do modificador de acesso protected ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90237], [SWS_RDS_90238], [SWS_RDS_90239], [SWS_RDS_90240], [SWS_RDS_90241]). Interpretação: Isso sugere que a classe foi concebida como base de herança para tipos de datagrama especializados e não deve ter sido pensada para uso direto como objeto independente no código da aplicação.
Pergunta Q-11a6ac64bcd3c7d8 (aberta)
A classe agrupa atributos de protocolo do fluxo AVTP IEEE 1722. A estes pertencem o número de sequência sequenceNum [SWS_RDS_90240] para o rastreamento da ordem dos pacotes, o carimbo de data/hora avtp_timestamp do tipo ara::tsync::Timestamp [SWS_RDS_90237] para a ordenação temporal na rede sincronizada, bem como a flag de incerteza de tempo tu [SWS_RDS_90241]. Campos de cabeçalho adicionais, como endereço MAC, identificador e flags, completam o quadro do protocolo ([SWS_RDS_90235], [SWS_RDS_90236], [SWS_RDS_90238], [SWS_RDS_90239]). O encapsulamento consistente de cada campo de dados em um ara::core::Optional leva em consideração que, dependendo da variante de formato da AVTPDU, nem sempre todos os campos precisam estar preenchidos.
Ciclo de vida
A instanciação e o ciclo de vida dos campos de cabeçalho comuns estão diretamente vinculados à respectiva classe de datagrama derivada. Como os membros são declarados como protected, eles são tipicamente criados no construtor de uma subclasse especializada assim que um fluxo AVTPDU é recebido ou montado para envio SWS RawDataStream p. 1.
Para a destruição adequada, a classe declara um destrutor virtual com o identificador ~IEEE1722DatagramAVTPDUCommonStreamHeaderFields() noexcept [SWS_RDS_90242]. A virtualidade assegura que, ao excluir um datagrama por meio de um ponteiro para a classe base, ocorra a chamada completa do destrutor da instância derivada. A designação como noexcept garante que nenhuma exceção seja lançada durante a destruição.
Em relação à concorrência, a classe não disponibiliza mecanismos de sincronização. Interpretação: Um acesso thread-safe aos membros protegidos em caso de processamento paralelo deve ser presumivelmente garantido por mecanismos de nível superior das camadas utilizadoras.
Pergunta (aberta)
Caminho de utilização
Na prática, o uso ocorre tipicamente ao longo do seguinte fluxo:
- Criação e preenchimento: Uma classe de datagrama derivada instancia a estrutura de cabeçalho. Durante o envio, ela preenche os campos
ara::core::Optional necessários, por exemplo, o número de sequência sequenceNum [SWS_RDS_90240] e o carimbo de data/hora AVTP avtp_timestamp [SWS_RDS_90237].
- Processamento no caminho de recepção: Dados brutos recebidos são desserializados e atribuídos aos atributos. A lógica de avaliação verifica a existência dos valores opcionais e processa, por exemplo, a temporização por meio do carimbo de data/hora de sincronização [SWS_RDS_90237] ou descarta pacotes duplicados com base em
sequenceNum [SWS_RDS_90240].
- Liberação: Após o processamento do stream, a instância é liberada por meio do destrutor [SWS_RDS_90242].
Cenários de erro
Não há códigos de erro ou tipos de exceção específicos definidos na especificação para a classe. Possíveis estados de erro limitam-se ao manuseio dos campos de dados opcionais e às condições de interface:
Como todos os campos estão 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]), deve-se assegurar que o campo esteja preenchido de forma válida antes de acessar seu valor. Um acesso direto não verificado a um objeto opcional vazio leva a um comportamento incorreto.
O destrutor é declarado como noexcept [SWS_RDS_90242]. Eventuais erros que ocorram na limpeza de recursos em estruturas derivadas não devem, portanto, ser propagados como exceções, mas sim tratados internamente.
Este guia baseia-se na especificação AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão