Chronaxis用户手册English
本页目录相关类型对象导航_record_metadata_bytes参数返回说明异常说明BudgetedTextCANSourceAdapterBudgetedTextCANSourceAdapter.__init__BudgetedTextCANSourceAdapter.retain_raw_framesBudgetedTextCANSourceAdapter._ensure_openBudgetedTextCANSourceAdapter.describeBudgetedTextCANSourceAdapter.iter_batches_with_observationBudgetedTextCANSourceAdapter.iter_batchesBudgetedTextCANSourceAdapter.closeTextCANObservationReadTextCANObservationRead.__init__TextCANObservationRead.closedTextCANObservationRead.failedTextCANObservationRead.exhaustedTextCANObservationRead.observationTextCANObservationRead.observed_boundsTextCANObservationRead.runtime_metadataTextCANObservationRead.prepare_metadataTextCANObservationRead.__iter__TextCANObservationRead._acceptTextCANObservationRead._fillTextCANObservationRead.__next__TextCANObservationRead._finishTextCANObservationRead.take_raw_storeTextCANObservationRead.close

chronaxis.execution.text_can_reader

把ASC、BLF、原始CSV的同次解码接到公共信号批次和真实观测协议。

适配器声明字段和时基,不读文件;每个TextCANObservationRead拥有独立解析器、 有限原帧块和预算。每次交付同时段各别名批,总样本数不超过batch_rows;同一时刻别名未全部 交付前不越过其watermark。完整EOF并关闭解析器后才开放观测证明和可选原帧仓。 原帧仓仅显式导出时创建,共用已解码值,不另扫描原文件。

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

相关类型

BatchValidator、CANObservation、CANTextDecodeRead、CANTextSpec、Path、ReadRequest、ResultClosedError、SignalBatch、SourceCapabilities、SourceClosedError、SourceDescription、TextFrameStore

对象导航

对象 用途
_record_metadata_bytes 按已检查记录的固定结构计算与通用估算器相同的费用。
BudgetedTextCANSourceAdapter 拥有静态描述和活read集合,借用导出DBC上下文;关闭不会释放借用上下文。
BudgetedTextCANSourceAdapter.__init__ 构造声明,不读取输入。
BudgetedTextCANSourceAdapter.retain_raw_frames 返回本来源冻结的原帧保存选择。
BudgetedTextCANSourceAdapter._ensure_open 拒绝使用已关闭适配器。
BudgetedTextCANSourceAdapter.describe 返回静态字段及时间声明。
BudgetedTextCANSourceAdapter.iter_batches_with_observation 创建具有同次观测的独立read。
BudgetedTextCANSourceAdapter.iter_batches 沿同一批次合同创建read,不另读输入。
BudgetedTextCANSourceAdapter.close 关闭所有本来源活read,再释放描述费用。
TextCANObservationRead 拥有一个有限原帧块和一个归一化批,完整EOF前不开放完成事实。
TextCANObservationRead.__init__ 验证原会话/投影并构造未开始的解码器。
TextCANObservationRead.closed 返回真实关闭状态。
TextCANObservationRead.failed 返回当前读取是否失败。
TextCANObservationRead.exhausted 返回完整EOF及解析器关闭事实。
TextCANObservationRead.observation 仅交付本read已完成的真实观测。
TextCANObservationRead.observed_bounds 返回同次解析已经看到的首末时间,不额外扫描或冒充EOF。
TextCANObservationRead.runtime_metadata 交付同次DBC身份与解码次数。
TextCANObservationRead.prepare_metadata 在读取前取得同次DBC周期,不冒充最终解码计数。
TextCANObservationRead.__iter__ 返回独立游标。
TextCANObservationRead._accept 按既有批合同核同一时刻组,保留所需pending费用。
TextCANObservationRead._fill 按全部别名的样本容量取有限原记录,所有值只解码一次。
TextCANObservationRead.__next__ 交付全局时间非递减的有界批,最终EOF后保完成事实。
TextCANObservationRead._finish 封口可选原帧仓,解析器真正关闭后提交完整事实。
TextCANObservationRead.take_raw_store 移交本read的同次封口原帧仓。
TextCANObservationRead.close 关闭实际解析器/原帧仓并释放自身费用,不释放共享DBC。
导入与重导出来源(展开)
python
from pathlib import Path
from sys import getsizeof
from uuid import uuid4
from ..core.validation import require_identifier
from ..sources.text_can_spec import CANTextSpec
from ..sources.text_can_decode import CANTextDecodeRead, pack_text_records
from ..sources.descriptions import describe_fields, source_timebase_identity
from ..sources.models import ReadRequest, SignalBatch, SourceDescription, SourceCapabilities, freeze_metadata
from ..sources.protocol import BatchValidator, SourceClosedError
from ..results.budget import _reserve_owned_ram, _release_owned_ram, _cleanup_owner
from ..results.errors import ResultClosedError
from .can_reader import CANObservation
from .frame_capture import TextFrameStore
from .history import _metadata_bytes, _pending_bytes

_record_metadata_bytes

按已检查记录的固定结构计算与通用估算器相同的费用。

python
_record_metadata_bytes(record)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
record DecodedCANRecord 是 无 位置或关键字。已读取的固定解码记录;计算其当前模型和引用所需的保守费用,不重复按名称通用分派整个结构。

返回说明

values、重建值/布局、路径及原时间文本的基础字节费用,尚未乘32。

异常说明

传播内存分配错误;不接受任意外部对象树。 每个引用位置仍计费,仅省去通用元数据的递归类型分流;不降低预算金额。

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

BudgetedTextCANSourceAdapter

拥有静态描述和活read集合,借用导出DBC上下文;关闭不会释放借用上下文。

python
BudgetedTextCANSourceAdapter(budget, spec, session_id, signals, *, backend='numpy', work_dir=None, retain_raw_frames=False, database_context=None, message_consumer=None, cycle_fields=(), metadata_fields=(), message_keys=(), integrity=True, trace=True, selected_ids=None, time_frame_ids=None, process_count=1, emit_frame_ids=None, blf_time_scope='source', legacy_blf_decode=False, serial_blf_policy=None, post_decode_frame_ids=None)

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

BudgetedTextCANSourceAdapter.__init__

构造声明,不读取输入。

python
BudgetedTextCANSourceAdapter.__init__(budget, spec, session_id, signals, *, backend='numpy', work_dir=None, retain_raw_frames=False, database_context=None, message_consumer=None, cycle_fields=(), metadata_fields=(), message_keys=(), integrity=True, trace=True, selected_ids=None, time_frame_ids=None, process_count=1, emit_frame_ids=None, blf_time_scope='source', legacy_blf_decode=False, serial_blf_policy=None, post_decode_frame_ids=None)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
budget ResourceBudget 是 无 位置或关键字。本次运行共用的ResourceBudget对象,用于检查内存和临时磁盘用量。当前对象在分配前申请额度,用完后归还;同一次运行的组件应使用同一个对象。
spec CANTextSpec 是 无 位置或关键字。预算/spec/会话/定义、后端、可选暂存目录及DBC上下文。
session_id str 是 无 位置或关键字。本次会话的名字,用来防止把不同试验的数据混在一起。
signals tuple[SignalDefinition, ...] 是 无 位置或关键字。当前来源需要接入分析的SignalDefinition元组,明确别名与CAN字段。
backend str 否 'numpy' 仅关键字。"reference"使用独立参考计算;"numpy"使用NumPy数组计算。须明确选择一种。
work_dir str | Path | None 否 None 仅关键字。本次运行独占的工作目录,用来保存中间文件。自行指定时要求尚不存在;不会覆盖旧目录。None让入口自动创建唯一目录。
retain_raw_frames bool 否 False 仅关键字。是否保留原始报文用于后续导出;False不创建这份原帧历史。
database_context FrameDBCContext | None 否 None 仅关键字。可借用的已加载DBC上下文;None表示未提供,按文本来源流程加载所需数据库。
message_consumer Callable[[LegacyDecodedUpdate], None] | None 否 None 仅关键字。接收当前所需报文解码更新的函数;None不启用额外逐消息交付。
cycle_fields tuple[LegacyCANField, ...] 否 () 仅关键字。需要读取DBC周期的字段定位集合;初始化时读取元数据,不逐帧读取DBC。
metadata_fields tuple[LegacyCANField, ...] 否 () 仅关键字。仅请求驱动信号的DBC候选声明,默认空tuple;用于确认实际帧身份,不请求信号值,也不增加普通样本或值解码。
message_keys tuple[tuple[int, int, bool, bool], ...] 否 () 仅关键字。所需报文定位,依次为通道、ID、扩展帧标志、FD标志;空集合表示没有额外逐消息需求。
integrity bool 否 True 仅关键字。是否执行本对象的额外内容摘要或认证核验;False仍保留结构、类型、预算及必要文件变化检查。
trace bool 否 True 仅关键字。是否保存此功能的详细来源或输入追溯;False在生成处跳过,不能先构造再隐藏。
selected_ids tuple[int, ...] | None 否 None 仅关键字。需要处理的报文ID;默认None读取全部记录。仅在不需要完整原帧和来源时间的消息分析路径使用:原始CSV先读ID,未匹配时跳过该行的时间、载荷和帧型解析;目标记录仍完整校验。ASC路径不使用此筛选。
time_frame_ids tuple[int, ...] | None 否 None 仅关键字。本次需要检查时间顺序的CAN报文ID;同时限定来源的内部通道。None检查完整序列;空元组不交付帧但仍同次统计来源范围。完整检查或原帧导出不得传选择集合。
process_count int 否 1 仅关键字。文件读取/解码工作进程上限,正整数,默认1;time_order即使为1也使用文件工作进程。
emit_frame_ids tuple[int, ...] | None 否 None 仅关键字。限定实际交付的报文ID集合。None交付全部已解析帧;筛选不自动缩小任务要求的时间检查和观测范围。
blf_time_scope str 否 'source' 仅关键字。纯BLF按需时间范围:source检查并观测全部记录;selected只采目标时间;none明确不采时间,仅用于无需时间的逐消息累计。时间归并不能使用none。
legacy_blf_decode bool 否 False 仅关键字。默认False;规范化纯can_blf的legacy转接设True,串行与并行均保留其长度政策和DecodeError缺值行为;其他异常按各入口政策处理。
serial_blf_policy str | None 否 None 仅关键字。仅纯BLF串行使用requested或all,保留该入口的解码范围和异常政策;None采用文本/并行共用规则,不传给并行读取器。
post_decode_frame_ids tuple[int, ...] | None 否 None 仅关键字。仅串行all在每帧解码和完整值检查后筛选交付ID;None全部交付,不减少解码调用,也不下推并行。

返回说明

adapter。

异常说明

配置/预算错。

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

  • ValueError:文本CAN来源配置或后端非法。
  • ValueError:显式原帧保存需要新工作目录。

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

BudgetedTextCANSourceAdapter.retain_raw_frames

返回本来源冻结的原帧保存选择。

python
BudgetedTextCANSourceAdapter.retain_raw_frames

装饰器:property。

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

参数说明

无。

返回说明

True表示保存原始报文供后续导出;False表示不为此目的保存原始报文。

异常说明

无。

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

BudgetedTextCANSourceAdapter._ensure_open

拒绝使用已关闭适配器。

python
BudgetedTextCANSourceAdapter._ensure_open()

参数:无显式参数。

参数说明

无。

返回说明

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

异常说明

SourceClosedError。

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

  • SourceClosedError:文本CAN来源已关闭。

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

BudgetedTextCANSourceAdapter.describe

返回静态字段及时间声明。

python
BudgetedTextCANSourceAdapter.describe()

参数:无显式参数。

参数说明

无。

返回说明

SourceDescription。

异常说明

已关闭。

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

BudgetedTextCANSourceAdapter.iter_batches_with_observation

创建具有同次观测的独立read。

python
BudgetedTextCANSourceAdapter.iter_batches_with_observation(request)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
request ReadRequest 是 无 位置或关键字。本次ReadRequest,声明会话、所需信号和分批大小,并据此读取文本CAN。

返回说明

read。

异常说明

合同/预算错及可恢复owner。

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

  • ResultClosedError:文本CAN仍有未返回read待清理。

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

BudgetedTextCANSourceAdapter.iter_batches

沿同一批次合同创建read,不另读输入。

python
BudgetedTextCANSourceAdapter.iter_batches(request)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
request ReadRequest 是 无 位置或关键字。本次ReadRequest;本入口只返回信号批次,带进度的完整入口见iter_batches_with_observation。

返回说明

read。

异常说明

原工厂错。

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

BudgetedTextCANSourceAdapter.close

关闭所有本来源活read,再释放描述费用。

python
BudgetedTextCANSourceAdapter.close()

参数:无显式参数。

参数说明

无。

返回说明

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

异常说明

关闭/费用错可重试。

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

TextCANObservationRead

拥有一个有限原帧块和一个归一化批,完整EOF前不开放完成事实。

python
TextCANObservationRead(owner, request)

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

TextCANObservationRead.__init__

验证原会话/投影并构造未开始的解码器。

python
TextCANObservationRead.__init__(owner, request)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
owner BudgetedTextCANSourceAdapter 是 无 位置或关键字。仍处于打开状态的文本CAN来源适配器,本读取使用它的配置和资源额度。
request ReadRequest 是 无 位置或关键字。本次ReadRequest,必须与所用适配器和会话一致。

返回说明

read。

异常说明

合同/预算错。

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

  • ValueError:文本CAN读取需要原会话ReadRequest。
  • ValueError:文本CAN请求包含未声明信号。

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

TextCANObservationRead.closed

返回真实关闭状态。

python
TextCANObservationRead.closed

装饰器:property。

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

参数说明

无。

返回说明

True表示本对象的关闭已完成;False表示尚未关闭完毕。

异常说明

无。

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

TextCANObservationRead.failed

返回当前读取是否失败。

python
TextCANObservationRead.failed

装饰器:property。

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

参数说明

无。

返回说明

True表示本对象已记录处理失败;False表示尚未记录失败。

异常说明

无。

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

TextCANObservationRead.exhausted

返回完整EOF及解析器关闭事实。

python
TextCANObservationRead.exhausted

装饰器:property。

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

参数说明

无。

返回说明

True表示输入或结果已正常读完;False表示尚未正常读完。发生异常不等于正常读完。

异常说明

无。

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

TextCANObservationRead.observation

仅交付本read已完成的真实观测。

python
TextCANObservationRead.observation

装饰器:property。

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

参数说明

无。

返回说明

CANObservation。

异常说明

未完成/失败。

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

  • ResultClosedError:文本CAN观测尚未完成。

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

TextCANObservationRead.observed_bounds

返回同次解析已经看到的首末时间,不额外扫描或冒充EOF。

python
TextCANObservationRead.observed_bounds

装饰器:property。

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

参数说明

无。

返回说明

(first,last),空输入为None。

异常说明

失败/关闭状态拒绝借读。

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

TextCANObservationRead.runtime_metadata

交付同次DBC身份与解码次数。

python
TextCANObservationRead.runtime_metadata

装饰器:property。

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

参数说明

无。

返回说明

冻结元数据。

异常说明

未完成。

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

TextCANObservationRead.prepare_metadata

在读取前取得同次DBC周期,不冒充最终解码计数。

python
TextCANObservationRead.prepare_metadata()

参数:无显式参数。

参数说明

无。

返回说明

冻结DBC事实。

异常说明

关闭/失败或启动原错;清理由本read负责。

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

TextCANObservationRead.__iter__

返回独立游标。

python
TextCANObservationRead.__iter__()

参数:无显式参数。

参数说明

无。

返回说明

返回当前对象本身。后续迭代或with语句使用的仍是同一个对象。

异常说明

无。

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

TextCANObservationRead._accept

按既有批合同核同一时刻组,保留所需pending费用。

python
TextCANObservationRead._accept(batch)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
batch SignalBatch 是 无 位置或关键字。已读取的一批SignalBatch,更新观测进度并核对批次顺序。

返回说明

原批。

异常说明

校验/预算错。

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

TextCANObservationRead._fill

按全部别名的样本容量取有限原记录,所有值只解码一次。

python
TextCANObservationRead._fill()

参数:无显式参数。

参数说明

无。

返回说明

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

异常说明

原读/预算/暂存错。

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

TextCANObservationRead.__next__

交付全局时间非递减的有界批,最终EOF后保完成事实。

python
TextCANObservationRead.__next__()

参数:无显式参数。

参数说明

无。

返回说明

SignalBatch。

异常说明

EOF/原读/预算/合同错。

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

  • ResultClosedError:失败的文本CAN读取只能清理。

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

TextCANObservationRead._finish

封口可选原帧仓,解析器真正关闭后提交完整事实。

python
TextCANObservationRead._finish()

参数:无显式参数。

参数说明

无。

返回说明

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

异常说明

封口/关闭/预算错。

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

  • ValueError:文本原始解析器没有真正到达EOF。

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

TextCANObservationRead.take_raw_store

移交本read的同次封口原帧仓。

python
TextCANObservationRead.take_raw_store(receiver, slot)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
receiver 资源接收对象 是 无 位置或关键字。接收当前资源所有权的父对象;其_budget必须与发送方相同,指定的接收属性必须为空。接收后由父对象负责close()和归还资源额度。
slot str 是 无 位置或关键字。当前对象中用于保存资源或其费用的属性名,例如"_row_cost";只能指向本对象实际管理的项。释放成功后才清空对应项。

返回说明

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

异常说明

未完成/已有责任。

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

  • ValueError:文本原帧仓不能移交。

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

TextCANObservationRead.close

关闭实际解析器/原帧仓并释放自身费用,不释放共享DBC。

python
TextCANObservationRead.close()

参数:无显式参数。

参数说明

无。

返回说明

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

异常说明

原清理错可恢复。

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

Chronaxis 用户手册 · 离线阅读