using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text;
using System.Windows.Input;
using Aitex.Core.UI.MVVM;
using MECF.Framework.Common.CommonData;
namespace Aitex.Core.Common.DeviceData
{
    [DataContract]
    [Serializable]
    public class AITChillerData : NotifiableItem
    {
        /// 
        /// MFC,PC
        /// 
        [DataMember]
        public string Type { get; set; }
        /// 
        /// 量程
        /// 
        [DataMember]
        public double ScaleMax { get; set; }
        /// 
        /// 量程
        /// 
        [DataMember]
        public double ScaleMin { get; set; }
        /// 
        /// 默认值
        /// 
        [DataMember]
        public double DefaultValue { get; set; }
        [DataMember]
        public string Unit { get; set; }
        [DataMember]
        public string Module { get; set; }
        [DataMember]
        public string DeviceModule { get; set; }
        [DataMember]
        public string DeviceName { get; set; }
        /// 
        /// 显示在界面上的名称
        /// 
        [DataMember]
        public string DisplayName { get; set; }
        /// 
        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
        /// 
        [DataMember]
        public string DeviceSchematicId { get; set; }
        /// 
        /// 当前设定值
        /// 
        [DataMember]
        public bool IsOn { get; set; }
        /// 
        /// 默认值
        /// 
        [DataMember]
        public bool IsWarning { get; set; }
        /// 
        /// 实际反馈值
        /// 
        [DataMember]
        public bool IsError { get; set; }
        [DataMember]
        public bool OverTemp { get; set; }
        [DataMember]
        public int Temperature { get; set; }
        [DataMember]
        public bool IsPowerOn
        {
            get;
            set;
        }
        /// 
        /// 设定值
        /// 
        [DataMember]
        public double SetPoint { get; set; }
        [DataMember]
        public double FeedBack { get; set; }
        [DataMember]
        public double CoolantInletFeedBack { get; set; }
        [DataMember]
        public double CoolantOutletFeedBack { get; set; }
        
        public AITChillerData()
        {
            DisplayName = "未定义";
        }
        public void Update(IDeviceData data)
        {
            AITPumpData item = data as AITPumpData;
            if (item == null)
                return;
            InvokePropertyChanged();
        }
    }
    public enum AITChillerOperation
    {
        SetOnOff,
        ChillerOn,
        ChillerOff,
    }
    public class AITChillerProperty
    {
        public const string EnableChiller = "EnableChiller";
        public const string IsOverTemp = "IsOverTemp";
        public const string IsRunning = "IsRunning";
        public const string IsControl = "IsControl";
        public const string IsError = "IsError";
        public const string IsStart = "IsStart";
        public const string IsStop = "IsStop";
        public const string ControlTcSetPoint = "ControlTcSetPoint";
        public const string IsPowerOnFeedback = "IsPowerOnFeedback"; 
        public const string ControlTcFeedback = "ControlTcFeedback";
        public const string CoolantInletTempFeedback = "CoolantInletTempFeedback";
        public const string CoolantOutletTempFeedback = "CoolantOutletTempFeedback";
    }
}