# 合成教学配置；请连同配套输入使用，数值仅用于复现本例。
config_version: 4                              # 声明分析文件采用的字段结构版本；当前填写整数4
dataset:                                       # 设置本次分析名称及可选的对象、会话和时间范围
  name: power_statistics                       # 命名本次分析数据集；名称写入结果身份字段
sources:                                       # 列出输入来源；每项规定数据位置、格式和时间解释方式
  - paths: data/can/calculation-minimal.asc    # 选择输入文件、连续分卷列表或目录；相对路径基于本配置，目录按自然序读取
    dbc_by_channel:                            # 为每个CAN通道指定解码用DBC文件；键是通道编号的字符串
      '1': data/can/teaching.dbc               # 为这个通道指定DBC文件；路径相对当前配置文件，通道键须为字符串
signals:                                       # 把输入字段定义为有名称、类型、单位和有效期的分析信号
  - field:                                     # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: '0x100'                        # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Power                            # 填写DBC中的信号名称，大小写须一致
    name: power                                # 给分析信号取名称；后续表达式和计算通过此名称引用它
    valid_for: 4s                              # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
calculations:                                  # 列出希望获得的统计或积分结果，每项独立选择范围和算法
  - name: integral                             # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: integral                        # 选择计算方法；本例将有效数值乘持续时间后累计，例如功率乘秒得到能量
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - name: sample_minimum                       # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: sample_minimum                  # 选择计算方法；本例取范围内有效真实样本的最小值
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - name: sample_maximum                       # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: sample_maximum                  # 选择计算方法；本例取范围内有效真实样本的最大值
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - name: sample_mean                          # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: sample_mean                     # 选择计算方法；本例对范围内有效真实样本等权求平均，每个样本计一次
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - name: min_time                             # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: min_time                        # 选择计算方法；本例取有正持续时间的有效值中的最小值，不返回发生时间
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - name: max_time                             # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: max_time                        # 选择计算方法；本例取有正持续时间的有效值中的最大值，不返回发生时间
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - name: time_weighted_mean                   # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: time_weighted_mean              # 选择计算方法；本例按有效值持续时长加权求平均
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - condition: power > 0                       # 限定参与计算的时间或样本；使用已有信号写真假表达式
    name: duration                             # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: duration                        # 选择计算方法；本例累计条件已知为true的秒数
  - name: select                               # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: select                          # 选择计算方法；本例逐行保留范围内被选择的样本，不生成汇总数值
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
  - name: energy_Wh                            # 为这项计算结果取唯一名称；结果表用它区分计算项
    method: zoh                                # 选择积分使用的区间取值方法；zoh沿用前值，其他支持值见积分表
    minimum_coverage: 0.9                      # 设置要求的最低有效数据比例；0到1，按可信性要求选择
    operation: integral                        # 选择计算方法；本例将有效数值乘持续时间后累计，例如功率乘秒得到能量
    partial_policy: report                     # 决定数据不全时是否保留可核实数值；report保留并标记，strict返回空值
    expr: power                                # 指定参与计算的数值或信号表达式；引用前面已定义的信号
    unit: Wh                                   # 选择结果单位；从该运算和输入单位支持的输出单位中选择
execution:                                     # 设置本次分析的并行处理方式
  process_count: 4                             # 最多4个文件工作进程；实际并行数不超过输入文件数
