AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: eacdeba00b95출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
애플리케이션에서 파일 쓰기 전송 시 수신 데이터 블록을 처리하고 저장합니다.
ara::diag::DataTransferWriteHandler 클래스는 AUTOSAR Adaptive에서 AddFile, ResumeFile 또는 ReplaceFile 모드로 RequestWriteFile에 의해 트리거된 파일 쓰기 전송의 애플리케이션 측 처리에 사용됩니다[SWS_DM_01539]. 수신 데이터 패킷은 Write()을 통해 메모리에 비동기식으로 기록되며, 이후 ExitWrite()을 통해 세션이 종료됩니다. 인스턴스는 단일 전송 세션에 엄격하게 바인딩되며 ExitWrite() 호출 전에 절대로 소멸되어서는 안 됩니다[SWS_DM_01541].
진단 아키텍처 내에서 핸들러는 외부 UDS 클라이언트, 진단 미들웨어 및 애플리케이션과 상호 작용합니다. 클라이언트는 세그먼트화된 데이터 블록을 전송하며, 이는 핸들러의 파생 구현에 의해 수신되어 애플리케이션 메모리에 저장됩니다 [SWS_DM_01546]. 플랫폼의 Diagnostic Management는 이 과정에서 UDS 프로토콜 조율을 담당하고 핸들러 인터페이스를 통해 페이로드를 대상 애플리케이션으로 전달하는 것으로 추정됩니다. 질문 Q-484dc9dd80e56af4 (열림)
수신되는 각 데이터 세그먼트에 대해 진단 시스템은 순수 가상 메서드 Write()을 호출합니다 [SWS_DM_01546](AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.2 “Write”). 데이터는 ara::core::Span<ara::core::Byte>(으)로 전달됩니다. 이 메모리 영역의 유효성은 연관된 Promise이(가) 충족되거나 작업이 중단될 때까지 유지됩니다. 애플리케이션은 데이터를 내부 버퍼에 추가하고 ara::core::Future<void>을(를) 반환합니다.
메서드 ExitWrite()은(는) ara::core::Future<ara::core::Vector<ara::core::Byte>>을(를) 반환합니다. 성공적으로 완료되면 여기에 포함된 데이터는 서비스 ID 뒤에 transferResponseParameterRecord(으)로서 긍정 UDS 응답 메시지에 삽입됩니다 [SWS_DM_01547].
데이터 처리 및 전송 중 발생하는 오류는 표준화된 반환값 및 중단 메커니즘을 통해 관리됩니다.
데이터 블록 쓰기 또는 전송 종료가 실패하면 해당 Future이(가) DiagUdsNrcErrc의 ara::core::ErrorCode과(와) 함께 제공됩니다 [SWS_DM_01546], [SWS_DM_01547]. 이는 클라이언트에 대한 해당 부정 UDS 응답(ISO 14229-1에 따른 NRC) 생성으로 이어집니다.
두 메서드 모두 CancellationHandler을(를) 제공합니다. 애플리케이션은 cancellationHandler.IsCanceled()을(를) 통해 대화가 중단되었는지 확인하거나, 대화 중단 시 실행되는 알림 함수를 cancellationHandler.SetNotifier()을(를) 사용하여 등록할 수 있습니다 [SWS_DM_01546], [SWS_DM_01547].
ExitWrite() 호출 전에 인스턴스가 소멸되면 지정된 수명 주기 규칙 위반이 발생하며 [SWS_DM_01541], 이는 정의되지 않은 시스템 상태와 불완전한 파일로 이어질 것으로 추정됩니다. 질문 Q-cc032c11ac89a5b1 (열림) 또한 인터페이스가 명시적으로 스레드 안전하지 않으므로 보호되지 않은 동시 접근은 데이터 불일치를 초래합니다.
이 가이드는 AUTOSAR R25-11을 기반으로 AI 큐레이션 어시스턴트에 의해 작성되었습니다.
cancellationHandler: cancellationHandler.IsCanceled()을(를) 통한 취소 상태 조회 및 cancellationHandler.SetNotifier()을(를) 통한 Notifier 등록을 가능하게 합니다[SWS_DM_01547].
해당 함수는 비동기식으로 작동하며 ara::core::Future<ara::core::Vector<ara::core::Byte>>을(를) 반환합니다. 성공 시 그 결과 데이터는 transferResponseParameterRecord(으)로서 긍정 응답 메시지의 SID 뒤에 삽입됩니다[SWS_DM_01547].
오류 처리
종료가 실패하면 Future는 DiagUdsNrcErrc을(를) 통해 ISO 14229-1에 따른 적절한 Negative Response Code(NRC)와 함께 제공되어야 합니다[SWS_DM_01547]. 해당 함수는 noexcept 및 예외 안전(exception safe)으로 명시되어 있습니다[SWS_DM_01547].
동시성 및 상호 작용
해당 구현은 스레드 안전하지 않습니다(not thread-safe) [SWS_DM_01547]. 객체 라이프사이클과 관련하여 엄격한 순서 조건이 존재합니다. 핸들러 클래스의 인스턴스는 ExitWrite()이(가) 호출된 후에만 소멸될 수 있습니다[SWS_DM_01541].
이 사용 지침은 릴리스 R25-11에 대한 AUTOSAR 사양을 기반으로 자동 생성되었습니다.
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.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a81be0f54500출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
인터페이스 ara::diag::DataTransferWriteHandler의 메서드 Write은(는) UDS 파일 전송 시 수신된 데이터 블록을 애플리케이션의 메모리 영역에 추가하는 역할을 합니다[SWS_DM_01546]. RequestFileTransfer (0x38)에 의해 시작된 프로세스의 프레임워크 내에서 UDS 요청 TransferData (0x36)이(가) 수신되면 Diagnostic Server 인스턴스에 의해 호출이 이루어집니다[SWS_DM_01317].
매개변수 및 시맨틱
기록할 파일 내용은 requestData을(를) 통해 ara::core::Span<ara::core::Byte>(으)로 전달되며, 참조된 버퍼는 연관된 Promise가 충족되거나 처리가 취소될 때까지 유효한 상태를 유지합니다[SWS_DM_01546]. 파라미터 metaInfo은(는) 진단 요청의 메타 정보를 제공합니다. cancellationHandler을(를) 통해 IsCanceled(으)로 현재 취소 상태를 확인하거나 SetNotifier을(를) 통해 알림 콜백을 등록할 수 있습니다[SWS_DM_01546].
오류 처리 및 동시성
결과는 비동기식으로 ara::core::Future<void>(으)로 반환됩니다. 성공 시 Future는 비어 있는 상태로 완료되며, 오류 발생 시에는 ISO 14229-1에 따라 DiagUdsNrcErrc의 적절한 Negative Response Code(NRC)로 완료되어야 합니다[SWS_DM_01546]. 해당 함수는 exception safe이지만 명시적으로 not thread-safe로 명시되어 있습니다[SWS_DM_01546]. 따라서 Diagnostic Server는 동일한 세션에 대해 순차적 호출을 보장할 것으로 추정됩니다. 질문 Q-e60d55fe09b9a2c5 (열림)
상호 작용 및 시퀀스
쓰기 핸들러는 DataTransferWriteSession 내의 템플릿 생성자를 통해 등록됩니다[SWS_DM_01317]. 전송이 RequestTransferExit (0x37)을(를) 통해 완료되면 서버는 동일한 핸들러의 Exit 메서드를 호출합니다[SWS_DM_01318]. 이 요소는 [SWS_DM_00598] 또는 [SWS_DM_00637]에 정의된 것과 같은 DID 관련 쓰기 메서드와 구별됩니다.
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 · 독일어 원문