using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Collections.ObjectModel; namespace FLY.FeedbackRenZiJia.IService { public interface IHeatCell : INotifyPropertyChanged { #region 参数 /// <summary> /// HeatOffset = ThickPercent * Kp /// </summary> double Kp { get; set; } /// <summary> /// 自动对位 /// </summary> bool IsAutoONo { get; set; } /// <summary> /// 自动对位的Kp /// </summary> double AutoONoKp { get; set; } /// <summary> /// 输出平滑的阀值,只有超出阀值,才平滑 /// </summary> double ThresholdHeatSigma { get; set; } /// <summary> /// 自控时,不能调整总体上升下降 /// </summary> bool IsForbidUpDown { get; set; } /// <summary> /// 厚度控制线 , 厚度% 大于 厚度控制线 自动才会加热控制 /// </summary> int CtrlLine { get; set; } /// <summary> /// 开启打散模式, 打散模式下,以打散度小为目标,控制2sigma在 控制线内 /// </summary> bool IsBreakUpMode { get; set; } #endregion #region 状态 /// <summary> /// 对应的100% 数据,单位是% 数量是BoltCnt /// </summary> int[] ThickPercents { get; } /// <summary> /// 当前方向的加热策略,必须保证 0~100 /// </summary> int[] Heats { get; } /// <summary> /// 加热偏移量 /// </summary> int[] Offsets { get; } /// <summary> /// Heats+Offsets+Base, 必须保证0~100 /// </summary> int[] PreHeats { get; } /// <summary> /// PreHeat 每3个计算的sigma, 最大值 /// </summary> double MaxHeatSigma { get; } /// <summary> /// 当前正在自动对位模式 /// </summary> bool IsInAutoONo { get; } #endregion #region 功能 /// <summary> /// 参数应用 /// </summary> void Apply(); /// <summary> /// 手动调整加热增量 /// </summary> /// <param name="idx"></param> /// <param name="change"></param> void ModifyOffset(int idx, int change); /// <summary> /// 参数是 baseheatoffset 的增量 /// </summary> /// <param name="change"></param> void ModifyBase(int change); /// <summary> /// 清空HeatOffset /// </summary> void ClearOffsets(); /// <summary> /// 清空PreHeats /// </summary> void ClearPreHeats(); /// <summary> /// 调整PreHeats /// </summary> /// <param name="heats"></param> //void ModifyPreHeats(int[] heats); /// <summary> /// 执行 HeatOffset = ThickPercent * Factor /// </summary> void Cal(); /// <summary> /// 平滑 PreHeats /// </summary> void Smooth(); /// <summary> /// 加热输出应用 /// Heats = PreHeats, Offsets = 0, Base = 0 /// </summary> void HeatApply(); #endregion } }