# 合成教学配置；请连同配套输入使用，数值仅用于复现本例。
config_version: 4                          # 声明分析文件采用的字段结构版本；当前填写整数4
dataset:                                   # 设置本次分析名称及可选的对象、会话和时间范围
  name: teaching                           # 命名本次分析数据集；名称写入结果身份字段
sources:                                   # 列出输入来源；每项规定数据位置、格式和时间解释方式
  - paths: data/can/teaching-base.asc      # 选择输入文件、连续分卷列表或目录；相对路径基于本配置，目录按自然序读取
    dbc_by_channel:                        # 为每个CAN通道指定解码用DBC文件；键是通道编号的字符串
      '1': data/can/teaching.dbc           # 为这个通道指定DBC文件；路径相对当前配置文件，通道键须为字符串
signals:                                   # 把输入字段定义为有名称、类型、单位和有效期的分析信号
  - name: temperature                      # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11d'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Temperature                  # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
  - name: power                            # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x100'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Power                        # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
  - name: voltage                          # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11f'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Voltage                      # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    measurement_location: pack_terminal    # 声明实际测点；pack_terminal表示电池包端，须依据接线和设备定义
  - name: current                          # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x114'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Current                      # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    measurement_location: pack_terminal    # 声明实际测点；pack_terminal表示电池包端，须依据接线和设备定义
    sign_convention: positive_is_charge    # 声明正负值的业务含义；positive_is_charge表示正电流为充电，不执行取反
  - name: mode                             # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x118'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Mode                         # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
  - name: button_pressed                   # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x113'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: ButtonPressed                # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    choices:                               # 把输入状态代码转成分析值；每项是[输入代码,结果值]，代码查设备规范
      - [0, false]
      - [1, true]
  - name: start_signal                     # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11c'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: StartSignal                  # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    choices:                               # 把输入状态代码转成分析值；每项是[输入代码,结果值]，代码查设备规范
      - [0, false]
      - [1, true]
  - name: end_signal                       # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x117'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: EndSignal                    # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    choices:                               # 把输入状态代码转成分析值；每项是[输入代码,结果值]，代码查设备规范
      - [0, false]
      - [1, true]
  - name: request                          # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11a'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Request                      # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    choices:                               # 把输入状态代码转成分析值；每项是[输入代码,结果值]，代码查设备规范
      - [0, false]
      - [1, true]
  - name: response                         # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11b'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Response                     # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    choices:                               # 把输入状态代码转成分析值；每项是[输入代码,结果值]，代码查设备规范
      - [0, false]
      - [1, true]
  - name: enabled                          # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                 # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x116'                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Enabled                      # 填写DBC中的信号名称，大小写须一致
    valid_for: 20s                         # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
    choices:                               # 把输入状态代码转成分析值；每项是[输入代码,结果值]，代码查设备规范
      - [0, false]
      - [1, true]
execution:                                 # 设置本次分析的并行处理方式
  process_count: 4                         # 最多4个文件工作进程；实际并行数不超过输入文件数
