using FLY.FeedbackRenZiJia.IService; using FLY.FeedbackRenZiJia.OBJ_INTERFACE; using FObjBase; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace FLY.FeedbackRenZiJia.Client { public class HeatCellServiceClient : FObjBase.Reflect.Reflect_SeviceClient, IHeatCellService { protected override Type InterfaceType => typeof(IHeatCellService); #region IHeatCell 接口 成员变量 #region 参数 /// /// HeatOffset = ThickPercent * Kp /// public double Kp { get; set; } = 3; /// /// 平滑的阀值,只有超出阀值,才平滑 /// public double ThresholdHeatSigma { get; set; } = 10; /// /// 自控时,不能调整总体上升下降 /// public bool IsForbidUpDown { get; set; } /// /// 厚度控制线 , 厚度% 大于 厚度控制线 自动才会加热控制 /// public int CtrlLine { get; set; } /// /// 最大加热量 默认100% /// public int MaxHeat { get; set; } #endregion #region 对位 /// /// 自动对位 /// public bool IsAutoONo { get; set; } /// /// 当前正在自动对位模式 /// public AutoONoStatusEnum AutoONoStatus { get; set; } /// /// 自动对位模式 信息 /// public string AutoONoMsg { get; set; } /// /// 自动对位 那幅空的图 /// public long AutoONoId0 { get; set; } /// /// 自动对位 加热后生效的图 /// public long AutoONoId1 { get; set; } #endregion #region 状态 /// /// 对应的100% 数据,单位是% 数量是BoltCnt, 数据肯定是完整的!!!!! /// public double[] ThickPercents { get; set; } /// /// 当前方向的加热策略,必须保证 0~100 /// public int[] Heats { get; set; } private int Base { get; set; } /// /// 加热偏移量 /// public int[] Offsets { get; set; } /// /// Heats+Offsets+Base /// public int[] PreHeats { get; set; } /// /// 加热量 每3个计算的sigma,最大值 /// public double MaxHeatSigma { get; set; } #endregion #endregion public HeatCellServiceClient(UInt32 serviceId) : base(serviceId) { } public HeatCellServiceClient(UInt32 serviceId, string connName) : base(serviceId, connName) { } #region IHeatCell 函数 public void ModifyOffset(int idx, int change) { Call(nameof(ModifyOffset), new { idx, change }); } public void ModifyBase(int change) { Call(nameof(ModifyBase), new { change }); } public void ClearOffsets() { Call(nameof(ClearOffsets)); } public void ClearPreHeats() { Call(nameof(ClearPreHeats)); } public void Cal() { Call(nameof(Cal)); } public void Smooth() { Call(nameof(Smooth)); } public void HeatApply() { Call(nameof(HeatApply)); } #endregion public void Apply() { Call(nameof(Apply)); } } }