| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 | 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;namespace Aitex.Core.Common.DeviceData{    [DataContract]    [Serializable]    public class AITWaterFlowMeterData : INotifyPropertyChanged, IDeviceData    {        public event PropertyChangedEventHandler PropertyChanged;        public void InvokePropertyChanged(string propertyName)        {            if (PropertyChanged != null)            {                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));            }        }        public void InvokePropertyChanged()        {            PropertyInfo[] ps = this.GetType().GetProperties();            foreach (PropertyInfo p in ps)            {                InvokePropertyChanged(p.Name);                if (p.PropertyType == typeof (ICommand))                {                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;                    if (cmd != null)                        cmd.RaiseCanExecuteChanged();                }            }            FieldInfo[] fi = this.GetType().GetFields();            foreach (FieldInfo p in fi)            {                InvokePropertyChanged(p.Name);                if (p.FieldType == typeof (ICommand))                {                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;                    if (cmd != null)                        cmd.RaiseCanExecuteChanged();                }            }        }        /// <summary>        /// 设备的唯一名称,UI与RT交互的ID        /// </summary>        [DataMember]        public string DeviceName { get; set; }        [DataMember]        public string UniqueName { get; set; }        /// <summary>        /// 显示在界面上的名称        /// </summary>        [DataMember]        public string DisplayName { get; set; }        /// <summary>        /// IO 表中定义的物理编号,物理追溯使用 比如: M122        /// </summary>        [DataMember]        public string DeviceSchematicId { get; set; }        [DataMember]        public string Unit { get; set; }        [DataMember]        public string Description { get; set; }        /// <summary>        /// 量程        /// </summary>        [DataMember]        public double Scale { get; set; }        /// <summary>        /// 设定值        /// </summary>        [DataMember]        public double SetPoint { get; set; }        [DataMember]        public double FeedBack { get; set; }        /// <summary>        /// 默认值        /// </summary>        [DataMember]        public double DefaultValue { get; set; }        /// <summary>        /// 是否有报警        /// </summary>        [DataMember]        public bool IsWarning { get; set; }        /// <summary>        /// alarm或是erro时显示的信息        /// </summary>        [DataMember]        public string ErroMessage { get; set; }        /// <summary>        /// MFC,PC        /// </summary>        [DataMember]        public string Type { get; set; }        [DataMember]        public double Factor { get; set; }        [DataMember]        public bool IsOutOfTolerance { get; set; }        [DataMember]        public bool IsForA { get; set; }//共用时区分        [DataMember]        public string AlarmWatchTable        {            get;            set;        }        public AITWaterFlowMeterData()        {            DisplayName = "Undefined";            Factor = 1.0;            Unit = "sccm";            Type = "FS";        }        public void Update(IDeviceData data)        {            throw new NotImplementedException();        }    }        /// <summary>    /// 在Spin项目中设定流量计报警值使用    /// </summary>    [DataContract]    [Serializable]    public class FlowMeterAlarmItem: INotifyPropertyChanged    {        public event PropertyChangedEventHandler PropertyChanged;        public void InvokePropertyChanged(string propertyName)        {            if (PropertyChanged != null)            {                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));            }        }        public void InvokePropertyChanged()        {            PropertyInfo[] ps = this.GetType().GetProperties();            foreach (PropertyInfo p in ps)            {                InvokePropertyChanged(p.Name);                if (p.PropertyType == typeof (ICommand))                {                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;                    if (cmd != null)                        cmd.RaiseCanExecuteChanged();                }            }            FieldInfo[] fi = this.GetType().GetFields();            foreach (FieldInfo p in fi)            {                InvokePropertyChanged(p.Name);                if (p.FieldType == typeof (ICommand))                {                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;                    if (cmd != null)                        cmd.RaiseCanExecuteChanged();                }            }        }        [DataMember]        public string Name { get; set; }        [DataMember]        public string DeviceType { get; set; }        [DataMember]        public double LowLimit { get; set; }        [DataMember]        public double UpperLimit { get; set; }        [DataMember]        public string Unit { get; set; }            }}
 |