模块 ara::nm — Network Management
Diese Seite wurde vollständig KI-generiert auf Basis von SWS NetworkManagement (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
模块指南人工智能生成
为上级 State Management 协调网络请求并监控子网的通信状态。
为上级 State Management 协调网络请求并监控子网的通信状态。
功能集群 Network Management 为 State Management 提供接口,以便协调请求逻辑网络句柄、子网和物理通信通道并查询其状态([SWS_ANM_01000]、EXP_SWArchitecture 第77页)。通过类 NetworkHandle 控制 kNoCom 与 kFullCom 之间的目标状态和实际状态,并注册异步通知程序 ([SWS_ANM_01009]、[SWS_ANM_01010]、[SWS_ANM_01358])。该接口的使用专供 State Management 保留,而错误则通过 NmErrorDomain 统一报告([SWS_ANM_01101]、[SWS_ANM_01111])。
功能集群 Network Management(NM)为 AUTOSAR Adaptive Platform 提供了用于请求和状态监控通信网络及子网的机制。该编程接口专门面向功能集群 State Management,后者通过类 NetworkHandle 的逻辑实例控制网络资源,并与 Ethernet 或 CAN 等物理总线结构解耦([SWS_ANM_01000]、EXP_SWArchitecture 第77页、EXP_PlatformDesign 第60页)。
上下文图:Functional Cluster Network Management 在 State Management 与物理网络层之间的系统级集成。来源:SWS_NetworkManagement 第13页、EXP_PlatformDesign 第60页、[SWS_ANM_01000]
NetworkHandle 通过 ara::core::InstanceSpecifier 进行初始化并支持移动操作,而拷贝构造函数和拷贝赋值已被删除([SWS_ANM_01001]、[SWS_ANM_01003]、[SWS_ANM_01005])。该模块区分布设的请求状态(SetNetworkRequestedState、GetNetworkRequestedState)与实际活动网络状态(GetNetworkState),分别由带有状态 kNoCom 和 kFullCom 的 NetworkStateType 表示([SWS_ANM_01007]、[SWS_ANM_01008]、[SWS_ANM_01009]、[SWS_ANM_01358])。
时序图:通知程序注册、状态请求和状态查询时的交互流。来源:[SWS_ANM_01007]、[SWS_ANM_01009]、[SWS_ANM_01010]、SWS_StateManagement 第38页
为了对状态变化进行异步发信,可以通过 RegisterNetworkStateChangeNotifier 或 RegisterNetworkRequestedStateChangeNotifier 注册回调(可选带有自己的执行器)([SWS_ANM_01010]、[SWS_ANM_01014]、[SWS_ANM_01020])。错误通过 NmErrorDomain 和 NmErrc 显示;诸如 kServiceNotAvailable 和 kInvalidHandler 等标准化代码可确保确定性处理故障和错误配置([SWS_ANM_01101]、[SWS_ANM_01111])。
系统角色与功能架构划分
Network Management (NM) 功能集群在 AUTOSAR Adaptive Platform 内提供通信网络和部分网络(Partial Networks,PN)的协调管理。该模块的应用程序编程接口并非面向任意 Adaptive Applications,而是专门用于 State Management (SM) 功能集群,以按需请求或释放通信能力([SWS_ANM_01000],EXP_SWArchitecture 第77页)。State Management 充当机器的中央系统编排器并控制功能组以及平台状态,而 Network Management 则封装实际的总线监控、部分网络逻辑和总线保活(Bus-Keep-Alive)状态(SWS_NetworkManagement 第13页,EXP_PlatformDesign 第60页)。
在架构上,Network Management 通过逻辑网络句柄(NetworkHandle)将上层状态控制与以太网或 CAN 网络等物理网络拓扑解耦(EXP_PlatformDesign 第60页)。State Management 发起的网络请求会在内部映射到通道特定的状态机和部分网络状态机(Partial Network State Machines,PNSM),从而同步物理通道上的通信,并按需激活或关闭(SWS_NetworkManagement 第18页,SWS_StateManagement 第17页)。
上下文图:Functional Cluster Network Management 在 State Management 与物理网络层之间的系统级集成。来源:SWS_NetworkManagement 第13页、EXP_PlatformDesign 第60页、[SWS_ANM_01000]
通过 NetworkHandle 进行实例化和资源管理
对具体子网或物理通信通道的功能性访问通过类 NetworkHandle 的实例进行([SWS_ANM_01000])。NetworkHandle 通过传入一个 ara::core::InstanceSpecifier 来显式构造,该参数唯一引用 NetworkManagementPortInterface 的分配端口原型([SWS_ANM_01001])。通过该构造函数进行的初始化被规范为线程安全的([SWS_ANM_01001])。
NetworkHandle 的接口设计遵循严格的生命周期和所有权规则:拷贝构造函数和拷贝赋值运算符已被显式删除(= delete),从而禁止对句柄实例进行不受协调的复制([SWS_ANM_01005],[SWS_ANM_01006])。相比之下,提供了移动构造函数和移动赋值运算符,以便受控地转移资源([SWS_ANM_01003],[SWS_ANM_01004])。解释:由于禁止拷贝且仅允许移动操作,该架构很可能是为每个句柄实例强制实施独占所有权语义,以杜绝在同一对象上发生竞争性的通知器注册。 问题 Q-912cb5d1ddff2896 (未决)析构函数和移动赋值运算符被显式定义为非线程安全,因此句柄在 State Management 中的生命周期管理必须同步执行([SWS_ANM_01002],[SWS_ANM_01004])。
通信状态的控制与查询
该模块严格区分网络句柄所请求的目标状态(Requested State)与实际处于活动中的当前状态(Network State)([SWS_ANM_01007],[SWS_ANM_01008])。两种状态均通过枚举 NetworkStateType 及其枚举值 kNoCom(值 0)和 kFullCom(值 1)来表示([SWS_ANM_01358])。按定义,仅当分配给该句柄的所有部分网络或完整网络无一例外地处于通信状态 FULL_COM 时,整体状态才为 kFullCom;否则状态为 kNoCom([SWS_ANM_01358])。
State Management 通过方法 SetNetworkRequestedState 请求激活(kFullCom)或释放(kNoCom)关联的 PNC、VLAN 或物理网络([SWS_ANM_01009],EXP_SWArchitecture 第77页)。使用 GetNetworkRequestedState 可以同步查询最新设置的请求值([SWS_ANM_01008])。而实际与总线相关的运行状态则通过 GetNetworkState 读取,其中两个查询方法均被声明为线程安全,并将其结果封装在一个 ara::core::Result 中([SWS_ANM_01007],[SWS_ANM_01008])。
状态图:基础网络状态 NetworkStateType 的状态转换。来源:[SWS_ANM_01358],[SWS_ANM_01007],[SWS_ANM_01009]
基于事件的状态监控与通知机制
由于网络层面的状态切换会因外部总线节点、报文超时或异步启动时间而发生延迟,NetworkHandle 通过类型为 NetworkStateChangeNotifier 的回调函数(std::function<void(const NetworkStateType&)>)提供异步通知机制([SWS_ANM_01020])。对于有效网络状态的变更,使用 RegisterNetworkStateChangeNotifier([SWS_ANM_01010]),而请求状态的变更则通过 RegisterNetworkRequestedStateChangeNotifier 监控([SWS_ANM_01012])。
每个句柄和每种监控类型最多可以注册一个通知器;每次后续的注册调用都会覆盖先前注册的回调(EXP_SWArchitecture 第77页)。使用 UnregisterNetworkStateChangeNotifier 以及 UnregisterNetworkRequestedStateChangeNotifier 可以显式撤销现有注册([SWS_ANM_01011],[SWS_ANM_01013])。对于扩展的执行流程控制,提供了基于模板的注册方法,这些方法接收自定义执行器(ExecutorT&& executor),以便在特定的执行上下文或线程中处理通知([SWS_ANM_01014],[SWS_ANM_01015])。
时序图:通知程序注册、状态请求和状态查询时的交互流。来源:[SWS_ANM_01007]、[SWS_ANM_01009]、[SWS_ANM_01010]、SWS_StateManagement 第38页
清单建模与映射配置
Network Management 接入 Adaptive Application 是通过清单中标准化的元模型元素完成的。接口 NetworkManagementPortInterface 特化了基础元类 PortInterface,从而定义了用于与该集群交互的正式端口原型(PPortPrototype,RPortPrototype)(TPS_ManifestSpecification 第263页)。
在部署清单中,应用程序实例与逻辑网络管理之间的绑定是通过映射元素 NetworkHandlePortMapping 声明的(TPS_ManifestSpecification 第620页)。该元素将进程内的端口原型(Process)与逻辑 NmNetworkHandle(TPS_ManifestSpecification 第620页)关联起来。此外,通过元模型元素 NmInteractsWithSmMapping,具有约束力地配置了 State Management 集群(通过 StateManagementStateRequest)与网络句柄(NmNetworkHandle)之间的协调耦合(TPS_ManifestSpecification 第875页)。
元模型图:端口、进程、句柄与 State Management 之间的 ARXML 配置和映射关系。来源:TPS_ManifestSpecification 第263页,TPS_ManifestSpecification 第620页,TPS_ManifestSpecification 第875页
发生错误时的行为
为了进行统一的错误处理,该模块根据 AUTOSAR Adaptive 错误架构实现了专用的错误域。类 NmErrorDomain 继承自 ara::core::ErrorDomain,并通过静态域查询 GetNmDomain 以及标识方法 Name 和 Message 来标识网络管理的错误([SWS_ANM_01101],[SWS_ANM_01105],[SWS_ANM_01106],[SWS_ANM_01107],[SWS_ANM_01109])。
具体的错误原因在枚举 NmErrc 中定义([SWS_ANM_01111])。错误码 NmErrc::kServiceNotAvailable(代码 1)指示底层平台服务或守护进程不可达;它可能在方法 GetNetworkState、GetNetworkRequestedState 和 SetNetworkRequestedState 中出现([SWS_ANM_01007],[SWS_ANM_01008],[SWS_ANM_01009],[SWS_ANM_01111])。当向某个注册方法传递了无效的通知器处理程序时,会报告错误码 NmErrc::kInvalidHandler(代码 2)([SWS_ANM_01010],[SWS_ANM_01012],[SWS_ANM_01014],[SWS_ANM_01015],[SWS_ANM_01111])。
错误码通过 MakeErrorCode 转换为常规的 ara::core::ErrorCode 对象([SWS_ANM_01110])。如果在执行环境中允许并配置了 C++ 异常,这些错误可以通过 ThrowAsException 作为类型为 NmException 的异常抛出([SWS_ANM_01100],[SWS_ANM_01102],[SWS_ANM_01108])。为简化使用,提供了类型别名 Errc 和 Exception([SWS_ANM_01103],[SWS_ANM_01104])。
进一步详细证据
该模块的核心规定基于规范的标准要求和配套的架构模型:
- 类和接口规范:
NetworkHandle作为网络请求和状态查询的核心类([SWS_ANM_01000] 至 [SWS_ANM_01015])。 - 状态定义:包含
kNoCom和kFullCom的NetworkStateType,用于映射网络状态([SWS_ANM_01358])。 - 错误域与错误码:
NmErrorDomain、NmException和NmErrc([SWS_ANM_01100] 至 [SWS_ANM_01111])。 - 架构与清单依据:EXP_SWArchitecture 第77页、SWS_NetworkManagement 第13页、EXP_PlatformDesign 第60页 中的接口和端口定义,以及 TPS_ManifestSpecification 第263页、TPS_ManifestSpecification 第620页 和 TPS_ManifestSpecification 第875页 中的元模型映射。
本指南基于 AUTOSAR Adaptive Release R25-11 规范。所有规范性要求和架构依据均来自所引用的文档与需求。
function: 17 class: 3 enumeration: 2 type alias: 3 header file: 2
此版本没有元素数据
ara::nm
Zugang zu angefordertem und effektivem Netzstatus.
Fehlerdomäne für ara::nm.
Exception-Typ für ara::nm.
constexpr const ara::core::ErrorDomain& GetNmDomain() noexcept;constexpr ara::core::ErrorCode MakeErrorCode(NmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;enum class NmErrc : ara::core::ErrorDomain::CodeType { kServiceNotAvailable = 1, kInvalidHandler = 2 };架构图或时序图
Vereinfachte Darstellung der in SWS Kapitel 7 beschriebenen NM-Zustände. Quelle(n): SWS Network Management §7.4 und [SWS_ANM_00070]. Teilweise Interpretation: Darstellung reduziert Konfigurations- und Busdetails.
API 命名空间
- ara::nm Network Management
主要类
- NetworkHandle Zugang zu angefordertem und effektivem Netzstatus.
- NmErrorDomain Fehlerdomäne für ara::nm.
- NmException Exception-Typ für ara::nm.
gemini-3.8-flash-low· 2026-10-13 · 德文原文