using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using Aitex.Common.Util;

namespace Aitex.Core.RT.Event
{
    [DataContract]
    [Serializable]
    public enum EventEnum
    {
        /// <summary>
        /// 操控权限:{0}
        /// Only authorized account can execute operation and control command
        /// </summary>
        [EnumMember]
        OperationAuthorization = 9,

        /// <summary>
        /// '{0}' 退出系统。
        /// 用户退出系统。
        /// </summary>
        [EnumMember]
        UserLoggedOff = 10,

        /// <summary>
        /// '{0}' 登录系统。
        /// 用户登录
        /// </summary>
        [EnumMember]
        UserLoggedIn = 11,

        /// <summary>
        /// 用户帐号'{0}'的内容被修改。
        /// 用户帐号改变
        /// </summary>
        [EnumMember]
        AccountChanged = 12,

        /// <summary>
        /// 用户账号'{0}'的密码被修改。
        /// 用户账号密码变更
        /// </summary>
        [EnumMember]
        PasswordChanged = 13,

        /// <summary>
        /// 用户帐号'{0}'已被删除。
        /// 用户帐号删除
        /// </summary>
        [EnumMember]
        AccountDeleted = 14,

        /// <summary>
        /// 用户帐号'{0}'已被创建。
        /// 用户帐号创建
        /// </summary>
        [EnumMember]
        AccountCreated = 15,
 

        /// <summary>
        /// 放盘到{0}操作成功完成。。
        /// This event is posted right before putting a susceptor to a chamber.
        /// </summary>
        [EnumMember]
        PuttingWaferToChamberEnds = 19,

        /// <summary>
        /// 向{0}传盘操作开始。
        /// This event is posted right before putting a susceptor to a chamber.
        /// </summary>
        [EnumMember]
        PuttingWaferToChamberBegins = 20,

        /// <summary>
        /// 从{0}取盘操作已成功完成。
        /// This event is posted right after the operation of picking a susceptor from  a chamber.
        /// </summary>
        [EnumMember]
        PickingWaferFromChamberEnds = 21,

        /// <summary>
        /// 从{0}取盘操作开始。
        /// This event is posted right before  picking a suseceptor from some chamber,
        /// </summary>
        [EnumMember]
        PickingWaferFromChamberBegins = 22,
 

        /// <summary>
        /// 对齐操作开始
        /// 
        /// </summary>
        [EnumMember]
        AlignBegins = 25,

        /// <summary>
        /// 对齐操作结束
        /// When chamber pressure servo stops, thie event will be thrown.
        /// </summary>
        [EnumMember]
        AlignEnds = 26,

        /// <summary>
        /// 对齐操作失败
        /// 
        /// </summary>
        [EnumMember]
        AlignFailed = 27,

        /// <summary>
        ///  
        /// Wafer {0} moved from {1} {2} to {3} {4}
        /// </summary>
        [EnumMember]
        WaferMoved = 28,

        /// <summary>
        /// Wafer create
        /// 
        /// </summary>
        [EnumMember]
        WaferCreate = 36,

        /// <summary>
        /// 
        /// 
        /// /// </summary>
        [EnumMember]
        WaferDelete = 37,
 

        /// <summary>
        /// 
        /// LOAD FOUP start
        /// </summary>
        [EnumMember]
        LoadFOUPStart = 41,

        /// <summary>
        /// 
        /// LOAD FOUP End
        /// /// </summary>
        [EnumMember]
        LoadFOUPEnd = 42,

        /// <summary>
        /// 
        /// 
        /// </summary>
        [EnumMember]
        LoadFOUPFailed = 43,

        /// <summary>
        /// Unload FOUP Start
        /// 
        /// /// </summary>
        [EnumMember]
        UnloadFOUPStart = 44,

        /// <summary>
        /// Unload FOUP Start
        /// </summary>
        [EnumMember]
        UnloadFOUPEnd = 45,

        /// <summary>
        /// UnLoad FOUP Failed
        /// 
        /// </summary>
        [EnumMember]
        UnloadFOUPFailed = 46,

 

        /// <summary>
        /// {0}
        /// 默认事件类型(通用)
        /// </summary>
        [EnumMember]
        GeneralInfo = 1000,

 
 

        /// <summary>
        /// {0} 服务程序'{1}'被终止,原因:{2}。
        /// where {0} is the chamber name, while {1} is the service name. When service routine is aborted, this event will be posted.
        /// </summary>
        [EnumMember]
        ServiceRoutineAborted = 1023,
 
 

        /// <summary>
        /// {0} {1}:{2}。
        /// 用于显示在服务程序运行过程中的信息显示,{0}反应腔名,{1}服务程序名,{2}当前动作名。
        /// </summary>
        [EnumMember]
        ServiceRoutineInfo = 1033,

 

 

        /// <summary>
        /// {0} {1}。
        /// 当收到用户界面命令,并成功执行时,发出该事件。{0}反应腔名,{1}命令解释。
        /// </summary>
        [EnumMember]
        GuiCmdExecSucc = 1040,

 

        /// <summary>
        /// {0} {1}。
        /// 当发生软件互锁时,发出该警告信息。{0}反应腔名,{1}具体软件互锁原因。
        /// </summary>
        [EnumMember]
        SwInterlock = 1052,

 
 
 

        /// <summary>
        /// 用户 {0} 无操控权,请先获取操控权
        /// 只有拥有操控权的用户,才能进行操控
        /// </summary>
        [EnumMember]
        AccountWithoutAuthorization = 2052,

        /// <summary>
        /// {0}。
        /// 警告范围2000~3999,如果系统反馈的警告事件没有指定事件ID,或者ID编号范围有误,则使用当前默认的警告代码作为该事件的警告代码。
        /// </summary>
        [EnumMember]
        DefaultWarning = 2053,

        /// <summary>
        /// {0} {1}。
        /// 当用户命令执行失败时发出该警告事件。
        /// </summary>
        [EnumMember]
        GuiCmdExecFailed = 3027,

        /// <summary>
        /// {0} 数据库连接失败。
        /// 当控制程序与数据库连接断开时发出该事件。
        /// </summary>
        [EnumMember]
        DbConnFailed = 3034,

        /// <summary>
        /// {0} {1}。
        /// 当安全PLC的安全逻辑将某DO设定值拦截下来的时候发出该警告信息。
        /// </summary>
        [EnumMember]
        SafePlcInterlock = 3038,

        /// <summary>
        /// {0} 阀门{1}{2}失败,原因{3}。
        /// 当阀门打开或关闭超时的时候发出该警告信息。
        /// </summary>
        [EnumMember]
        ValveOperationFail = 3039,

 

        /// <summary>
        /// 传盘条件不具备:{0}。
        /// 在点击"开始"按钮后,预检各Chamber门,是否忙要求。若不具备,抛出事件,传盘不能进行
        /// </summary>
        [EnumMember]
        TransferPrepareFailed = 4050,
 

 
 
 

        /// <summary>
        /// 报警事件:{0}。
        /// 警告范围4000~4000+,如果系统反馈的警告事件没有指定事件ID,或者ID编号范围有误,则使用当前默认的报警代码作为该事件的警告代码。
        /// </summary>
        [EnumMember]
        DefaultAlarm = 4093,
 
 
 
 

 

        /// <summary>
        /// {0} PLC运行失败,请检查PLC运行情况。
        /// PLC运行时需不断向C#程序发送心跳包消息,如果消息发送超时,则向GUI发送该错误消息。
        /// </summary>
        [EnumMember]
        PlcHeartBeatFail = 5027,
 
 

        /// <summary>
        /// TCP连接成功,IP:{0} Port:{1}
        /// 当TCP连接成功时,发出此消息事件
        /// </summary>
        [EnumMember]
        TCPConnSucess = 5120,

 

        [EnumMember]
        CommunicationError = 5125,

        [EnumMember]
        ToleranceAlarm = 5126,

        /// <summary>
        /// 温度计 {0} 坏了。
        /// 
        /// </summary>
        [EnumMember]
        TCBroken = 5128,

 


        /// <summary>
        /// Home操作开始。
        /// This event is posted right before home
        /// </summary>
        [EnumMember]
        HomeBegins = 5200,

        /// <summary>
        /// Home操作已成功完成。
        /// This event is posted right after home
        /// </summary>
        [EnumMember]
        HomeEnds = 5201,


        [EnumMember]
        HomeFailed = 5202,

 

        [EnumMember]
        ManualOpAccess = 5205,
        
        /// <summary>
        /// Read {0} Carrier ID, {1}
        ///  
        /// </summary>
        [EnumMember]
        CarrierIdRead = 5206,

        /// <summary>
        ///  Failed read {0} carrier ID
        ///  
        /// </summary>
        [EnumMember]
        CarrierIdReadFailed = 5207,


        /// <summary>
        ///  {0} wafer mapped, {1}
        ///  
        /// </summary>
        [EnumMember]
        SlotMapAvailable = 5208,

        //
        //
        //
        //WaferLeftPosition
        //WaferArrivePosition
        //WaferAlignStart
        //WaferAlignEnd
        //WaferLMRead
        //CarrierComplete
        //CarrierUnloaded
        //CarrierRemoved
        //LotProcessEnd


    }
}