Chronaxis用户手册English
本页目录相关类型对象导航scoped_dbc_cacheload_dbc参数requested_enum_codes参数返回说明异常说明_numeric_dtype参数返回说明异常说明_enum_choices参数返回说明异常说明DBCDefaultsDBCDefaults.__init__DBCDefaults.fill

chronaxis.planning.dbc_defaults

仅在信号省略类型/单位或enum映射时读取DBC元数据,不读取报文。

每次计划编译按DBC路径共用一次加载;结果冻结为已有SignalDefinition字段。 数值信号不会因存在VAL表而变成文字枚举。重新加载配置才重新推导默认值。

这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。

相关类型

CANDependencyError、Path、PlanValidationError

对象导航

对象 用途
scoped_dbc_cache 在一次 fast 准备期间共享 DBC,嵌套子计划沿用外层缓存,退出即释放。
load_dbc 返回当前准备范围的数据库;普通单任务保持原加载行为。
requested_enum_codes 在加载 DBC 前定位 enum_code 使用的信号,只解析表达式位置和简单派生别名。
_numeric_dtype 按解码后的数值范围选类型;有浮点缩放就使用float64,不丢弃小数。
_enum_choices 把DBC原码表转换到既有解码值域,不对实际记录再施加一次DBC缩放。
DBCDefaults 一次计划编译内的临时数据库缓存,显式完整声明不打开DBC。
DBCDefaults.__init__ 创建空缓存,不访问磁盘。
DBCDefaults.fill 补全DBC可证明的声明,不重复应用原解码缩放。
导入与重导出来源(展开)
python
from contextlib import contextmanager
from contextvars import ContextVar
from pathlib import Path
from .checks import PlanValidationError
from ..legacy.binding import dbc_candidates
from ..can_dependencies import CANDependencyError, import_can_dependency
from ..dbc_loading import load_dbc_file

scoped_dbc_cache

在一次 fast 准备期间共享 DBC,嵌套子计划沿用外层缓存,退出即释放。

python
scoped_dbc_cache()

装饰器:contextmanager。

参数:无显式参数。

源码:src/chronaxis/planning/dbc_defaults.py:20(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

load_dbc

返回当前准备范围的数据库;普通单任务保持原加载行为。

python
load_dbc(path)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
path str | Path 是 无 位置或关键字。要读取的文件路径。

源码:src/chronaxis/planning/dbc_defaults.py:32(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

requested_enum_codes

在加载 DBC 前定位 enum_code 使用的信号,只解析表达式位置和简单派生别名。

python
requested_enum_codes(config)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
config Mapping 是 无 位置或关键字。尚未读取业务记录的分析声明,用来定位表达式显式要求的枚举原始代码。

返回说明

原码别名集合。

异常说明

完整语法诊断由稍后的统一编译器报告。

源码:src/chronaxis/planning/dbc_defaults.py:44(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

_numeric_dtype

按解码后的数值范围选类型;有浮点缩放就使用float64,不丢弃小数。

python
_numeric_dtype(signal)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
signal cantools.database.can.Signal 是 无 位置或关键字。DBC信号定义,按解码值范围、符号及缩放推导数值类型,不自动选择enum。

返回说明

float64、int64或uint64文本。

异常说明

ValueError为缩放后整数不能用64位类型表示。

源码:src/chronaxis/planning/dbc_defaults.py:90(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

_enum_choices

把DBC原码表转换到既有解码值域,不对实际记录再施加一次DBC缩放。

python
_enum_choices(signal)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
signal cantools.database.can.Signal 是 无 位置或关键字。含choices和conversion的DBC信号;返回解码值到文字映射,浮点编码不截断。

返回说明

[已解码整数码, 标签]列表。

异常说明

ValueError为缺少枚举、解码码值含小数或标签为空。

源码:src/chronaxis/planning/dbc_defaults.py:109(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

DBCDefaults

一次计划编译内的临时数据库缓存,显式完整声明不打开DBC。

python
DBCDefaults()

源码:src/chronaxis/planning/dbc_defaults.py:131(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

DBCDefaults.__init__

创建空缓存,不访问磁盘。

python
DBCDefaults.__init__()

参数:无显式参数。

参数说明

无。

返回说明

None。

异常说明

内存分配错误传播。

源码:src/chronaxis/planning/dbc_defaults.py:133(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

DBCDefaults.fill

补全DBC可证明的声明,不重复应用原解码缩放。

python
DBCDefaults.fill(raw, config, field, path, *, config_version=4, need_code=False)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
raw dict 是 无 位置或关键字。一条信号声明;仅补缺省dtype、unit或enum的choices。
config LegacyCANSpec | CANTextSpec 是 无 位置或关键字。当前原始报文来源规格,提供DBC路径。
field CANReferenceTemplate 是 无 位置或关键字。信号定位,含报文ID、DBC信号名与可选帧型限制。
path str 是 无 位置或关键字。原声明字段路径,失败用它定位配置。
config_version int 否 4 仅关键字。config_version选择规则。
need_code bool 否 False 仅关键字。为真时读取枚举原始整数字段的有无符号信息。

返回说明

独立dict,v4保留DBC原单位作为input_unit。

异常说明

PlanValidationError为缺项、歧义、读取或依赖错误。

源码:src/chronaxis/planning/dbc_defaults.py:141(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

Chronaxis 用户手册 · 离线阅读