Chronaxis用户手册English
本页目录相关类型对象导航BLFSpec属性与数据字段BLFSpec.__post_init__BLFReadBLFRead.__init__BLFRead.closedBLFRead.__iter__BLFRead.__next__BLFRead.close_UntimedBLFRecord属性与数据字段返回说明异常说明

chronaxis.sources.blf

为普通分析与高性能积分器共用既有python-can BLFReader;不重新实现BLF格式解析。

只保留当前报文,DBC由混合来源共用一次。账本计入本层对象;第三方解压器内部 分配与原BLF路径一样不代表硬RSS上限。不扫描文件、不补日期、不改原帧字段。

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

相关类型

CANTextError、Path、RawCANRecord

对象导航

对象 用途
BLFSpec 单文件BLF声明;offset_ns仅平移分析坐标,原timestamp不改。
BLFSpec.__post_init__ 核对静态路径与偏移,不打开输入。失败抛类型或范围错误。
BLFRead 持有一个真实BLFReader与当前迭代器,EOF、失败、取消均关闭本次文件。
BLFRead.__init__ 接管真实文件并打开BLF库读取器,构造失败附恢复owner。
BLFRead.closed 返回本层所有文件和费用是否已释放。
BLFRead.__iter__ 返回同次迭代器,不重复打开文件。
BLFRead.__next__ 读取下一实际帧,先按ID选择再转换;失败保原异常并清理。
BLFRead.close 关闭本次库迭代器和文件再释放费用;失败保留owner以便重试。
_UntimedBLFRecord 内部按需消息:保存真实输入身份与载荷,明确没有采集分析时间,禁止原帧导出。
导入与重导出来源(展开)
python
from dataclasses import dataclass
from pathlib import Path
from ..legacy.worker import _frame
from ..results.budget import _reserve_owned_ram, _release_owned_ram, _cleanup_owner
from ..timebase.conversion import convert_time, checked_add_ns, require_int64_ns
from .raw_can import RawCANRecord, CANTextError

BLFSpec

单文件BLF声明;offset_ns仅平移分析坐标,原timestamp不改。

python
class BLFSpec

属性与数据字段

名称 数据类型 必填 省略时的值 用途、取值和效果
path Path 是 无 输入.blf文件的Path,初始化只检查声明,不打开文件。
offset_ns int 否 0 分析坐标偏移,默认0纳秒;保留原始报文时间。

源码:src/chronaxis/sources/blf.py:16(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

BLFSpec.__post_init__

核对静态路径与偏移,不打开输入。失败抛类型或范围错误。

python
BLFSpec.__post_init__()

参数:无显式参数。

源码:src/chronaxis/sources/blf.py:21(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

BLFRead

持有一个真实BLFReader与当前迭代器,EOF、失败、取消均关闭本次文件。

python
BLFRead(spec, budget, *, check_cancel=None, retain_original=False, retain_source_time=False, selected_ids=None, emit_frame_ids=None, channel=None, projection_only=False, time_check_all=False, time_scope='source', frame_only=False, binary_time=False, previous_order_ns=None)

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

BLFRead.__init__

接管真实文件并打开BLF库读取器,构造失败附恢复owner。

python
BLFRead.__init__(spec, budget, *, check_cancel=None, retain_original=False, retain_source_time=False, selected_ids=None, emit_frame_ids=None, channel=None, projection_only=False, time_check_all=False, time_scope='source', frame_only=False, binary_time=False, previous_order_ns=None)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
spec BLFSpec 是 无 位置或关键字。单文件路径与分析时间偏移;原帧时间不被改写。
budget ResourceBudget 是 无 位置或关键字。本次运行共享的受管理资源用量记录。
check_cancel Callable | None 否 None 仅关键字。取消检查回调;为None时无外部检查,回调异常原样退出并清理。
retain_original bool 否 False 仅关键字。沿用原帧读取接口选项,当前实现按实际帧返回,不额外复制全文件。
retain_source_time bool 否 False 仅关键字。True在记录中保留原时间;False不构造额外时间字段。
selected_ids set[int] | None 否 None 仅关键字。仅处理这些CAN ID;None不过滤,在转换时间和记录对象前先筛ID。
emit_frame_ids tuple[int, ...] | None 否 None 仅关键字。限定实际交付的报文ID集合。None交付全部已解析帧;筛选不自动缩小任务要求的时间检查和观测范围。
channel int | None 否 None 仅关键字。投影需要的内部零基通道,来自已解析来源声明;不用文件名推断。
projection_only bool 否 False 仅关键字。True允许在auto路径只为目标帧建立完整模型;必须同时提供emit_frame_ids,其他情况下保留普通解析。
time_check_all bool 否 False 仅关键字。True要求投影前检查全来源记录顺序;False由目标记录检查决定,不能掩盖上层明确要求的完整检查。
time_scope str 否 'source' 仅关键字。纯BLF按需时间范围:source检查并观测全部记录;selected只采目标时间;none明确不采时间,仅用于无需时间的逐消息累计。时间归并不能使用none。
frame_only bool 否 False 仅关键字。选择/时间选项来自已有消费者。 frame_only只供fast借用同次原消息,其时间和长度仍由fast检查
binary_time bool 否 False 仅关键字。True沿纯BLF串行政策从二进制float秒转换时间;不增加另一份永久时间记录。
previous_order_ns int | None 否 None 仅关键字。前一文件的最后参与顺序检查时刻,整数纳秒;None表示尚无前值,用于连续文件边界检查。

返回说明

未读首帧的owner。

异常说明

配置、文件头、预算或取消原错;失败不泄漏自有文件。

源码:src/chronaxis/sources/blf.py:31(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

BLFRead.closed

返回本层所有文件和费用是否已释放。

python
BLFRead.closed

装饰器:property。

读取属性,不使用调用括号。

源码:src/chronaxis/sources/blf.py:84(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

BLFRead.__iter__

返回同次迭代器,不重复打开文件。

python
BLFRead.__iter__()

参数:无显式参数。

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

BLFRead.__next__

读取下一实际帧,先按ID选择再转换;失败保原异常并清理。

python
BLFRead.__next__()

参数:无显式参数。

源码:src/chronaxis/sources/blf.py:92(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

BLFRead.close

关闭本次库迭代器和文件再释放费用;失败保留owner以便重试。

python
BLFRead.close()

参数:无显式参数。

源码:src/chronaxis/sources/blf.py:153(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

_UntimedBLFRecord

内部按需消息:保存真实输入身份与载荷,明确没有采集分析时间,禁止原帧导出。

python
class _UntimedBLFRecord

属性与数据字段

名称 数据类型 必填 省略时的值 用途、取值和效果
frame can.Message 是 无 由本次BLFReader实际提供的消息,保留原身份和载荷供同帧解码;未读取其时间。
path Path 是 无 产生此消息的输入BLF路径,用于错误定位。
sequence int 是 无 当前文件内从0开始的原记录序号,包括此前跳过的非目标消息。
time_ns None 否 None 明确未采集分析时间,不能用作零纳秒或归并键。
raw_time None 否 None 二进制消息没有文本时间原文,本内部记录不伪造文字。
line_number None 否 None BLF没有文本行号,定位使用sequence。

返回说明

有限内部记录。

异常说明

工厂以真实解析输入构造。 生命周期仅覆盖同次解码和有界传输;不作为公开RawCANRecord或时间线样本。

源码:src/chronaxis/sources/blf.py:170(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

Chronaxis 用户手册 · 离线阅读