using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace FLY.Thick.Base.IService
{
    //剔除！！！！！
    public interface IRejectService:INotifyPropertyChanged
    {
        /// <summary>
        /// 使能
        /// </summary>
        bool Enable { get; set; }
        /// <summary>
        /// 剔除阈值，低于 ThresholdRatio*Target 都要被删除
        /// </summary>
        double ThresholdRatio { get; set; }
        /// <summary>
        /// 设置Sigma 使用百分比计算
        /// </summary>
        bool IsPercent { get; set; }
        /// <summary>
        /// 设置Sigma = PSigma * Target
        /// </summary>
        double PSigma { get; set; }
        /// <summary>
        /// 当前Sigma 大于 设置Sigma， 剔除
        /// </summary>
        int Sigma { get; set; }
        /// <summary>
        /// 滤波范围，单位脉冲
        /// </summary>
        int Range1 { get; set; }
        /// <summary>
        /// 当前数据需要剔除，那么它的前后Range2个脉冲的数据都是删除，单位脉冲
        /// </summary>
        int Range2 { get; set; }

        /// <summary>
        /// 滤波后的数据
        /// </summary>
        int[] FilterDatas { get; }
        /// <summary>
        /// 剔除后的数据
        /// </summary>
        int[] RejectDatas { get; }
        /// <summary>
        /// 滤波后计算出来的sigma数据
        /// </summary>
        int[] SigmaDatas { get;  }

        /// <summary>
        /// 上面的数据，都是grid数据，最后需要以脉冲显示在画面上
        /// </summary>
        int PosOfGrid { get; }
        /// <summary>
        /// 机架总脉冲数
        /// </summary>
        int PosLen { get; }
        /// <summary>
        /// 目标值，从DynArea 获取
        /// </summary>
        int Target { get; }

        void Apply();
    }
}
