ARXML文件解析-1
目录
- 1 摘要
- 2 ARXML文件
- 2.1 作用及典型应用场景
- 2.2 **ARXML文件的结构树**
- 2.3 TAG(XML元素)
- 2.4 ARXML文件关键元素解析
- 2.4.1 XML声明与处理指令
- 2.4.2 XML注释
- 2.4.3 ADMIN-DATA元素
- 2.4.3 语言相关元素
- 2.4.5 AR-PACKAGE体系结构
- 2.4.6. 数据转换框架
- 2.4.7 SHORT-NAME命名规范
- 3 总结
1 摘要
ARXML(AUTOSAR XML)文件 是汽车电子系统开发中的核心配置文件,基于AUTOSAR(汽车开放系统架构)标准定义,用于描述整车电子系统的软件架构、通信配置、资源分配及服务接口。在车载测试、开发等领域有着广泛的应用,因此掌握ARXML文件的作用、语法结构以及用法是非常重要的。
2 ARXML文件
ARXML(AUTOSAR XML)文件 核心作用是为汽车电子控制单元(ECU)的开发、集成和验证提供标准化的数据模型,确保不同供应商、工具链和团队之间的无缝协作。
2.1 作用及典型应用场景
1. 标准化系统描述
ARXML文件以XML格式定义整车电子系统的静态和动态行为,是AUTOSAR方法论中的唯一数据交换格式。
- 统一数据模型:所有AUTOSAR兼容工具(如建模工具、代码生成器、测试工具)均通过ARXML交换数据,避免格式碎片化。
- 跨团队协作:主机厂、Tier1供应商和软件供应商基于同一ARXML文件协同开发,减少沟通成本。
示例:
- OEM提供整车通信矩阵(如CAN/LIN/以太网信号列表)的ARXML文件,供应商据此开发ECU软件。
2. 定义通信协议与网络拓扑
ARXML文件详细描述车内网络的通信协议、ECU连接关系和信号传输规则。
- 通信协议栈配置:定义CAN、LIN、FlexRay、以太网等协议的参数(如波特率、帧格式、PDU封装)。
- 网络拓扑:描述ECU、网关、交换机的物理连接和逻辑通信路径。
- 信号映射:将应用层信号映射到物理总线(如CAN帧或以太网PDU)的具体位置。
示例:
<!-- 以太网ECU实例定义 -->
<EcuInstance><SHORT-NAME>ADAS_ECU</SHORT-NAME><MAC-ADDRESS>00:1A:2B:3C:4D:5E</MAC-ADDRESS><IP-ADDRESS>192.168.10.20</IP-ADDRESS>
</EcuInstance><!-- 以太网帧与信号映射 -->
<EthernetFrame><SHORT-NAME>Camera_Frame</SHORT-NAME><FRAME-ID>0x2001</FRAME-ID><PDU-TO-FRAME-MAPPING><PDU-REF DEST="PDU">/Pdus/Camera_PDU</PDU-REF></PDU-TO-FRAME-MAPPING>
</EthernetFrame>
3. 配置ECU软件组件
ARXML文件定义每个ECU的软件架构,包括:
- 软件组件(SWC):描述功能模块的接口(Port)和内部行为(Runnable)。
- 资源分配:CPU内核、内存、外设的分配策略。
- 任务调度:配置Runnable的触发条件(周期/事件)和优先级。
示例:
<!-- 软件组件接口定义 -->
<SW-COMPONENT-PROTOTYPE><SHORT-NAME>BrakeControl_SWC</SHORT-NAME><PORT-PROTOTYPES><SENDER-PORT>BrakeSignal_Out</SENDER-PORT> <!-- 发送刹车信号 --><RECEIVER-PORT>WheelSpeed_In</RECEIVER-PORT> <!-- 接收轮速信号 --></PORT-PROTOTYPES>
</SW-COMPONENT-PROTOTYPE>
4. 面向服务架构(SOA)支持
针对车载以太网和SOME/IP,ARXML文件定义服务化接口,支持SOA设计:
- 服务接口(Service Interface):声明服务的方法(Method)、事件(Event)、字段(Field)。
- 服务实例化:配置服务在ECU中的端口、IP地址和通信模式(单播/组播)。
- 服务发现:定义服务实例的动态注册与订阅机制。
示例:
<!-- SOME/IP服务接口 -->
<ServiceInterface><SHORT-NAME>NavigationService</SHORT-NAME><SERVICE-ID>0x3001</SERVICE-ID><METHODS><METHOD><SHORT-NAME>UpdateRoute</SHORT-NAME><METHOD-ID>0x01</METHOD-ID><CALL-TYPE>REQUEST_RESPONSE</CALL-TYPE></METHOD></METHODS>
</ServiceInterface><!-- 服务实例配置 -->
<ServiceInstance><ENDPOINT-PORT>30490</ENDPOINT-PORT><MULTICAST-ADDRESS>239.255.10.1</MULTICAST-ADDRESS>
</ServiceInstance>
5. 数据管理与标定
ARXML文件支持车辆数据的标准化管理:
- 标定参数:定义可标定变量(如发动机MAP图)的地址、数据类型和物理转换规则。
- 诊断配置:配置UDS(ISO 14229)服务的DID(数据标识符)和DTC(故障码)。
- 传感器/执行器接口:描述ECU与物理设备的信号接口(如ADC采样精度、PWM频率)。
示例:
<!-- 标定参数定义 -->
<CALPRM><SHORT-NAME>Engine_TorqueLimit</SHORT-NAME><PHYSICAL-TYPE>uint16</PHYSICAL-TYPE><SCALE>0.1</SCALE> <!-- 物理值 = 原始值 × 0.1 --><UNIT>Nm</UNIT><ADDRESS>0x80001000</ADDRESS> <!-- ECU内存地址 -->
</CALPRM>
6. 自动化代码生成与集成
ARXML文件是AUTOSAR工具链的输入,驱动以下自动化流程:
- RTE代码生成:生成运行时环境(RTE)代码,实现SWC间通信。
- BSW配置:生成基础软件(如通信栈、OS、驱动)的配置代码。
- ECU Extract:从整车ARXML中提取单个ECU的配置,供供应商开发使用。
工具链示例:
- 设计工具:ETAS ISOLAR、Vector PREEvision。
- 代码生成器:EB Tresos、Matlab/Simulink。
- 测试工具:CANoe、dSPACE SystemDesk。
7. 验证与仿真支持
ARXML文件为测试和仿真提供结构化输入:
- 静态验证:检查信号范围、ID唯一性、时序约束的一致性。
- 动态仿真:导入CANoe等工具,模拟ECU节点间的通信行为。
- HIL测试:基于ARXML配置硬件在环(HIL)测试环境。
示例场景:
- 在CANoe中加载ARXML文件,自动解析总线信号,实现车载网络流量监控和故障注入测试。
总结:ARXML的核心价值
维度 | 作用 |
---|---|
标准化 | 统一汽车电子系统描述格式,打破工具链和供应商壁垒。 |
模块化设计 | 支持ECU软件组件的独立开发和灵活集成。 |
通信一致性 | 确保信号、服务和网络协议的全局一致,避免通信冲突。 |
自动化效率 | 驱动代码生成、测试和标定流程的自动化,减少手动错误。 |
可维护性 | 通过版本管理和向后兼容性设计,支持车辆电子系统的持续迭代升级。 |
2.2 ARXML文件的结构树
ARXML(AUTOSAR XML)文件 是AUTOSHAR(汽车开放系统架构)标准中使用的一种基于XML的文件结构,如下是关键元素示例:
- 根结构:
AR-PACKAGE (根包)
├── SHORT-NAME (包名称)
├── ELEMENTS (包含所有主要元素)
│ ├── AR-PACKAGE (子包,可嵌套)
│ ├── ECU-EXTRACT (ECU 提取定义)
│ ├── SYSTEM (系统描述)
│ ├── ECU-INSTANCE (ECU 实例)
│ ├── COMPOSITION (组件组合)
│ ├── COMPONENT-PROTOTYPE (组件原型)
│ ├── CLIENT-SERVER-INTERFACE (客户端-服务端接口)
│ ├── SENDER-RECEIVER-INTERFACE (发送者-接收者接口)
│ ├── SOFTWARE-COMPONENT-TYPE (软件组件类型)
│ ├── IMPLEMENTATION-DATA-TYPE (实现数据类型)
│ ├── APPLICATION-PRIMITIVE-DATA-TYPE (应用原始数据类型)
│ ├── APPLICATION-COMPOSITE-DATA-TYPE (应用复合数据类型)
│ ├── CONSTANT-SPECIFICATION (常量规范)
│ ├── SIGNAL (信号定义)
│ ├── SYSTEM-SIGNAL (系统信号)
│ ├── SYSTEM-SIGNAL-GROUP (系统信号组)
│ ├── DATA-TRANSFORMER (数据转换器)
│ └── ... (其他元素)
└── ADMIN-DATA (管理数据)
- 主要分支详细解析:
- 软件组件 (Software Component)
SOFTWARE-COMPONENT-TYPE
├── SHORT-NAME
├── PORTS
│ ├── P-PORT-PROTOTYPE (提供端口)
│ │ ├── SHORT-NAME
│ │ ├── PROVIDED-INTERFACE-TREF (引用接口)
│ │ └── ...
│ └── R-PORT-PROTOTYPE (需求端口)
│ ├── SHORT-NAME
│ ├── REQUIRED-INTERFACE-TREF
│ └── ...
├── INTERNAL-BEHAVIORS (内部行为)
│ ├── SHORT-NAME
│ ├── EVENTS
│ │ ├── INIT-EVENT (初始化事件)
│ │ ├── TIMING-EVENT (定时事件)
│ │ ├── DATA-RECEIVE-EVENT (数据接收事件)
│ │ ├── OPERATION-INVOKED-EVENT (操作调用事件)
│ │ └── MODE-SWITCH-EVENT (模式切换事件)
│ ├── RUNNABLES (可运行实体)
│ │ ├── SHORT-NAME
│ │ ├── CAN-BE-INVOKED-CONCURRENTLY (并发调用标志)
│ │ ├── MINIMUM-START-INTERVAL (最小启动间隔)
│ │ └── ...
│ └── ...
└── ...
- 数据类型 (Data Types)
IMPLEMENTATION-DATA-TYPE
├── SHORT-NAME
├── CATEGORY (类型类别: VALUE, ARRAY, RECORD, UNION)
├── SW-DATA-DEF-PROPS (软件数据定义属性)
│ ├── SW-CALIBRATION-ACCESS (标定访问权限)
│ ├── SW-IMPL-POLICY (实现策略)
│ └── ...
├── SUB-ELEMENTS (子元素,适用于复合类型)
│ ├── ARRAY-TYPE (数组类型)
│ │ ├── ELEMENT (数组元素)
│ │ ├── INDEX-DATA-TYPE (索引数据类型)
│ │ └── SIZE-HANDLING (大小处理)
│ └── RECORD-TYPE (记录类型)
│ ├── ELEMENTS (记录元素)
│ └── ...
└── ...
-
接口 (Interfaces)
-
客户端-服务端接口 (Client-Server Interface)
CLIENT-SERVER-INTERFACE
├── SHORT-NAME
├── IS-SERVICE (是否为服务接口)
├── OPERATIONS (操作)
│ ├── SHORT-NAME
│ ├── ARGUMENTS (参数)
│ │ ├── DIRECTION (IN, OUT, INOUT)
│ │ ├── TYPE-TREF (类型引用)
│ │ └── ...
│ ├── POSSIBLE-ERROR-REFS (可能的错误引用)
│ └── ...
└── ...
- 发送者-接收者接口 (Sender-Receiver Interface)
SENDER-RECEIVER-INTERFACE
├── SHORT-NAME
├── DATA-ELEMENTS (数据元素)
│ ├── SHORT-NAME
│ ├── TYPE-TREF (类型引用)
│ ├── IS-QUEUED (是否排队)
│ └── ...
└── ...
- 2.4 ECU 配置 (ECU Configuration)
ECU-EXTRACT
├── SHORT-NAME
├── CONTAINERS (容器)
│ ├── ECU-CONFIG (ECU 配置)
│ │ ├── SHORT-NAME
│ │ ├── ECU-VARIANT (ECU 变体)
│ │ ├── MEMORY-MAPPINGS (内存映射)
│ │ └── ...
│ └── ...
├── MODULE-CONFIGS (模块配置)
│ ├── COM-CONFIG (通信配置)
│ ├── OS-CONFIG (操作系统配置)
│ ├── BSW-MODULE-CONFIG (基础软件模块配置)
│ └── ...
└── ...
- 系统描述 (System Description)
SYSTEM
├── SHORT-NAME
├── COMMUNICATION (通信)
│ ├── SIGNAL-TO-PDU-MAPPINGS (信号到PDU映射)
│ ├── PDU-TO-FRAME-MAPPINGS (PDU到帧映射)
│ └── ...
├── ECUS (ECU实例)
│ ├── SHORT-NAME
│ ├── COMMUNICATION-CONNECTORS (通信连接器)
│ └── ...
├── SIGNALS (信号)
│ ├── SHORT-NAME
│ ├── DATA-TYPE-POLICY (数据类型策略)
│ └── ...
└── ...
- 典型 ARXML 文件层次结构示例:
AUTOSAR (根元素)
├── AR-PACKAGES (包集合)
│ ├── AR-PACKAGE (包1, 如ServiceInterfaces)
│ │ ├── SHORT-NAME: "ServiceInterfaces"
│ │ ├── ELEMENTS
│ │ │ ├── SERVICE-INTERFACE (服务接口)
│ │ │ │ ├── SHORT-NAME: "VehicleSpeedService"
│ │ │ │ ├── SERVICE-ID: 0x1234
│ │ │ │ ├── METHODS (方法)
│ │ │ │ │ └── CLIENT-SERVER-OPERATION
│ │ │ │ │ ├── SHORT-NAME: "GetSpeed"
│ │ │ │ │ ├── METHOD-ID: 0x0101
│ │ │ │ │ └── CALL-TYPE: "REQUEST_RESPONSE"
│ │ │ │ └── EVENTS (事件)
│ │ │ │ └── EVENT
│ │ │ │ ├── SHORT-NAME: "SpeedUpdate"
│ │ │ │ └── EVENT-ID: 0x0201
│ │ │ └── ... (其他服务接口)
│ │ └── AR-PACKAGE (子包, 可选)
│ │
│ ├── AR-PACKAGE (包2, 如DataTypes)
│ │ ├── SHORT-NAME: "DataTypes"
│ │ ├── ELEMENTS
│ │ │ ├── IMPLEMENTATION-DATA-TYPE (数据类型)
│ │ │ │ ├── SHORT-NAME: "UInt16"
│ │ │ │ └── BIT-SIZE: 16
│ │ │ └── IMPLEMENTATION-DATA-TYPE (结构体)
│ │ │ ├── SHORT-NAME: "EngineStatus"
│ │ │ ├── CATEGORY: "STRUCTURE"
│ │ │ └── SUB-ELEMENTS (成员)
│ │
│ ├── AR-PACKAGE (包3, 如ECUs)
│ │ ├── SHORT-NAME: "ECUs"
│ │ ├── ELEMENTS
│ │ │ └── ECU-INSTANCE (ECU实例)
│ │ │ ├── SHORT-NAME: "EngineECU"
│ │ │ ├── MAC-ADDRESS: "00:12:34:56:78:9A"
│ │ │ └── ETHERNET-INTERFACES (以太网接口)
│ │
│ └── AR-PACKAGE (包4, 如Communication)
│ ├── SHORT-NAME: "Communication"
│ ├── ELEMENTS
│ │ ├── ETHERNET-FRAME (以太网帧)
│ │ │ ├── SHORT-NAME: "Speed_Frame"
│ │ │ └── FRAME-ID: 0x1001
│ │ ├── I-SIGNAL-I-PDU (PDU)
│ │ │ ├── SHORT-NAME: "Speed_PDU"
│ │ │ └── SIGNAL-TO-PDU-MAPPING (信号映射)
│ │ └── I-SIGNAL (信号)
│ │ ├── SHORT-NAME: "Speed_Signal"
│ │ └── LENGTH: 16
│ └── ...
│
└── ... (其他全局配置)
关键结构说明:
- 根节点:
<AUTOSAR>
- 包含所有配置的入口,声明命名空间和版本。
ARXML 文件通常包含以下关键命名空间:
http://autosar.org/schema/r4.0
(根据版本不同而变化)http://autosar.org/schema/implementationDataTypes
http://autosar.org/schema/applicationDataTypes
版本信息通常在根元素中指定:
<AUTOSAR xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3.xsd" xmlns="http://autosar.org/schema/r4.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
包(AR-PACKAGE):
- 功能划分:按逻辑功能分模块(如服务接口、数据类型、ECU配置)。
- 嵌套支持:包内可嵌套子包(如
ServiceInterfaces
包下可定义SOME/IP
子包)。
-
元素(ELEMENTS):
- 服务接口(SERVICE-INTERFACE):定义SOME/IP服务的方法、事件、字段。
- 数据类型(IMPLEMENTATION-DATA-TYPE):基础类型(
uint8
)或复杂类型(struct
)。 - ECU实例(ECU-INSTANCE):描述ECU的硬件属性(MAC地址、IP地址)。
- 通信元素(ETHERNET-FRAME, PDU, SIGNAL):定义以太网帧格式和信号映射。
-
引用机制:
- 通过
<REF>
标签跨包引用元素(如<DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/UInt16</DATA-TYPE-REF>
)。
- 通过
示例:服务接口与PDU的引用关系
ServiceInterfaces (包)
└── SERVICE-INTERFACE├── METHOD│ └── INPUT-ARGUMENTS│ └── ARGUMENT│ └── DATA-TYPE-REF -> /DataTypes/UInt16└── EVENT└── DATA-TYPE-REF -> /DataTypes/UInt16Communication (包)
└── I-SIGNAL-I-PDU└── SIGNAL-TO-PDU-MAPPING└── I-SIGNAL-REF -> /Signals/Speed_Signal
设计原则
- 模块化:按功能拆分为独立包(如
Services
、Network
、ECUs
)。 - 唯一标识:所有ID(
SERVICE-ID
、METHOD-ID
)需全局唯一。 - 可读性:通过
SHORT-NAME
和注释说明元素用途。 - 兼容性:版本升级时保留旧字段,避免破坏现有通信。
通过此结构树,可快速定位ARXML文件中的配置模块,理解元素间的层级和引用关系。
2.3 TAG(XML元素)
在ARXML文件中,TAG(XML元素)的类型由AUTOSAR元模型(Meta-Model)严格定义,用于描述汽车电子系统的各个组成部分。以下是ARXML文件中所有常见TAG类型的分类及详细说明,涵盖从顶层结构到具体配置的完整体系:
1. 顶层结构标签
TAG名称 | 用途 | 示例 |
---|---|---|
<AUTOSAR> | 根元素,声明命名空间和XSD引用 | xml <AUTOSAR xmlns="http://autosar.org/schema/r4.0"> |
<AR-PACKAGES> | 包含所有功能包的容器 | xml <AR-PACKAGES>...</AR-PACKAGES> |
<AR-PACKAGE> | 单个功能包,通过UUID 和SHORT-NAME 标识 | xml <AR-PACKAGE UUID="a1b2c3d4">...</AR-PACKAGE> |
2. 元数据与管理标签
TAG名称 | 用途 | 示例 |
---|---|---|
<ADMIN-DATA> | 文件管理信息(版本、语言等) | xml <ADMIN-DATA><LANGUAGE>EN</LANGUAGE></ADMIN-DATA> |
<DOC-REVISIONS> | 文档修订历史 | xml <DOC-REVISIONS><DOC-REVISION><REVISION-LABEL>1.0.0</REVISION-LABEL></DOC-REVISION></DOC-REVISIONS> |
<USED-LANGUAGES> | 声明支持的多语言 | xml <USED-LANGUAGES><L-2 L="EN"/></USED-LANGUAGES> |
3. 通信与网络相关标签
TAG名称 | 用途 | 示例 |
---|---|---|
<COMMUNICATION-CLUSTER> | 定义通信协议(CAN/LIN/Ethernet) | xml <COMMUNICATION-CLUSTER><SHORT-NAME>CAN_Cluster</SHORT-NAME></COMMUNICATION-CLUSTER> |
<PDU> | 协议数据单元(信号组) | xml <PDU><SHORT-NAME>EngineData</SHORT-NAME></PDU> |
<SIGNAL> | 单个信号定义 | xml <SIGNAL><SHORT-NAME>RPM</SHORT-NAME></SIGNAL> |
<I-SIGNAL> | 接口信号(ECU间通信) | xml <I-SIGNAL><SHORT-NAME>BrakePressure</SHORT-NAME></I-SIGNAL> |
4. ECU配置与软件组件标签
TAG名称 | 用途 | 示例 |
---|---|---|
<ECUC-MODULE-DEF> | ECU模块定义(软件组件) | xml <ECUC-MODULE-DEF><SHORT-NAME>CanDriver</SHORT-NAME></ECUC-MODULE-DEF> |
<ECUC-CONTAINER-VALUE> | 容器实例(配置参数集合) | xml <ECUC-CONTAINER-VALUE><SHORT-NAME>CanConfig</SHORT-NAME></ECUC-CONTAINER-VALUE> |
<PARAMETER-VALUES> | 参数值容器 | xml <PARAMETER-VALUES><INTEGER-VALUE><VALUE>100</VALUE></INTEGER-VALUE></PARAMETER-VALUES> |
5. 服务与数据转换标签
TAG名称 | 用途 | 示例 |
---|---|---|
<SERVICE-INTERFACE> | SOA服务接口定义 | xml <SERVICE-INTERFACE><SHORT-NAME>DiagnosticService</SHORT-NAME></SERVICE-INTERFACE> |
<DATA-TRANSFORMATION-SET> | 数据转换规则集合(如信号编码/解码) | xml <DATA-TRANSFORMATION-SET UUID="..."><SHORT-NAME>SignalEncoder</SHORT-NAME></DATA-TRANSFORMATION-SET> |
<TRANSFORMER-CHAIN> | 数据转换步骤链 | xml <TRANSFORMER-CHAIN><SHORT-NAME>CanToEth</SHORT-NAME></TRANSFORMER-CHAIN> |
6. 多语言支持标签
TAG名称 | 用途 | 示例 |
---|---|---|
<DESC> | 多语言描述容器 | xml <DESC><L-2 L="EN">Description</L-2></DESC> |
<L-2> | 短文本(名称、标签) | xml <L-2 L="EN">EngineSpeed</L-2> |
<L-10> | 长文本(详细说明、文档) | xml <L-10 L="EN">This is a detailed description...</L-10> |
7. 引用与依赖标签
TAG名称 | 用途 | 示例 |
---|---|---|
<ECUC-REFERENCE> | 引用其他元素(通过UUID或路径) | xml <ECUC-REFERENCE DEST="ECUC-MODULE-DEF"><TARGET-REF>/Path/To/Element</TARGET-REF></ECUC-REFERENCE> |
<VARIATION-POINT> | 条件编译或变体配置 | xml <VARIATION-POINT><ECUC-CONFIGURATION-VARIANT COND="DEBUG_MODE">...</ECUC-CONFIGURATION-VARIANT></VARIATION-POINT> |
8. 特殊用途标签
TAG名称 | 用途 | 示例 |
---|---|---|
<PLACEHOLDER> | 标记未完成的配置 | xml <PLACEHOLDER><DEFINITION-REF>/ECUC/Placeholders/Unassigned</DEFINITION-REF></PLACEHOLDER> |
<BINARY-FILE> | 嵌入二进制文件(如校准数据) | xml <BINARY-FILE><SHORT-NAME>Calibration.bin</SHORT-NAME></BINARY-FILE> |
关键总结
- 严格分层:ARXML采用树状结构,从
<AUTOSAR>
根元素到具体配置逐级展开。 - 工具链依赖:所有TAG需符合AUTOSAR XSD规范,否则工具(如Vector PREEvision)会报错。
- 多语言支持:通过
<L-2>
/<L-10>
和<USED-LANGUAGES>
实现国际化。 - 唯一标识:
UUID
和SHORT-NAME
确保元素可被唯一引用。
如需完整标签列表,请参考对应AUTOSAR版本的官方XSD文件(如AUTOSAR_4-2-2.xsd
)。
2.4 ARXML文件关键元素解析
2.4.1 XML声明与处理指令
元素:<?xml ?>
- XML声明
作用:定义XML文档的基本属性,是每个ARXML文件必须的开头部分
完整语法:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
参数详解:
version
(必需):指定XML版本,目前只支持"1.0"encoding
(强烈推荐):字符编码方式,推荐值:- “UTF-8” (最常用)
- “UTF-16”
- “ISO-8859-1”
standalone
(可选):定义文档是否依赖外部DTD- “yes”:不依赖外部定义
- “no”:依赖外部定义
使用规范:
- 必须出现在文件第一行
- 前面不能有任何字符(包括空格)
- 在ARXML中必须指定UTF-8编码
2.4.2 XML注释
元素: <!-- -->
- 注释
作用:为ARXML文件添加人类可读的解释说明
语法规则:
<!-- 多行注释示例:这里可以包含任何说明文字,但不能包含"--"或结束标记
-->
特殊限制:
- 不能嵌套注释
- 内容中不能包含连续两个连字符"–"
- 不能出现在标签内部(如
<tag <!--错误--> >
)
2.4.3 ADMIN-DATA元素
元素: <ADMIN-DATA>
作用:存储文档管理元数据,包含三类核心信息:
- 文档创建和修改历史
- 工具链信息
- 配置管理数据
完整结构:
<ADMIN-DATA><SDGS><!-- 文档标识信息 --><SDG GID="Docu"><SD>ECU Configuration</SD></SDG><!-- 版本控制 --><SDG GID="Revision"><SD>4.3.0</SD></SDG><!-- 创建信息 --><SDG GID="Created"><SD>2023-11-20T09:30:00</SD><SDG GID="By"><SD>John.Doe@company.com</SD></SDG></SDG><!-- 工具信息 --><SDG GID="Tool"><SD>Vector PREEvision 6.0</SD><SDG GID="Settings"><SD>CodeGen=Autosar4.2</SD></SDG></SDG></SDGS>
</ADMIN-DATA>
SDG参数详解:
GID
(必需):分组标识符,常见值:- “Created”:创建时间
- “Modified”:修改记录
- “Tool”:生成工具
- “Revision”:版本号
- “Owner”:所有者
SD
:实际数据内容,可以是嵌套结构
最佳实践:
- 至少应包含创建时间和工具信息
- 使用ISO 8601格式记录时间戳
- 对重要修改保留历史记录
2.4.3 语言相关元素
元素: <LANGUAGE>
作用:声明文档的默认内容语言
语法用法:
<LANGUAGE>EN</LANGUAGE>
语言代码规范:
- 必须使用ISO 639-1双字母代码
- 常见值:EN(英语)、DE(德语)、JA(日语)、ZH(中文)
元素 <USED-LANGUAGE>
作用:声明文档中实际使用的所有语言
语法:
<USED-LANGUAGES><USED-LANGUAGE>EN</USED-LANGUAGE><USED-LANGUAGE>DE</USED-LANGUAGE>
</USED-LANGUAGES>
规则:
- 必须包含
<LANGUAGE>
中指定的默认语言 - 按使用频率排序
- 每个语言代码只能出现一次
元素 <L-10>
作用:提供多语言文本内容
完整语法:
<L-10 L="EN" xml:space="preserve|default" xmlns:xhtml="http://www.w3.org/1999/xhtml"
>文本内容
</L-10>
参数详解:
L
(必需):ISO 639-1语言代码xml:space
(可选):空白处理方式- “preserve”:保留所有空白字符
- “default”:按XML规范处理空白
xmlns:xhtml
(可选):允许嵌入XHTML标记
典型应用:
<DESCRIPTION><L-10 L="EN" xml:space="preserve">Engine control module (ECM) managesthe fundamental engine parameters.</L-10><L-10 L="DE">Das Motorsteuergerät (ECM) verwaltetdie grundlegenden Motorparameter.</L-10>
</DESCRIPTION>
2.4.5 AR-PACKAGE体系结构
元素 <AR-PACKAGES>
作用:作为所有AR-PACKAGE的根容器
特性:
- 必须是
<AUTOSAR>
元素的直接子元素 - 可以包含多个
<AR-PACKAGE>
- 在模块化ARXML中可能被拆分到多个文件
元素 <AR-PACKAGE>
作用:AUTOSAR元素的主要组织单元
完整语法:
<AR-PACKAGE UUID="urn:uuid:a1b2c3d4-5678-90ef-1234-567890abcdef"><SHORT-NAME>DataTypes</SHORT-NAME><DESCRIPTION>...</DESCRIPTION><ELEMENTS>...</ELEMENTS><AR-PACKAGES>...</AR-PACKAGES>
</AR-PACKAGE>
关键子元素:
UUID
:唯一标识符(推荐使用URN格式)SHORT-NAME
:包名称(遵循AUTOSAR命名规则)ELEMENTS
:包含实际AUTOSAR元素AR-PACKAGES
:嵌套子包
UUID生成规范:
- 必须符合RFC 4122标准
- 推荐格式:
urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- 生成工具:应使用标准UUID生成算法
2.4.6. 数据转换框架
元素 <DATA-TRANSFORMATIONS>
作用:容器元素,包含所有数据转换定义
结构要求:
<DATA-TRANSFORMATIONS><DATA-TRANSFORMATION-SET>...</DATA-TRANSFORMATION-SET><!-- 可包含多个SET -->
</DATA-TRANSFORMATIONS>
位置:通常位于<AR-PACKAGE>
的<ELEMENTS>
中
元素 <DATA-TRANSFORMATION-SET>
作用:定义一组相关的数据转换规则
完整语法:
<DATA-TRANSFORMATION-SET UUID="urn:uuid:b2c3d4e5-f6a7-89b0-c1d2-e3f4a5b6c7d8"><SHORT-NAME>SpeedConversions</SHORT-NAME><DESCRIPTION>...</DESCRIPTION><DATA-TRANSFORMATION-REF>...</DATA-TRANSFORMATION-REF><TRANSFORMER-CHAIN-REFS>...</TRANSFORMER-CHAIN-REFS>
</DATA-TRANSFORMATION-SET>
关键参数:
UUID
:必须全局唯一SHORT-NAME
:遵循UpperCamelCase命名惯例
元素 <TRANSFORMER-CHAIN-REFS>
作用:引用已定义的转换器链
详细结构:
<TRANSFORMER-CHAIN-REFS><TRANSFORMER-CHAIN-REF DEST="TRANSFORMER-CHAIN"DEST-NAME="SpeedConverterChain">/Transformers/SpeedProcessing</TRANSFORMER-CHAIN-REF>
</TRANSFORMER-CHAIN-REFS>
属性详解:
DEST
(必需):目标类型,固定为"TRANSFORMER-CHAIN"DEST-NAME
(可选):目标元素的SHORT-NAME- 内容:XPath格式的引用路径
2.4.7 SHORT-NAME命名规范
语法要求:
<SHORT-NAME>ValidName</SHORT-NAME>
命名规则:
- 长度限制:1-128个字符
- 允许字符:
- 大写字母(A-Z)
- 小写字母(a-z)
- 数字(0-9)
- 下划线(_)
- 禁止:
- 开头或结尾使用下划线
- 连续两个下划线
- 使用XML保留字符(<, >, &等)
行业惯例:
- 类型定义使用UpperCamelCase:
EngineSpeedType
- 实例命名使用lowerCamelCase:
currentSpeed
- 常量使用UPPER_SNAKE_CASE:
MAX_SPEED_LIMIT
综合应用示例:
<?xml version="1.0" encoding="UTF-8"?>
<AUTOSAR xmlns="http://autosar.org/schema/r4.0"><ADMIN-DATA><SDGS><SDG GID="Created"><SD>2023-11-20T14:30:00Z</SD><SDG GID="By"><SD>engineering@auto.com</SD></SDG></SDG><SDG GID="Tool"><SD>ETAS ISOLAR-A 9.0.1</SD></SDG></SDGS></ADMIN-DATA><LANGUAGE>EN</LANGUAGE><USED-LANGUAGES><USED-LANGUAGE>EN</USED-LANGUAGE><USED-LANGUAGE>DE</USED-LANGUAGE></USED-LANGUAGES><AR-PACKAGES><AR-PACKAGE UUID="urn:uuid:1a2b3c4d-5e6f-7890-1234-56789abcdef0"><SHORT-NAME>VehicleData</SHORT-NAME><DESCRIPTION><L-10 L="EN">Contains vehicle data transformations</L-10></DESCRIPTION><ELEMENTS><DATA-TRANSFORMATIONS><DATA-TRANSFORMATION-SET UUID="urn:uuid:aa11bb22-cc33-dd44-ee55-ff6677889900"><SHORT-NAME>SpeedTransformSet</SHORT-NAME><TRANSFORMER-CHAIN-REFS><TRANSFORMER-CHAIN-REF DEST="TRANSFORMER-CHAIN">/Transformers/KmphToMphChain</TRANSFORMER-CHAIN-REF></TRANSFORMER-CHAIN-REFS></DATA-TRANSFORMATION-SET></DATA-TRANSFORMATIONS></ELEMENTS></AR-PACKAGE></AR-PACKAGES>
</AUTOSAR>
3 总结
以上对ARXML文件的作用、应用场景以及关键元素进行了详细介绍,希望能对大家学习ARXML文件有所帮助,后续专题会继续对ARXML文件以及以太网通信矩阵进行介绍。
相关文章:
ARXML文件解析-1
目录 1 摘要2 ARXML文件2.1 作用及典型应用场景2.2 **ARXML文件的结构树**2.3 TAG(XML元素)2.4 ARXML文件关键元素解析2.4.1 XML声明与处理指令2.4.2 XML注释2.4.3 ADMIN-DATA元素2.4.3 语言相关元素2.4.5 AR-PACKAGE体系结构2.4.6. 数据转换框架2.4.7 S…...
传统开发者视角:智能合约与区块链数据库探秘
前言 在上一篇文章:探秘区块链开发:智能合约在 DApp 中的地位及与传统开发差异中我为大家从传统开发者的角度讲解了一下什么是智能合约。 简单的来说智能合约对于传统前端开发者可以说是API接口,而后端开发者则可以说是负责接口逻辑的程序。 然而从传统的开发意识跳跃到D…...
游戏引擎学习第204天
回顾并为今天的内容做铺垫 好,现在开始这一集。今天我们将进行一些用户界面编程,觉得这是一个展示如何编写这类代码的好时机。很多人对如何做用户界面代码都很好奇,所以展示一下如何编写是非常有意义的。 我之所以在现在的这个地方做这些工…...
蓝桥杯2024年第十五届省赛真题-R 格式
题目链接: 思路: 通过数组模拟d的每一位,逐位进行计算,从而实现对d的精确处理。 代码: #include<bits/stdc.h> #define int long long using namespace std; const int N 2020;int n; string s; vector<i…...
Haskell语言的区块链安全
Haskell语言在区块链安全中的应用 引言 随着区块链技术的发展,它已经成为金融、供应链管理、身份认证等多个领域的重要基础设施。然而,区块链的安全性问题一直是行业关注的焦点。为了确保区块链的安全性,开发者需要选择合适的编程语言来编写…...
BUUCTF-web刷题篇(11)
20.admin 这道题很可能用admin或者伪造admin进行登录,用admin进行登录,随便填写密码进不去,发现页面有register、login,用admin注册提示已经被注册。 方法一:(burp爆破) 进入登陆界面&#x…...
TensorFlow
TensorFlow 是一个由 Google 开发并开源的机器学习和深度学习库,被广泛应用于各类机器学习项目。以下为你详细介绍: 概述 TensorFlow 最初是为了满足 Google 内部大规模机器学习需求而研发,后于 2015 年开源。它提供了一个强大且灵活的生态…...
分子生成的深层次层次变分自编码器 - DrugHIVE 测评
一、背景介绍 DrugHIVE 来源于南加州大学定量与计算生物学系的 Remo Rohs 为通讯作者的文章:《Structure-Based Drug Design with a Deep Hierarchical Generative Model》。文章链接:https://pubs.acs.org/doi/10.1021/acs.jcim.4c01193。该文章在 202…...
54.大学生心理健康管理系统(基于springboot项目)
目录 1.系统的受众说明 2.相关技术 2.1 B/S结构 2.2 MySQL数据库 3.系统分析 3.1可行性分析 3.1.1时间可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.1.4 技术可行性 3.1.5 法律可行性 3.2系统流程分析 3.3系统功能需求分析 3.4 系统非功能需求分析 4.系统设计…...
Linux文件特殊权限管理及进程和线程
acl 权限优先级 拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他 mask阈值 mask是能够赋予指定用户权限的最大阀值 当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力 mask会发生变化 恢复: setfacl -m m: 权限 :rwx 文件/…...
Vue2+Vue3 45-90集学习笔记
Vue2Vue3 45-90集学习笔记 小兔鲜首页 页面开发思路: 分析页面,按模块拆分组件,搭架子(局部注册或全局注册) 局部注册:App.js中 导入(import),注册(compon…...
【Web 服务器】的工作原理
🌐 Web 服务器的工作原理 Web 服务器的主要作用是 接收客户端请求(通常是浏览器发出的 HTTP/HTTPS 请求),处理请求,并返回相应的数据(如网页、图片、API 响应等)。 📌 工作流程 1️…...
LeetCode 5 -- 区间DP | 中心拓展算法
题目描述 最长回文子串 数据规模为 5e5,必须 manacher 算法 1. DP 由于 r e v e r s e ( ) reverse() reverse() 的时间复杂度是 O ( N ) O(N) O(N),因此暴力肯定是不行的。 d p dp dp 的思路:如果 s [ l . . r ] s[l..r] s[l..r] 是一个…...
IntelliJ IDEA中Spring Boot 3.4.x+集成Redis 7.x:最新配置与实战指南
前言 Spring Boot 3.4.x作为当前最新稳定版本,全面支持Java 17与Jakarta EE 10规范。本文以Spring Boot 3.4.1和Redis 7.x为例,详解如何在IDEA中快速接入Redis,涵盖最新依赖配置、数据序列化优化、缓存注解及高…...
数仓建模中计算累计销量
在数仓建模中计算累计销量,通常需要结合时间维度和业务逻辑设计合理的模型与计算逻辑。以下是分步骤的实现思路和示例: 1. 模型设计 累计销量的计算通常基于星型模型或雪花模型,核心结构包括: 事实表:记录每一笔销售…...
(多看) CExercise_05_1函数_1.2计算base的exponent次幂
题目: 键盘录入两个整数:底(base)和幂指数(exponent),计算base的exponent次幂,并打印输出对应的结果。(注意底和幂指数都可能是负数) 提示:求幂运算时,基础的思路就是先无脑把指数转…...
Pollard‘s Rho 算法
Pollard’s Rho 算法:一场数学与计算机科学的巧妙结合 在现代计算机科学中,素数分解、整数因子化问题有着广泛的应用,尤其是在密码学领域。然而,当面对一个大合数时,寻找其因子仍然是一个非常复杂的问题。我们常常依赖…...
8款分形长虹玻璃科幻渐变海报设计JPG背景素材 The Gradient Backgrounds Pack
天空从未如此美好 — 直到有人将日落洒在您的屏幕上。这些渐变是带有心跳的液体颜色,从熔化的金色转变为深紫色,就像地平线一样。 8 个背景中的每一个都以 45003000 像素和 300dpi 的速度脉冲,清晰到足以让您感觉自己可以直接踏入光芒中。但这…...
AIGC9——AIGC时代的用户体验革命:智能交互与隐私保护的平衡术
引言:当AI成为交互主角 2024年,淘宝AI客服"阿里小蜜"日均处理20亿次咨询,日本虚拟偶像"初音未来"演唱会门票3秒售罄——这些现象标志着AIGC已深度融入人机交互场景。但与此同时,过度个性化的推荐引发"信…...
vm虚拟机虚拟出网卡并ping通外网
在 Linux 和 Windows 系统中,即使不使用网络命名空间(namespace),也能实现虚拟网卡上网。以下是不同场景下的实现方法: 一、Linux 系统(不使用网络命名空间) 1. 直接创建虚拟网卡对(…...
基于时间卷积网络TCN实现电力负荷多变量时序预测(PyTorch版)
前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…...
ESXi8的部署过程
目录 一、系统安装 二、ESXI8的序列号 三、挂载硬盘和新建VMFS数据分区 四、通过数据存储浏览器上传下载文件 五、Windows远程桌面端口隐射 六、导出虚机 一、系统安装 1、使用UtrIOS系统制作ESXI8的启动盘; 2、服务器启动F8按键进入Popup启动选项,选择U盘启动; 3、安…...
IntelliJ IDEA 2020~2024 创建SpringBoot项目编辑报错: 程序包org.springframework.boot不存在
目录 前奏解决结尾 前奏 哈!今天在处理我的SpringBoot项目时,突然遇到了一些让人摸不着头脑的错误提示: java: 程序包org.junit不存在 java: 程序包org.junit.runner不存在 java: 程序包org.springframework.boot.test.context不存在 java:…...
Windows 权限配置文件解析与安全分析(GPP,GPO,LSA)
在 Windows 网络环境中,权限配置文件用于管理用户权限、密码策略和访问控制,涵盖组策略首选项(GPP)、本地安全策略(LSA)、注册表以及 Active Directory 组策略(GPO) 等。这些配置文件…...
【微服务】基础概念
1.什么是微服务 微服务其实就是一种架构风格,他提倡我们在开发的时候,一个应用应该是一组小型服务而组成的,每一个服务都运行在自己的进程中,每一个小服务都通过HTTP的方式进行互通。他更加强调服务的彻底拆分。他并不是仅局限于…...
MYOJ_4342:(洛谷P1087)[NOIP 2004 普及组] FBI 树(二叉树实操,递归提高)
题目描述 我们可以把由 “0” 和 “1” 组成的字符串分为三类:全 “0” 串称为 B 串,全 “1” 串称为 I 串,既含 “0” 又含 “1” 的串则称为 F 串。 FBI 树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点三…...
LLM(13):词编码后的位置
原则上,token 嵌入是大型语言模型(LLM)的合适输入。然而,LLM 的一个小缺点是它们的自注意力机制无法指导序列中 token 的位置或顺序。在前面介绍的嵌入层的工作方式中,无论 token ID 在输入序列中的位置如何࿰…...
MINIQMT学习课程Day4
聚宽的模拟/实盘跟单系统,已经全部介绍完毕,上传完毕了,相信大家已经可以进行聚宽的miniqmt的交易了。如果还有疑问,私信我进行沟通。 现在开始进入新的课题,如何学习python,我不教那些乱七八糟的ÿ…...
AWS云服务:大数据公司实现技术突破与商业价值的核心引擎
在数据驱动决策的时代,大数据公司面临着海量数据存储、实时计算、复杂分析及安全合规等核心挑战。如何高效构建弹性、可扩展且低成本的技术架构,成为企业能否在竞争中胜出的关键。亚马逊云科技(AWS)作为全球云计算领域的领导者&am…...
Openpyxl使用教程(包含处理大数据量案例)
文章目录 一、简介功能特性应用场景使用优势 二、常用方法1、工作簿wb2、工作表ws 三、案例1、创建新工作簿2、将Excel数据存入list中3、按行读取文件(适合大文件)4、按指定行读取文件(适合大文件) 一、简介 在 Python 数据处理领域,openpyxl 凭借其卓越的功能与易…...
蓝桥杯15届 宝石组合
问题描述 在一个神秘的森林里,住着一个小精灵名叫小蓝。有一天,他偶然发现了一个隐藏在树洞里的宝藏,里面装满了闪烁着美丽光芒的宝石。这些宝石都有着不同的颜色和形状,但最引人注目的是它们各自独特的 “闪亮度” 属性。每颗宝…...
THE UNIVERSITY OF MANCHESTER-NUMERICAL ANALYSIS 1-3.4数值积分-复合积分公式
3.4.1 复合梯形法则 梯形法则仅使用两个点来近似积分,显然对于大多数应用来说,这不足够。为了提高精度,有多种方法可以利用更多的点和函数值。正如我们刚才在Newton-Cotes方法和辛普森法则中所看到的,一种方法是使用更高阶的插值函数。另一种方法是将区间划分为更小的区间…...
嵌入式系统应用-拓展-相关开发软件说明
这里以STM32的系列产品为例子,利用MDK的集成开发平台进行开发过程中,所有相关软件安装说明。 1 集成开发环境安装 1.1 MDK 下载 1.1.1 官网下载 官方下载地址: https://www.keil.com/download/product/ 选择MDK-ARM ,填写一些…...
react实现上传图片到阿里云OSS以及问题解决(保姆级)
一、优势 提高上传速度:前端直传利用了浏览器与 OSS 之间的直接连接,能够充分利用用户的网络带宽。相比之下,后端传递文件时,文件需要经过后端服务器的中转,可能会受到后端服务器网络环境和处理能力的限制,…...
嵌入式学习笔记——ARM-中断与异常
文章目录 中断与异常的区别中断与 DMA 的区别中断能否睡眠?下半部能否睡眠?1. 中断处理程序不能睡眠2. 下半部(SoftIRQ、Tasklet、Workqueue) 中断处理注意点1. 快进快出2. 避免阻塞3. 正确返回值4. 如何处理大量任务5. 避免竞态问…...
OpenHarmony子系统开发 - 安全(十二)
OpenHarmony SELinux开发指导(五) 一、OpenHarmony SELinux常见问题 neverallow编译报错处理 现象描述 编译SELinux时会进行neverallow检查,当配置的策略不合理时,可能出现违反neverallow编译报错。 neverallow check failed…...
深入解析ARM与RISC-V架构的Bring-up核心流程
深入解析ARM与RISC-V架构的Bring-up核心流程 作者:嵌入式架构探索者 | 2023年10月 引言 在嵌入式开发中,处理器的Bring-up(启动初始化)是系统运行的第一道门槛。ARM和RISC-V作为两大主流架构,其Bring-up流程既有共性…...
【力扣hot100题】(054)全排列
挺经典的回溯题的。 class Solution { public:vector<vector<int>> result;void recursion(vector<int>& nums,vector<int>& now){if(nums.size()0){result.push_back(now);return ;}for(int i0;i<nums.size();i){now.push_back(nums[i]);…...
vue中如何动态的绑定图片
在项目中遇到需要动态的改变图片路径,图片路径并非是从后台获取过来的数据。 因此在data中必须用require加载,否则会当成字符串来处理。...
湖北师范大学计信学院研究生课程《工程伦理》12.6章节练习
1【单选题】下列哪个不是数字身份的特点? A. 多样性 B. 唯一性 C. 可变性 D. 允许匿名和假名 2【单选题】下列哪项不是现代国家的基本职能。 A. 保护政权统一 B. 保护本国面对其他国家侵犯 C. 保护国内每个人免受他人侵犯 D. 承担发展国民经济 3【单选题】哪个国家在全球率先发…...
prism WPF 登录对话框登录成功后显示主界面
prism WPF 登录对话框登录成功后显示主界面 项目结构 LoginUC.xaml <UserControl x:Class"PrismWpfApp.Views.LoginUC"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml…...
MySQL统计信息
1. 什么是统计信息? 统计信息就像是数据库的"地图",它告诉优化器: 每个表有多大(有多少行数据) 每个索引的"区分度"(有多少不同的值) 数据分布情况(哪些值出…...
Spark,配置hadoop集群2
编写Hadoop集群启停脚本 1.建立新文件,编写脚本程序 在hadoop101中操作,在/root/bin下新建文件:myhadoop,输入如下内容: 2.分发执行权限 保存后退出,然后赋予脚本执行权限 [roothadoop101 ~]$ chmod x /r…...
⭐算法OJ⭐重建行程【哈密尔顿路径】(C++ 实现)Reconstruct Itinerary
You are given a list of airline tickets where tickets[i] [from_i, to_i] represent the departure and the arrival airports of one flight. Reconstruct the itinerary in order and return it. All of the tickets belong to a man who departs from “JFK”, thus, t…...
大模型如何优化数字人的实时交互与情感表达
标题:大模型如何优化数字人的实时交互与情感表达 内容:1.摘要 随着人工智能技术的飞速发展,数字人在多个领域的应用愈发广泛,其实时交互与情感表达能力成为提升用户体验的关键因素。本文旨在探讨大模型如何优化数字人的实时交互与情感表达。通过分析大模…...
【含文档+PPT+源码】基于SpringBoot+Vue旅游管理网站
项目介绍 本课程演示的是一款 基于SpringBootVue旅游管理网站,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附…...
理解OSPF Stub区域和各类LSA特点
之前学习到OSPF特殊区域和各类类型LSA的分析后,一直很混乱,在网上也难找到详细的解释,在看了 HCNP书本内容后,对这块类容理解更加清晰,本次内容,我们使用实验示例,来对OSPF特殊区域和各 类型LSA…...
AI智算-K8s如何利用GPFS分布式并行文件存储加速训练or推理
文章目录 GPFS简介核心特性存储环境介绍存储软件版本客户端存储RoCEGPFS 管理(GUI)1. 创建 CSI 用户2. 检查GUI与k8s通信文件系统配置1. 开启配额2. 启用filesetdf文件系统3. 验证文件系统配置4. 启用自动inode扩展存储集群配置1. 启用对根文件集(root fileset)配额2. igno…...
Linux如何设置bash为默认shell
大部分情况下,Linux的默认shell是bash,但某些Linux发行版,例如Kali,默认的终端是zsh,本文以Kali为例,将Kali的默认shell从zsh改为bash。 其实Kali早期的shell也是bash,2020 版本之后:…...
leetcode-代码随想录-链表-翻转链表
题目 链接:206. 反转链表 - 力扣(LeetCode) 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]class Solution { public:ListNode* rev…...