package com.njcn.gather.tools.comtrade.comparewave.service;


import com.njcn.gather.tools.comtrade.comparewave.core.model.CompareWaveDTO;

import java.io.InputStream;

/**
 *
 * 比对录波服务类
 *
 * @author hongawen
 * @version 1.0
 * @data 2025/9/2 08:34
 */
public interface ICompareWaveService {

    CompareWaveDTO analyzeAndCompareWithStreams(
            InputStream sourceCfgStream, InputStream sourceDatStream,
            InputStream targetCfgStream, InputStream targetDatStream,
            int lineConfig);

    /**
     * 使用段信息保留模式分析波形（新方法）
     * <p>不进行跨段的统一降采样，保留每个段的原始采样率</p>
     * <p>跨段的窗口会被丢弃，只计算不跨段的窗口</p>
     *
     * @param sourceCfgStream 源文件CFG流
     * @param sourceDatStream 源文件DAT流
     * @param targetCfgStream 目标文件CFG流
     * @param targetDatStream 目标文件DAT流
     * @param lineConfig      接线方式
     * @return 分析结果
     */
    CompareWaveDTO analyzeWithSegmentPreservation(
            InputStream sourceCfgStream, InputStream sourceDatStream,
            InputStream targetCfgStream, InputStream targetDatStream,
            int lineConfig);

}
