chronaxis.execution.current_message_calculation
用三格式共用的消息计算一项逐报文累计,不建立消息历史或原帧副本。
输入是CAN读取进程投影后的有限LegacyDecodedUpdate批,公式使用本条值,不保持上一条。 复用既有归一化、参考/NumPy表达式、正负分桶及原序求和;period已经在公式 中时不再乘dt。结果是累计快照;来源是否完整读完由拥有读取器的调用方确认。 此组件由当前记录执行器调用,不创建旧绑定证明或额外核验扫描。
这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。
相关类型
Interval、LegacyDecodedUpdate、LegacySkipReason、LegacySumAccumulator、LegacySumContribution、QualityFlag(源码别名Q)、ResourceBudget、ResultClosedError
对象导航
| 对象 | 用途 |
|---|---|
CurrentMessageCalculation |
持有一项公式与固定累计状态;输入批及明细回调都只在consume期间借用。 |
CurrentMessageCalculation.__init__ |
先核有限声明,再预约公式和累计状态,不读输入或DBC。 |
CurrentMessageCalculation._require_open |
阻止失败后继续交付结果。 |
CurrentMessageCalculation._matches |
核真实消息来源后选择本指标帧。 |
CurrentMessageCalculation.consume |
按原序计算有限批;默认只累计,明细仅交给显式回调,不保存历史。 |
CurrentMessageCalculation.snapshot |
读取当前累计,不冒充文件EOF。 |
CurrentMessageCalculation.quality |
读取实际参与计算的质量汇总,不构造逐条诊断。 |
CurrentMessageCalculation.closed |
读取释放完成状态。 |
CurrentMessageCalculation.close |
仅关闭自有累计与费用。 |
导入与重导出来源(展开)
from ..core import expression_reference, expression_numpy
from ..core.expression import validate_expression
from ..core.models import Interval
from ..core.numeric import to_float_reference
from ..core.numeric_numpy import to_float_numpy
from ..core.types import QualityFlag as Q
from ..core.where_updates import contains_where, numpy_active, reference_active
from ..core.enum_codes import code_dependencies
from dataclasses import replace
from ..legacy.sum import LegacySumAccumulator, LegacySumContribution, LegacySkipReason
from ..legacy.updates import LegacyDecodedUpdate
from ..planning.message_calculations import require_message_calculation
from ..results.budget import ResourceBudget, _reserve_owned_ram, _release_owned_ram, _cleanup_owner
from ..results.errors import ResultClosedError
from ..sources.can_spec import can_field_from_key
from ..sources.packing import pack_message_values
from .calculation_values import scalar_from_column, direction_bucket_state, direction_skip_reason
from .history import _metadata_bytes
from ..core.lookup import pack_requested_lookupsCurrentMessageCalculation
持有一项公式与固定累计状态;输入批及明细回调都只在consume期间借用。
CurrentMessageCalculation(calculation, sources, bindings, session_id, budget, *, backend='numpy', batch_rows=64, domain=None, contribution_consumer=None)源码:src/chronaxis/execution/current_message_calculation.py:30(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation.__init__
先核有限声明,再预约公式和累计状态,不读输入或DBC。
CurrentMessageCalculation.__init__(calculation, sources, bindings, session_id, budget, *, backend='numpy', batch_rows=64, domain=None, contribution_consumer=None)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
calculation |
MessageCalculationPlan | 是 | 无 | 位置或关键字。一个逐消息计算请求,包含匹配报文、公式、参数及充放电分桶条件。 |
sources |
Sequence[SourcePlan] | 是 | 无 | 位置或关键字。当前计划的来源定义,用于检查绑定来源类型及原始报文定位;不在此函数打开输入。 |
bindings |
tuple[tuple[str, str], ...] | 是 | 无 | 位置或关键字。每个所需别名及其实际原字段的对应关系,公共来源说明只保存一次。 |
session_id |
str | 是 | 无 | 位置或关键字。本次连续分析会话的标识;跨连续文件保持同一会话,独立任务各自隔离。 |
budget |
ResourceBudget | 是 | 无 | 位置或关键字。本次分析共享的资源用量记录;新对象先预约所需内存和磁盘额度,关闭时归还自己的内存费用。 |
backend |
str | 否 | 'numpy' | 仅关键字。计算实现:reference使用独立参考核,numpy在内建逐点路径使用独立生产标量核;扩展仍调用其所选后端。两者遵守相同业务和缺失数据规则。 |
batch_rows |
int | 否 | 64 | 仅关键字。每次交给计算器的最大目标记录数;限制临时数组大小,不是整文件记录数。 |
domain |
Interval | None | 否 | None | 仅关键字。明确的实际统计范围,左闭右开;None表示不额外限制文件记录范围。 |
contribution_consumer |
Callable[[LegacySumContribution], None] | None | 否 | None | 仅关键字。逐次贡献接收函数;None不构造或交付逐次贡献。 |
返回说明
新累计组件。
异常说明
声明/预算/取消错误;失败构造携带可重试清理句柄。
源码:src/chronaxis/execution/current_message_calculation.py:33(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation._require_open
阻止失败后继续交付结果。
CurrentMessageCalculation._require_open()参数:无显式参数。
参数说明
无。
返回说明
None。
异常说明
ResultClosedError。
源码:src/chronaxis/execution/current_message_calculation.py:100(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation._matches
核真实消息来源后选择本指标帧。
CurrentMessageCalculation._matches(update)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
update |
LegacyDecodedUpdate | 是 | 无 | 位置或关键字。当前一条所需报文更新,保留原输入序号、所需字段和有效状态;同一时刻不同报文仍分别处理。 |
返回说明
bool。
异常说明
类型/身份错。
源码:src/chronaxis/execution/current_message_calculation.py:105(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation.consume
按原序计算有限批;默认只累计,明细仅交给显式回调,不保存历史。
CurrentMessageCalculation.consume(updates)参数
| 名称 | 数据类型 | 必填 | 省略时的值 | 用途、取值和效果 |
|---|---|---|---|---|
updates |
Sequence[LegacyDecodedUpdate] | 是 | 无 | 位置或关键字。按原始顺序排列的一批所需报文更新;不会按时间去重。 |
返回说明
None。
异常说明
输入/数值/预算/回调/取消错误原样传播;失败后只能close。
源码:src/chronaxis/execution/current_message_calculation.py:136(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation.snapshot
读取当前累计,不冒充文件EOF。
CurrentMessageCalculation.snapshot()参数:无显式参数。
参数说明
无。
返回说明
LegacySumSnapshot。
异常说明
状态错。
源码:src/chronaxis/execution/current_message_calculation.py:223(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation.quality
读取实际参与计算的质量汇总,不构造逐条诊断。
CurrentMessageCalculation.quality装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
QualityFlag。
异常说明
状态错。
源码:src/chronaxis/execution/current_message_calculation.py:229(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation.closed
读取释放完成状态。
CurrentMessageCalculation.closed装饰器:property。
读取属性,不使用调用括号。
参数说明
无。
返回说明
bool。
异常说明
无。
源码:src/chronaxis/execution/current_message_calculation.py:235(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。
CurrentMessageCalculation.close
仅关闭自有累计与费用。
CurrentMessageCalculation.close()参数:无显式参数。
参数说明
无。
返回说明
None。
异常说明
释放失败保留句柄供重试。
源码:src/chronaxis/execution/current_message_calculation.py:239(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。