Stelt de applicatie in staat om regeleenheidgegevens voor UDS-uploads beschikbaar te stellen aan Diagnostic Management.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e2e1ae703412HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt de applicatie in staat om regeleenheidgegevens voor UDS-uploads beschikbaar te stellen aan Diagnostic Management.
De klasse ara::diag::UploadService dient als applicatiezijdige serviceschnittstelle voor het beschikbaar stellen van regeleenheiddata voor externe diagnose-uploads conform UDS [SWS_DM_00797]. Na succesvolle activering via Offer() verwerkt de handler asynchroon de opeenvolgende verzoeken voor uploadinitiatie, datablokoverdracht en transferbeëindiging [SWS_DM_00802]. De niet-kopieerbare service-instantie ondersteunt daarbij zowel bloksgewijze gegevensoverdrachten als het voortijdig afbreken via een annuleringshandler. Foutieve verzoeken worden door de handler beantwoord met negatieve UDS-retourcodes binnen de asynchrone respons-futures.
Context
De klasse ara::diag::UploadService definieert de centrale serviceschnittstelle voor diagnose-uploadoperaties binnen het AUTOSAR Adaptive Platform [SWS_DM_00797]. Deze fungeert als applicatiezijdige handler voor het uitlezen en beschikbaar stellen van voertuiginterne data aan externe testapparaten conform de diagnosestandaard UDS (ISO 14229-1) [SWS_DM_00799].
In de systeemarchitectuur communiceert ara::diag::UploadService hoofdzakelijk met twee partners: de externe diagnoseclient (tester) en de platformzijdige diagnosedaemon Diagnostic Management (DM) [SWS_DM_00799], [SWS_DM_00802]. Het DM neemt binnenkomende UDS-serviceverzoeken zoals RequestUpload, TransferData en RequestTransferExit op protocolniveau in ontvangst, valideert deze en stuurt de functionele bevragingen door naar de geregistreerde handler van de applicatie [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801]. De applicatie-instantie implementeert de virtuele methoden van de interface om de eigenlijke datablokken uit het geheugen te lezen en terug te sturen [SWS_DM_00800].
Contextdiagram: Integratie van de uploadservice tussen diagnoseclient, Diagnostic Management en applicatiehandler. Bronnen: [SWS_DM_00797], [SWS_DM_00799], [SWS_DM_00802].
Levenscyclus
Een instantie van ara::diag::UploadService wordt geconstrueerd onder vermelding van een ara::core::InstanceSpecifier en het concurrency-gedrag concurrencyType[SWS_DM_00797]. De specificeerder koppelt de instantie aan een gemodelleerd poortprototype van het type DiagnosticUploadInterface[SWS_DM_00797]. De constructor is uitzonderingsveilig en thread-safe gespecificeerd [SWS_DM_00797]. Om een eenduidige toewijzing van de service-instantie te garanderen, zijn copy- en move-constructors evenals toewijzingsoperatoren expliciet verwijderd [SWS_DM_01671], [SWS_DM_01672], [SWS_DM_01673], [SWS_DM_01674].
Na de instantiëring bevindt de service zich eerst in de inactieve toestand; het DM stuurt nog geen verzoeken door. Pas door de expliciete aanroep van Offer() wordt het doorsturen geactiveerd [SWS_DM_00802]. Via StopOffer() kan het doorsturen van verzoeken op elk moment weer worden verhinderd [SWS_DM_00803]. Zowel Offer() als StopOffer() zijn gedefinieerd als niet thread-safe en vereisen externe synchronisatie bij aanroepen vanuit meerdere threads [SWS_DM_00802], [SWS_DM_00803].
De vernietiging vindt plaats via de virtuele destructor ~UploadService(), die eveneens niet thread-safe is [SWS_DM_00798]. Vóór het vrijgeven van het object moet de service daarom reglementair via StopOffer() worden gederegistreerd [SWS_DM_00803]. Of de virtuele verwerkingsmethoden intern thread-safe moeten worden uitgevoerd, wordt bepaald door de bij de constructie geconfigureerde ConcurrencyType (kConcurrent of kNotConcurrent) [SWS_DM_00797], [SWS_DM_00799].
Gebruikspad
Het reguliere verloop van een uploadsessie voltrekt zich in meerdere opeenvolgende stappen:
Servicebeschikbaarstelling: De applicatie initialiseert de handler en roept Offer() aan om binnenkomende diagnoseverzoeken van het DM te ontvangen [SWS_DM_00802].
Upload aanvragen (RequestUpload): Komt er een UDS-verzoek voor uploadinitiatie binnen, dan roept het DM de methode RequestUpload() aan [SWS_DM_00799]. De handler controleert dataformaat, adresseringsformaat evenals geheugenadres en -lengte (memoryAddressAndSize). Het overgedragen geheugengebied blijft geldig totdat de geretourneerde ara::core::Future<void> is vervuld of de bewerking wordt geannuleerd [SWS_DM_00799].
Datablokken overdragen (UploadData): Na succesvolle initiatie verzendt de tester UDS-TransferData-verzoeken. Het DM roept daarop herhaaldelijk UploadData() aan [SWS_DM_00800]. De applicatie leest het opgevraagde datablok en levert dit via een ara::core::Future<OperationOutput> terug; de bytes in OperationOutput.responseData worden in het positieve antwoord achter de blokteller geplaatst [SWS_DM_00800]. Interpretatie: De bufferbegrenzing numBytesToReturn fungeert hierbij vermoedelijk als maximale chunkgrootte voor de interne buffering van het DM, zodat omvangrijkere geheugengebieden sequentieel over opeenvolgende aanroepen worden gesegmenteerd. Vraag Q-6ede2e3041d99294 (open)
Transfer beëindigen (RequestUploadExit): Ter afronding roept het DM RequestUploadExit() aan en draagt de fabrikantspecifieke transferparameters in transferRequestParameterRecord over [SWS_DM_00801]. De handler valideert de afronding en levert optionele retourparameters in OperationOutput terug [SWS_DM_00801].
Service deactiveren: Na afronding van alle uploadtransacties of bij het afsluiten beëindigt de applicatie het doorsturen met StopOffer()[SWS_DM_00803].
Tijdens de gehele gegevensoverdracht ontvangt de handler een CancellationHandler-object. Hiermee kan via IsCanceled() actief de annuleringsstatus worden opgevraagd of via SetNotifier() een callback worden geregistreerd voor het geval de tester de dialoog voortijdig afbreekt [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801].
Fouttoestanden kunnen optreden bij de constructie, tijdens de activering evenals bij de feitelijke gegevensafhandeling:
Model- en configuratieschendingen: Als de configuratie niet overeenkomt met het ARXML-model, treden er bij het aanroepen van de constructor schendingen op [SWS_DM_00797]. Hiertoe behoren InstanceSpecifierMappingIntegrityViolation (specifier verwijst niet naar een PortPrototype), PortInterfaceMappingViolation (ontbrekende koppeling via DiagnosticServiceGenericMapping), ProcessMappingViolation (geen overeenstemming met het gemodelleerde proces) en InstanceSpecifierAlreadyInUseViolation (meervoudig gebruik van dezelfde specifier binnen een proces) [SWS_DM_00797].
Meervoudige serviceactivering: Als Offer() wordt aangeroepen terwijl de service al wordt aangeboden, mislukt de aanroep en levert deze in ara::core::Result<void> de foutcode DiagOfferErrc::kAlreadyOffered op [SWS_DM_00802].
UDS-foutantwoorden (Negative Response): Als de handler een verzoek in RequestUpload(), UploadData() of RequestUploadExit() functioneel niet kan afhandelen (bijv. ontoelaatbare geheugenadressen, formaatfouten of ongeldige sequentietellers), signaleert hij dit door het beschikbaar stellen van een foutcode uit DiagUdsNrcErrc in de geretourneerde Future[SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801]. De DM genereert vervolgens een standaardconforme negatieve UDS-respons (NRC) naar het externe testapparaat [SWS_DM_00799].
Deze handleiding is uitsluitend gebaseerd op de specificatie van AUTOSAR Adaptive Platform Release R25-11.
This Offer will enable the DM to forward request messages to this handler.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: dce89cbe34efHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik en semantiek
De synchrone memberfunctie Offer van de klasse ara::diag::UploadService ([SWS_DM_00802]) activeert het doorsturen van diagnoseverzoeken door het Diagnostic Management (DM) naar de geregistreerde handler. De aanroep accepteert geen parameters en declareert de exception-veiligheid noexcept ([SWS_DM_00802]). Als retourtype fungeert ara::core::Result<void>, waarmee de succesvolle beschikbaarstelling of een opgetreden fout wordt weergegeven ([SWS_DM_00802]).
Foutafhandeling en gelijktijdigheid
Foutcodes: Indien de service al eerder werd aangeboden, mislukt de uitvoering met de foutcode DiagOfferErrc::kAlreadyOffered ([SWS_DM_00802]); hierbij geldt rollback-semantiek.
Thread-veiligheid: De functie is expliciet gespecificeerd als not thread-safe ([SWS_DM_00802]). Gelijktijdige aanroepen op dezelfde service-instantie moeten aan de applicatiezijde worden gesynchroniseerd.
Samenspel in het diagnosesubsysteem
De bewerking past in het uniforme beschikbaarstellingspatroon van adaptieve diagnose-handlers, zoals dat onder andere bij DownloadService ([SWS_DM_00792]) of GenericUDSService ([SWS_DM_00619]) wordt toegepast. Zolang de beschikbaarstelling niet heeft plaatsgevonden, stuurt de DM geen binnenkomende diagnoseberichten door naar de handler (zie analoge gedragingen in [SWS_DM_01525]). Interpretatie: De aanroep van Offer zal doorgaans plaatsvinden tijdens de initialisatiefase van de applicatie, voordat diagnoseverkeer wordt geaccepteerd. Vraag Q-aba091d233b5e45b (open)
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie R25-11.
dataFormatIdentifier en addressAndLengthFormatIdentifier: UDS-formaat-ID's voor gegevens, geheugenadres en lengtegegevens.
memoryAddressAndSize: Een ara::core::Span met geheugenadres en -grootte, waarvan de geldigheid tot aan de vervulling van de promise resp. de beëindiging van de verwerking is gegarandeerd.
metaInfo: Meta-informatie over het diagnoseverzoek.
cancellationHandler: Dient voor het opvragen van de annuleringsstatus via cancellationHandler.IsCanceled en de registratie van notificatiefuncties middels cancellationHandler.SetNotifier.
De verwerking vindt asynchroon plaats met het retourtype ara::core::Future<void>[SWS_DM_00799].
Foutafhandeling
Bij een fout stelt het ara::core::Future een passende UDS-NRC-foutcode conform ISO 14229-1 ter beschikking via DiagUdsNrcErrc, waarna een negatieve terugmelding volgt [SWS_DM_00799]. Bij een positief antwoord meldt de Diagnostic Manager de beveiligingsgebeurtenis SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL aan het IdsM [SWS_DM_02031], bij een negatief antwoord de gebeurtenis SEV_UDS_REQUEST_UP_DOWNLOAD_FAILED[SWS_DM_02033].
Gelijktijdigheid en wisselwerking
De functie is gedeclareerd als noexcept en uitzonderingsveilig. Of de methode thread-safe moet worden geïmplementeerd, is voorwaardelijk en wordt vastgelegd via de in de constructor doorgegeven ConcurrencyType[SWS_DM_00799].
Na succesvolle bevestiging van RequestUpload wordt de eigenlijke upload-gegevensoverdracht bij opvolgende verzoeken van de UDS-dienst 0x36 (TransferData) via UploadData voortgezet [SWS_DM_00800][SWS_DM_01096].
Deze gebruiksinstructie is gegenereerd door een kunstmatige intelligentie op basis van de specificatie AUTOSAR Adaptive R25-11.
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
dataFormatIdentifier
UDS dataFormat Identifier
addressAndLengthFormatIdentifier
UDS addressAndLengthFormatIdentifier
memoryAddressAndSize
memoryAddress and memorySize part of the request. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfo
MetaInfo of the request.
cancellationHandler
This 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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c83d03772031HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik en aanroepcontext
De methode RequestUploadExit van de klasse ara::diag::UploadService (SWS Diagnostics §8.27.1.1.3.3 “RequestUploadExit”) wordt aangeroepen door de diagnose-server-instantie wanneer de beëindiging van een gegevensoverdracht via de UDS-dienst RequestTransferExit (0x37) moet worden verwerkt [SWS_DM_00141], [SWS_DM_00801].
De interface neemt de volgende parameters in ontvangst [SWS_DM_00801]:
transferRequestParameterRecord: Bevat fabrikantspecifieke parameters ter ondersteuning van de transfer in het formaat ara::core::Span<const std::uint8_t>. De gegevens blijven geldig totdat de bijbehorende promise is vervuld of de verwerking wordt afgebroken. Interpretatie: de evaluatie van deze parameters dient vermoedelijk voornamelijk voor fabrikantspecifieke validaties bij het afronden van de upload. Vraag Q-d3989837f58761d7 (open)
metaInfo: Geeft meta-informatie van het actuele diagnoseverzoek door.
cancellationHandler: Maakt het opvragen van de afbreekstatus via cancellationHandler.IsCanceled() of het registreren van een notificatie-callback middels cancellationHandler.SetNotifier() mogelijk.
Retourwaarden en foutafhandeling
De uitvoering geschiedt asynchroon en levert een ara::core::Future<OperationOutput> op [SWS_DM_00801]. Bij succes wordt de future vervuld met een instantie van OperationOutput. De daarin doorgegeven gegevens uit responseData worden na het service-ID als transferResponseParameterRecord ingevoegd in het positieve diagnose-antwoord [SWS_DM_00796], [SWS_DM_00801]. In geval van een fout moet de future worden voltooid met een passende foutcode uit DiagUdsNrcErrc conform ISO 14229-1 [SWS_DM_00801].
Gelijktijdigheid en beperkingen
De methode is gespecificeerd als noexcept[SWS_DM_00801]. De vereiste ten aanzien van thread-safety is voorwaardelijk: of de functie thread-safe moet worden uitgevoerd, wordt vastgelegd via de in de constructor van UploadService doorgegeven ConcurrencyType[SWS_DM_00801].
Deze gebruiksinstructie is gebaseerd op de specificaties in AUTOSAR AP SWS Diagnostics R25-11.
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
transferRequestParameterRecord
This 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.
metaInfo
MetaInfo of the request.
cancellationHandler
This 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.
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
Fehlercode
Beschreibung
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.
This StopOffer will disable the forwarding of request messages from DM.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e7cdc33ba5c7HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De methode StopOffer() van de klasse ara::diag::UploadService ([SWS_DM_00803], gedeclareerd in #include "ara/diag/upload.h") deactiveert het doorsturen van binnenkomende diagnoseverzoeken vanuit Diagnostic Management (DM) naar de uploadservice. De functie heeft de signatuur void StopOffer() noexcept;, accepteert geen parameters en levert geen retourwaarde op. De aanroep geschiedt synchroon en beëindigt het doorsturen van verzoeken onmiddellijk.
Foutafhandeling
De operatie is gespecificeerd als uitzonderingsveilig (exception safe) en gedeclareerd met de identifier noexcept[SWS_DM_00803]. Er worden zodoende geen C++-exceptions gegenereerd. Specifieke foutcodes of foutmeldingen zijn voor deze aanroep niet voorzien.
Gelijktijdigheid en beperkingen
Volgens de specificatie is StopOffer() niet-draadveilig (not thread-safe) [SWS_DM_00803]. De aanroepende Adaptive Application moet daarom zelfstandig waarborgen dat aanroepen op dezelfde instantie niet gelijktijdig vanuit meerdere threads zonder externe synchronisatie plaatsvinden. Wat betreft de volgorde mag de methode typisch pas na een voorafgaand aanbieden van de service worden aangeroepen om deze gecontroleerd weer af te melden. Vraag Q-90ce659f307f54ca (open)
Samenspel
De interface sluit aan bij het uniforme beschikbaarstellingspatroon van AUTOSAR Adaptive-diagnose, dat voor service-instanties gescheiden methoden voor activering en deactivering voorziet AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”. De methode vormt de functionele tegenhanger van ara::diag::DownloadService::StopOffer ([SWS_DM_00793]), die aan dezelfde upstream-eisen onderhevig is. Analoge deactiveringsfuncties bestaan bovendien voor verdere diagnosecomponenten zoals generieke routines ([SWS_DM_00558]), UDS-services ([SWS_DM_00620]) en authenticatie-interfaces ([SWS_DM_01131]).
Deze gebruiksinstructie is geautomatiseerd opgesteld op basis van de specificatie AUTOSAR Adaptive R25-11.
Called for TransferData following a previous RequestUpload.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 0748aa4db498HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
numBytesToReturn: Specificeert het aantal bytes dat de Diagnostic Manager (DM) vanwege zijn interne buffergrootte maximaal voor dit datablok kan opnemen ([SWS_DM_00800]). Interpretatie: De applicatie dient de blokgrootte vermoedelijk strikt tot deze grenswaarde te beperken. Vraag Q-89de95e70e1e6223 (open)
metaInfo: Stelt meta-informatie over het binnenkomende diagnoseverzoek beschikbaar ([SWS_DM_00800]).
cancellationHandler: Dient voor het bewaken van lopende conversaties via cancellationHandler.IsCanceled() en het registreren van meldingen over cancellationHandler.SetNotifier() in geval van een afbreking ([SWS_DM_00800]).
De teruggave geschiedt asynchroon via ara::core::Future<OperationOutput> ([SWS_DM_00800]). In het geval van succes worden de in OperationOutput.responseData ter beschikking gestelde nuttige gegevens ([SWS_DM_00796]) in het positieve antwoord direct achter de teller blockSequenceCounter als transferResponseParameterRecord geplaatst ([SWS_DM_00800]).
Foutafhandeling en validatie
In het geval van een fout wordt het future met een passende foutcode (NRC) conform ISO 14229-1 uit DiagUdsNrcErrc opgelost ([SWS_DM_00800]). Afgezien van fundamentele NRC-controles volgens [SWS_DM_00101] en [SWS_DM_00103] voert de Diagnostic Manager geen verdere dienstvalidatie uit; alle overige vereiste NRC-controles moeten door de aangeroepen applicatie zelf worden geïmplementeerd ([SWS_DM_01096]).
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
numBytesToReturn
number of bytes DM accepts (due to its internal buffer) for this chunk.
metaInfo
MetaInfo of the request.
cancellationHandler
This 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.
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
Fehlercode
Beschreibung
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.
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)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticUploadInterface.
concurrencyType
Specifies 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.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel