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));
}
}
}