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.RT.Device; using Aitex.Core.RT.IOCore; using Aitex.Core.RT.SCCore; using Aitex.Core.UI.MVVM; using Aitex.Core.Util; using MECF.Framework.Common.CommonData; using MECF.Framework.Common.Device.Bases; using MECF.Framework.Common.Event; namespace Aitex.Core.Common.DeviceData { [DataContract] [Serializable] public class AITAuxData : NotifiableItem, IDeviceData { [DataMember] public string Module { get; set; } /// /// [DataMember] public string IOName { get; set; }//AI /// /// 显示在界面上的名称 /// [DataMember] public string DisplayName { get; set; } /// /// [DataMember] public string Unit { get; set; } /// /// 当前设定值 /// [DataMember] public float SetPoint { get; set; } /// /// 实际反馈值 /// [DataMember] public float Feedback { get; set; } [DataMember] public int TableID { get; set; } [DataMember] public int Index { get; set; } [DataMember] public float WarningLowLimit { get; set; } [DataMember] public float WarningHighLimit { get; set; } [DataMember] public float AlarmLowLimit { get; set; } [DataMember] public float AlarmHighLimit { get; set; } [DataMember] public bool IsInstalled { get; set; } = true; public bool IsAlarmLowLimit { get { return Feedback < SetPoint - AlarmLowLimit && AlarmLowLimit > 0 && SetPoint > 0; } } public bool IsAlarmHighLimit { get { return Feedback > SetPoint + AlarmHighLimit && AlarmHighLimit > 0 && SetPoint > 0; } } public bool IsWarningLowLimit { get { return Feedback < SetPoint - WarningLowLimit && !IsAlarmLowLimit && WarningLowLimit > 0 && SetPoint > 0; } } public bool IsWarningHighLimit { get { return Feedback > SetPoint + WarningHighLimit && !IsAlarmHighLimit && WarningHighLimit > 0 && SetPoint > 0; } } public AlarmEventItem WarningLowLimitEvent { get; set; } public AlarmEventItem WarningHighLimitEvent { get; set; } public AlarmEventItem AlarmLowLimitEvent { get; set; } public AlarmEventItem AlarmHighLimitEvent { get; set; } public SCConfigItem AlarmLowLimitConfig { get; set; } public SCConfigItem AlarmHighLimitConfig { get; set; } public SCConfigItem WarningLowLimitConfig { get; set; } public SCConfigItem WarningHighLimitConfig { get; set; } public SCConfigItem SetPointConfig { get; set; } public SCConfigItem UnitConfig { get; set; } public SCConfigItem DisplayNameConfig { get; set; } public R_TRIG WarningLowLimitTrig { get; set; } public R_TRIG WarningHighLimitTrig { get; set; } public R_TRIG AlarmLowLimitTrig { get; set; } public R_TRIG AlarmHighLimitTrig { get; set; } public AOAccessor AO { get; set; } public AIAccessor AISV { get; set; } public AOAccessor AOAlarmLower { get; set; } public AOAccessor AOAlarmHigher { get; set; } public bool IsWait { get; set; } public float WaitHigh { get; set; } public float WaitLow { get; set; } public AITAuxData() { DisplayName = ""; } public void Update(IDeviceData data) { throw new NotImplementedException(); } } }