# 合成教学数据；输入文件与此配置保持示例中的目录结构。
config_version: 4                            # 声明分析配置结构版本；当前必须填写整数4
dataset:                                     # 设置本次分析名称及可选的对象、会话和时间范围
  name: charge_session                       # 命名本次分析数据集；名称写入结果身份字段
sources:                                     # 列出输入来源；每项规定数据位置、格式和时间解释方式
  - paths: [data/run2.asc, data/run10.asc]   # 同一会话的分卷；列表顺序就是拼接顺序，路径相对本配置
    file_merge: concatenate                  # 按列表顺序处理；time_order按目标报文时间归并
    dbc_by_channel:                          # 为每个CAN通道指定解码用DBC文件；键是通道编号的字符串
      '1': data/power.dbc                    # 为这个通道指定DBC文件；路径相对当前配置文件，通道键须为字符串
signals:                                     # 把输入字段定义为有名称、类型、单位和有效期的分析信号
  - name: power                              # 给分析信号取名称；后续表达式和计算通过此名称引用它
    field:                                   # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: 0x100                        # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Power                          # 填写DBC中的信号名称，大小写须一致
message_calculations:                        # 按每条目标CAN报文计算贡献再累计；与按实际时间积分分别配置
  - name: energy                             # 为逐消息累计结果取唯一名称；用于识别对应结果行
    update_message:                          # 指定触发一次求值的目标报文；通道和ID从日志/DBC取得
      frame_id: 0x100                        # 指定每到一条便求值的报文ID；从DBC取得
    parameters:                              # 定义逐消息公式使用的固定参数；名称由公式引用，值来自采集/业务规范
      frame_duration: {value: 0.1, unit: s}  # value：每条目标报文代表的时长，由采集或业务定义确定；unit：时长单位，s表示秒
    expr: power * frame_duration             # 定义单条目标消息的贡献；使用该报文信号和parameters常量
    unit: J                                  # 声明累计结果的单位；须与表达式量纲相符
execution:                                   # 设置本次会话的工作进程及受管理资源额度
  process_count: 4                           # 最多4个文件工作进程；实际并行数不超过输入文件数
  memory_budget_bytes: 268435456             # 受管理缓冲和状态估算额度，单位字节；本例256MiB，非整个进程RSS上限
  spool_quota_bytes: 16777216                # 累计暂存预约额度，单位字节；本例16MiB，删除暂存不返还额度
