Chronaxis用户手册English
本页目录相关类型对象导航FrameDBCContextFrameDBCContext.__init__FrameDBCContext._hashFrameDBCContext.require_openFrameDBCContext.pairsFrameDBCContext.observeFrameDBCContext.is_known_frameFrameDBCContext.closeTextFrameStoreTextFrameStore.__init__TextFrameStore.appendTextFrameStore.sealTextFrameStore.iter_samplesTextFrameStore.iter_framesTextFrameStore.close

chronaxis.execution.frame_capture

为显式报文导出保存同次记录和新编码所需DBC上下文。

默认关闭时不创建这些对象。TextFrameStore只保存本次文本读取已交付的原帧、 物理值和定位,可为多个窗口有限回放;不重新读原文件。FrameDBCContext负责 新编码的DBC身份/字段声明,可借给新文本解码器共用一次加载。旧BLF链自身的 DBC加载和解码不改变;为新增编码另加载同一哈希的定义属于新输出的显式成本。

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

相关类型

DBCFramePatch、FrameSample、FrameSort、LegacyCANField、Path、ResultClosedError

对象导航

对象 用途
FrameDBCContext 拥有供新输出使用的DBC定义、摘要和额外请求字段,借用者不负责释放。
FrameDBCContext.__init__ 加载并核身份,生成连续量/选择器请求。
FrameDBCContext._hash 核同一文件的完整内容身份。
FrameDBCContext.require_open 禁止使用已释放DBC。
FrameDBCContext.pairs 交付规则与同次定义的有限借用。
FrameDBCContext.observe 核对同次实际帧身份,复用已加载DBC,不增加文件扫描。
FrameDBCContext.is_known_frame 核对同次实际帧身份,复用已加载DBC,不增加文件扫描。
FrameDBCContext.close 在借用者关闭后释放定义和实际句柄。
TextFrameStore 保存连续原序的同次文本CAN事实;封口后允许多个窗口逐个回放。
TextFrameStore.__init__ 建立有限排序暂存及真实读取身份。
TextFrameStore.append 保原序原时间,不让排序掩盖回退。
TextFrameStore.seal 完整真实EOF后封口。
TextFrameStore.iter_samples 打开一个有界完整回放,提前关闭不声称完整核验。
TextFrameStore.iter_frames 只交付原帧及定位,不重新解码。
TextFrameStore.close 关闭全部真实回放FD和排序仓,保诊断文件。
导入与重导出来源(展开)
python
from hashlib import file_digest
from pathlib import Path
from ..dbc_loading import load_dbc_file
from ..legacy.records import LegacyCANField
from ..legacy.binding import dbc_candidates, select_message
from ..results.budget import _reserve_owned_ram, _release_owned_ram, _cleanup_owner
from ..results.errors import ResultClosedError
from ..results.frame_exports import as_export_frame
from ..results.frame_patch import DBCFramePatch
from ..results.frame_rebuild import FrameSample, _sample_packet, _restore_sample
from ..results.frame_sort import FrameSort
from .history import _metadata_bytes

FrameDBCContext

拥有供新输出使用的DBC定义、摘要和额外请求字段,借用者不负责释放。

python
FrameDBCContext(path, rules, budget, *, cycle_periods=False, integrity=True)

源码:src/chronaxis/execution/frame_capture.py:25(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameDBCContext.__init__

加载并核身份,生成连续量/选择器请求。

python
FrameDBCContext.__init__(path, rules, budget, *, cycle_periods=False, integrity=True)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
path str | pathlib.Path 是 无 位置或关键字。本来源DBC文件路径;打开后供报文重建读取信号位定义。
rules tuple[FrameRebuildRule, ...] 是 无 位置或关键字。FrameRebuildRule元组,列出本次允许重建的报文和连续字段。
budget ResourceBudget 是 无 位置或关键字。本次运行共用的ResourceBudget对象,用于检查内存和临时磁盘用量。当前对象在分配前申请额度,用完后归还;同一次运行的组件应使用同一个对象。
cycle_periods Mapping[tuple, int] 否 False 仅关键字。已读取的报文定位到正纳秒周期的映射;只含当前导出或计算确实需要的报文。
integrity bool 否 True 仅关键字。是否执行本对象的额外内容摘要或认证核验;False仍保留结构、类型、预算及必要文件变化检查。

返回说明

__init__返回None;使用类名构造时得到已经初始化的对象。后续由该对象管理并关闭自己创建的资源。

异常说明

DBC/预算/字段/I/O错。

本函数直接报告的具体错误:

  • ValueError:新增编码加载DBC期间内容发生变化。

源码:src/chronaxis/execution/frame_capture.py:28(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameDBCContext._hash

核同一文件的完整内容身份。

python
FrameDBCContext._hash()

参数:无显式参数。

参数说明

无。

返回说明

SHA256文本。

异常说明

打开/读取/真实关闭错。

源码:src/chronaxis/execution/frame_capture.py:80(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameDBCContext.require_open

禁止使用已释放DBC。

python
FrameDBCContext.require_open()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

ResultClosedError。

本函数直接报告的具体错误:

  • ResultClosedError:导出DBC上下文已关闭。

源码:src/chronaxis/execution/frame_capture.py:88(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameDBCContext.pairs

交付规则与同次定义的有限借用。

python
FrameDBCContext.pairs()

参数:无显式参数。

参数说明

无。

返回说明

tuple。

异常说明

已关闭或身份缺失。

源码:src/chronaxis/execution/frame_capture.py:94(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameDBCContext.observe

核对同次实际帧身份,复用已加载DBC,不增加文件扫描。

python
FrameDBCContext.observe(frame)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
frame LegacyRawFrame 是 无 位置或关键字。当前原帧,必须保留实际通道、ID和类型标志。

返回说明

本次实际匹配的cantools Message;没有选中输出规则时为None。

异常说明

ValueError:规则匹配多种实际身份或多个输出规则;ResultClosedError:上下文已关闭。

副作用说明

每条规则只保存一个已识别定义和身份,不保留额外帧或扫描文件。

源码:src/chronaxis/execution/frame_capture.py:112(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameDBCContext.is_known_frame

核对同次实际帧身份,复用已加载DBC,不增加文件扫描。

python
FrameDBCContext.is_known_frame(frame)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
frame LegacyRawFrame 是 无 位置或关键字。当前原帧,必须保留实际通道、ID和类型标志。

返回说明

bool,表示当前实际帧型在DBC中存在可用定义;不要求未选报文的信号唯一。

异常说明

ResultClosedError:上下文已关闭。

副作用说明

无,不解码或记录帧内容。

源码:src/chronaxis/execution/frame_capture.py:139(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameDBCContext.close

在借用者关闭后释放定义和实际句柄。

python
FrameDBCContext.close()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

原关闭/释放错可恢复。

源码:src/chronaxis/execution/frame_capture.py:150(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

TextFrameStore

保存连续原序的同次文本CAN事实;封口后允许多个窗口逐个回放。

python
TextFrameStore(path, budget, source, session_id, read_identity, *, database_context=None, channel=None, integrity=True, trace=True)

源码:src/chronaxis/execution/frame_capture.py:164(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

TextFrameStore.__init__

建立有限排序暂存及真实读取身份。

python
TextFrameStore.__init__(path, budget, source, session_id, read_identity, *, database_context=None, channel=None, integrity=True, trace=True)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
path pathlib.Path 是 无 位置或关键字。用于保存文本CAN原帧的新目录;不覆盖已有目录。
budget ResourceBudget 是 无 位置或关键字。本次运行共用的ResourceBudget对象,用于检查内存和临时磁盘用量。当前对象在分配前申请额度,用完后归还;同一次运行的组件应使用同一个对象。
source str 是 无 位置或关键字。计划中的CAN来源别名,例如"bus",用于关联来源记录。
session_id str 是 无 位置或关键字。本次会话的名字,用来防止把不同试验的数据混在一起。
read_identity str 是 无 位置或关键字。这一次实际读取的唯一标识;不同次读取即使文件同名也不能混用此标识。
database_context FrameDBCContext | None 否 None 仅关键字。已经加载的DBC上下文;需要解码或重建字段时借用,None表示未提供。
channel int | None 否 None 仅关键字。本来源的内部0基CAN通道,用来核对报文定位与DBC规则;None表示未提供声明,不从文件名猜测。用户配置通道1在此为0。
integrity bool 否 True 仅关键字。是否执行本对象的额外内容摘要或认证核验;False仍保留结构、类型、预算及必要文件变化检查。
trace bool 否 True 仅关键字。是否保存此功能的详细来源或输入追溯;False在生成处跳过,不能先构造再隐藏。

返回说明

__init__返回None;使用类名构造时得到已经初始化的对象。后续由该对象管理并关闭自己创建的资源。

异常说明

I/O/预算错。

源码:src/chronaxis/execution/frame_capture.py:167(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

TextFrameStore.append

保原序原时间,不让排序掩盖回退。

python
TextFrameStore.append(record)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
record DecodedCANRecord 是 无 位置或关键字。本次连续序号的DecodedCANRecord,含原报文、时间及已解码字段;时间不能回退。

返回说明

返回None,不返回额外的计算值。

异常说明

时序/状态/预算/I/O错。

本函数直接报告的具体错误:

  • ValueError:文本原帧仓状态或连续序号不符。
  • ValueError:文本原帧时间回退。

源码:src/chronaxis/execution/frame_capture.py:185(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

TextFrameStore.seal

完整真实EOF后封口。

python
TextFrameStore.seal()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

状态/配额/I/O错。

本函数直接报告的具体错误:

  • ResultClosedError:文本原帧仓不能重复封口。

源码:src/chronaxis/execution/frame_capture.py:207(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

TextFrameStore.iter_samples

打开一个有界完整回放,提前关闭不声称完整核验。

python
TextFrameStore.iter_samples()

参数:无显式参数。

参数说明

无。

返回说明

FrameSample生成器。

异常说明

仓状态/篡改/I/O错。

本函数直接报告的具体错误:

  • ResultClosedError:文本原帧仓不可读。
  • ValueError:文本原帧暂存序号不一致。

源码:src/chronaxis/execution/frame_capture.py:214(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

TextFrameStore.iter_frames

只交付原帧及定位,不重新解码。

python
TextFrameStore.iter_frames()

参数:无显式参数。

参数说明

无。

返回说明

ExportCANFrame生成器。

异常说明

原回放错。

源码:src/chronaxis/execution/frame_capture.py:229(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

TextFrameStore.close

关闭全部真实回放FD和排序仓,保诊断文件。

python
TextFrameStore.close()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

清理错可重试。

源码:src/chronaxis/execution/frame_capture.py:239(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

Chronaxis 用户手册 · 离线阅读