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

/**
 * 系统常量定义接口
 * <p>对应C代码：pq.h中的宏定义</p>
 * 
 * @author Claude Code
 * @since 1.0
 */
public interface Constants {
    
    /**
     * 数学常量PI - 使用float确保与C代码一致
     */
    float PI = 3.1415926535897932384626433832795f;
    
    /**
     * 最大通道数
     */
    int MAX_CH_NUM = 6;
    
    /**
     * 最大数据长度
     */
    int MAX_DATA_LEN = 20971520;
    
    /**
     * FFT最大点数
     */
    int FFT_MAX_N = 4096;
    
    /**
     * FFT 10周期点数
     */
    int FFT_POINT_10_CYCLE = 2048;
    
    /**
     * FFT点数的2次幂
     */
    int POW2_OF_FFT_POINT = 11;
    
    /**
     * FFT计算点数
     */
    int FFT_CALC_POINT = 1024;
    
    /**
     * 谐波数量
     */
    int HARM_NUM = 512;
    
    /**
     * 最大谐波次数
     */
    int MAX_HARM_TIMES = 127;
    
    /**
     * 默认采样率
     */
    int DEFAULT_SAMPLE_RATE = 256;
    
    /**
     * 最大采样率
     */
    int MAX_SAMPLE_RATE = 512;
    
    /**
     * 计算精度常量
     */
    float CAL_XS = 100.0f;
    
    /**
     * 每分钟秒数
     */
    long SEC_PER_MIN = 60L;
    
    /**
     * 每小时秒数
     */
    long SEC_PER_HOUR = SEC_PER_MIN * 60L;
    
    /**
     * 每天秒数
     */
    long SEC_PER_DAY = SEC_PER_HOUR * 24L;
    
    /**
     * 每年(365天)秒数
     */
    long SEC_PER_365_DAY = SEC_PER_DAY * 365L;
    
    /**
     * 矢量输入类型标识
     */
    int IN_TYPE_VECTOR = 0;
    
    /**
     * 实数输入类型标识
     */
    int IN_TYPE_REAL = 1;
    
    /**
     * 全DFT输出类型标识
     */
    int OUT_TYPE_FULL = 0;
    
    /**
     * 半DFT输出类型标识
     */
    int OUT_TYPE_HALF = 1;
}