using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FLY.Thick.Blowing { public interface IBlowingDetectInServer:INotifyPropertyChanged { double FilmLength { get; set; } double FilmVelocity { get; } TimeSpan RenZiJiaPeriod { get; } /// /// 获取当前在膜上的测量点,对应于膜泡的角度信息, 当时间点,比LimitList.Last.dt+RenZiJiaPeriod还要后,更新RenZiJiaPeriod /// 返回 -1, 当前的时间点在列表以前; /// 返回 0, 当前的时间点在列表中; /// 返回 1, 当前的时间点在列表的未来; /// /// 被压扁后的膜宽度 /// 探头所在膜的横向位置 /// 测量的时间点 /// int GetFilmInfo(out FilmInfo filminfo, DateTime dt, double filmWidth, double filmPosH); event FilmInfoChangedEventHandler FilmInfoChangedEvent; event ClearEventHandler ClearEvent; } public delegate void FilmInfoChangedEventHandler(object sender, FilmInfoChangedEventArgs e); public delegate void ClearEventHandler(object sender); public class FilmInfo { /// /// 上层 位于膜泡的角度 0~360° /// public double angle1; /// /// 下层 位于膜泡的角度 0~360° /// public double angle2; /// /// 膜泡旋转方向 /// public Misc.DIRECTION direction; /// /// 线速度 /// public double filmVelocity; /// /// 累计旋转次数 /// public int rotationCnt; /// /// 在匀速阶段; 在限位信号 开始~结束 期间 inCV = false /// public bool inCV; } public class FilmInfoChangedEventArgs : EventArgs { public FilmInfoChangedEventArgs(DateTime time) { Time = time; } /// /// 开始时间点 /// public DateTime Time { get; set; } } }