using FLY.Thick.Blowing360.IService; using FObjBase; using FObjBase.Reflect; using Misc; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace FLY.Thick.Blowing360.Client { /// <summary> /// 旋转架及膜位置检测模拟 /// </summary> public class BlowingDetect360EncoderServiceClient : FObjBase.Reflect.Reflect_SeviceClient, IBlowingDetect360EncoderService { protected override Type InterfaceType => typeof(IBlowingDetect360EncoderService); #region IBlowingDetect 成员 #region 参数 /// <summary> /// 人字架 旋转1周总脉冲数 /// </summary> public int PosOfR { get; set; } /// <summary> /// 复位信号 脉冲数 /// </summary> public int PosOfOrgSign { get; set; } /// <summary> /// 人字架到测厚仪膜长 单位m /// </summary> public double FilmLength { get; set; } /// <summary> /// 辊周长,单位mm /// </summary> public double RollPerimeter { get; set; } #endregion #region 状态 /// <summary> /// 当前旋转架旋转角度 /// </summary> public double Angle { get; set; } /// <summary> /// 当前方向 /// </summary> public DIRECTION Direction { get; set; } /// <summary> /// 累计旋转次数 /// </summary> public int RotationCnt { get; set; } /// <summary> /// 最后一个限位信号 到当前已经消耗的时间 /// </summary> public TimeSpan PastTime { get; set; } /// <summary> /// 当前线速度,单位 m/min /// </summary> public double FilmVelocity { get; set; } /// <summary> /// 离开限位 到 撞下一个限位 的 旋转架转动时间, 需要初始值,以后测量出来的 /// </summary> public TimeSpan RenZiJiaPeriod { get; set; } /// <summary> /// 缓冲区拥有数据的时间长度,1s更新一次 /// </summary> public TimeSpan BufTotalTime { get; set; } /// <summary> /// 缓冲区最新数据时间 /// </summary> public DateTime BufLastTime { get; set; } /// <summary> /// 复位信号列表更新时间 /// </summary> public DateTime OrgSignListUpdateTime { get; set; } /// <summary> ///旋转架脉冲 /// </summary> public int GlobalPos { get; set; } /// <summary> /// 旋转架脉冲速度 /// </summary> public int Speed { get; set; } #endregion #endregion /// <summary> /// /// </summary> public BlowingDetect360EncoderServiceClient(UInt32 serviceId) : base(serviceId) { } /// <summary> /// /// </summary> /// <param name="serviceId"></param> /// <param name="connName"></param> public BlowingDetect360EncoderServiceClient(UInt32 serviceId, string connName) : base(serviceId, connName) { } #region 功能 /// <summary> /// 应用 /// </summary> public void Apply() { Call(nameof(Apply)); } /// <summary> /// 获取 旋转位置列表 /// </summary> /// <param name="begin">开始时间</param> /// <param name="asyncDelegate"></param> /// <param name="asyncContext"></param> public void GetRPosList(DateTime begin, AsyncCBHandler asyncDelegate, object asyncContext) { Call(nameof(GetRPosList), new { begin }, asyncDelegate, asyncContext); } /// <summary> /// 获取 旋转信号列表 /// </summary> /// <param name="begin">开始时间</param> /// <param name="asyncDelegate"></param> /// <param name="asyncContext"></param> [Call(typeof(List<OrgSignData>))] public void GetOrgSignList(DateTime begin, AsyncCBHandler asyncDelegate, object asyncContext) { Call(nameof(GetOrgSignList), new { begin }, asyncDelegate, asyncContext); } /// <summary> /// 获取 线速度列表 /// </summary> /// <param name="begin">开始时间</param> /// <param name="asyncDelegate"></param> /// <param name="asyncContext"></param> [Call(typeof(List<FilmVelocityData>))] public void GetFilmVelocityList(DateTime begin, AsyncCBHandler asyncDelegate, object asyncContext) { Call(nameof(GetFilmVelocityList), new { begin }, asyncDelegate, asyncContext); } /// <summary> /// 获取 旋转信号列表 /// </summary> /// <param name="begin">开始时间</param> /// <param name="asyncDelegate"></param> /// <param name="asyncContext"></param> [Call(typeof(List<RotationData>))] public void GetRotationList(DateTime begin, AsyncCBHandler asyncDelegate, object asyncContext) { Call(nameof(GetRotationList), new { begin }, asyncDelegate, asyncContext); } #endregion } }