DEENESPTFRRUARHIKOZHNL

类 ara::diag::DataTransferReadSession

[SWS_DM_01548] Upstream: RS_Diag_04135

class DataTransferReadSession final {...};

Encapsulates all data transfer reading variants.

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

用户指南人工智能生成

封装活动的基于诊断的读取传输,并将传入的数据传输转发给已注册的处理程序。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9db606b147f6 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

封装活动的基于诊断的读取传输,并将传入的数据传输转发给已注册的处理程序。

该类用于在符合 [SWS_DM_01548] 的 AUTOSAR 自适应诊断模块内部,对基于诊断的读取传输的所有变体进行封装和结构化管理。在成功启动读取过程后,诊断服务器实例将传入的用于顺序数据块传输以及用于会话终止的请求委托给读取处理程序 [SWS_DM_01317] 的已注册方法。通过专门停用复制操作并同时支持移动语义,该类确保了对底层传输会话的唯一样权归属。

上下文

类 ara::diag::DataTransferReadSession 代表自适应诊断模块 [SWS_DM_01548] 中基于诊断的数据块读取所有变体的封装。在 RequestFileTransfer (0x38)、TransferData (0x36) 和 RequestTransferExit (0x37) 等标准化 UDS 服务的上下文中,该会话类充当诊断服务器内部运行时环境与特定于应用程序的读取处理程序 SWS Diagnostics §7 “Realization of TransferData and RequestTransferExit” 之间的纽带。它确保正在运行的读取操作——例如通过 ReadFile [SWS_DM_01314] 读取文件或通过 ReadDir [SWS_DM_01315] 读取目录——得到隔离管理并转发给相关的处理程序。

DataTransferReadSessionContext client Diagnose-Client (Tester) server Diagnostic Server (ara::diag) client->server UDS RequestFileTransfer TransferData / Exit session ara::diag::DataTransferReadSession (Transfersitzung) server->session verwaltet Lesesitzung handler Lese-Handler (Applikation) session->handler delegiert Read() / Exit()

上下文图:DataTransferReadSession 在诊断服务器与应用程序处理程序之间的嵌入关系。来源:[SWS_DM_01317]、[SWS_DM_01318]、SWS Diagnostics §7 “Realization of TransferData and RequestTransferExit”

生命周期

ara::diag::DataTransferReadSession 的实例具有严格耦合到传输会话的生命周期。显式禁止通过默认构造函数进行创建 [SWS_DM_01549]。相反,会话是通过专用的模板构造函数进行初始化的,这些构造函数会注册特定于应用程序的处理程序 SWS Diagnostics §7 “Realization of TransferData and RequestTransferExit”。在实践中,实例化通常由诊断服务器或服务处理程序在启动文件传输时完成。 问题 Q-b0706bcd28c702c6 (未决)

为杜绝多重占用或不一致的会话状态,ara::diag::DataTransferReadSession 被设计为不可复制的单实例:复制构造函数 [SWS_DM_01553] 与复制赋值运算符 [SWS_DM_01554] 均已被删除(=delete)。所有权的传递仅通过移动语义提供。移动构造函数 [SWS_DM_01551] 和移动赋值运算符 [SWS_DM_01552] 被定义为 noexcept=default。销毁通过析构函数 [SWS_DM_01550] 确定性地发生,该析构函数同样被声明为 noexcept=default。据推测,通过 RequestTransferExit 完成传输会导致对象的释放。 问题 Q-c1999fd1f283a007 (未决)

使用路径

读取传输会话的典型流程分为三个连续阶段:

  • 初始化:外部诊断客户端发送带有读取模式(如 ReadFile (0x04) [SWS_DM_01314] 或 ReadDir (0x05) [SWS_DM_01315])的 RequestFileTransfer。此时将创建会话实例并注册读取处理程序。
  • 数据传输:诊断服务器通过调用经由模板构造函数注册的处理程序所对应的 Read 方法来处理传入的 TransferData (0x36) 类型诊断请求 [SWS_DM_01317]。这会针对每个请求的数据块迭代发生。
  • 完成:一旦所有数据传输完毕,客户端就会发送 RequestTransferExit (0x37)。诊断服务器随后调用已注册处理程序的 Exit 方法,以规范终止读取过程 [SWS_DM_01318]。
基于文件的读取传输流程诊断客户端Diagnostic ServerDataTransferReadSessionRequestFileTransfer (0x38)ReadFile / ReadDirInitialisierung viaTemplate-KonstruktorPositiv-Response (0x78)loop只要正在传输数据块TransferData (0x36)Read()Gelesene BlockdatenTransferData Positiv-ResponseRequestTransferExit (0x37)Exit()确认完成RequestTransferExit Response

时序图:带有移交给已注册会话的 UDS 读取传输调用序列。来源:[SWS_DM_01314]、[SWS_DM_01315]、[SWS_DM_01317]、[SWS_DM_01318]

错误场景

由于 ara::diag::DataTransferReadSession 被声明为 final 且默认构造函数 [SWS_DM_01549] 不存在,在编译期即可防止在没有已注册处理程序的情况下进行错误创建。同样,已删除的复制操作 [SWS_DM_01553] 阻止了意外复制会话状态的情况。移动构造、移动赋值以及销毁均通过其 noexcept 规范保证了绝对的异常安全性 [SWS_DM_01551] [SWS_DM_01550]。如果处理程序中的数据块提供失败,则会在 UDS 通信中于协议层级进行处理。

本指南基于 AUTOSAR Adaptive Platform 规范 R25-11(模块 diag),并总结了针对 ara::diag::DataTransferReadSession 的要求。

成员图

运算符

1

类图

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

G nara__diag__DataTransferReadSession318 DataTransferReadSession + DataTransferReadSession() + ~DataTransferReadSession() + operator=()

详细视图

请在大纲中选择一个条目。

构造函数和析构函数

No default construction allowed.

重载 DataTransferReadSession 3
DataTransferReadSession ()=delete; SWS_DM_01549
DataTransferReadSession (DataTransferReadSession &&other) noexcept=default; SWS_DM_01551
DataTransferReadSession (DataTransferReadSession const &)=delete; SWS_DM_01553

Destructs an instance of this class.

~DataTransferReadSession () noexcept=default;

运算符

operator= 函数 2

Move assigns an instance of this class.

重载 = 2
auto operator= (DataTransferReadSession &&other) & noexcept -> Data TransferReadSession & =default; SWS_DM_01552
auto operator= (DataTransferReadSession const &) -> DataTransferRead Session &=delete; SWS_DM_01554

方法文档

函数 DataTransferReadSession [SWS_DM_01549] Upstream: RS_Diag_04135

DataTransferReadSession ()=delete;

No default construction allowed.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSession

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

Record
AUTOSAR/AP/record/SWS_DM_01549
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01549@rel:R25-11#8fe94792
Content hash
8fe94792
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01549
Status: valid/unmigrated Version: rel:R25-11#b12b963b Versionshistorie & Revisions (1 transition, 5 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_01549@rel:R25-11#b12b963b
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c4cbcc0b2026-09-30
  • R22-11rel:R22-11#99668fac2026-10-14
  • R23-11rel:R23-11#f616e79a2026-10-14
  • R24-11rel:R24-11#b12b963b2026-10-14
  • R25-11rel:R25-11#b12b963b2026-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

函数 DataTransferReadSession [SWS_DM_01551] Upstream: RS_Diag_04135

DataTransferReadSession (DataTransferReadSession &&other) noexcept=default;

Move constructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSession
Exception-Sicherheitexception safe

Parameter (out)

ParameterBeschreibung
otherThe other object

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

Record
AUTOSAR/AP/record/SWS_DM_01551
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01551@rel:R25-11#33335dd6
Content hash
33335dd6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01551
Status: valid/unmigrated Version: rel:R25-11#9d8ef11f Versionshistorie & Revisions (1 transition, 5 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_01551@rel:R25-11#9d8ef11f
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#21edf1762026-09-30
  • R22-11rel:R22-11#313c13512026-10-14
  • R23-11rel:R23-11#ab0c46e72026-10-14
  • R24-11rel:R24-11#5b475da32026-10-14
  • R25-11rel:R25-11#9d8ef11f2026-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

函数 DataTransferReadSession [SWS_DM_01553] Upstream: RS_Diag_04135

DataTransferReadSession (DataTransferReadSession const &)=delete;

DataTransferReadSession shall be a single not copy-able instance.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSession

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

Record
AUTOSAR/AP/record/SWS_DM_01553
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01553@rel:R25-11#2a850c9e
Content hash
2a850c9e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01553
Status: valid/unmigrated Version: rel:R25-11#fbc13491 Versionshistorie & Revisions (1 transition, 5 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_01553@rel:R25-11#fbc13491
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#a630ea6c2026-09-30
  • R22-11rel:R22-11#35a6d77b2026-10-14
  • R23-11rel:R23-11#c1d834202026-10-14
  • R24-11rel:R24-11#6803928e2026-10-14
  • R25-11rel:R25-11#fbc134912026-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

函数 operator= [SWS_DM_01552] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSession &&other) & noexcept -> Data TransferReadSession & =default;

Move assigns an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSession
Exception-Sicherheitexception safe

Parameter (out)

ParameterBeschreibung
otherThe other object

Rückgabewert

TypBeschreibung
DataTransferReadSessionReference to self

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

Record
AUTOSAR/AP/record/SWS_DM_01552
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01552@rel:R25-11#44ae69c3
Content hash
44ae69c3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01552
Status: valid/unmigrated Version: rel:R25-11#d99670ce Versionshistorie & Revisions (1 transition, 5 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_01552@rel:R25-11#d99670ce
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#457fd3d02026-09-30
  • R22-11rel:R22-11#85ce121e2026-10-14
  • R23-11rel:R23-11#e7bc25f92026-10-14
  • R24-11rel:R24-11#826c7d1b2026-10-14
  • R25-11rel:R25-11#d99670ce2026-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

函数 operator= [SWS_DM_01554] Upstream: RS_Diag_04135

auto operator= (DataTransferReadSession const &) -> DataTransferRead Session &=delete;

DataTransferReadSession shall be a single not assign-able instance.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSession

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

Record
AUTOSAR/AP/record/SWS_DM_01554
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01554@rel:R25-11#d83c7a70
Content hash
d83c7a70
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01554
Status: valid/unmigrated Version: rel:R25-11#8d7ab93b Versionshistorie & Revisions (1 transition, 5 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_01554@rel:R25-11#8d7ab93b
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#a2fa062f2026-09-30
  • R22-11rel:R22-11#609b1c622026-10-14
  • R23-11rel:R23-11#22a9c8aa2026-10-14
  • R24-11rel:R24-11#c9a88d712026-10-14
  • R25-11rel:R25-11#8d7ab93b2026-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

函数 ~DataTransferReadSession [SWS_DM_01550] Upstream: RS_Diag_04135

~DataTransferReadSession () noexcept=default;

Destructs an instance of this class.

Header-Datei#include "ara/diag/data_transfer.h"
Scopeclass ara::diag::DataTransferReadSession
Exception-Sicherheitexception safe

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

Record
AUTOSAR/AP/record/SWS_DM_01550
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01550@rel:R25-11#90aec414
Content hash
90aec414
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01550
Status: valid/unmigrated Version: rel:R25-11#0b5bb2a2 Versionshistorie & Revisions (1 transition, 5 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_01550@rel:R25-11#0b5bb2a2
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#d3c560642026-09-30
  • R22-11rel:R22-11#18bafff82026-10-14
  • R23-11rel:R23-11#bfe91d802026-10-14
  • R24-11rel:R24-11#94e05f472026-10-14
  • R25-11rel:R25-11#0b5bb2a22026-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