# 合成教学配置；请连同配套输入使用，数值仅用于复现本例。
config_version: 4                      # 声明分析文件采用的字段结构版本；当前填写整数4
dataset:                               # 设置本次分析名称及可选的对象、会话和时间范围
  domain:                              # 限定本次分析请求的起止时间；应与来源采用相同时间基准
    end: 3s                            # 设置分析终点；连续时长不包含该端点，按希望分析的范围填写
    start: 0s                          # 设置分析起点，包含该时刻；按希望分析的范围填写
  name: can_asc_example                # 命名本次分析数据集；名称写入结果身份字段
sources:                               # 列出输入来源；每项规定数据位置、格式和时间解释方式
  - dbc_by_channel:                    # 为每个CAN通道指定解码用DBC文件；键是通道编号的字符串
      '1': data/joint.dbc              # 为这个通道指定DBC文件；路径相对当前配置文件，通道键须为字符串
    source_type: raw_can_csv           # 选择数据格式；memory内存记录、signal_csv物理量表、can_blf/can_asc/raw_can_csv原始CAN
    time:                              # 说明输入时间数值的类型、单位、共同起点和校准偏移
      unit: s                          # 声明输入时间数值的单位；根据文件说明填写s/ms/us/ns等受支持单位
    reader:                            # 设置当前来源的文本解析、列映射或解码行为；可用子字段取决于来源格式
      id_base: 16                      # 指定报文ID文本按几进制解释；从导出格式取得
      layout:                          # 说明原始CAN CSV如何组成每条报文
        fields:                        # 逐项指定报文时间、ID、数据字节及标志来自哪列或哪个固定值
          frame_id: id                 # 指定报文ID如何从CSV取得；选择column读列或fixed固定值
          data: data                   # 指定数据字节如何从CSV取得；选择column读列或fixed固定值
          is_extended:                 # 指定扩展ID标志如何从CSV取得；选择column读列或fixed固定值
            fixed: false               # 为每一条报文固定填写扩展ID标志；仅当该文件这一属性确实恒定时使用
          is_fd:                       # 指定CAN FD标志如何从CSV取得；选择column读列或fixed固定值
            fixed: false               # 为每一条报文固定填写CAN FD标志；仅当该文件这一属性确实恒定时使用
          is_rx:                       # 指定接收方向标志如何从CSV取得；选择column读列或fixed固定值
            fixed: true                # 为每一条报文固定填写接收方向标志；仅当该文件这一属性确实恒定时使用
          payload_length: length       # 指定实际数据长度如何从CSV取得；选择column读列或fixed固定值
          timestamp: time              # 指定报文时间如何从CSV取得；选择column读列或fixed固定值
      time_format: numeric             # 指定原始CSV时间文本格式；按文件的时间列格式填写
    paths: data/raw-can-example.csv    # 选择输入文件、连续分卷列表或目录；相对路径基于本配置，目录按自然序读取
signals:                               # 把输入字段定义为有名称、类型、单位和有效期的分析信号
  - dtype: float64                     # 选择分析值类型；float64小数、int64有符号整数、uint64非负整数、bool真假、enum状态名称
    field:                             # 指定来源中的原始字段；CSV填表头，CAN填写通道/报文ID/DBC信号名
      frame_id: 256                    # 选择包含信号的报文ID；从对应DBC取得，可写整数或支持的进制文本
      signal: Voltage                  # 填写DBC中的信号名称，大小写须一致
    name: voltage                      # 给分析信号取名称；后续表达式和计算通过此名称引用它
    valid_for: 10s                     # 设置一次有效更新最多沿用多久；依据采样周期和允许数据陈旧程度填写
calculations:                          # 列出希望获得的统计或积分结果，每项独立选择范围和算法
  - name: voltage_area                 # 为这项计算结果取唯一名称；结果表用它区分计算项
    operation: integral                # 选择计算方法；本例将有效数值乘持续时间后累计，例如功率乘秒得到能量
    expr: voltage                      # 指定参与计算的数值或信号表达式；引用前面已定义的信号
execution:                             # 设置本次分析的并行处理方式
  process_count: 1                     # 本例为CSV、内存或多来源会话，当前仅支持单进程
