using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FLY.FeedbackRenZiJia.OBJ_INTERFACE;
using System.Collections.ObjectModel;
using System.ComponentModel;
using FLY.FeedbackRenZiJia.Common;
using FLY.FeedbackRenZiJia.IService;
using PropertyChanged;
using AutoMapper;
using System.IO;
using Newtonsoft.Json;
using FLY.Thick.Blowing.IService;
using Misc;
namespace FLY.FeedbackRenZiJia.Server
{
///
/// 以前 正反转加热分离,所以有两个 HeatCell
/// 现在不分正反转,只有一个HeatCell
///
public class HeatCell : IHeatCellService
{
#region IHeatCell 接口 成员变量
#region 参数
///
/// HeatOffset = ThickPercent * Kp
///
public double Kp { get; set; } = 3;
///
/// 平滑的阀值,只有超出阀值,才平滑
///
public double ThresholdHeatSigma { get; set; } = 10;
///
/// 自控时,不能调整总体上升下降
///
public bool IsForbidUpDown { get; set; } = false;
///
/// 厚度控制线 , 厚度% 大于 厚度控制线 自动才会加热控制
///
public int CtrlLine { get; set; } = 2;
///
/// 最大加热量 默认100%
///
public int MaxHeat { get; set; } = 100;
#endregion
#region 状态
///
/// 对应的100% 数据,单位是% 数量是ChannelCnt, 数据肯定是完整的!!!!!
///
[DoNotCheckEquality]
public double[] ThickPercents { get; set; }
///
/// 当前方向的加热策略,必须保证 0~100
///
[DoNotCheckEquality]
public int[] Heats { get; protected set; }
private int Base { get; set; } = 0;
///
/// 加热偏移量
///
[DoNotCheckEquality]
public int[] Offsets { get; protected set; }
///
/// Heats+Offsets+Base
///
[DoNotCheckEquality]
public int[] PreHeats { get; protected set; }
///
/// 加热量 每3个计算的sigma,最大值
///
public double MaxHeatSigma { get; set; } = 0;
///
/// 当前正在自动对位模式
///
public bool IsInAutoONo { get; protected set; }
#endregion
#region 对位
///
/// 自动对位
///
public bool IsAutoONo { get; set; } = true;
///
/// 当前正在自动对位模式
///
public AutoONoStatusEnum AutoONoStatus { get; private set; }
///
/// 自动对位模式 信息
///
public string AutoONoMsg { get; private set; }
///
/// 自动对位 那幅空的图
///
public long AutoONoId0 { get; private set; } = -1;
///
/// 自动对位 加热后生效的图
///
public long AutoONoId1 { get; private set; } = -1;
#endregion
#endregion
public int ChannelCnt { get; set; }
int BoltCnt;
HeatBuf mHeatBuf;
IBlowingService blowingService;
public Func