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

namespace FLY.Thick.Base.IService
{
    public interface IProfileService : IListParamService, INotifyPropertyChanged
    {
        /// <summary>
        /// 产品名称
        /// </summary>
        string PName { get; set; }
        /// <summary>
        /// 目标值 *100
        /// </summary>
        int Target { get; set; }
        /// <summary>
        /// 工艺公差
        /// </summary>
        int Alarm { get; set; }

        /// <summary>
        /// 斜率补偿
        /// </summary>
        double Comp { get; set; }

        /// <summary>
        /// 平移补偿
        /// </summary>
        int Shift { get; set; }

        /// <summary>
        /// 扫描开始分区号
        /// </summary>
        int BeginNo { get; set; }

        /// <summary>
        ///扫描结束分区号
        /// </summary>
        int EndNo { get; set; }

        /// <summary>
        /// 数据统计开始分区号
        /// </summary>
        int DataBeginNo { get; set; }

        /// <summary>
        /// 数据统计结束分区号
        /// </summary>
        int DataEndNo { get; set; }

    }
    public interface IListParamService
    {
        /// <summary>
        /// 应用 & 保存
        /// </summary>
        void Apply();

        /// <summary>
        /// 获取产品列表, 返回类型为 List&lt;string&gt;
        /// </summary>
        /// <param name="asyncDelegate"></param>
        /// <param name="asyncState"></param>
        void GetList(AsyncCBHandler asyncDelegate, object asyncState);

        /// <summary>
        /// 删除指定产品
        /// </summary>
        /// <param name="productname"></param>
        void Del(string productname);

        /// <summary>
        /// 读取指定产品,返回类型为 ProfileParam
        /// </summary>
        /// <param name="productname"></param>
        /// <param name="asyncDelegate"></param>
        /// <param name="asyncState"></param>
        void Read(string productname, AsyncCBHandler asyncDelegate, object asyncState);
    }
}