FilmPositionDetectServiceClient.cs 4.68 KB
Newer Older
1
using FLY.Thick.Base.Common;
2
using FLY.Thick.Base.IService;
3
using FObjBase.Reflect;
4 5 6 7 8 9 10
using System;

namespace FLY.Thick.Base.Client
{
    /// <summary>
    /// 
    /// </summary>
11
    public class FilmPositionDetectServiceClient : FObjBase.Reflect.Reflect_SeviceClient, IFilmPositionDetectService
12
    {
13
        protected override Type InterfaceType => typeof(IFilmPositionDetectService);
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
        /// <summary>
        /// AD 曲线服务 客户端代理
        /// </summary>
        /// <param name="id"></param>
        public FilmPositionDetectServiceClient(UInt32 id) : base(id) { }

        /// <summary>
        /// AD 曲线服务 客户端代理
        /// </summary>
        /// <param name="serviceId">服务id</param>
        /// <param name="connName">连接器</param>
        public FilmPositionDetectServiceClient(UInt32 serviceId, string connName) : base(serviceId, connName) { }



        #region 状态
        /// <summary>
        /// 线速度 m/min
        /// </summary>
        public double FilmVelocity { get; protected set; }
        /// <summary>
        /// 膜位置, m
        /// </summary>
        public double FilmPosition { get; protected set; }
38 39 40 41
        /// <summary>
        /// 纵向位置偏移 m
        /// </summary>
        public double FilmOffset { get; protected set; }
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
        /// <summary>
        /// 工作中
        /// </summary>
        public bool IsRunning { get; protected set; }

        /// <summary>
        /// 当前正在使用的 与机头测厚仪偏移,单位m
        /// </summary>
        public double VDistanceWithHeaderInUsed { get; protected set; }

        /// <summary>
        /// 当前正在使用的 激光探头与 X光的偏移,单位m
        /// </summary>
        public double VSensorOffsetInUsed { get; protected set; }

        #endregion

        #region 参数
        /// <summary>
        /// 线速度阀值,低于阀值,速度直接变为0
        /// </summary>
        public double FilmVThreshold { get; set; }

        /// <summary>
        /// 线速度来源
        /// </summary>
        public FilmVSRC FilmVSrc { get; set; }

        /// <summary>
        /// 线速度:编码器2 mm/pulse
        /// </summary>
        public double Encoder2_mmpp { get; set; }

        /// <summary>
        /// 线速度:1圈多少mm
        /// </summary>
        public double MmOfR { get; set; }

        /// <summary>
        /// 本测厚仪探头与机头测厚仪探头距离单位m
        /// </summary>
        public double VDistanceWithHeader { get; set; }

        /// <summary>
        /// 纵向光纤传感器与本测厚仪探头距离 单位m;
        /// 修改此值,会改变纵向偏移
        /// </summary>
        public double VSensorOffset { get; set; }

        #endregion

        /// <summary>
        /// 主轴激光传感器检测到 1->0 变化 事件
        /// </summary>
96
        [Push(typeof(FilmPosAt01EventArgs))]
97
        public event EventHandler FilmPosAt01Event;
98

99 100
        public void Trigger_FilmPosAt01Event(FilmPosAt01EventArgs e)
        {
101 102
            FilmPosAt01Event?.Invoke(this, e);
        }
103 104 105
        /// <summary>
        /// 设置膜位置为某值
        /// </summary>
106
        /// <param name="filmPosition">极片位置m</param>
107
        public void ResetCore(double filmPosition)
108
        {
109
            Call("ResetCore", new { filmPosition });
110 111
        }
        /// <summary>
112
        /// 改变逻辑偏移量,从而设置膜位置为某值
113
        /// </summary>
114 115
        /// <param name="filmPosition"></param>
        public void ResetOffset(double filmPosition)
116
        {
117
            Call("ResetOffset", new { filmPosition });
118 119 120
        }

        /// <summary>
121
        /// 设置逻辑偏移量
122
        /// </summary>
123 124
        /// <param name="filmOffset"></param>
        public void SetOffset(double filmOffset)
125
        {
126
            Call("SetOffset", new { filmOffset });
127
        }
128 129 130 131 132
        /// <summary>
        /// 把膜位置设置为 -VDistanceWithHeader
        /// </summary>
        public void Reset()
        {
133
            Call("Reset");
134 135
        }

136 137 138 139 140 141 142 143


        /// <summary>
        /// 服务器 从 机头得到的 0->1 事件,给机尾
        /// </summary>
        /// <param name="filmPos">极片位置m</param>
        public void SetFilmPosAt01(double filmPos)
        {
144
            Call("SetFilmPosAt01", new { filmPos });
145 146 147 148 149
        }

        /// <summary>
        /// 停止测量
        /// </summary>
150
        public void Stop()
151
        {
152
            Call("Stop");
153 154 155 156 157
        }

        /// <summary>
        /// 启动测量
        /// </summary>
158
        public void Start()
159
        {
160
            Call("Start");
161 162 163 164
        }

        public void Apply()
        {
165
            Call("Apply");
166 167 168 169

        }
    }
}