Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/Aitex/Core/Common/DeviceData/AITWaterFlowMeterData.cs

104 lines
2.3 KiB
C#

using System;
using System.ComponentModel;
using System.Reflection;
using System.Runtime.Serialization;
using System.Windows.Input;
using Aitex.Core.UI.MVVM;
namespace Aitex.Core.Common.DeviceData
{
[Serializable]
[DataContract]
public class AITWaterFlowMeterData : INotifyPropertyChanged, IDeviceData
{
[DataMember]
public string DeviceName { get; set; }
[DataMember]
public string DisplayName { get; set; }
[DataMember]
public string DeviceSchematicId { get; set; }
[DataMember]
public string Unit { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public double Scale { get; set; }
[DataMember]
public double SetPoint { get; set; }
[DataMember]
public double FeedBack { get; set; }
[DataMember]
public double DefaultValue { get; set; }
[DataMember]
public bool IsWarning { get; set; }
[DataMember]
public string ErroMessage { get; set; }
[DataMember]
public string Type { get; set; }
[DataMember]
public double Factor { get; set; }
[DataMember]
public bool IsOutOfTolerance { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
public void InvokePropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public void InvokePropertyChanged()
{
PropertyInfo[] properties = GetType().GetProperties();
PropertyInfo[] array = properties;
foreach (PropertyInfo propertyInfo in array)
{
InvokePropertyChanged(propertyInfo.Name);
if (propertyInfo.PropertyType == typeof(ICommand) && propertyInfo.GetValue(this, null) is DelegateCommand<string> delegateCommand)
{
delegateCommand.RaiseCanExecuteChanged();
}
}
FieldInfo[] fields = GetType().GetFields();
FieldInfo[] array2 = fields;
foreach (FieldInfo fieldInfo in array2)
{
InvokePropertyChanged(fieldInfo.Name);
if (fieldInfo.FieldType == typeof(ICommand) && fieldInfo.GetValue(this) is DelegateCommand<string> delegateCommand2)
{
delegateCommand2.RaiseCanExecuteChanged();
}
}
}
public AITWaterFlowMeterData()
{
DisplayName = "Undefined";
Factor = 1.0;
Unit = "sccm";
Type = "FS";
}
public void Update(IDeviceData data)
{
throw new NotImplementedException();
}
}
}