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