using System;
using System.Runtime.Serialization;
using Aitex.Core.Common.DeviceData.IoDevice.Base;

namespace Aitex.Core.Common.DeviceData.IoDevice
{

    [Serializable]
    [DataContract]
    public class IoPsuData : DeviceDataBase
    {
        /// <summary>
        /// 设置或返回PSU实时电压反馈值。
        /// </summary>
        [DataMember]
        public float OutputVoltageFeedback { get; set; }

        /// <summary>
        /// 设置或返回PSU输出状态。
        /// </summary>
        [DataMember]
        public float OutputArmsFeedBack { get; set; }

        /// <summary>
        /// 设置或返回加热器电阻计算值。
        /// </summary>
        [DataMember]
        public float Resistance { get; set; }

        /// <summary>
        /// 设置或返回电阻上限设定值。
        /// </summary>
        [DataMember]
        public float ResistanceLimitMax { get; set; }

        /// <summary>
        /// 设置或返回电阻值是否超限。
        /// </summary>
        [DataMember]
        public bool IsResistanceOutOfRange { get; set; }

        /// <summary>
        /// 设置或返回是否电阻值过大。
        /// </summary>
        [DataMember]
        public bool IsResistanceTooHigh { get; set; }

        /// <summary>
        /// 设置或返回PSU实时功率反馈值。
        /// </summary>
        [DataMember]
        public float OutputPowerFeedBack { get; set; }

        /// <summary>
        /// 设置货返回PSU输出状态反馈值。
        /// </summary>
        [DataMember]
        public bool OutputStatusFeedBack { get; set; }

        /// <summary>
        /// 设置或返回Constant设定值。
        /// </summary>
        [DataMember]
        public float ConstantSetPoint { get; set; }

        /// <summary>
        /// 设置或返回输出限幅上限值生效温度。
        /// </summary>
        [DataMember]
        public float OutputLimitHighTuningTemp { get; set; }
        
        /// <summary>
        /// 设置或返回输出限幅上限值。
        /// </summary>
        [DataMember]
        public float OutputLimitHigh { get; set; }

        /// <summary>
        /// 设置或返回输出限幅下限值。
        /// </summary>
        [DataMember]
        public float OutputLimitLow { get; set; }

        /// <summary>
        /// 设置或返回PSU总开关状态。
        /// </summary>
        /// <remarks>
        /// 所有PSU有一个总开关，该属性表示该总开关的状态。
        /// </remarks>
        [DataMember]
        public bool AllHeatEnable { get; set; }

    }
}
