DEENESPTFRRUARHIKOZHNL

estrutura ara::tsync::UserData

[SWS_TS_14230] Upstream: RS_TS_00014 texto ainda não importado

struct UserData {...};

Structure to define user data. .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Forwarding-Header#include "ara/tsync/tsync_fwd.h"
Scopenamespace ara::tsync

Guia do utilizadorGERADO POR IA

Fornece um buffer para transmissão de pequenos dados úteis específicos da aplicação para bases de tempo sincronizadas.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 44e6e39606c3 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Fornece um buffer para transmissão de pequenos dados úteis específicos da aplicação para bases de tempo sincronizadas.

A estrutura ara::tsync::UserData serve para a transmissão de dados úteis compactos específicos da aplicação no âmbito de bases de tempo sincronizadas. Ela gerencia um buffer estático com um limite superior imutável de três bytes, definido por meio de kMaxUserDataSize [SWS_TS_14231]. As aplicações escrevem dados úteis no array e identificam a quantidade de bytes efetivamente válidos por meio do campo size [SWS_TS_14232]. Como condição de contorno central, a lógica de programação da aplicação deve garantir que size nunca exceda a capacidade máxima estabelecida e que acessos a áreas não inicializadas do buffer sejam evitados.

Contexto

A estrutura de dados ara::tsync::UserData serve, dentro do cluster funcional para sincronização de tempo (tsync) da AUTOSAR Adaptive Platform, para encapsular dados úteis específicos da aplicação no âmbito de bases de tempo sincronizadas. A estrutura é declarada no arquivo de cabeçalho ara/tsync/synchronized_time_base_status.h. Sua responsabilidade primária consiste em fornecer uma área de memória compacta e dimensionada estaticamente para dados adicionais da aplicação, que são transmitidos ou avaliados juntamente com informações de tempo. A extensão máxima desses dados úteis é definida exatamente em três bytes pela constante estática kMaxUserDataSize [SWS_TS_14231]. Para o armazenamento em buffer dos bytes de dados úteis propriamente ditos, é utilizado o array data do tipo ara::core::Array<ara::core::Byte, kMaxUserDataSize> [SWS_TS_14233]. Esse buffer é complementado pelo campo size, que indica a quantidade de bytes de dados úteis efetivamente válidos no buffer [SWS_TS_14232]. Interpretação: devido ao local de definição no cabeçalho ara/tsync/synchronized_time_base_status.h, UserData deve servir principalmente como um campo de status para a transmissão de pequenas informações adicionais relacionadas à aplicação, como flags de controle ou contadores. Pergunta Q-a0fb20686141f042 (aberta) Como parceiros de interação atuam tipicamente serviços provedores de tempo e aplicações receptoras, que consultam ou repassam o status de uma base de tempo sincronizada.

Ciclo de vida

Como uma estrutura C++ comum (Value Object), UserData não possui um ciclo de vida interno complexo e dispensa completamente alocações dinâmicas de memória. As instâncias são geralmente criadas na pilha ou como elemento de dados embutido de estruturas de status de nível superior. A inicialização ocorre diretamente por meio de inicialização de membros ou atribuição padrão de C++. Em relação à posse, a estrutura obedece à semântica de valor: os componentes criadores possuem integralmente sua instância local e a transmitem por cópia ou referência para as interfaces. Como UserData não implementa mecanismos internos de sincronização ou bloqueios por mutex, o acesso concorrente de leitura e escrita a partir de múltiplas threads para a mesma instância não é seguro para threads. As aplicações devem proteger os acessos simultâneos por meio de medidas externas de sincronização, enquanto instâncias independentes entre si podem ser usadas com segurança em contextos concorrentes. A destruição não requer limpeza explícita de recursos, já que o campo de dados contido data [SWS_TS_14233] é reservado estaticamente.

Caminho de utilização

Um caminho de uso típico abrange o preenchimento, o repasse e a avaliação do buffer de dados. Primeiramente, um componente transmissor ou disponibilizador de status cria uma instância de UserData. Em seguida, os dados úteis são copiados para o array data, podendo ser ocupados no máximo kMaxUserDataSize bytes [SWS_TS_14231], [SWS_TS_14233]. Imediatamente depois, o componente define o campo size para o número efetivo de bytes gravados [SWS_TS_14232]. No lado do receptor, a aplicação de processamento verifica primeiramente o valor de size [SWS_TS_14232]. Se size for maior que zero, a aplicação lê exatamente esse prefixo válido do buffer data [SWS_TS_14233]. Valores fora desse intervalo, ou seja, a partir do índice size até kMaxUserDataSize - 1, são ignorados, pois podem conter dados residuais indefinidos ou desatualizados.

Cenários de erro

Situações de erro resultam em UserData principalmente de inconsistências entre a indicação de tamanho e a capacidade do buffer. Se o campo size assumir um valor que exceda o tamanho máximo definido kMaxUserDataSize de três bytes [SWS_TS_14231], ocorre uma violação dos limites da especificação. Em tal caso, durante a leitura iterativa de data [SWS_TS_14233], há risco de estouros de buffer ou acessos fora dos limites definidos do array. Outro risco reside na leitura incorreta de data quando size for igual a zero [SWS_TS_14232], uma vez que nesse estado não existem dados úteis válidos. Códigos de erro ou exceções não são gerados pela própria estrutura; a validação de pré-condições — em especial size <= kMaxUserDataSize — cabe, portanto, inteiramente à lógica de programação da aplicação.

Este guia baseia-se na especificação AUTOSAR Adaptive R25-11. Todas as informações fundamentam-se nos requisitos SWS referenciados.

Mapa de membros

Diagrama de classes

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__tsync__UserData398 «struct» UserData + data + kMaxUserDataSize + size

Vista de detalhes

Selecione uma entrada no índice.

Constantes

data variável

User data buffer (maximum size: kMaxUserDataSize). .

Maximum number of user data bytes. .

static constexpr std::size_t kMaxUserDataSize = 3u;
size variável

Number of valid user data bytes in data. .

Documentação das constantes / variáveis

variável data [SWS_TS_14233] Upstream: RS_TS_00014 texto ainda não importado

ara::core::Array<ara::core::Byte, kMaxUserDataSize> data;

User data buffer (maximum size: kMaxUserDataSize). .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Scopestruct ara::tsync::UserData
Symboldata
Typara::core::Array< ara::core::Byte, kMaxUserDataSize >

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14233
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14233@rel:R25-11#2362ccf0
Content hash
2362ccf0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14233
Status: valid/unmigrated Version: rel:R25-11#1f27c5a4 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14233@rel:R25-11#1f27c5a4
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variável kMaxUserDataSize [SWS_TS_14231] Upstream: RS_TS_00014 texto ainda não importado

static constexpr std::size_t kMaxUserDataSize = 3u;

Maximum number of user data bytes. .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Scopestruct ara::tsync::UserData
SymbolkMaxUserDataSize
Typstd::size_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14231
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14231@rel:R25-11#ba1cb0d8
Content hash
ba1cb0d8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14231
Status: valid/unmigrated Version: rel:R25-11#df87c9f1 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14231@rel:R25-11#df87c9f1
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variável size [SWS_TS_14232] Upstream: RS_TS_00014 texto ainda não importado

std::size_t size;

Number of valid user data bytes in data. .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Scopestruct ara::tsync::UserData
Symbolsize
Typstd::size_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14232
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14232@rel:R25-11#c8845a40
Content hash
c8845a40
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14232
Status: valid/unmigrated Version: rel:R25-11#ddf624eb Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14232@rel:R25-11#ddf624eb
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill