# 合成教学配置；请连同配套输入使用，数值仅用于复现本例。
config_version: 4                               # 声明分析文件采用的字段结构版本；当前填写整数4
dataset:                                        # 设置本次分析名称及可选的对象、会话和时间范围
  name: preset_example                          # 命名本次分析数据集；名称写入结果身份字段
sources:                                        # 列出输入来源；每项规定数据位置、格式和时间解释方式
  - paths: data/can/preset-charge-energy.asc    # 选择输入文件、连续分卷列表或目录；相对路径基于本配置，目录按自然序读取
    dbc_by_channel:                             # 为每个CAN通道指定解码用DBC文件；键是通道编号的字符串
      '1': data/can/teaching.dbc                # 为这个通道指定DBC文件；路径相对当前配置文件，通道键须为字符串
signals:                                        # 把输入字段定义为有名称、类型、单位和有效期的分析信号
  - field:                                      # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x118'                         # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Mode                              # 填写DBC中的信号名称，大小写须一致
    name: mode                                  # 给分析信号取名称；后续表达式和计算通过此名称引用它
    valid_for: 20s                              # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
  - field:                                      # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x114'                         # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Current                           # 填写DBC中的信号名称，大小写须一致
    measurement_location: pack_terminal         # 声明实际测点；pack_terminal表示电池包端，须依据接线和设备定义
    name: current                               # 给分析信号取名称；后续表达式和计算通过此名称引用它
    sign_convention: positive_is_charge         # 声明正负值的业务含义；positive_is_charge表示正电流为充电，不执行取反
    valid_for: 20s                              # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
  - field:                                      # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11f'                         # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Voltage                           # 填写DBC中的信号名称，大小写须一致
    measurement_location: pack_terminal         # 声明实际测点；pack_terminal表示电池包端，须依据接线和设备定义
    name: voltage                               # 给分析信号取名称；后续表达式和计算通过此名称引用它
    valid_for: 20s                              # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
presets:                                        # 选择预先组合好的规则与计算，并提供角色信号和业务参数
  - name: demo_preset                           # 给本次预设实例取唯一名称；展开的规则/计算名称使用此前缀
    parameters:                                 # 提供本预设的业务参数；各预设支持的字段不同，不能互相套用
      compute_charge: true                      # 选择是否计算电荷量；true生成电流积分并输出Ah，false不生成
      compute_energy: true                      # 选择是否计算充电能量；true需要电压角色，false不生成能量项
      current_min: 5                            # 设置充电判断的电流下限；按业务目标填写，单位A
      minimum_duration: 0s                      # 设置充电条件连续成立多久才确认；按业务要求填写
      mode_value: 1                             # 指定表示充电的模式代码；从设备状态编码表取得
    preset_type: charge_session                 # 选择业务任务；charge_session充电、fault_context报警上下文、command_response配对、threshold_excursion阈值
    role_bindings:                              # 明确指定哪条已有信号担任每个角色；角色名由预设定义
      current: current                          # 为current角色选择上方已定义的分析信号名；仍须符合该角色要求
      mode: mode                                # 为mode角色选择上方已定义的分析信号名；仍须符合该角色要求
      voltage: voltage                          # 为voltage角色选择上方已定义的分析信号名；仍须符合该角色要求
    version: '1'                                # 选择预设定义版本；当前填写字符串"1"，与分析配置结构版本相互独立
execution:                                      # 设置本次分析的并行处理方式
  process_count: 4                              # 最多4个文件工作进程；实际并行数不超过输入文件数
