Verwerkt en slaat inkomende datablokken op bij schrijvende bestandsoverdrachten in de applicatie.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: eacdeba00b95HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Verwerkt en slaat inkomende datablokken op bij schrijvende bestandsoverdrachten in de applicatie.
De klasse ara::diag::DataTransferWriteHandler dient in AUTOSAR Adaptive voor de applicatiezijdige verwerking van schrijvende bestandsoverdrachten die door RequestWriteFile in de modi AddFile, ResumeFile of ReplaceFile zijn gestart [SWS_DM_01539]. Inkomende datapakketten worden asynchroon via Write() naar het geheugen geschreven en de sessie wordt vervolgens afgesloten met ExitWrite(). Een instantie is strikt gebonden aan één enkele overdrachtssessie en mag in geen geval vóór de aanroep van ExitWrite() worden vernietigd [SWS_DM_01541].
Context
De abstracte basisklasse ara::diag::DataTransferWriteHandler definieert in het AUTOSAR Adaptive Platform de interface voor schrijvende bestandsoverdrachten [SWS_DM_01539] (AUTOSAR_AP_SWS_Diagnostics §8.10.6 “Class: DataTransferWriteHandler”). Ze dient voor de applicatiezijdige verwerking van gegevensoverdrachten die in het kader van RequestWriteFile via de bedrijfsmodi AddFile, ResumeFile of ReplaceFile zijn gestart.
Binnen de diagnosearchitectuur communiceert de handler met de externe UDS-client, de diagnose-middleware en de applicatie. De client verzendt gesegmenteerde datablokken die door een afgeleide implementatie van de handler in ontvangst worden genomen en in het applicatiegeheugen worden opgeslagen [SWS_DM_01546]. Vermoedelijk verzorgt het Diagnostic Management van het platform daarbij de UDS-protocolcoördinatie en geeft het de payload via de handler-interface door aan de doelapplicatie. Vraag Q-484dc9dd80e56af4 (open)
Levenscyclus
De instantiëring van ara::diag::DataTransferWriteHandler vindt uitsluitend plaats door gespecialiseerde subklassen van de applicatie: de parameterloze constructor is gedefinieerd met protected en noexcept=default[SWS_DM_01540], wat directe instantiëring van de basisklasse verhindert. Een handler-instantie is strikt gebonden aan één enkele bestandsoverdrachtssessie („one way usage i.e. per single file transfer session”). Om deze reden zijn de copy constructor [SWS_DM_01544] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.2.1 “DataTransferWriteHandler”) en de copy assignment operator [SWS_DM_01545] verwijderd (=delete).
Voor de ontmanteling van de instantie geldt een bindende randvoorwaarde: een instantie van deze klasse mag in geen geval worden vernietigd voordat de methode ExitWrite() is aangeroepen [SWS_DM_01541] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.1.2 “Destructor”). Pas na volledige uitvoering van ExitWrite() mag de virtuele destructor ~DataTransferWriteHandler() worden aangeroepen. De lidfuncties en de destructor zijn gespecificeerd als niet-thread-safe (not thread-safe) [SWS_DM_01541], [SWS_DM_01546], [SWS_DM_01547].
Toestandsdiagram: levenscyclus en aanroepvolgorde van een DataTransferWriteHandler-instantie. Bronnen: [SWS_DM_01541], [SWS_DM_01544].
Gebruikspad
Het reguliere verloop van een schrijvende overdracht omvat het stapsgewijs ontvangen van datablokken en de aansluitende afronding van de sessie:
Voor elk binnenkomend datasegment roept het diagnosesysteem de zuiver virtuele methode Write() aan [SWS_DM_01546] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.2 “Write”). De data worden als ara::core::Span<ara::core::Byte> overgedragen. De geldigheid van dit geheugengebied blijft bestaan totdat het bijbehorende Promise is vervuld of de operatie wordt afgebroken. De applicatie voegt de data toe aan de interne buffer en retourneert een ara::core::Future<void>.
Nadat alle segmenten zijn overgedragen, roept het platform de zuiver virtuele methode ExitWrite() aan [SWS_DM_01547] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.1 “ExitWrite”). Meegegeven worden de beëindigingsreden (DataTransferExitType), voertuigfabrikantspecifieke parameters (transferRequestParameterRecord), metaInfo en een CancellationHandler.
De methode ExitWrite() retourneert een ara::core::Future<ara::core::Vector<ara::core::Byte>>. Bij succesvolle afronding worden de daarin opgenomen data als transferResponseParameterRecord achter de service-ID ingevoegd in het positieve UDS-antwoordbericht [SWS_DM_01547].
Sequentiediagram: aanroepsequentie van Write- en ExitWrite-operaties tijdens een overdrachtssessie. Bronnen: [SWS_DM_01546], [SWS_DM_01547].
Foutscenario's
Fouten tijdens de gegevensverwerking en de overdracht worden beheerd via gestandaardiseerde retourwaarden en afbreekmechanismen:
Mislukt het schrijven van een datablok of het beëindigen van de overdracht, dan wordt het desbetreffende Future beschikbaar gesteld met een ara::core::ErrorCode uit DiagUdsNrcErrc[SWS_DM_01546], [SWS_DM_01547]. Dit leidt tot het genereren van een passend negatief UDS-antwoord (NRC conform ISO 14229-1) naar de client.
Beide methoden stellen een CancellationHandler beschikbaar. De applicatie kan via cancellationHandler.IsCanceled() controleren of de conversatie is afgebroken, of via cancellationHandler.SetNotifier() een notificatiefunctie registreren die wordt uitgevoerd wanneer de conversatie wordt afgebroken [SWS_DM_01546], [SWS_DM_01547].
Als de instantie vóór de aanroep van ExitWrite() wordt vernietigd, is er sprake van een schending van de gespecificeerde levenscyclusregel [SWS_DM_01541], wat vermoedelijk leidt tot een ongedefinieerde systeemtoestand en onvolledige bestanden. Vraag Q-cc032c11ac89a5b1 (open) Bovendien leidt niet-beveiligde gelijktijdige toegang tot data-inconsistenties, omdat de interface expliciet niet-thread-safe is.
Deze handleiding is opgesteld door een AI-curatie-assistent op basis van AUTOSAR R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 459b3563e8d0Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De virtuele lidfunctie ara::diag::DataTransferWriteHandler::ExitWrite beëindigt een lopende gegevensoverdrachtsessie voor schrijftoegangen [SWS_DM_01547] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.1 “ExitWrite”, header #include "ara/diag/data_transfer.h"). De aanroepparameters omvatten:
exitType: Bepaalt de reden voor het beëindigen van de sessie [SWS_DM_01547].
transferRequestParameterRecord: Voertuigfabrikantspecifieke parameters ter ondersteuning van de gegevensoverdracht; de geldigheid van de span moet behouden blijven totdat de bijbehorende promise is vervuld of de bewerking is geannuleerd [SWS_DM_01547].
metaInfo: Meta-informatie van het diagnoseverzoek [SWS_DM_01547].
cancellationHandler: Maakt het opvragen van de afbreekstatus via cancellationHandler.IsCanceled() en de registratie van een notifier via cancellationHandler.SetNotifier() mogelijk [SWS_DM_01547].
De functie werkt asynchroon en levert een ara::core::Future<ara::core::Vector<ara::core::Byte>> op, waarvan de resultaatgegevens bij succes als transferResponseParameterRecord achter de SID in het positieve antwoordbericht worden ingevoegd [SWS_DM_01547].
Foutafhandeling
Indien de beëindiging mislukt, moet de future met een passende Negative Response Code (NRC) conform ISO 14229-1 via DiagUdsNrcErrc beschikbaar worden gesteld [SWS_DM_01547]. De functie is gespecificeerd als noexcept evenals uitzonderingsveilig (exception safe) [SWS_DM_01547].
Gelijktijdigheid en wisselwerking
De implementatie is niet thread-safe (not thread-safe) [SWS_DM_01547]. Met betrekking tot de levenscyclus van het object geldt een strikte volgordevoorwaarde: een instantie van de handler-klasse mag pas worden vernietigd nadat ExitWrite() is aangeroepen [SWS_DM_01541].
Deze gebruiksinstructie is automatisch gegenereerd op basis van de AUTOSAR-specificaties voor Release R25-11.
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.
Returns a Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message) Data in OperationOutput.response_ data 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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a81be0f54500HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode Write van de interface ara::diag::DataTransferWriteHandler dient voor het toevoegen van ontvangen gegevensblokken aan het geheugengebied van de toepassing bij een UDS-bestandsoverdracht [SWS_DM_01546]. De aanroep geschiedt door de Diagnostic Server-instantie wanneer in het kader van een via RequestFileTransfer (0x38) geïnitieerde bewerking een UDS-verzoek TransferData (0x36) wordt ontvangen [SWS_DM_01317].
Parameters en semantiek
De te schrijven bestandsinhoud wordt via requestData als ara::core::Span<ara::core::Byte> doorgegeven; de gerefereerde buffer blijft geldig totdat de bijbehorende promise is vervuld of de verwerking is afgebroken [SWS_DM_01546]. De parameter metaInfo stelt meta-informatie van het diagnoseverzoek beschikbaar. Via cancellationHandler kan de actuele afbreekstatus met behulp van IsCanceled worden gecontroleerd of kan een notificatie-callback via SetNotifier worden geregistreerd [SWS_DM_01546].
Foutafhandeling en gelijktijdigheid
Het resultaat wordt asynchroon geretourneerd als ara::core::Future<void>. Bij succes wordt de future leeg voltooid; bij fouten moet deze worden voltooid met een passende Negative Response Code (NRC) uit DiagUdsNrcErrc conform ISO 14229-1 [SWS_DM_01546]. De functie is gespecificeerd als exception safe, maar uitdrukkelijk als not thread-safe[SWS_DM_01546]; de Diagnostic Server waarborgt daarom vermoedelijk sequentiële aanroepen voor dezelfde sessie. Vraag Q-e60d55fe09b9a2c5 (open)
Samenspel en verloop
De schrijf-handler wordt geregistreerd via template-constructors binnen de DataTransferWriteSession[SWS_DM_01317]. Zodra de overdracht met RequestTransferExit (0x37) wordt voltooid, roept de server de Exit-methode van dezelfde handler aan [SWS_DM_01318]. Het element onderscheidt zich van DID-gerelateerde schrijfmethoden zoals gedefinieerd in [SWS_DM_00598] of [SWS_DM_00637].
Deze tekst is automatisch gegenereerd. Vakinhoudelijke uitspraken worden gestaafd door specificatieverwijzingen.
The first or subsequent file content chunk received from the UDS client to be written into the file. 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.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel