using FLY.Thick.Blowing.IService;
using FObjBase;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FLY.Thick.Blowing.OBJ_INTERFACE
{
    /// <summary>
    /// 
    /// </summary>
    public class BLOWING_DETECT_OBJ_INTERFACE
    {
        #region Pack
        /// <summary>
        /// 参数
        /// </summary>
        public class Pack_Params
        {
            /// <summary>
            /// 旋转架转动角度 °
            /// </summary>
            public double rangle;

            /// <summary>
            /// 人字架周期 设置值
            /// </summary>
            public TimeSpan period;

            /// <summary>
            /// 加减速时间
            /// </summary>
            public TimeSpan accDecTime;


            /// <summary>
            /// 信号0 需要撞2次
            /// </summary>
            public bool isSign0Double;
            /// <summary>
            /// 信号1 需要撞2次
            /// </summary>
            public bool isSign1Double;

            /// <summary>
            /// 信号模式
            /// </summary>
            public BlowingSignType signType;

            /// <summary>
            /// 转向信号时间
            /// </summary>
            public TimeSpan limitSignTime;

            /// <summary>
            /// 人字架到测厚仪长度 m
            /// </summary>
            public double filmLength;

            /// <summary>
            /// 辊周长 mm
            /// </summary>
            public double rollPerimeter;

            /// <summary>
            /// 转向信号100ms 滤波
            /// </summary>
            public bool isSignFilter;
            /// <summary>
            /// 缺少信号模式
            /// </summary>
            public bool isLackSignMode;

            /// <summary>
            /// 立体
            /// </summary>
            public bool is3D;
        }

        /// <summary>
        /// 状态
        /// </summary>
        public class Pack_CurrState
        {
            public int limitno;
            public TimeSpan pasttime;
            public int rotationCnt;
            public double filmvelocity;
            public Misc.DIRECTION direction;
            public double angle;
            /// <summary>
            /// 人字架周期 当前值
            /// </summary>
            public TimeSpan period;
            public TimeSpan swapCoolTime;
            public TimeSpan BufTotalTime;
        }

        #endregion
        #region GetValue
        /// <summary>
        /// json Pack_Params
        /// </summary>
        public const UInt16 GET_PARAMS = 1;

        /// <summary>
        /// json Pack_CurrState
        /// </summary>
        public const UInt16 GET_STATE = 5;

        #endregion
        #region SetValue
        /// <summary>
        /// json Pack_Params
        /// </summary>
        public const UInt16 SET_PARAMS = 1;

        #endregion
        #region CallFunction

        /// <summary>
        /// request:null
        /// reponse:GetSignListReponse
        /// </summary>
        public const UInt16 CALL_GETSIGNLIST = 4;

        /// <summary>
        /// request:json GetRollListRequest
        /// reponse:json GetRollListReponse
        /// </summary>
        public const UInt16 CALL_GETROLLIST = 5;

        /// <summary>
        /// request:json GetLimitListRequest
        /// reponse:json GeLimitListReponse
        /// </summary>
        public const UInt16 CALL_GETLIMITLIST = 6;

        /// <summary>
        /// request:null
        /// reponse:json GetFilmLength3DReponse
        /// </summary>
        public const UInt16 CALL_GET_FL_3D = 7;

        /// <summary>
        /// request:json List&lt;double&gt;
        /// reponse:null
        /// </summary>
        public const UInt16 CALL_SET_FL_3D = 8;
        #endregion
        #region PushInfo
        /// <summary>
        /// json Pack_Params
        /// </summary>
        public const UInt16 PUSH_PARAMS = 1;

        /// <summary>
        /// json Pack_CurrState
        /// </summary>
        public const UInt16 PUSH_STATE = 5;

        /// <summary>
        /// json Pack_BM
        /// </summary>
        public const UInt16 PUSH_SIGNBM = 9;
        #endregion
    }
}