DEENESPTFRRUARHIKOZHNL

类 ara::diag::MultipleMonitor

[SWS_DM_01694] Upstream: RS_Diag_04179

class MultipleMonitor final {...};

Class to implement monitor operations on the multiple monitor interfaces.

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

用户指南人工智能生成

通过通用的 Adaptive 端口接口聚合和控制多个 Monitor 的诊断测试结果。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5649718bd703 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

通过通用的 Adaptive 端口接口聚合和控制多个 Monitor 的诊断测试结果。

类 ara::diag::MultipleMonitor 通过 AUTOSAR 系统中的通用端口接口聚合多个诊断 Monitor 的监控操作 [SWS_DM_01695]。在报告测试结果之前,必须对每个 Monitor 进行单独配置,并通过 Offer 为 Diagnostic Management 激活整体服务 [SWS_DM_01696]。由于完全禁止拷贝和移动操作,每个实例都与其创建上下文紧密绑定。在运行期间发送状态报告时,错误的 Monitor 句柄会被容错忽略。

上下文

类 ara::diag::MultipleMonitor 用于在 AUTOSAR Adaptive Platform 内通过多监控器接口(Multiple Monitor Interfaces)实现 Monitor 操作 [SWS_DM_01695]。与单监控器接口相反,MultipleMonitor 通过通用的 PortPrototype(在模型中必须通过 DiagnosticMultipleMonitorInterface 进行类型化 [SWS_DM_01695])聚合多个诊断 Monitor 的故障监控和状态报告。

整个系统在此涉及三个核心交互方:

  • 应用软件:实例化该类,配置各个 Monitor,并周期性或基于事件提供测试结果以及去抖动指令 [SWS_DM_01695]、[SWS_DM_01698]。
  • MultipleMonitor:管理 Monitor 的配置,接收操作报告,并确保转发到诊断管理 [SWS_DM_01696]、[SWS_DM_01699]。
  • Diagnostic Management (DM):处理相关故障监控路径的状态信息,并在服务启用后将传入的请求消息转发给 Monitor 处理程序 [SWS_DM_01698]、[SWS_DM_01699]、[SWS_DM_01700]。
MultipleMonitorContext App Anwendungssoftware MM ara::diag::MultipleMonitor App->MM Konfiguration & Testergebnisse DM Diagnostic Management (DM) MM->DM Statusweiterleitung DM->MM Anforderungsnachrichten

上下文图:MultipleMonitor 在应用软件与 Diagnostic Management 之间的嵌入。来源:[SWS_DM_01695]、[SWS_DM_01698]、[SWS_DM_01699]。

生命周期

MultipleMonitor 的实例化通过传入建立端口映射的 ara::core::InstanceSpecifier 同步进行 [SWS_DM_01695]。关于所有权关系,该类被设计为纯位置绑定资源:拷贝构造函数 [SWS_DM_02065]、移动构造函数 [SWS_DM_02066] 以及所有赋值运算符 [SWS_DM_02063]、[SWS_DM_02064] 均被显式删除(delete)。因此,实例既不能被拷贝也不能被移动。

关于服务状态,实例在创建后最初处于未激活状态。通过调用 Offer(),激活来自 DM 端的诊断请求转发 [SWS_DM_01699]。使用 StopOffer() 可以定向再次禁用该转发,例如在关机前或重新配置时 [SWS_DM_01700]。

对并发性的要求进行了细化规定:构造函数声明为线程安全 [SWS_DM_01695]。相比之下,通过 ConfigureMonitor 进行的 Monitor 配置以及服务控制 Offer 和 StopOffer 指定为非线程安全,需要外部协调调用 [SWS_DM_01696]、[SWS_DM_01699]、[SWS_DM_01700]。ReportMonitorAction 的线程安全性是有条件的(conditional):它通过构造上下文中存储的 ConcurrencyType 确定 [SWS_DM_01698]。解释:由于 C++ 构造函数仅接收 InstanceSpecifier,推测该 ConcurrencyType 是通过模型中存储的 Manifest 配置的。 问题 Q-33b384f8537e387b (未决)

使用路径

MultipleMonitor 的典型用法遵循固定的阶段顺序:

  1. 创建:使用规划的 InstanceSpecifier 创建对象 [SWS_DM_01695]。
  2. 配置:每个关联的监视器在使用前必须通过 ConfigureMonitor 的重载恰好配置一次 [SWS_DM_01696]。在此有四种去抖类型可供选择:
    • 无去抖并注册 InitMonitorNotifier [SWS_DM_01973],
    • 基于时间的去抖,采用 TimeBased 默认值 [SWS_DM_01697],
    • 基于计数器的去抖,采用 CounterBased 默认值 [SWS_DM_01702],或者
    • 监视器内部去抖,传递用于查询当前故障检测计数器(FDC)的函数指针 [SWS_DM_01696]。
  3. 使能:调用 Offer(),以允许 Diagnostic Management 转发请求 [SWS_DM_01699]。
  4. 运行:通过 ReportMonitorAction 持续向 DM 上报监视器结果或控制命令,并传递相应的 monitorHandle 和 action [SWS_DM_01698]。
  5. 终止:调用 StopOffer() 以停用请求报文的转发 [SWS_DM_01700]。
Nutzungsablauf von MultipleMonitor应用MultipleMonitor诊断管理Use Case: 1. InstanziierungMultipleMonitor(specifier)Use Case: 2. KonfigurationConfigureMonitor(monitorHandle, ...)Result<void>Use Case: 3. DienstfreigabeOffer()Handler registrierenResult<void>Use Case: 4. BetriebsphaseReportMonitorAction(monitorHandle, action)Statusinformation weiterleitenUse Case: 5. BeendigungStopOffer()Weiterleitung stoppen

时序图:MultipleMonitor 的生命周期与使用周期阶段。来源:[SWS_DM_01695]、[SWS_DM_01696]、[SWS_DM_01699]、[SWS_DM_01698]、[SWS_DM_01700]。

错误场景

该规范为 MultipleMonitor 定义了明确的错误和异常行为:

  • 集成与建模违规(Violations):\n在实例化时,框架会检查模型一致性 [SWS_DM_01695]:
    • InstanceSpecifierMappingIntegrityViolation:标识符未引用 PortPrototype 或无法在模型中解析。
    • PortInterfaceMappingViolation:端口未由 DiagnosticMultipleMonitorInterface 进行类型化。
    • ProcessMappingViolation:对于执行进程,不存在匹配的建模进程。
    • InstanceSpecifierAlreadyInUseViolation:该标识符已在同一进程中被另一个实例使用。
  • 配置错误:\nConfigureMonitor 的所有重载均返回 ara::core::Result<void>。当参数有误(例如无效的去抖值或回滚语义,如内部去抖时的 kPreFailed)时,将返回错误 DiagErrc::kInvalidArgument [SWS_DM_01696]、[SWS_DM_01697]、[SWS_DM_01702]、[SWS_DM_01973]。
  • 服务使能错误:\n如果在服务已处于活动提供状态时调用 Offer(),则调用失败并返回错误码 DiagOfferErrc::kAlreadyOffered [SWS_DM_01699]。
  • 动作上报中的容错:\n方法 ReportMonitorAction 不返回错误码(返回类型 void)。如果使用无效或未知的 monitorHandle 调用该方法,根据规范调用将被静默忽略 [SWS_DM_01698]。

本指南基于 AUTOSAR Adaptive Platform R25-11 规范并经过自动化整理。

成员图

类图

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

G nara__diag__MultipleMonitor546 MultipleMonitor + MultipleMonitor() + operator=() + ConfigureMonitor() + Offer() + ReportMonitorAction() + StopOffer()

详细视图

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

构造函数和析构函数

MultipleMonitor constructor allows to report status of more than one monitor. using ara::diag::CounterBased; using ara::diag::TimeBased;

重载 MultipleMonitor 3
MultipleMonitor (const ara::core::InstanceSpecifier &specifier) noexcept; SWS_DM_01695
MultipleMonitor (MultipleMonitor &)=delete; SWS_DM_02065
MultipleMonitor (MultipleMonitor &&) noexcept=delete; SWS_DM_02066

方法

Configures a monitor with Monitor-internal debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

重载 ConfigureMonitor 4
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, std::function< std::int8_t()> getFaultDetectionCounter) noexcept; SWS_DM_01696
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, TimeBased defaultValues) noexcept; SWS_DM_01697
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, CounterBased defaultValues) noexcept; SWS_DM_01702
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor) noexcept; SWS_DM_01973
Offer 函数

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

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

Function to report the status information being relevant for error monitoring paths. Calls with invalid monitorHandle are ignored.

void ReportMonitorAction (MonitorHandleType monitorHandle, Monitor Action action) noexcept;
StopOffer 函数

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

void StopOffer () noexcept;

运算符

operator= 函数 2

Copy assignment operator of MultiMonitor.

重载 = 2

方法文档

函数 ConfigureMonitor [SWS_DM_01696] Upstream: RS_AP_00137, RS_Diag_04179, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, std::function< std::int8_t()> getFaultDetectionCounter) noexcept;

Configures a monitor with Monitor-internal debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5fe1968e1ca1 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

方法 ara::diag::MultipleMonitor::ConfigureMonitor 初始化用于监视器内部消抖的诊断监视器 [SWS_DM_01696]。通过参数 monitorHandle 寻址要配置的监视器,同时使用 initMonitor 注册用于重新初始化的通知程序回调,并使用 getFaultDetectionCounter 注册用于查询当前故障计数值(FDC)的函数 [SWS_DM_01696]。执行同步进行并返回一个 ara::core::Result<void> AUTOSAR_AP_SWS_Diagnostics §8.44.2.1.3.4 “ConfigureMonitor”。

错误处理与并发

出错时将返回错误结果 DiagErrc::kInvalidArgument [SWS_DM_01696]。这尤其可能在传入无效函数指针或内部消抖存在不兼容状态时发生(解释)。 问题 Q-3de0f2b0cc427ef3 (未决)该操作被指定为 noexcept 以及异常安全(exception safe),但明确标记为非线程安全(not thread-safe)[SWS_DM_01696]。因此,在同一监视器实例上的调用必须在应用端进行同步。

顺序与交互

ConfigureMonitor 的每个重载版本对于一个监视器只能严格调用一次;监视器仅在此初始化步骤之后才可投入使用 [SWS_DM_01696]。在监视器内部消抖的情况下,Diagnostic Monitor 应用程序独立处理消抖逻辑,并且仅将最终结果传输给 Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.3 “Monitor-internal debouncing”。对于其他消抖机制,提供了针对基于时间的消抖 [SWS_DM_01697]、基于计数器的消抖 [SWS_DM_01702] 或未消抖监控 [SWS_DM_01973] 的替代重载。

本使用说明是基于规范自动生成的。

实现者指南即将推出(复杂度 I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
getFaultDetectionCounterPossibility to register a function to get the current FDC for this event.

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01696
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01696@rel:R25-11#0e123b98
Content hash
0e123b98
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01696
Status: valid/unmigrated Version: rel:R25-11#8434f254 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_01696@rel:R25-11#8434f254
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#c62b40112026-09-30
  • R23-11rel:R23-11#daa241aa2026-10-14
  • R24-11rel:R24-11#b8bb06ec2026-10-14
  • R25-11rel:R25-11#8434f2542026-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

函数 ConfigureMonitor [SWS_DM_01697] Upstream: RS_AP_00137, RS_Diag_04179, RS_Diag_04225, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, TimeBased defaultValues) noexcept;

Configures a monitor with time-based debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 83cb902ff725 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

头文件 ara/diag/multiple_monitor.h 中的同步成员函数 ara::diag::MultipleMonitor::ConfigureMonitor 配置具有基于时间消抖的诊断监视器([SWS_DM_01697],SWS Diagnostics §8.44.2.1.3.2 “ConfigureMonitor(MonitorHandleType, InitMonitorNotifier, TimeBased)”)。调用时传入用于标识监视器的句柄 monitorHandle、类型为 InitMonitorNotifier 的回调函数 initMonitor 以及类型为 TimeBased 的消抖参数 defaultValues([SWS_DM_01697])。返回值采用 ara::core::Result<void>,函数签名被声明为 noexcept([SWS_DM_01697])。

调用条件与并发性

只有在完成此初始化步骤后才能使用监视器([SWS_DM_01697])。每个监视器实例对于 ConfigureMonitor 的每个重载变体只能严格调用一次([SWS_DM_01697])。该接口虽然异常安全(exception safe),但非线程安全(not thread-safe),因此同一实例上的并行调用必须由用户端进行同步([SWS_DM_01697])。

错误处理

如果配置失败,调用将在 ara::core::Result 内返回一个错误对象,尤其是错误码 DiagErrc::kInvalidArgument([SWS_DM_01697])。

相互作用

该方法补充了用于基于计数器的消抖([SWS_DM_01702])、监视器内部消抖([SWS_DM_01696])以及无消抖监视器([SWS_DM_01973])的备选初始化函数。对于基于时间消抖的事件,Diagnostic Manager 还支持有针对性地冻结消抖定时器([SWS_DM_00880]),以及随后从冻结状态恢复该定时器([SWS_DM_00038])。

本使用说明由 AI 生成,并作为基于 AUTOSAR AP R25-11 规范的参考指南。

实现者指南即将推出(复杂度 I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for TimeBased debouncing

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01697
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01697@rel:R25-11#d24fe974
Content hash
d24fe974
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01697
Status: valid/unmigrated Version: rel:R25-11#8ee088b6 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_01697@rel:R25-11#8ee088b6
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e82482882026-09-30
  • R23-11rel:R23-11#a7b946392026-10-14
  • R24-11rel:R24-11#1af4bda12026-10-14
  • R25-11rel:R25-11#8ee088b62026-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

函数 ConfigureMonitor [SWS_DM_01702] Upstream: RS_AP_00137, RS_Diag_04179, RS_Diag_04068, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, CounterBased defaultValues) noexcept;

Configures a monitor with counter-based debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 30fb235ac567 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

类 ara::diag::MultipleMonitor 的同步方法 ConfigureMonitor 用于初始化具有基于计数器消抖的诊断监视器([SWS_DM_01702],AUTOSAR_AP_SWS_Diagnostics §8.44.2.1.3.1 “ConfigureMonitor”)。该声明通过头文件 ara/diag/multiple_monitor.h 提供([SWS_DM_01702])。

用法与参数

该函数接收以下传入参数([SWS_DM_01702]):

  • monitorHandle(MonitorHandleType):标识要配置的诊断监视器。
  • initMonitor(InitMonitorNotifier):注册用于初始化监视器的通知回调函数。
  • defaultValues(CounterBased):传入用于基于计数器消抖的默认配置值。

作为返回值,该操作提供一个 ara::core::Result<void>,用于提供成功或错误的信息([SWS_DM_01702])。

错误处理

若配置失败,则在返回值中报告错误。当参数无效时,将返回错误码 DiagErrc::kInvalidArgument([SWS_DM_01702])。该函数被声明为 noexcept 并保证异常安全性(exception safe)([SWS_DM_01702])。

并发性与限制

ConfigureMonitor 的每个重载版本对于一个监视器强制只能调用一次;监视器仅在此初始化步骤之后才可使用([SWS_DM_01702])。由于该操作被归类为非线程安全(not thread-safe)([SWS_DM_01702]),跨线程边界发生调用时可能需要外部同步(解释)。 问题 Q-fcb809ccb021dd6d (未决)

相互作用

该方法是 MultipleMonitor 中配置接口的一部分。它补充了相关重载版本:包含 TimeBased 的基于时间消抖([SWS_DM_01697])、带读取功能的监视器内部消抖([SWS_DM_01696])以及完全没有消抖机制的监视器([SWS_DM_01973])。

本使用说明基于 AUTOSAR R25-11 规范自动生成。

实现者指南即将推出(复杂度 I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for CounterBased debouncing

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01702
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01702@rel:R25-11#440e087a
Content hash
440e087a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01702
Status: valid/unmigrated Version: rel:R25-11#989ecee5 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_01702@rel:R25-11#989ecee5
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#fa2b5a6d2026-09-30
  • R23-11rel:R23-11#f97ffce82026-10-14
  • R24-11rel:R24-11#617225532026-10-14
  • R25-11rel:R25-11#989ecee52026-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

函数 ConfigureMonitor [SWS_DM_01973] Upstream: RS_AP_00137, RS_Diag_04179, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor) noexcept;

Configures a monitor without debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e4d706555b6b 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步方法 ConfigureMonitor 用于在 ara::diag::MultipleMonitor 内初始化无消抖的诊断监视器([SWS_DM_01973],AUTOSAR_AP_SWS_Diagnostics §8.44.2.1.3.3 “ConfigureMonitor(MonitorHandleType, InitMonitorNotifier)”)。它接收监视器的句柄(monitorHandle)以及用于注册 InitMonitorNotifier 通知且类型为(initMonitor)的回调函数作为输入参数([SWS_DM_01973])。仅在此强制初始化步骤之后,才能激活使用相关监视器([SWS_DM_01973])。

关于调用上下文和并发性,适用以下边界条件:

  • ConfigureMonitor 的每个重载版本对于每个单独的监视器只能精确调用一次([SWS_DM_01973])。
  • 该方法被指定为 exception safe,但被归类为 not thread-safe([SWS_DM_01973])。因此,对同一监视器的并发访问可能需要应用程序进行外部同步。 问题 Q-2272f26f380a5a11 (未决)

该函数返回一个 ara::core::Result<void> 作为结果([SWS_DM_01973])。若配置失败,则返回错误,例如 DiagErrc::kInvalidArgument([SWS_DM_01973])。如果诊断监视器需要消抖方法,则可改用针对监视器内部消抖([SWS_DM_01696])、基于时间的消抖([SWS_DM_01697])或基于计数器的消抖([SWS_DM_01702])的重载变体。

本文由 AI 创建,并由 autodocs 整理策展。

实现者指南即将推出(复杂度 I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleHandle of the monitor
initMonitorPossibility to register an InitMonitor callback.

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01973
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01973@rel:R25-11#3ae876c5
Content hash
3ae876c5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01973
Status: valid/unmigrated Version: rel:R25-11#13fc3ba7 Versionshistorie & Revisions (1 transition, 3 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_01973@rel:R25-11#13fc3ba7
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#82431ed12026-09-30
  • R24-11rel:R24-11#41b36eef2026-10-14
  • R25-11rel:R25-11#13fc3ba72026-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

函数 MultipleMonitor [SWS_DM_01695] Upstream: RS_AP_00137, RS_Diag_04179, RS_AP_00121, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

MultipleMonitor (const ara::core::InstanceSpecifier &specifier) noexcept;

MultipleMonitor constructor allows to report status of more than one monitor. using ara::diag::CounterBased; using ara::diag::TimeBased;

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
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 referenced by a pingViolation DiagnosticMultipleEventPortMapping needs to be typed by a DiagnosticMultipleMonitorInterface. 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 DiagnosticMultipleMonitorInterface.

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

Record
AUTOSAR/AP/record/SWS_DM_01695
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01695@rel:R25-11#dd86e99f
Content hash
dd86e99f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01695
Status: valid/unmigrated Version: rel:R25-11#1473320e 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_01695@rel:R25-11#1473320e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#8cca70aa2026-09-30
  • R23-11rel:R23-11#eed8da002026-10-14
  • R24-11rel:R24-11#3a6f42062026-10-14
  • R25-11rel:R25-11#1473320e2026-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

函数 MultipleMonitor [SWS_DM_02065] Upstream: RS_AP_00147

MultipleMonitor (MultipleMonitor &)=delete;

Copy constructor of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02065
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02065@rel:R25-11#6140b5de
Content hash
6140b5de
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02065
Status: valid/unmigrated Version: rel:R25-11#c21a7312 Versionshistorie & Revisions (1 transition, 3 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_02065@rel:R25-11#c21a7312
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#6c568a372026-09-30
  • R24-11rel:R24-11#c21a73122026-10-14
  • R25-11rel:R25-11#c21a73122026-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

函数 MultipleMonitor [SWS_DM_02066] Upstream: RS_AP_00147

MultipleMonitor (MultipleMonitor &&) noexcept=delete;

Move constructor of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02066
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02066@rel:R25-11#32952acb
Content hash
32952acb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02066
Status: valid/unmigrated Version: rel:R25-11#8b9fcedb Versionshistorie & Revisions (1 transition, 3 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_02066@rel:R25-11#8b9fcedb
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#30301a462026-09-30
  • R24-11rel:R24-11#8b9fcedb2026-10-14
  • R25-11rel:R25-11#8b9fcedb2026-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

函数 Offer [SWS_DM_01699] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04169

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

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

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 4e6d0b0dc733 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Offer 启用 Diagnostic Management 守护进程(DM)向相应处理程序转发传入的诊断请求 [SWS_DM_01699]。该同步调用无参数,且被指定为具有异常安全性(exception safe)的 noexcept [SWS_DM_01699]。

在成功的情况下,该函数返回一个空的 ara::core::Result<void> [SWS_DM_01699]。如果此前已成功对该处理程序执行过注册,则调用失败并返回具有回滚语义的错误码 DiagOfferErrc::kAlreadyOffered [SWS_DM_01699];该错误状态归属于诊断错误域 [SWS_DM_00514]。

在并发性方面,该方法被声明为 not thread-safe [SWS_DM_01699]。解释:推测不得在未受保护的情况下从不同线程调用同一处理程序实例,以避免注册状态出现不一致。 问题 Q-95f2e0895004c73b (未决)

Offer 方法的模式符合 AUTOSAR Adaptive 中诊断处理程序的统一提供机制,与用于通用例程 [SWS_DM_00557] 或 UDS 服务 [SWS_DM_00619] 的机制类似。尽管其命名借鉴了 ara::com 中的服务提供,但这属于独立的诊断专用实现 AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”。

此文本由 AI 创建,并基于 AUTOSAR R25-11 规范。

实现者指南即将推出(复杂度 I1)

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
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_01699
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01699@rel:R25-11#93df25a4
Content hash
93df25a4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01699
Status: valid/unmigrated Version: rel:R25-11#dbadad89 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_01699@rel:R25-11#dbadad89
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#b32da78a2026-09-30
  • R23-11rel:R23-11#58671f562026-10-14
  • R24-11rel:R24-11#f4bbc99a2026-10-14
  • R25-11rel:R25-11#dbadad892026-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

函数 ReportMonitorAction [SWS_DM_01698] Upstream: RS_Diag_04179, RS_AP_00139, RS_AP_00119

void ReportMonitorAction (MonitorHandleType monitorHandle, Monitor Action action) noexcept;

Function to report the status information being relevant for error monitoring paths. Calls with invalid monitorHandle are ignored.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b11714f28219 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

ara::diag::MultipleMonitor 中的函数 [SWS_DM_01698] 用于向 Diagnostic Manager(DM)报告特定诊断 Monitor 的状态信息和去抖动命令。目标 Monitor 通过参数 monitorHandle 进行寻址,而 action 则传递(未)合格的测试结果或用于去抖动和预存储的命令。

关于错误行为,DM 将忽略带有无效 monitorHandle 的调用 [SWS_DM_01698]。如果传递了配置的去抖动方法不支持的操作,DM 将触发违规(Violation)[SWS_DM_01988]。此外,未满足的使能条件可能导致报告被丢弃(AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.4 “EnableConditions”),这对应于内部错误代码 [SWS_DM_00514]。

关于并发和执行:

  • 该方法被声明为 noexcept,因此是异常安全的 [SWS_DM_01698]。
  • 线程安全性是有条件的:调用是否必须是线程安全的,取决于传递给构造函数的 ConcurrencyType [SWS_DM_01698]。
  • 在与基于计数器的去抖动协同工作时,例如报告 kPrefailed 会导致内部计数器递增 [SWS_DM_00875]。Interpretation:为单个 Monitor 定义的去抖动机制和使能条件大概同样适用于通过句柄控制的多实例。 问题 Q-ff29529143d35ca2 (未决)

本文本由人工智能生成,仅供参考。仅规范具有约束力。

实现者指南即将推出(复杂度 I2)

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
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
monitorHandleIdentifies the requested monitor
actionContains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_DM_01698
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01698@rel:R25-11#59c78c7c
Content hash
59c78c7c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01698
Status: valid/unmigrated Version: rel:R25-11#484acfb0 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_01698@rel:R25-11#484acfb0
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#35d2f04a2026-09-30
  • R23-11rel:R23-11#5e30ecc22026-10-14
  • R24-11rel:R24-11#0e71631b2026-10-14
  • R25-11rel:R25-11#484acfb02026-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

函数 StopOffer [SWS_DM_01700] Upstream: RS_Diag_04169

void StopOffer () noexcept;

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

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5c610df99c8e 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

类 ara::diag::MultipleMonitor 的方法 StopOffer 用于禁用从 Diagnostic Management(DM)向处理程序转发请求消息 [SWS_DM_01700]。它是提供接口的功能对应项,使应用程序能够有针对性地停止处理传入的诊断请求。

使用受以下特征和约束条件的限制:

  • 签名与调用上下文:该函数通过头文件 ara/diag/multiple_monitor.h 声明,并具有签名 void StopOffer() noexcept; [SWS_DM_01700]。它不接受任何参数,也不返回任何返回值。该调用同步执行。
  • 错误处理:该方法被指定为 noexcept 且具备异常安全性(exception safe)[SWS_DM_01700]。它不抛出异常,也不提供特定的错误码或错误消息。
  • 并发性:该元素被明确归类为非线程安全(not thread-safe)[SWS_DM_01700]。对同一实例的并发调用可能必须由应用程序在外部进行同步。 问题 Q-b73ead392f8b95b2 (未决)

StopOffer 的语义遵循 AUTOSAR Adaptive 中诊断处理程序的统一设计模式,在该模式下服务通过 Offer 和 StopOffer 进行控制 AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”。禁用请求转发的相同原理也存在于相关端口(如 ara::diag::Monitor::StopOffer [SWS_DM_01089])以及通用例程 [SWS_DM_00558] 和 UDS 服务 [SWS_DM_00620] 中。

本段文本由人工智能创建,基于 AUTOSAR Adaptive R25-11 规范。

实现者指南即将推出(复杂度 I2)

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
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_01700
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01700@rel:R25-11#b713e61f
Content hash
b713e61f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01700
Status: valid/unmigrated Version: rel:R25-11#ee360dce 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_01700@rel:R25-11#ee360dce
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#4730b46b2026-09-30
  • R23-11rel:R23-11#cdd2dfd42026-10-14
  • R24-11rel:R24-11#7600bb892026-10-14
  • R25-11rel:R25-11#ee360dce2026-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_02063] Upstream: RS_AP_00147

MultipleMonitor & operator= (MultipleMonitor &)=delete;

Copy assignment operator of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02063
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02063@rel:R25-11#10fbbe4c
Content hash
10fbbe4c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02063
Status: valid/unmigrated Version: rel:R25-11#5988d6ad Versionshistorie & Revisions (1 transition, 3 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_02063@rel:R25-11#5988d6ad
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#c56ac9f02026-09-30
  • R24-11rel:R24-11#5988d6ad2026-10-14
  • R25-11rel:R25-11#5988d6ad2026-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_02064] Upstream: RS_AP_00147

MultipleMonitor & operator= (MultipleMonitor &&)=delete;

Move assignment operator of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02064
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02064@rel:R25-11#0dd99f29
Content hash
0dd99f29
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02064
Status: valid/unmigrated Version: rel:R25-11#7267f3fb Versionshistorie & Revisions (1 transition, 3 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_02064@rel:R25-11#7267f3fb
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#55db677c2026-09-30
  • R24-11rel:R24-11#7267f3fb2026-10-14
  • R25-11rel:R25-11#7267f3fb2026-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