# 合成教学配置；请连同配套输入使用，数值仅用于复现本例。
config_version: 4                       # 声明分析文件采用的字段结构版本；当前填写整数4
dataset:                                # 设置本次分析名称及可选的对象、会话和时间范围
  name: signal_example                  # 命名本次分析数据集；名称写入结果身份字段
sources:                                # 列出输入来源；每项规定数据位置、格式和时间解释方式
  - paths: data/can/signal-types.asc    # 选择输入文件、连续分卷列表或目录；相对路径基于本配置，目录按自然序读取
    dbc_by_channel:                     # 为每个CAN通道指定解码用DBC文件；键是通道编号的字符串
      '1': data/can/teaching.dbc        # 为这个通道指定DBC文件；路径相对当前配置文件，通道键须为字符串
signals:                                # 把输入字段定义为有名称、类型、单位和有效期的分析信号
  - field:                              # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x101'                 # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Current_mA                # 填写DBC中的信号名称，大小写须一致
    invalid_values: [65535.0]           # 列出解析/解码后、额外换算前表示无效的值；按数据规范匹配实际类型和值
    name: current                       # 给分析信号取名称；后续表达式和计算通过此名称引用它
    valid_for: 200ms                    # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    valid_range: [-100, 100]            # 检查换算后的值是否在含两端的上下限内；按传感器或业务允许范围填写
    conversion:                         # 设置读取后额外的单位换算；不重复DBC已执行的缩放和偏移
      input_unit: mA                    # 声明CSV解析或DBC解码后、额外换算前的单位；查列说明或DBC物理单位
    unit: A                             # 声明分析值的单位；按物理含义填写，无量纲用字符串"1"；按已登记的兼容单位换算数值
calculations:                           # 列出希望获得的统计或积分结果，每项独立选择范围和算法
  - name: maximum_current               # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: sample_maximum           # 选择计算方法；本例取范围内有效真实样本的最大值
    expr: current                       # 指定参与计算的数值或信号表达式；引用前面已定义的信号
execution:                              # 设置本次分析的并行处理方式
  process_count: 4                      # 最多4个文件工作进程；实际并行数不超过输入文件数
