Files
arxml_sdk/docs/api_reference.md
T
2026-06-02 15:21:07 +08:00

30 KiB

API 参考

目录


核心模块 (core)

Base 类

所有类型的基类,提供通用的属性和方法。

文件位置: src/core/base.py

from src.core.base import Base

属性

属性名 类型 说明
name str 元素名称
id Optional[int] 元素标识符
parent Optional[Base] 父元素引用
description Optional[str] 元素描述

只读属性

属性名 类型 说明
class_name str 获取类型名称 (如 "ApplicationValueDataType")
parent_id Optional[int] 获取父类的 id
package_path str 获取完整包路径 (如 "/Package/SubPackage/Name")

方法

to_arxml(doc: Document) -> Element

将对象序列化为 ARXML DOM 元素。必须被子类重写。

参数:

  • doc: XML Document 对象

返回:

  • ARXML DOM Element

公共函数

create_uuid() -> str

生成一个 UUID 字符串。

from src.core.base import create_uuid

uuid = create_uuid()  # e.g., "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

create_text_element(doc: Document, tag: str, text: str) -> Element

创建带有文本内容的 XML 元素。

参数:

  • doc: XML Document 对象
  • tag: XML 标签名
  • text: 元素文本内容

返回:

  • XML Element

示例:

from src.core.base import create_text_element
from src.utils import create_arxml_document

doc = create_arxml_document()
element = create_text_element(doc, "SHORT-NAME", "MyElement")

枚举类型

Category

数据类型分类枚举。

文件位置: src/core/enums.py

from src import Category
枚举值 说明
FIXED_LENGTH 固定长度
IDENTICAL 相同
TEXT_TABLE 文本表
LINEAR 线性
BOOLEAN 布尔
VALUE 值类型
STRUCTURE 结构体
ARRAY 数组
SCALE_LINEAR 缩放线性
RECORD 记录
UNION 联合
DATA_REFERENCE 数据引用
TYPE_REFERENCE 类型引用

Encoding

数据编码格式枚举。

from src import Encoding
枚举值 说明
ONE_COMPONENT 单组件
TWO_COMPONENT 双组件
BCD_P BCD Plus
BCD_UP BCD Up
IEEE754 IEEE754 浮点数
ISO_8859_1 ISO-8859-1 编码
UTF_8 UTF-8 编码
UCS_2 UCS-2 编码
NONE 无编码
VOID Void
BOOLEAN 布尔
UTF_16 UTF-16 编码

CalibrationAccess

校准访问权限枚举。

from src import CalibrationAccess
枚举值 说明
READ_ONLY 只读
NOT_ACCESSIBLE 不可访问
READ_WRITE 读写
NOT_SPECIFIED 未指定

SwCalibrationAccess

校准访问权限枚举(向后兼容版本)。

from src import SwCalibrationAccess
枚举值 说明
ReadOnly 只读
NotAccessible 不可访问
ReadWrite 读写
NotSpecified 未指定

UpperSts / LowerSts

上下限区间状态枚举。

from src import UpperSts, LowerSts
枚举值 说明
CLOSED 闭区间
OPEN 开区间

ConstraintSpecified

约束指定类型枚举。

from src import ConstraintSpecified
枚举值 说明
PHYSICAL 物理值约束
INTERNAL 内部值约束

CompuContents

转换内容方向枚举。

from src import CompuContents
枚举值 说明
USE_INTERNAL_TO_PHYSICAL 使用内部到物理的转换
USE_PHYSICAL_TO_INTERNAL 使用物理到内部的转换

ComponentType

组件类型枚举。

from src import ComponentType
枚举值 说明
COMPOSITION 组合组件
ATOMIC 原子组件

AtomicType

原子组件类型枚举。

from src import AtomicType
枚举值 说明
APPLICATION 应用组件
SENSOR_ACTUATOR 传感器/执行器组件
HARDWARE_ABSTRACTION 硬件抽象组件
COMPLEX_DRIVER 复杂驱动组件
SERVICE_PROXY 服务代理组件

ImplementationCodeType

实现代码类型枚举。

from src import ImplementationCodeType
枚举值 说明
SOURCE_CODE 源代码
OBJECT_CODE 目标代码

AccessPoint

访问点枚举。

from src import AccessPoint
枚举值 说明
READ 读取
WRITE 写入

PortDirection

端口方向枚举。

from src import PortDirection
枚举值 说明
IN 输入端口
OUT 输出端口

Semantic

数组大小语义枚举。

from src import Semantic
枚举值 说明
FIXED 固定大小
VARIABLE 可变大小

SectionType

段类型枚举。

from src import SectionType
枚举值 说明
CODE 代码段
DATA 数据段
CONST 常量段

Policy

数据策略枚举。

from src import Policy
枚举值 说明
STANDARD 标准策略
EXTENDED 扩展策略

数据类型模块 (types)

BaseType

基础数据类型,表示最底层的原生类型定义。

文件位置: src/types/base_type.py

from src import BaseType, create_base_type

构造函数属性

属性名 类型 必填 说明
name str 类型名称
size int 位大小 (如 8, 16, 32)
category Optional[Category] 分类类型
encoding Optional[Encoding] 编码格式
native_description Optional[str] 原生描述

工厂函数

create_base_type(name: str, size: int, category: Optional[Category] = None, encoding: Optional[Encoding] = None, native_description: Optional[str] = None) -> BaseType

创建 BaseType 实例的工厂函数。

示例:

# 创建 8 位无符号整数类型
uint8 = create_base_type(
    name="UInt8",
    size=8,
    category=Category.FIXED_LENGTH,
    encoding=Encoding.TWO_COMPONENT
)

Unit

数据单位,用于物理量的表示。

文件位置: src/types/unit.py

from src import Unit, create_unit

构造函数属性

属性名 类型 必填 说明
name str 单位名称
display Optional[str] 显示名称
factor Optional[float] 因子
offset Optional[float] 偏移量

工厂函数

create_unit(name: str, display: Optional[str] = None, factor: Optional[float] = None, offset: Optional[float] = None) -> Unit

创建 Unit 实例的工厂函数。

示例:

unit = create_unit(
    name="km_per_hour",
    display="km/h",
    factor=1.0,
    offset=0.0
)

DataConstraint

数据约束,定义有效值范围。

文件位置: src/types/data_constraint.py

from src import DataConstraint, create_data_constraint

构造函数属性

属性名 类型 必填 说明
name str 约束名称
unit Optional[Unit] 关联的单位
lower Optional[float] 下限值
upper Optional[float] 上限值
lower_sts Optional[LowerSts] 下限状态 (CLOSED/OPEN)
upper_sts Optional[UpperSts] 上限状态 (CLOSED/OPEN)
constraint_specified Optional[ConstraintSpecified] 约束类型

工厂函数

create_data_constraint(name: str, lower: Optional[float] = None, upper: Optional[float] = None, unit: Optional[Unit] = None, lower_sts: Optional[LowerSts] = None, upper_sts: Optional[UpperSts] = None, constraint_specified: Optional[ConstraintSpecified] = None) -> DataConstraint

创建 DataConstraint 实例的工厂函数。

示例:

constraint = create_data_constraint(
    name="SpeedConstraint",
    lower=0,
    upper=250,
    lower_sts=LowerSts.CLOSED,
    upper_sts=UpperSts.OPEN
)

CompuMethod

计算方法,定义内部值与物理值之间的转换关系。

文件位置: src/types/compu_method.py

from src import CompuMethod, Linear, TextTable, create_linear, create_text_table, create_compu_method

Linear 类

线性转换方法。

构造函数属性
属性名 类型 必填 说明
factor float 缩放因子
offset float 偏移量

转换公式:physical = factor * internal + offset

工厂函数

create_linear(factor: float, offset: float) -> Linear

TextTable 类

文本表转换方法。

构造函数属性
属性名 类型 必填 说明
vt str 文本值
lower Optional[int] 下限
upper Optional[int] 上限
lower_sts Optional[LowerSts] 下限状态
upper_sts Optional[UpperSts] 上限状态
工厂函数

create_text_table(vt: str, lower: Optional[int] = None, upper: Optional[int] = None, lower_sts: Optional[LowerSts] = None, upper_sts: Optional[UpperSts] = None) -> TextTable

CompuMethod 类

完整的计算方法。

构造函数属性
属性名 类型 必填 说明
name str 方法名称
unit Optional[Unit] 单位
linear Optional[Linear] 线性转换
text_tables Optional[List[TextTable]] 文本表列表
category Optional[Category] 分类
compu_contents Optional[CompuContents] 转换内容方向
方法
方法 说明
get_text_table(vt: str) -> Optional[TextTable] 根据文本值查找文本表
add_text_table(text_table: TextTable) 添加文本表
工厂函数

create_compu_method(name: str, unit: Optional[Unit] = None, linear: Optional[Linear] = None, text_tables: Optional[List[TextTable]] = None, category: Optional[Category] = None, compu_contents: Optional[CompuContents] = None) -> CompuMethod

示例:

# 创建带线性转换的计算方法
linear = create_linear(factor=0.01, offset=0)
compu = create_compu_method(
    name="SpeedConversion",
    linear=linear,
    category=Category.LINEAR
)

# 创建带文本表的计算方法
table = create_text_table(vt="OK", lower=0, upper=0)
compu = create_compu_method(
    name="StatusConversion",
    text_tables=[table],
    category=Category.TEXT_TABLE
)

应用数据类型

ApplicationBooleanDataType

布尔类型应用数据。

文件位置: src/types/application_types.py

from src import ApplicationBooleanDataType, create_boolean_type
构造函数属性
属性名 类型 必填 说明
name str 类型名称
compu_method Optional[CompuMethod] 计算方法
data_constraint Optional[DataConstraint] 数据约束
工厂函数

create_boolean_type(name: str, compu_method: Optional[CompuMethod] = None, data_constraint: Optional[DataConstraint] = None) -> ApplicationBooleanDataType


ApplicationValueDataType

标量值类型应用数据。

from src import ApplicationValueDataType, create_value_type
构造函数属性
属性名 类型 必填 说明
name str 类型名称
unit Optional[Unit] 单位
compu_method Optional[CompuMethod] 计算方法
data_constraint Optional[DataConstraint] 数据约束
工厂函数

create_value_type(name: str, unit: Optional[Unit] = None, compu_method: Optional[CompuMethod] = None, data_constraint: Optional[DataConstraint] = None) -> ApplicationValueDataType


ApplicationStructureDataType

结构体类型应用数据。

from src import ApplicationStructureDataType, create_structure_type
构造函数属性
属性名 类型 必填 说明
name str 类型名称
structure_elements Optional[List[StructureElement]] 结构体成员列表
嵌套类:StructureElement

结构体成员元素。

构造函数属性:

属性名 类型 必填 说明
name str 成员名称
data_type Base 数据类型
offset Optional[int] 位偏移
方法
方法 说明
get_element(name: str) -> Optional[StructureElement] 查找成员
add_element(element: StructureElement) 添加成员
工厂函数

create_structure_type(name: str, elements: Optional[List[ApplicationStructureDataType.StructureElement]] = None) -> ApplicationStructureDataType


ApplicationArrayDataType

数组类型应用数据。

from src import ApplicationArrayDataType, create_array_type
构造函数属性
属性名 类型 必填 说明
name str 类型名称
element Optional[ArrayElement] 数组元素
嵌套类:ArrayElement

数组元素配置。

构造函数属性:

属性名 类型 必填 说明
length int 数组长度
data_type Base 元素数据类型
array_size_semantics Optional[Semantic] 大小语义
工厂函数

create_array_type(name: str, element: Optional[ApplicationArrayDataType.ArrayElement] = None) -> ApplicationArrayDataType


实现数据类型

ImplementationValueDataType

实现层标量值类型。

文件位置: src/types/implementation_types.py

from src import ImplementationValueDataType, create_impl_value_type
构造函数属性
属性名 类型 必填 说明
name str 类型名称
base_type Optional[BaseType] 基础类型
compu_method Optional[CompuMethod] 计算方法
data_constraint Optional[DataConstraint] 数据约束
工厂函数

create_impl_value_type(name: str, base_type: Optional[BaseType] = None, compu_method: Optional[CompuMethod] = None, data_constraint: Optional[DataConstraint] = None) -> ImplementationValueDataType


ImplementationStructureDataType

实现层结构体类型。

from src import ImplementationStructureDataType, create_impl_structure_type
构造函数属性
属性名 类型 必填 说明
name str 类型名称
structure_elements Optional[List[StructureElement]] 结构体成员列表
嵌套类:StructureElement

与 ApplicationStructureDataType.StructureElement 结构相同。

工厂函数

create_impl_structure_type(name: str, elements: Optional[List[ImplementationStructureDataType.StructureElement]] = None) -> ImplementationStructureDataType


ImplementationArrayDataType

实现层数组类型。

from src import ImplementationArrayDataType, create_impl_array_type
构造函数属性
属性名 类型 必填 说明
name str 类型名称
element Optional[ArrayElement] 数组元素
嵌套类:ArrayElement

与 ApplicationArrayDataType.ArrayElement 结构相同。

工厂函数

create_impl_array_type(name: str, element: Optional[ImplementationArrayDataType.ArrayElement] = None) -> ImplementationArrayDataType


SwAddrMethod

软件地址方法,定义代码/数据的内存段。

文件位置: src/types/sw_addr_method.py

from src import SwAddrMethod, create_sw_addr_method, SectionType

构造函数属性

属性名 类型 必填 说明
name str 方法名称
section_type Optional[SectionType] 段类型 (CODE/DATA/CONST)

工厂函数

create_sw_addr_method(name: str, section_type: Optional[SectionType] = None) -> SwAddrMethod

示例:

# 代码段地址方法
code_method = create_sw_addr_method("CODE", section_type=SectionType.CODE)

# 数据段地址方法
data_method = create_sw_addr_method("DATA", section_type=SectionType.DATA)

数据类型映射

DataTypeMapping

应用类型到实现类型的映射。

文件位置: src/types/data_mapping.py

from src import DataTypeMapping, create_data_type_mapping
构造函数属性
属性名 类型 必填 说明
name str 映射名称
application_data_type Base 应用数据类型
implementation_data_type Base 实现数据类型
工厂函数

create_data_type_mapping(name: str, application_data_type: Base, implementation_data_type: Base) -> DataTypeMapping


DataTypeMappingSet

数据类型映射集合。

from src import DataTypeMappingSet, create_data_type_mapping_set
构造函数属性
属性名 类型 必填 说明
name str 集合名称
data_type_mappings Optional[List[DataTypeMapping]] 映射列表
方法
方法 说明
get_mapping(name: str) -> Optional[DataTypeMapping] 查找映射
add_mapping(mapping: DataTypeMapping) 添加映射
工厂函数

create_data_type_mapping_set(name: str, mappings: Optional[List[DataTypeMapping]] = None) -> DataTypeMappingSet


接口

Interface

接口基类。

文件位置: src/types/interface.py

from src import Interface
构造函数属性
属性名 类型 必填 说明
name str 接口名称
is_service bool 是否为服务接口 (默认 False)

SenderReceiverInterface

发送-接收接口,用于数据信号传递。

from src import SenderReceiverInterface, create_sender_receiver_interface, Policy, CalibrationAccess
构造函数属性
属性名 类型 必填 说明
name str 接口名称
data_element Optional[SenderReceiverInterface.DataElement] 数据元素
is_service bool 是否为服务接口
嵌套类:DataElement

数据元素定义。

构造函数属性:

属性名 类型 必填 说明
name str 元素名称
sw_addr_method Optional[SwAddrMethod] 地址方法
data_constraint Optional[DataConstraint] 数据约束
data_type Base 数据类型
policy Optional[Policy] 数据策略
calibration_access Optional[CalibrationAccess] 校准访问权限
工厂函数

create_sender_receiver_interface(name: str, data_element: Optional[SenderReceiverInterface.DataElement] = None, is_service: bool = False) -> SenderReceiverInterface


ClientServerInterface

客户端-服务端接口,用于服务调用。

from src import ClientServerInterface
构造函数属性
属性名 类型 必填 说明
name str 接口名称
operations Optional[List[Operation]] 操作列表
is_service bool 是否为服务接口
嵌套类:Operation

服务操作定义。

构造函数属性:

属性名 类型 必填 说明
name str 操作名称
is_server bool 是否为服务端
arguments Optional[List[Argument]] 参数列表
嵌套类:Argument

操作参数定义。

构造函数属性:

属性名 类型 必填 说明
name str 参数名称
direction PortDirection 参数方向 (IN/OUT)
data_type Base 参数数据类型
方法
方法 说明
get_operation(name: str) -> Optional[Operation] 查找操作
add_operation(operation: Operation) 添加操作

软件组件类型

SwComponentType

软件组件类型基类。

文件位置: src/types/sw_component_type.py

from src import SwComponentType, ComponentType
构造函数属性
属性名 类型 必填 说明
name str 组件名称
component_type Optional[ComponentType] 组件类型

ApplicationSwComponentType

应用软件组件类型。

from src import ApplicationSwComponentType
构造函数属性
属性名 类型 必填 说明
name str 组件名称
supports_multiple_instantiation bool 是否支持多实例化
atomic_type Optional[AtomicType] 原子类型
implementation_code_type Optional[ImplementationCodeType] 实现代码类型
ports Optional[List[PortPrototype]] 端口列表
internal_behavior Optional[SwcInternalBehavior] 内部行为
方法
方法 说明
get_port(name: str) -> Optional[PortPrototype] 查找端口
add_port(port: PortPrototype) 添加端口

PortPrototype

端口原型基类。

from src import PortPrototype, PortDirection
构造函数属性
属性名 类型 必填 说明
name str 端口名称
interface Optional[Interface] 关联接口

RPortPrototype

接收端口 (Required Port)。

from src import RPortPrototype

继承自 PortPrototype,用于从其他组件接收数据。


PPortPrototype

发送端口 (Provided Port)。

from src import PPortPrototype

继承自 PortPrototype,用于向其他组件发送数据。


PRPortPrototype

双向端口 (Provided Required Port)。

from src import PRPortPrototype
构造函数属性
属性名 类型 必填 说明
name str 端口名称
interface Optional[Interface] 提供接口
required_interface Optional[Interface] 需求接口

Package

AUTOSAR 包,用于组织和管理元素。

文件位置: src/types/package.py

from src import Package, create_package

构造函数属性

属性名 类型 必填 说明
name str 包名称
elements Optional[List[Base]] 包内元素列表

方法

方法 说明
get_element(name: str) -> Optional[Base] 查找元素
add_element(element: Base) 添加元素 (支持覆盖同名元素)

工厂函数

create_package(name: str, elements: Optional[List[Base]] = None) -> Package

示例:

# 创建包并添加元素
pkg = create_package("SensorPkg", elements=[
    base_type,
    impl_type,
    interface,
    component
])

SwcInternalBehavior

软件组件内部行为。

文件位置: src/types/swc_internal_behavior.py

from src import SwcInternalBehavior, RunnableEntity, create_runnable_entity, create_timing_event, create_init_event

VariableAccess

变量访问定义。

构造函数属性
属性名 类型 必填 说明
name str 访问名称
port_prototype_ref Optional[str] 端口原型引用
target_data_prototype_ref Optional[str] 目标数据原型引用

RunnableEntity

可运行实体 (Runnable)。

构造函数属性
属性名 类型 必填 说明
name str Runnable 名称
minimum_start_interval Optional[float] 最小启动间隔 (秒)
can_be_invoked_concurrently bool 是否可并发调用
data_receive_points Optional[List[VariableAccess]] 数据接收点
data_send_points Optional[List[VariableAccess]] 数据发送点
variable_accesses Optional[List[VariableAccess]] 变量访问列表
symbol Optional[str] 符号 (函数名)
sw_addr_method_ref Optional[SwAddrMethod] 地址方法引用
方法
方法 说明
add_data_receive_point(access: VariableAccess) 添加数据接收点
add_data_send_point(access: VariableAccess) 添加数据发送点
add_variable_access(access: VariableAccess) 添加变量访问
工厂函数

create_runnable_entity(name: str, symbol: Optional[str] = None, minimum_start_interval: Optional[float] = None) -> RunnableEntity


事件类型

InitEvent

初始化事件。

from src import InitEvent

event = InitEvent(name="Init", runnable_ref="MyRunnable")
TimingEvent

定时事件。

from src import TimingEvent, create_timing_event

event = create_timing_event(name="Timing_10ms", period=0.01)

构造函数属性:

属性名 类型 必填 说明
name str 事件名称
period float 周期 (秒)
OperationInvokedEvent

操作调用事件。

from src import OperationInvokedEvent, create_operation_invoked_event

event = create_operation_invoked_event(name="OpInvoke", operation_ref="MyOperation")
DataReceivedEvent

数据接收事件。

from src import DataReceivedEvent, create_data_received_event

event = create_data_received_event(name="DataRx", data_element_ref="MyDataElement", period=0.01)

SwcInternalBehavior

软件组件内部行为容器。

构造函数属性
属性名 类型 必填 说明
name str 行为名称
runnable_entities Optional[List[RunnableEntity]] Runnable 列表
events Optional[List[Union[InitEvent, TimingEvent, OperationInvokedEvent, DataReceivedEvent]]] 事件列表
symbol Optional[str] 符号前缀
方法
方法 说明
get_runnable(name: str) -> Optional[RunnableEntity] 查找 Runnable
add_runnable(runnable: RunnableEntity) 添加 Runnable
get_event(name: str) -> Optional[Event] 查找事件
add_event(event: Event) 添加事件
工厂函数

create_swc_internal_behavior(name: str, runnable_entities: Optional[List[RunnableEntity]] = None, events: Optional[List[Event]] = None) -> SwcInternalBehavior


工具模块 (utils)

create_arxml_document() -> Document

创建标准 ARXML 文档,包含 AUTOSAR 命名空间。

文件位置: src/utils/arxml_writer.py

from src import create_arxml_document

doc = create_arxml_document()

返回:

  • xml.dom.minidom.Document 对象

write_arxml(doc: Document, filepath: str, encoding: str = 'utf-8') -> None

将 Document 写入文件 (紧凑格式)。

from src import create_arxml_document, write_arxml

doc = create_arxml_document()
# ... 添加内容 ...
write_arxml(doc, "output.arxml")

write_arxml_pretty(doc: Document, filepath: str, encoding: str = 'utf-8') -> None

将 Document 写入文件 (格式化输出)。

from src import create_arxml_document, write_arxml_pretty

doc = create_arxml_document()
# ... 添加内容 ...
write_arxml_pretty(doc, "output_formatted.arxml")

get_ar_packages_element(doc: Document) -> Element

获取 AR-PACKAGES 根元素。

from src import get_ar_packages_element

doc = create_arxml_document()
packages = get_ar_packages_element(doc)

add_package_to_document(doc: Document, package_element: Element) -> None

将 Package 元素添加到文档。

from src import add_package_to_document

pkg_element = package.to_arxml(doc)
add_package_to_document(doc, pkg_element)

索引