using FLY.Thick.Base.IService;
using FObjBase;
using FObjBase.Reflect;
using System;

namespace FLY.Thick.Base.Client
{
    public class GageInfoServiceClient : FObjBase.Reflect.Reflect_SeviceClient, IGageInfoService
    {

        protected override Type InterfaceType => typeof(IGageInfoService);

        public GageInfoServiceClient(UInt32 serviceId) : base(serviceId) { }

        public GageInfoServiceClient(UInt32 serviceId, string connName) : base(serviceId, connName) { }




        /// <summary>
        /// 机架总长，脉冲
        /// </summary>
        public int PosLen { get; set; } = 9123;


        /// <summary>
        /// 1个grid = N个pos
        /// </summary>
        public int PosOfGrid { get; set; } = 11;

        /// <summary>
        /// 数据好了！！！！
        /// 当 flyad7 的poslen, posOfGrid 发生变化时，DataOK = false, 需要重新记录。
        /// </summary>
        public bool DataOK { get; set; }

        /// <summary>
        /// 当前进度 0 - 100 
        /// </summary>
        public int Progress { get; set; }

        /// <summary>
        /// 数据更新时间
        /// </summary>
        public DateTime[] UpdateTimes { get; set; }

        /// <summary>
        /// 正在机架修正中
        /// </summary>
        public bool IsRunning { get; set; }

        /// <summary>
        /// 数据录制，记下来回扫描的AD值数组
        /// </summary>
        public void Start()
        {
            Call(nameof(Start));

        }
        public void Stop()
        {
            Call(nameof(Stop));
        }
        [Call(typeof(GetGageInfoResponse))]
        public void GetGageInfo(int idx, AsyncCBHandler asyncDelegate, object asyncContext)
        {
            Call(nameof(GetGageInfo), new { idx = idx }, asyncDelegate, asyncContext);
        }

    }
}
