Chronaxis用户手册English
本页目录

chronaxis.legacy

源码基线:8904c2f744951857659abd40aaa3535d57faf53c

1"""公开旧CAN记录,以及按需加载的记录仓、逐次模型与贡献累计原语。23输入输出和wire边界由records统一;实际进程由调用方显式创建,worker只在INIT后4加载CAN依赖。包导入无输入/DBC读取、logger配置或子进程副作用;不代表旧reader关闭5缺陷已修复。单BLF公共AnalysisRunner和原始片段已在其任务中验收;独立逐次模型及累计6只接收调用方提供的记录和已求值贡献,不证明表达式、旧ChrgInfo出口或公共7legacy_sum来源已经接通。原语不替输入提供者补缓存、施加TTL或重新解码。8解码记录仓只在显式构造后写入新目录,保存现有合法记录,不扩大原IPC值类型。9"""1011# 只公开标准库冻结模型;不能在包入口急切导入worker的运行依赖。12from .records import (LegacyCANField, LegacyCANRequest, LegacyDecodedFrame, LegacyRawFrame,13    StoredRawFrame, MAX_WIRE_BYTES, PROFILE_ID, decoded_from_dict, decoded_to_dict, decode_packet,14    encode_packet, field_from_dict, field_to_dict, frame_from_dict, frame_to_dict)1516__all__ = ('LegacyCANField', 'LegacyCANRequest', 'LegacyDecodedFrame', 'LegacyRawFrame',17    'StoredRawFrame', 'MAX_WIRE_BYTES', 'PROFILE_ID', 'decoded_from_dict', 'decoded_to_dict',18    'decode_packet', 'encode_packet', 'field_from_dict', 'field_to_dict', 'frame_from_dict', 'frame_to_dict',19    'LegacyDecodedUpdate', 'LegacyUpdateOrder', 'LegacySkipReason', 'LegacySumContribution',20    'LegacySumSnapshot', 'LegacySumAccumulator', 'StoredDecodedMessage', 'DecodedMessageStore',21    'MAX_DECODED_MESSAGE_ROW_BYTES')222324def __getattr__(name):25    """按需公开独立模型、记录仓与累计,保持原CAN worker的轻量导入。2627    参数: name为请求的模块属性名。返回: 已实现模型类本身,不创建输入或状态。28    异常: AttributeError为未公开名称;模型模块导入错误原样传播。29    副作用: 仅访问明确名称时导入其模型或累计模块,不读取日志或DBC;30        NumPy仅在调用者实际选择数组累计后加载。31    """32    # 已有CAN记录保持直接导出;未知名称不触发额外导入或提供占位实现。33    if name in ('LegacyDecodedUpdate', 'LegacyUpdateOrder'):34        from .updates import LegacyDecodedUpdate, LegacyUpdateOrder35        return {'LegacyDecodedUpdate': LegacyDecodedUpdate, 'LegacyUpdateOrder': LegacyUpdateOrder}[name]36    # 累计定义只需标准库及已有预算协议,数组内核由实际执行入口另行加载。37    if name in ('LegacySkipReason', 'LegacySumContribution', 'LegacySumSnapshot', 'LegacySumAccumulator'):38        from .sum import LegacySkipReason, LegacySumContribution, LegacySumSnapshot, LegacySumAccumulator39        return {'LegacySkipReason': LegacySkipReason, 'LegacySumContribution': LegacySumContribution,40                'LegacySumSnapshot': LegacySumSnapshot, 'LegacySumAccumulator': LegacySumAccumulator}[name]41    # 请求仓类型只加载定义;目录创建、编码写入和资源预留都由显式实例负责。42    if name in ('StoredDecodedMessage', 'DecodedMessageStore', 'MAX_DECODED_MESSAGE_ROW_BYTES'):43        from .message_store import StoredDecodedMessage, DecodedMessageStore, MAX_DECODED_MESSAGE_ROW_BYTES44        return {'StoredDecodedMessage': StoredDecodedMessage, 'DecodedMessageStore': DecodedMessageStore,45                'MAX_DECODED_MESSAGE_ROW_BYTES': MAX_DECODED_MESSAGE_ROW_BYTES}[name]46    raise AttributeError(f'chronaxis.legacy没有公开属性{name!r}')47
Chronaxis 用户手册 · 离线阅读