DEENESPTFRRUARHIKOZHNL

classe ara::diag::UploadService

[SWS_DM_00794] Upstream: RS_Diag_04033

class UploadService {...};

Upload service interface.

Header-Datei#include "ara/diag/upload.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

Guia do utilizadorGERADO POR IA

Permite que a aplicação disponibilize dados de unidades de controle eletrônico para uploads UDS ao Diagnostic Management.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e2e1ae703412 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Permite que a aplicação disponibilize dados de unidades de controle eletrônico para uploads UDS ao Diagnostic Management.

A classe ara::diag::UploadService serve como interface de serviço do lado da aplicação para o fornecimento de dados de unidades de controle eletrônico para uploads de diagnóstico externos conforme o UDS [SWS_DM_00797]. Após a ativação bem-sucedida via Offer(), o handler processa de forma assíncrona as solicitações consecutivas de iniciação de upload, transferência de blocos de dados e encerramento de transferência [SWS_DM_00802]. A instância de serviço não copiável suporta tanto transferências de dados por blocos quanto o cancelamento prematuro por meio de um handler de cancelamento. O handler confirma solicitações com erro por meio de códigos de retorno UDS negativos dentro das futures de resposta assíncronas.

Contexto

A classe ara::diag::UploadService define a interface de serviço central para operações de upload de diagnóstico dentro da AUTOSAR Adaptive Platform [SWS_DM_00797]. Ela atua como um handler do lado da aplicação para a leitura e o fornecimento de dados internos do veículo a equipamentos de teste externos, de acordo com o padrão de diagnóstico UDS (ISO 14229-1) [SWS_DM_00799].

Na arquitetura do sistema, ara::diag::UploadService interage essencialmente com dois parceiros: o cliente de diagnóstico externo (tester) e o daemon de diagnóstico da plataforma, o Diagnostic Management (DM) [SWS_DM_00799], [SWS_DM_00802]. O DM recebe requisições de serviço UDS recebidas, tais como RequestUpload, TransferData e RequestTransferExit no nível de protocolo, valida-as e encaminha as consultas técnicas para o manipulador registrado da aplicação [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801]. A instância da aplicação implementa os métodos virtuais da interface para ler e retornar os blocos de dados propriamente ditos da memória [SWS_DM_00800].

uploadservice_kontext client Diagnose-Client (Tester) dm Diagnostic Management (DM) client->dm UDS RequestUpload / TransferData / RequestTransferExit dm->client UDS Response / NRC app ara::diag::UploadService (Applikation) dm->app RequestUpload() / UploadData() / RequestUploadExit() app->dm Offer() / StopOffer() app->dm Future-Ergebnisse / OperationOutput

Diagrama de contexto: Integração do serviço de upload entre o cliente de diagnóstico, o Diagnostic Management e o manipulador da aplicação. Fontes: [SWS_DM_00797], [SWS_DM_00799], [SWS_DM_00802].

Ciclo de vida

Uma instância de ara::diag::UploadService é construída especificando-se um ara::core::InstanceSpecifier, bem como o comportamento de concorrência concurrencyType [SWS_DM_00797]. O especificador vincula a instância a um protótipo de porta modelado do tipo DiagnosticUploadInterface [SWS_DM_00797]. O construtor é especificado como seguro contra exceções e seguro para threads [SWS_DM_00797]. Para garantir uma atribuição inequívoca da instância de serviço, os construtores de cópia e de movimentação, bem como os operadores de atribuição, foram explicitamente excluídos [SWS_DM_01671], [SWS_DM_01672], [SWS_DM_01673], [SWS_DM_01674].

Após a instanciação, o serviço encontra-se inicialmente em estado inativo; o DM ainda não encaminha nenhuma requisição. O encaminhamento só é ativado por meio da chamada explícita de Offer() [SWS_DM_00802]. O encaminhamento de requisições pode ser interrompido a qualquer momento através de StopOffer() [SWS_DM_00803]. Tanto Offer() quanto StopOffer() são definidos como não seguros para threads e necessitam de sincronização externa em chamadas a partir de múltiplas threads [SWS_DM_00802], [SWS_DM_00803].

A destruição ocorre por meio do destrutor virtual ~UploadService(), que também não é seguro para threads [SWS_DM_00798]. Portanto, antes de liberar o objeto, o serviço deve ser cancelado de forma ordenada via StopOffer() [SWS_DM_00803]. Se os métodos virtuais de processamento devem ser executados internamente de forma segura para threads é determinado pelo ConcurrencyType configurado durante a construção (kConcurrent ou kNotConcurrent) [SWS_DM_00797], [SWS_DM_00799].

Caminho de utilização

O fluxo regular de uma sessão de upload ocorre em várias etapas consecutivas:

  1. Disponibilização do serviço: a aplicação inicializa o manipulador e chama Offer() para receber requisições de diagnóstico recebidas do DM [SWS_DM_00802].
  2. Requisitar upload (RequestUpload): ao chegar uma requisição UDS para iniciação de upload, o DM chama o método RequestUpload() [SWS_DM_00799]. O manipulador verifica o formato de dados, o formato de endereçamento, bem como o endereço e o comprimento de memória (memoryAddressAndSize). A região de memória passada permanece válida até que o ara::core::Future<void> retornado seja atendido ou o procedimento seja cancelado [SWS_DM_00799].
  3. Transferir blocos de dados (UploadData): após a iniciação bem-sucedida, o tester envia requisições TransferData de UDS. O DM chama então repetidamente UploadData() [SWS_DM_00800]. A aplicação lê o bloco de dados solicitado e o retorna por meio de um ara::core::Future<OperationOutput>; os bytes em OperationOutput.responseData são colocados na resposta positiva atrás do contador de blocos [SWS_DM_00800]. Interpretação: o limite de buffer numBytesToReturn deve funcionar aqui como tamanho máximo de chunk para o buffer interno do DM, de modo que regiões de memória maiores sejam segmentadas sequencialmente por meio de chamadas consecutivas. Pergunta Q-6ede2e3041d99294 (aberta)
  4. Finalizar transferência (RequestUploadExit): para concluir, o DM chama RequestUploadExit() e passa os parâmetros de transferência específicos do fabricante no transferRequestParameterRecord [SWS_DM_00801]. O manipulador valida a conclusão e retorna parâmetros de retorno opcionais no OperationOutput [SWS_DM_00801].
  5. Desativar serviço: após a conclusão de todas as transações de upload ou durante o desligamento, a aplicação encerra o encaminhamento com StopOffer() [SWS_DM_00803].

Durante toda a transferência de dados, o manipulador recebe um objeto CancellationHandler. Através deste, pode-se consultar ativamente o status de cancelamento por meio de IsCanceled() ou registrar um callback por meio de SetNotifier(), caso o tester interrompa o diálogo prematuramente [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801].

Fluxo de um upload de diagnósticoDMUploadServiceOffer()RequestUpload(dataFormat, addressAndLength, memoryAddressAndSize, metaInfo, cancelHandler)Future<void> atendidoloopEnquanto houver mais blocos de dadosUploadData(numBytesToReturn, metaInfo, cancelHandler)Future<OperationOutput> (responseData)RequestUploadExit(transferRequestParamRecord, metaInfo, cancelHandler)Future<OperationOutput>StopOffer()

Diagrama de sequência: Sequência típica de interação entre Diagnostic Management e UploadService durante uma transação de upload. Fontes: [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801], [SWS_DM_00802], [SWS_DM_00803].

Cenários de erro

Condições de erro podem ocorrer durante a construção, durante a ativação e durante o processamento de dados propriamente dito:

  • Violações de modelo e de configuração: se a configuração não coincidir com o modelo ARXML, ocorrem violações na chamada do construtor [SWS_DM_00797]. Entre elas estão InstanceSpecifierMappingIntegrityViolation (o especificador não faz referência a um PortPrototype), PortInterfaceMappingViolation (falta de vinculação via DiagnosticServiceGenericMapping), ProcessMappingViolation (nenhuma correspondência com o processo modelado), bem como InstanceSpecifierAlreadyInUseViolation (uso múltiplo do mesmo especificador dentro de um processo) [SWS_DM_00797].
  • Ativação múltipla do serviço: se Offer() for chamado enquanto o serviço já estiver sendo oferecido, a chamada falha e retorna o código de erro DiagOfferErrc::kAlreadyOffered no ara::core::Result<void> [SWS_DM_00802].
  • Respostas de erro UDS (Negative Response): se o manipulador não puder atender tecnicamente a uma requisição em RequestUpload(), UploadData() ou RequestUploadExit() (por exemplo, endereços de memória inválidos, erros de formato ou contadores de sequência inválidos), ele sinaliza isso disponibilizando um código de erro de DiagUdsNrcErrc no Future retornado [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801]. O DM gera então uma resposta negativa UDS padrão (NRC) para o equipamento de teste externo [SWS_DM_00799].

Este guia baseia-se exclusivamente na especificação da AUTOSAR Adaptive Platform Release R25-11.

Mapa de membros

Diagrama de classes

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

G nara__diag__UploadService152 UploadService + UploadService() + operator=() + ~UploadService() + Offer() + RequestUpload() + RequestUploadExit() + StopOffer() + UploadData()

Vista de detalhes

Selecione uma entrada no índice.

Construtores e destrutor

UploadService função 3

Class for an UploadService.

Sobrecargas UploadService 3
explicit UploadService (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept; SWS_DM_00797
UploadService (UploadService &)=delete; SWS_DM_01673
UploadService (UploadService &&) noexcept=delete; SWS_DM_01674

Destructor of class UploadService.

virtual ~UploadService () noexcept;

Métodos

Offer função

This Offer will enable the DM to forward request messages to this handler.

ara::core::Result< void > Offer () noexcept;
RequestUpload função

Called for RequestUpload.

virtual ara::core::Future< void > RequestUpload (std::uint8_t data FormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const Meta Info &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestTransferExit.

virtual ara::core::Future< OperationOutput > RequestUploadExit (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
StopOffer função

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;
UploadData função

Called for TransferData following a previous RequestUpload.

virtual ara::core::Future< OperationOutput > UploadData (std::size_t numBytesToReturn, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Operadores

operator= função 2

UploadService shall be a single not assignable instance.

Sobrecargas = 2
UploadService & operator= (UploadService &)=delete; SWS_DM_01671
UploadService & operator= (UploadService &&)=delete; SWS_DM_01672

Tipos aninhados

Documentação dos métodos

função Offer [SWS_DM_00802] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04033

ara::core::Result< void > Offer () noexcept;

This Offer will enable the DM to forward request messages to this handler.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: dce89cbe34ef Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função membro síncrona Offer da classe ara::diag::UploadService ([SWS_DM_00802]) ativa o encaminhamento de solicitações de diagnóstico pelo Diagnostic Management (DM) para o manipulador registrado. A chamada não recebe parâmetros e declara a segurança contra exceções noexcept ([SWS_DM_00802]). O tipo de retorno é ara::core::Result<void>, por meio do qual a disponibilização bem-sucedida ou um erro ocorrido é representado ([SWS_DM_00802]).

Tratamento de erros e simultaneidade

  • Códigos de erro: caso o serviço já tenha sido oferecido anteriormente, a execução falha com o código de erro DiagOfferErrc::kAlreadyOffered ([SWS_DM_00802]); aqui se aplica a semântica de reversão.
  • Segurança de thread: a função é explicitamente especificada como not thread-safe ([SWS_DM_00802]). Chamadas concorrentes na mesma instância de serviço devem ser sincronizadas pelo lado da aplicação.

Interação no subsistema de diagnóstico

A operação integra-se ao padrão de disponibilização uniforme de manipuladores de diagnóstico adaptativos, como é utilizado, entre outros, em DownloadService ([SWS_DM_00792]) ou GenericUDSService ([SWS_DM_00619]). Enquanto a disponibilização não tiver sido realizada, o DM não encaminha mensagens de diagnóstico de entrada para o manipulador (cf. comportamentos análogos em [SWS_DM_01525]). Interpretação: a chamada de Offer deve ocorrer tipicamente durante a fase de inicialização da aplicação, antes que o tráfego de diagnóstico seja aceito. Pergunta Q-aba091d233b5e45b (aberta)

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Adaptive R25-11.

Guia do implementador em breve (complexidade I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error.

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

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

Record
AUTOSAR/AP/record/SWS_DM_00802
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00802@rel:R25-11#5ee18d87
Content hash
5ee18d87
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00802
Status: valid/unmigrated Version: rel:R25-11#bad97a1d Versionshistorie & Revisions (1 transition, 8 revision)
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_DM_00802@rel:R25-11#bad97a1d
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#786c252c2026-09-30
  • R19-11rel:R19-11#3f54e3d62026-10-14
  • R20-11rel:R20-11#0298249e2026-10-14
  • R21-11rel:R21-11#13db1e2f2026-10-14
  • R22-11rel:R22-11#c89046b12026-10-14
  • R23-11rel:R23-11#5c26975d2026-10-14
  • R24-11rel:R24-11#27f9bbaf2026-10-14
  • R25-11rel:R25-11#bad97a1d2026-10-14 active
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

função RequestUpload [SWS_DM_00799] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

virtual ara::core::Future< void > RequestUpload (std::uint8_t data FormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const Meta Info &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestUpload.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 657154fb4e5a Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

O método RequestUpload da classe de serviço ara::diag::UploadService é chamado pelo Diagnostic Server para processar um pedido de diagnóstico recebido do serviço UDS 0x35 (RequestUpload) em conformidade com a ISO 14229-1 [SWS_DM_00134] [SWS_DM_00868] AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.17 «Service 0x35 – RequestUpload». A função recebe os seguintes parâmetros [SWS_DM_00799]:

  • dataFormatIdentifier e addressAndLengthFormatIdentifier: Identificadores de formato UDS para dados, endereço de memória e indicações de comprimento.
  • memoryAddressAndSize: Um ara::core::Span com endereço e tamanho de memória, cuja validade é garantida até ao cumprimento da promise ou ao cancelamento do processamento.
  • metaInfo: Metainformações sobre o pedido de diagnóstico.
  • cancellationHandler: Serve para a consulta do estado de cancelamento via cancellationHandler.IsCanceled e para o registo de funções de notificação por meio de cancellationHandler.SetNotifier.

O processamento ocorre de forma assíncrona com o tipo de retorno ara::core::Future<void> [SWS_DM_00799].

Tratamento de erros

Em caso de erro, o ara::core::Future disponibiliza um código de erro UDS NRC adequado de acordo com a ISO 14229-1 através de DiagUdsNrcErrc, seguindo-se uma resposta negativa [SWS_DM_00799]. Em caso de resposta positiva, o Diagnostic Manager reporta o evento de segurança SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL ao IdsM [SWS_DM_02031]; em caso de resposta negativa, o evento SEV_UDS_REQUEST_UP_DOWNLOAD_FAILED [SWS_DM_02033].

Concorrência e interação

A função está declarada como noexcept e é segura contra exceções. A obrigatoriedade de o método ser implementado de forma segura para threads é condicional e definida através do ConcurrencyType passado no construtor [SWS_DM_00799].

Após a confirmação bem-sucedida de RequestUpload, a transferência de dados de upload propriamente dita é continuada em pedidos subsequentes do serviço UDS 0x36 (TransferData) através de UploadData [SWS_DM_00800] [SWS_DM_01096].

Esta nota de utilização foi gerada por uma inteligência artificial com base na especificação AUTOSAR Adaptive R25-11.

Guia do implementador em breve (complexidade I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
dataFormatIdentifierUDS dataFormat Identifier
addressAndLengthFormatIdentifierUDS addressAndLengthFormatIdentifier
memoryAddressAndSizememoryAddress and memorySize part of the request. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future< void >A Result with either void (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00799
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00799@rel:R25-11#0077c033
Content hash
0077c033
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00799
Status: valid/unmigrated Version: rel:R25-11#0b83de5a Versionshistorie & Revisions (1 transition, 8 revision)
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_DM_00799@rel:R25-11#0b83de5a
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#8fbf8bca2026-09-30
  • R19-11rel:R19-11#33d5ee1b2026-10-14
  • R20-11rel:R20-11#d252b6b12026-10-14
  • R21-11rel:R21-11#ef0d46112026-10-14
  • R22-11rel:R22-11#2327d0512026-10-14
  • R23-11rel:R23-11#e790ec332026-10-14
  • R24-11rel:R24-11#32605e462026-10-14
  • R25-11rel:R25-11#0b83de5a2026-10-14 active
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

função RequestUploadExit [SWS_DM_00801] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

virtual ara::core::Future< OperationOutput > RequestUploadExit (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestTransferExit.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c83d03772031 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

O método RequestUploadExit da classe ara::diag::UploadService (SWS Diagnostics §8.27.1.1.3.3 «RequestUploadExit») é chamado pela instância do servidor de diagnóstico quando o término de uma transferência de dados através do serviço UDS RequestTransferExit (0x37) deve ser processado [SWS_DM_00141], [SWS_DM_00801].

A interface recebe os seguintes parâmetros [SWS_DM_00801]:

  • transferRequestParameterRecord: Contém parâmetros específicos do fabricante para suporte da transferência no formato ara::core::Span<const std::uint8_t>. Os dados mantêm-se válidos até que a promise correspondente seja cumprida ou o processamento seja cancelado. Interpretação: a avaliação destes parâmetros deverá servir prioritariamente para validações específicas do fabricante na conclusão do upload. Pergunta Q-d3989837f58761d7 (aberta)
  • metaInfo: Passa metainformações do pedido de diagnóstico atual.
  • cancellationHandler: Permite a consulta do estado de cancelamento via cancellationHandler.IsCanceled() ou o registo de um callback de notificação por meio de cancellationHandler.SetNotifier().

Valores de retorno e tratamento de erros

A execução ocorre de forma assíncrona e devolve um ara::core::Future<OperationOutput> [SWS_DM_00801]. Em caso de sucesso, a future é cumprida com uma instância de OperationOutput. Os dados nela passados a partir de responseData são inseridos na resposta de diagnóstico positiva a seguir ao ID de serviço como transferResponseParameterRecord [SWS_DM_00796], [SWS_DM_00801]. Em caso de erro, a future deve ser concluída com um código de erro adequado de DiagUdsNrcErrc em conformidade com a ISO 14229-1 [SWS_DM_00801].

Simultaneidade e restrições

O método está especificado como noexcept [SWS_DM_00801]. O requisito de segurança de threads é condicional: se a função deve ser executada de forma segura para threads é determinado através do ConcurrencyType passado no construtor de UploadService [SWS_DM_00801].

Esta nota de utilização baseia-se nas especificações em AUTOSAR AP SWS Diagnostics R25-11.

Guia do implementador em breve (complexidade I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
transferRequestParameterRecordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future, which either gets readied to OperationOutput (transfer ResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.responseData will be placed after SID as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00801
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00801@rel:R25-11#e2452e98
Content hash
e2452e98
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00801
Status: valid/unmigrated Version: rel:R25-11#f77c400c Versionshistorie & Revisions (1 transition, 8 revision)
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_DM_00801@rel:R25-11#f77c400c
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f103b5002026-09-30
  • R19-11rel:R19-11#6d772d5c2026-10-14
  • R20-11rel:R20-11#c9d5fd842026-10-14
  • R21-11rel:R21-11#6b59a7682026-10-14
  • R22-11rel:R22-11#1e7bc3b72026-10-14
  • R23-11rel:R23-11#7014682b2026-10-14
  • R24-11rel:R24-11#883ba93a2026-10-14
  • R25-11rel:R25-11#f77c400c2026-10-14 active
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

função StopOffer [SWS_DM_00803] Upstream: RS_Diag_04033

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e7cdc33ba5c7 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

O método StopOffer() da classe ara::diag::UploadService ([SWS_DM_00803], declarado em #include "ara/diag/upload.h") desativa o encaminhamento de requisições de diagnóstico recebidas do Diagnostic Management (DM) para o serviço de upload. A função possui a assinatura void StopOffer() noexcept;, não recebe parâmetros e não retorna valor. A chamada ocorre de forma síncrona e encerra o encaminhamento de requisições imediatamente.

Tratamento de erros

A operação é especificada como segura contra exceções (exception safe) e declarada com o identificador noexcept [SWS_DM_00803]. Portanto, nenhuma exceção C++ é lançada. Códigos de erro ou mensagens de erro específicos não estão previstos para esta chamada.

Simultaneidade e restrições

De acordo com a especificação, StopOffer() não é seguro para threads (not thread-safe) [SWS_DM_00803]. A Adaptive Application chamadora deve, portanto, assegurar por conta própria que chamadas na mesma instância não ocorram de forma concorrente a partir de múltiplas threads sem sincronização externa. Em relação à ordem, o método tipicamente só deve ser chamado após uma oferta prévia do serviço, a fim de cancelá-lo de forma controlada. Pergunta Q-90ce659f307f54ca (aberta)

Interação

A interface alinha-se ao padrão uniforme de disponibilização do diagnóstico AUTOSAR Adaptive, que prevê métodos separados de ativação e desativação para instâncias de serviço AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». O método constitui a contraparte funcional de ara::diag::DownloadService::StopOffer ([SWS_DM_00793]), que está sujeito aos mesmos requisitos upstream. Funções de desativação análogas existem adicionalmente para outros componentes de diagnóstico, como rotinas genéricas ([SWS_DM_00558]), serviços UDS ([SWS_DM_00620]), bem como interfaces de autenticação ([SWS_DM_01131]).

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Adaptive R25-11.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_DM_00803
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00803@rel:R25-11#54147393
Content hash
54147393
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00803
Status: valid/unmigrated Version: rel:R25-11#8b63b743 Versionshistorie & Revisions (1 transition, 8 revision)
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_DM_00803@rel:R25-11#8b63b743
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#dd707d232026-09-30
  • R19-11rel:R19-11#68387f162026-10-14
  • R20-11rel:R20-11#0faa733b2026-10-14
  • R21-11rel:R21-11#3a7bf50e2026-10-14
  • R22-11rel:R22-11#413e742c2026-10-14
  • R23-11rel:R23-11#d3704b4a2026-10-14
  • R24-11rel:R24-11#376798192026-10-14
  • R25-11rel:R25-11#8b63b7432026-10-14 active
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

função UploadData [SWS_DM_00800] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

virtual ara::core::Future< OperationOutput > UploadData (std::size_t numBytesToReturn, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for TransferData following a previous RequestUpload.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0748aa4db498 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

O método puramente virtual UploadData da interface ara::diag::UploadService é chamado pelo Diagnostic Server para processar o serviço UDS TransferData (0x36) após uma inicialização prévia via RequestUpload (0x35) ([SWS_DM_00800], [SWS_DM_01096], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8 «TransferData (0x36) upload processing»).

  • numBytesToReturn: Especifica a quantidade de bytes que o Diagnostic Manager (DM) pode comportar no máximo para este bloco de dados devido ao seu tamanho de buffer interno ([SWS_DM_00800]). Interpretação: A aplicação provavelmente deve limitar rigorosamente o tamanho do bloco a este valor limite. Pergunta Q-89de95e70e1e6223 (aberta)
  • metaInfo: Disponibiliza metainformações sobre a solicitação de diagnóstico de entrada ([SWS_DM_00800]).
  • cancellationHandler: Serve para o monitoramento de conversas em andamento via cancellationHandler.IsCanceled(), bem como para o registro de notificações através de cancellationHandler.SetNotifier() no caso de um cancelamento ([SWS_DM_00800]).

O retorno ocorre de forma assíncrona através de ara::core::Future<OperationOutput> ([SWS_DM_00800]). Em caso de sucesso, os dados úteis fornecidos em OperationOutput.responseData ([SWS_DM_00796]) são posicionados diretamente após o contador blockSequenceCounter como transferResponseParameterRecord na resposta positiva ([SWS_DM_00800]).

Tratamento de erros e validação

Em caso de erro, o Future é resolvido com um código de erro apropriado (NRC) em conformidade com a ISO 14229-1 proveniente de DiagUdsNrcErrc ([SWS_DM_00800]). Com exceção de verificações básicas de NRC de acordo com [SWS_DM_00101] e [SWS_DM_00103], o Diagnostic Manager não realiza nenhuma validação adicional de serviço; todas as demais verificações de NRC exigidas devem ser implementadas pela própria aplicação chamada ([SWS_DM_01096]).

Simultaneidade e segurança de execução

A operação é segura para exceções (exception safe) ([SWS_DM_00800], AUTOSAR_AP_SWS_Diagnostics §8.27.1.1.3.5 «UploadData»). A segurança de thread é condicional: se UploadData precisa ser implementado de forma segura para threads é determinado através do ConcurrencyType passado no construtor de UploadService ([SWS_DM_00800]).

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R25-11.

Guia do implementador em breve (complexidade I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
numBytesToReturnnumber of bytes DM accepts (due to its internal buffer) for this chunk.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future, which either gets readied to OperationOutput (transfer ResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for a negative response message). Data in OperationOutput.responseData will be placed after block SequenceCounter as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00800
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00800@rel:R25-11#745de94e
Content hash
745de94e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00800
Status: valid/unmigrated Version: rel:R25-11#4ee36ff3 Versionshistorie & Revisions (1 transition, 8 revision)
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_DM_00800@rel:R25-11#4ee36ff3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#91b276562026-09-30
  • R19-11rel:R19-11#597f021f2026-10-14
  • R20-11rel:R20-11#07f442e92026-10-14
  • R21-11rel:R21-11#5d3267c42026-10-14
  • R22-11rel:R22-11#5ba2c4292026-10-14
  • R23-11rel:R23-11#96d3edad2026-10-14
  • R24-11rel:R24-11#512c5d2b2026-10-14
  • R25-11rel:R25-11#4ee36ff32026-10-14 active
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

função UploadService [SWS_DM_00797] Upstream: RS_AP_00137, RS_Diag_04033, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

explicit UploadService (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Class for an UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Verletzungen (Violations)InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is typed by a pingViolation DiagnosticUploadInterface needs to be referenced by a DiagnosticServiceGenericMapping. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.

Parameter (in)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticUploadInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).

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

Record
AUTOSAR/AP/record/SWS_DM_00797
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00797@rel:R25-11#4211bd6b
Content hash
4211bd6b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00797
Status: valid/unmigrated Version: rel:R25-11#e7e491fd Versionshistorie & Revisions (1 transition, 8 revision)
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_DM_00797@rel:R25-11#e7e491fd
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#216dae2f2026-09-30
  • R19-11rel:R19-11#fcb841452026-10-14
  • R20-11rel:R20-11#c9f4cf932026-10-14
  • R21-11rel:R21-11#c9f4cf932026-10-14
  • R22-11rel:R22-11#a535d2f62026-10-14
  • R23-11rel:R23-11#b8c1cbe42026-10-14
  • R24-11rel:R24-11#fd0c15cb2026-10-14
  • R25-11rel:R25-11#e7e491fd2026-10-14 active
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

função UploadService [SWS_DM_01673] Upstream: RS_AP_00147

UploadService (UploadService &)=delete;

UploadService shall be a single not copy-able instance.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01673
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01673@rel:R25-11#fb9080f5
Content hash
fb9080f5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01673
Status: valid/unmigrated Version: rel:R25-11#138bf0fb Versionshistorie & Revisions (1 transition, 4 revision)
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_DM_01673@rel:R25-11#138bf0fb
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#3ed52c152026-09-30
  • R23-11rel:R23-11#ee1fd89a2026-10-14
  • R24-11rel:R24-11#84b805742026-10-14
  • R25-11rel:R25-11#138bf0fb2026-10-14 active
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

função UploadService [SWS_DM_01674] Upstream: RS_AP_00147

UploadService (UploadService &&) noexcept=delete;

Move constructor of UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01674
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01674@rel:R25-11#027736b9
Content hash
027736b9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01674
Status: valid/unmigrated Version: rel:R25-11#1a0da022 Versionshistorie & Revisions (1 transition, 4 revision)
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_DM_01674@rel:R25-11#1a0da022
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e66414f02026-09-30
  • R23-11rel:R23-11#ee76ef902026-10-14
  • R24-11rel:R24-11#1a0da0222026-10-14
  • R25-11rel:R25-11#1a0da0222026-10-14 active
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

função operator= [SWS_DM_01671] Upstream: RS_AP_00147

UploadService & operator= (UploadService &)=delete;

UploadService shall be a single not assignable instance.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01671
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01671@rel:R25-11#62137e89
Content hash
62137e89
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01671
Status: valid/unmigrated Version: rel:R25-11#af20aa02 Versionshistorie & Revisions (1 transition, 4 revision)
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_DM_01671@rel:R25-11#af20aa02
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#297568772026-09-30
  • R23-11rel:R23-11#4f34cf602026-10-14
  • R24-11rel:R24-11#af20aa022026-10-14
  • R25-11rel:R25-11#af20aa022026-10-14 active
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

função operator= [SWS_DM_01672] Upstream: RS_AP_00147

UploadService & operator= (UploadService &&)=delete;

Move assignment operator of UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01672
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01672@rel:R25-11#09580e42
Content hash
09580e42
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01672
Status: valid/unmigrated Version: rel:R25-11#8d230917 Versionshistorie & Revisions (1 transition, 4 revision)
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_DM_01672@rel:R25-11#8d230917
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#1ac3ee402026-09-30
  • R23-11rel:R23-11#77d3925b2026-10-14
  • R24-11rel:R24-11#8d2309172026-10-14
  • R25-11rel:R25-11#8d2309172026-10-14 active
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

função ~UploadService [SWS_DM_00798] Upstream: RS_AP_00134, RS_Diag_04033

virtual ~UploadService () noexcept;

Destructor of class UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

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

Record
AUTOSAR/AP/record/SWS_DM_00798
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00798@rel:R25-11#265de957
Content hash
265de957
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00798
Status: valid/unmigrated Version: rel:R25-11#d8bb9189 Versionshistorie & Revisions (1 transition, 8 revision)
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_DM_00798@rel:R25-11#d8bb9189
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#66df81512026-09-30
  • R19-11rel:R19-11#b772d13d2026-10-14
  • R20-11rel:R20-11#4dbb305d2026-10-14
  • R21-11rel:R21-11#4dbb305d2026-10-14
  • R22-11rel:R22-11#0a6cc0fa2026-10-14
  • R23-11rel:R23-11#8d6c812b2026-10-14
  • R24-11rel:R24-11#978ec5a12026-10-14
  • R25-11rel:R25-11#d8bb91892026-10-14 active
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