Chronaxis用户手册English
本页目录

chronaxis.dbc_loading

源码基线:8904c2f744951857659abd40aaa3535d57faf53c

1"""集中加载DBC文本,不进入第三方持久缓存入口。23调用方负责导入cantools、复用数据库和校验文件身份;这里使用公开load接口,4保留load_file无缓存分支的格式、编码和解析默认值,不读取缓存环境变量。5"""67import os8910def load_dbc_file(path, cantools):11    """按文件后缀打开一次文本并交给调用方持有的cantools解析。1213    参数: path为原路径对象或字符串;cantools为调用方已导入的模块。14    返回: 官方load返回的数据库。异常: 原文件打开、解析或关闭错误原样传播。15    本次只拥有文本句柄,不保存数据库,不改环境变量或第三方模块。16    """17    # 与两端load_file保持一致:不把未知后缀改成自动探测,非法字节仍替换。18    database_format = os.path.splitext(path)[1][1:].lower()19    encoding = 'cp1252' if database_format in ('dbc', 'sym') else 'utf-8'20    with open(path, encoding=encoding, errors='replace') as stream:21        return cantools.database.load(22            stream, database_format=database_format,23            frame_id_mask=None, prune_choices=False, strict=True,24        )25
Chronaxis 用户手册 · 离线阅读