using FObjBase.Reflect; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace FLY.Thick.Blowing.IService { /// /// 基本吹膜系统 /// public interface IBlowingService : INotifyPropertyChanged { #region 分区设定 /// /// 加热通道数 /// int ChannelCnt { get; set; } /// /// 分区数/加热通道数 /// int BPC { get; set; } /// /// 人字架总分区数,从1开始数 /// int NBolts { get; } /// /// 人字架复位时, 探头对应的分区位, 也就是 0° 对应的分区位 /// int OrgBoltNo { get; set; } /// /// 使用分区表 /// bool IsUsedMap { get; set; } /// /// 分区表,需要考虑为 null 的情况 /// BoltMapCell[] Map { get; set; } #endregion /// /// 正方向是顺时钟; /// 信号0->信号1 为正方向; /// 风环加热棒排列方向为 正方向; /// 默认情况 风环加热棒排列是逆时钟 /// bool IsForwCW { get; set; } /// /// 测厚仪测量点位置方向:Left, Right (也就是三角形在左还是右) /// bool IsProbeRight { get; set; } /// /// 测厚仪类型, 追边 or 扫描 /// BlowingType BType { get; } /// /// 参数应用 /// void Apply(); /// /// 每次有新数据时候推送。 修改参数,不会推送 /// [Push(typeof(RenZiJiaDataEventArgs))] event EventHandler DataEvent; } public enum BlowingType { /// /// 扫描 /// Scan, /// /// 追边 /// Fix, /// /// 追边.360°连续旋转 /// Fix360, } /// /// 扫描一次,推送 /// /// /// public delegate void RenZiJiaDataEventHandler(object sender, RenZiJiaDataEventArgs e); /// /// 扫描一次,推送的数据 /// public class RenZiJiaDataEventArgs : EventArgs { /// /// 测量数据开始时间 /// public DateTime Time { get; set; } /// /// 测量数据结束时间 /// public DateTime EndTime { get; set; } /// /// 旋转方向 是反向 /// public bool IsBackw { get; set; } /// /// 旋转1周的时间 /// public TimeSpan RPeriod { get; set; } /// /// 旋转次数 /// public int RCnt { get; set; } /// /// 复位区号 /// public int OrgBoltNo { get; set; } /// /// 旋转角度 ° /// public double RAngle { get; set; } /// /// 膜距离 m /// public double FilmLength { get; set; } /// /// 线速度 /// public double FilmVelocity { get; set; } /// /// 斜率补偿 /// public double K { get; set; } = 1; /// /// 1幅数据 /// public double[] Thicks { get; set; } /// /// 分区表 /// public List Boltmap { get; set; } } /// /// 分区表 /// public class BoltMapCell { /// /// 旧位置 /// public int OldNo { get; set; } /// /// 新位置 /// public int NewNo { get; set; } /// /// 全复制 /// /// public BoltMapCell Clone() { return new BoltMapCell() { NewNo = NewNo, OldNo = OldNo }; } } }