123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Runtime.Serialization;
- using System.Xml.Serialization;
- namespace Aitex.Core.Util
- {
- //Some common data structure are defined here for data transfer between server and client
- //via serialization and deserialization
- /// <summary>
- /// Analog device data
- /// </summary>
- [DataContract]
- [Serializable]
- public class AnalogDeviceData
- {
- [DataMember]
- public string TechnicalName { get; set; }
- [DataMember]
- public string DeviceName { get; set; }
- [DataMember]
- public string DeviceId { 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; }
- /// <summary>
- /// 实际反馈值
- /// </summary>
- [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; }
- private double _factor = 1.0;
- [DataMember]
- public double Factor { get { return _factor; } set { _factor = value; } }
- public override string ToString()
- {
- return FeedBack.ToString();
- }
- /// <summary>
- /// Default constructor.
- /// </summary>
- public AnalogDeviceData()
- {
- }
- /// <summary>
- /// Copy constructor of this object.
- /// </summary>
- /// <param name="deviceData"></param>
- public AnalogDeviceData(AnalogDeviceData deviceData)
- {
- TechnicalName = deviceData.TechnicalName;
- DeviceName = deviceData.DeviceName;
- DeviceId = deviceData.DeviceId;
- Unit = deviceData.Unit;
- Description = deviceData.Description;
- Scale = deviceData.Scale;
- SetPoint = deviceData.SetPoint;
- FeedBack = deviceData.FeedBack;
- DefaultValue = deviceData.DefaultValue;
- IsWarning = deviceData.IsWarning;
- ErroMessage = deviceData.ErroMessage;
- }
- }
- //public interface IAnalogData
- //{
- // AnalogDeviceData GetData(string deviceId);
- //}
- /// <summary>
- /// Digital device data
- /// </summary>
- [DataContract]
- [Serializable]
- public class DigitalDeviceData
- {
- [DataMember]
- public string TechnicalName { get; set; }
- [DataMember]
- public string DeviceName { get; set; }
- [DataMember]
- public string DeviceId { get; set; }
- /// <summary>
- /// 当前设定值
- /// </summary>
- [DataMember]
- public bool SetValue { get; set; }
- /// <summary>
- /// 默认值
- /// </summary>
- [DataMember]
- public bool DefaultValue { get; set; }
- /// <summary>
- /// 实际反馈值
- /// </summary>
- [DataMember]
- public bool Feedback { get; set; }
- public override string ToString()
- {
- return Feedback.ToString();
- }
- }
- //public interface IDigitalData
- //{
- // DigitalDeviceData GetData(string deviceId);
- //}
- ///// <summary>
- ///// Reactor data
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class ReactorData
- //{
- // public ReactorData()
- // {
- // MFC = new SerializableDictionary<string, AnalogDeviceData>();
- // PC = new SerializableDictionary<string, AnalogDeviceData>();
- // Valve = new SerializableDictionary<string, DigitalDeviceData>();
- // ProcessData = new SerializableDictionary<string, string>();
- // }
- // /// <summary>
- // /// Class members
- // /// </summary>
- // public SerializableDictionary<string, AnalogDeviceData> MFC;
- // /// <summary>
- // /// Class members
- // /// </summary>
- // public SerializableDictionary<string, AnalogDeviceData> PC;
- // /// <summary>
- // /// Class members
- // /// </summary>
- // public SerializableDictionary<string, DigitalDeviceData> Valve;
- // /// <summary>
- // /// Class members
- // /// </summary>
- // public SerializableDictionary<string, string> ProcessData;
- //}
- ///// <summary>
- ///// Heater data
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class HeaterData
- //{
- // public bool Enable;
- // public bool PsuEnable;
- // public HeaterMode Mode;
- // public double[] ZoneTempFeedback;
- // public double[] ZoneCurrentFeedback;
- // public double[] ZonePowerFeedback;
- // public double[] ZoneTcFeedback;
- // //public double[] PSU_Current_Read;
- // public double[] Zone_Voltage_Read;
- // public double[] Current_SetPoint;
- //}
- ///// <summary>
- ///// Pressure data
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class PressureData
- //{
- // public bool ThrottleValveEnable;
- // public bool MainPumpEnable;
- // public PressureControlMode Mode;
- // /// <summary>
- // /// pres real data
- // /// </summary>
- // public double TVPresFeedback; //throttle valve pressure feedback
- // public double TVPresSetPoint;
- // public double PT1Feedback;
- // public double PT2Feedback;
- // public double ThrottleValveOpenRate;
- // public int TV_Status;
- //}
- ///// <summary>
- ///// System monitor view data
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class SystemMonitorViewData
- //{
- // /// <summary>
- // /// Susceptor infors
- // /// </summary>
- // public SerializableDictionary<ChamberSet, SusceptorInfo> ChamberSusceptorInfos
- // {
- // get;
- // set;
- // }
- // public SerializableDictionary<ChamberSet, ChamberCommStateEnum> ChamberCommStates;
- // /// <summary>
- // /// IsServiceModeA
- // /// </summary>
- // public bool IsServiceModeA
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// IsServiceModeB
- // /// </summary>
- // public bool IsServiceModeB
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// IsServiceModeC
- // /// </summary>
- // public bool IsServiceModeC
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// IsServiceModeD
- // /// </summary>
- // public bool IsServiceModeD
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// IsServiceRunningLoadlock
- // /// </summary>
- // public bool IsServiceRunningLoadlock
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// IsServiceRunningTransfer
- // /// </summary>
- // public bool IsServiceRunningTransfer
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor processing?
- // /// </summary>
- // public bool IsProcessingA
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor processing?
- // /// </summary>
- // public bool IsProcessingB
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor processing?
- // /// </summary>
- // public bool IsProcessingC
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor processing?
- // /// </summary>
- // public bool IsProcessingD
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor susceptor rotation?
- // /// </summary>
- // public bool IsRotatingA
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor susceptor rotation?
- // /// </summary>
- // public bool IsRotatingB
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor susceptor rotation?
- // /// </summary>
- // public bool IsRotatingC
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is reactor susceptor rotation?
- // /// </summary>
- // public bool IsRotatingD
- // {
- // get;
- // set;
- // }
-
- // /// <summary>
- // /// Robot data
- // /// </summary>
- // public double RobotTheta
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Robot data
- // /// </summary>
- // public double RobotRadius
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Is sequencer running
- // /// </summary>
- // public bool SequencerRunning
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Chamber information
- // /// </summary>
- // public string PMA_Info
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Chamber information
- // /// </summary>
- // public string PMB_Info
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Chamber information
- // /// </summary>
- // public string PMC_Info
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Chamber information
- // /// </summary>
- // public string PMD_Info
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// chamber door state
- // /// </summary>
- // public int IsPMADoorOpen
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// chamber door state
- // /// </summary>
- // public int IsPMBDoorOpen
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// chamber door state
- // /// </summary>
- // public int IsPMCDoorOpen
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// chamber door state
- // /// </summary>
- // public int IsPMDDoorOpen
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// LL door state
- // /// </summary>
- // public int IsLLDoorOpen
- // {
- // get;
- // set;
- // }
- // public bool IsLLDoorEverOpened
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Loadlock door latch state
- // /// </summary>
- // public int IsLLDoorLatched
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMA pressure
- // /// </summary>
- // public double PMA_Pres
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMB pressure
- // /// </summary>
- // public double PMB_Pres
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMC pressure
- // /// </summary>
- // public double PMC_Pres
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMD pressure
- // /// </summary>
- // public double PMD_Pres
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// TM pressure
- // /// </summary>
- // public double TM_Pres
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// LL pressure
- // /// </summary>
- // public double LL_Pres
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMA temperature
- // /// </summary>
- // public double PMA_Temp
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMB temperature
- // /// </summary>
- // public double PMB_Temp
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMC temperature
- // /// </summary>
- // public double PMC_Temp
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// PMD temperature
- // /// </summary>
- // public double PMD_Temp
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// Cooldown temperature
- // /// </summary>
- // public double CoolDown_Temp
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// LL temperature
- // /// </summary>
- // public double LL_Temp
- // {
- // get;
- // set;
- // }
- // /// <summary>
- // /// current cycle
- // /// </summary>
- // public int TheIthCycle { get; set; }
- // public int CycleCount { get; set; }
- // public bool IsCycleMode { get; set; }
- //}
- ///// <summary>
- ///// Config data structure
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class ConfigEntry
- //{
- // public ChamberSet ChamId { get; set; }
- // public string SectionName { get; set; }
- // public string EntryName { get; set; }
- // public string Description { get; set; }
- // public string Type { get; set; }
- // public string Unit { get; set; }
- // public string Value { get; set; }
- // public string Default { get; set; }
- // public string RangeLowLimit { get; set; }
- // public string RangeUpLimit { get; set; }
- // public string XPath { get; set; }
- //}
- ///// <summary>
- ///// 显示数据只包含时间和数值
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class ChartShowInfo
- //{
- // public string TimeString { get; set; }
- // public DateTime Time { get; set; }
- // public double Value { get; set; }
- //}
- //[DataContract]
- //[Serializable]
- //public class TransferData
- //{
- // public bool DorDPressSwitch;
- // public bool DorCPressSwitch;
- // public bool DorBPressSwitch;
- // public bool DorAPressSwitch;
- // public bool TubePressSwitch;
- // public bool DoubleOringPump;
- // public bool TmDryPump;
- // public bool? TmPumpRun;
- // public bool TmPumpAlarm;
- // public bool TransferFastPumpClose;
- // public bool TransferSlowPumpClose;
- //}
- //[DataContract]
- //[Serializable]
- //public class LoadLockData
- //{
- // public bool LoadLockFastPumpClose;
- // public bool LoadLockSlowPumpClose;
- // public bool GateIsOpen;
- // public bool DoorClose;
- // public double Temperature;
- // public double Pressure;
- // public bool AtAtm;
- // public bool UnderVacuum;
- //}
- ///// <summary>
- ///// Reactor's bubbler data
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class BubblerData
- //{
- // /// <summary>
- // /// 名称
- // /// </summary>
- // public string MoName { get; set; }
- // /// <summary>
- // /// 总量
- // /// </summary>
- // public double TotalWeight { get; set; }
- // /// <summary>
- // /// 计算使用量
- // /// </summary>
- // public double IntegralUsedWeight { get; set; }
- // /// <summary>
- // /// 计算因子
- // /// </summary>
- // public double MoCalcFactor { get; set; }
- // /// <summary>
- // /// 报警阈值
- // /// </summary>
- // public double MoAlarmLimit { get; set; }
- // /// <summary>
- // /// 实际使用量
- // /// </summary>
- // public double MoUsedWeight { get; set; }
- // /// <summary>
- // /// 实际剩余量
- // /// </summary>
- // public double MoRemainedWeight { get; set; }
- // /// <summary>
- // /// MO剩余百分比
- // /// </summary>
- // public string MoRemainedPercentage { get; set; }
- // /// <summary>
- // /// Bubble温度
- // /// </summary>
- // public double BubbleTemp { get; set; }
- // /// <summary>
- // /// 平均每分钟的MO消耗质量
- // /// </summary>
- // public double AveragedMoWeightLostPerMin { get; set; }
- //}
- ///// <summary>
- ///// 模块监控单元的状态定义
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public enum ModuleMonitorItemStatus
- //{
- // Alarm,
- // NoAlarm,
- // Active,
- // NoActive
- //}
- ///// <summary>
- ///// 模块监控单元
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class ModuleMonitorItem
- //{
- // public string ModuleName { get; set; }
- // public string Description { get; set; }
- // public ModuleMonitorItemStatus Status { get; set; }
- //}
- ///// <summary>
- /////
- ///// </summary>
- //[DataContract]
- //[Serializable]
- //public class ChartSaveData
- //{
- // public DateTime RecordTime;
- // public double tvPresData;
- // public double ZoneA_TC_Read, ZoneB_TC_Read, ZoneC_TC_Read, ZoneD_TC_Read;
- // public double ZoneA_Current_Read, ZoneB_Current_Read, ZoneC_Current_Read, ZoneD_Current_Read;
- //}
- //[DataContract]
- //[Serializable]
- //public enum ServerRoutineState
- //{
- // NotRun,
- // ZhenKong,
- // Vent,
- // CyclePurge,
- // LeakCheck,
- //}
- [Serializable]
- public class DataItem
- {
- public string DataName { get; set; }
- //public bool IsPreLoaded { get; set; }
- public List<DateTime> TimeStamp { get; set; }
- public List<float> RawData { get; set; }
- }
- /// <summary>
- /// archived data format
- /// </summary>
- [Serializable]
- public class ArchivedFile
- {
- public string ChamId { get; set; }
- public string Description { get; set; }
- public DateTime BeginTime { get; set; }
- public DateTime EndTime { get; set; }
- public Dictionary<string, DataItem> Datas { get; set; }
- public Dictionary<string, List<string>> AliasList { get; set; }
- public List<KeyValuePair<DateTime, string>> RecipeSteps { get; set; }
- }
- #region PM data
- /// <summary>
- /// 标识不需要数据库记录的数据类型
- /// </summary>
- [AttributeUsageAttribute(AttributeTargets.Property | AttributeTargets.Field)]
- public class DatabaseSaveIgnoreAttribute : Attribute { }
- [Serializable]
- [DataContract]
- public class BathData
- {
- [XmlAttribute]
- public string BathName;
- public bool IsCommErr;
- public bool IsOutofTempRange;
- [DatabaseSaveIgnore]
- public bool IsTempSignalAlarm;
- [DatabaseSaveIgnore]
- public bool IsCutoffAlarm;
- [DatabaseSaveIgnore]
- public bool IsLevelWarning;
- public double TemperatureReading;
- }
- [Serializable]
- [DataContract]
- public class MoLine
- {
- [XmlAttribute]
- public string MoName;
- [DatabaseSaveIgnore]
- public bool IsDummyMo;
- //public bool IsBathTempAbnormal;
- //public double BathTemperatureReading;
- [DatabaseSaveIgnore]
- public double MoAlarmLimit;
- public double MoTotalWeight;
- [DatabaseSaveIgnore]
- public double MoWeightCalFactor;
- public double IntegralUsedWeight;
- public bool IsMoRemainedWeightAlarm;
- [DatabaseSaveIgnore]
- public double MoRemainedPercentage;
- [DatabaseSaveIgnore]
- public double MoRemainedWeight;
- public double MoUsedWeight;
- public double ToChamFlowRate;
- [DatabaseSaveIgnore]
- public double AveragedMoWeightLostPerMin;/*平均每分钟的MO消耗量计算值*/
- [DatabaseSaveIgnore]
- public BathData Bath;
- public override string ToString()
- {
- return MoName;
- }
- }
- #endregion
- }
|