using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace COMM
{

    public enum EALAMTYPE
    {
        그룹설정을따름,
        개별알람,
        개별알람자동,
        사용안함
    }

    public enum EALAMRAISETYPE
    {
        HIGH_OFF = 0,
        HIGH_ON = 1,
        LOW_OFF = 2,
        LOW_ON = 3,
        A1_ON = 4,
        A1_OFF = 5,
        A2_ON = 6,
        A2_OFF = 7,
        OVER_ON = 8,
        OVER_OFF = 9,
    }

    public enum eDataSource
    {
        Measure,
        SLT
    }
    public enum eVldResult
    {
        notset=  0,
        Fail ,
        Pass,
        Error,
        Offline,
        NoLotInfo,
        CalData,
    }
    public enum EJob
    {
        OfflineOff_BTM=0,
        OfflineOn_TOP,
        Local_BTM,
        Local_TOP,
        Remote,
        RepeatOff_BTM,
        RepeatOn_Top,
        None=999,
    }

    public enum ESMStep : byte
    {
        //예약영역(1)
        NOTSET = 0,
        INIT = 1,
        IDLE = 10,
        ZAGING, //Z축 모션 aging

        RUN = 50,
        TEST,

        RUN_MGZ_LOADER,
        RUN_MGZ_UNLOADER,

        RUN_PICKER_LOADER,
        RUN_PICKER_UNLOADER,

        RUN_PUSHER_LOADER,
        RUN_PUSHER_UNLOADER,


        RUN_TABLE,
        //RUN_TABLE_WITH_PICKER,


        RUN_MGZ_OUT_UNLOADER,
        RUN_MGZ_OUT_LOADER,
        RUN_MGZ_IN_UNLOADER,
        RUN_MGZ_IN_LOADER,




        RUN_SAVEDATA,

        //예약영역(2)
        EMERGENCY = 200,
        HOME_FULL = 201,
        HOME_DELAY,

        CLOSING = 250,
        CLOSEWAIT = 251,
        CLOSED = 252,

        //사용자 영역
        FINISH = 100,

        HOME_QUICK,
        PAUSE,
        WAITSTART,
        ERROR,
        HOME_CONFIRM,
    }

    public enum eStatusMesage : byte
    {
        LoaderMGZ = 0,
        UnLoaderMGZ,
        LoaderPicker,
        UnLoaderPicker,
        Sensor,
        Main,
    }
    public enum eILock
    {
        EMG = 0,
        PAUSE,
        HOMESET,
        //HOMEVALID,
        DOOR,
        DISABLE,
        Z_POS,
        Y_POS,
        X_POS,
        PCB,
        SAFTYAREA,

        LEFTPICKER,
        RIGHTPICKER,        
        LOADERPUSHER,
        STOPPER,
        UNLOADERPUSHER,
        PCBOUT,
        PRESSDOWN,
    }


    public enum eBuzzer
    {
        Alarm,
        Finish,
        All,
    }

    public enum eWorkMZ
    {
        Loader = 0,
        UnLoader
    }


    public enum eWaitType : byte
    {
        Normal = 0,
    }


    public enum StepResult
    {
        Wait = 0,
        Complete,
        Error,
        Cancel,
    }

    public enum eResult : byte
    {
        NOERROR,
        EMERGENCY,
        SAFTY,
        SETUP,
        HARDWARE,
        DEVELOP,
        VISION,
        SENSOR,
        SOFTWARE,
        MOTION,
        OPERATION,
        COMMUNICATION,
        TIMEOUT,
    }


    public enum eECode : byte
    {
        
        NOTSET = 0,
        EMERGENCY,
        NOMODELV,//작업모델
        NOMODELM,//모션모델
        DOORSAFTY,
        AREASAFTY,
        MOT_HSET,
        MOT_SVOFF,
        MOT_HSEARCH,
        MOT_CMD,
        HOME_TIMEOUT,
        AIRNOOUT,
        NOFUNCTION,
        DOOFF,//출력 off
        DOON,//출력 on
        DIOFF,//입력off
        DION,//입력 on
        MESSAGE_INFO,
        MESSAGE_ERROR,
        AZJINIT,
        USER_STOP,
        USER_STEP,
        SEP_MOT_HOME,
        SECS_NOTONLINE,        
        MODEL_MISSMATCH,

        /// <summary>
        /// 로더측 Y,Z가 정위치가 아닙니다.
        /// </summary>
        INITPOS_LOADER_MAGAZIN = 100,
        INITPOS_UNLOADER_MAGAZIN,
        INITPOS_LOADER_PICKER,
        INITPOS_UNLOADER_PICKER,

        INITPOS_LOADER_PUSHER,
        INITPOS_UNLOADER_PUSHER,

        TENKEY_STOP,
        UNLOADER_RAIL_PCBDETECT,
        LOADER_RAIL_PCBDETECT,

        UNLOADER_RAIL_OUT_PCBDETECT,
        LOADER_RAIL_OUT_PCBDETECT,

        LOADER_MGZ_OUT_FULL,
        UNLOADER_MGZ_OUT_FULL,

        LOADER_RAIL_EMPTY,
        UNLOADER_RAIL_EMPTY,

        LOADER_PCBRAILOUT,
        UNLOADER_PCBRAILOUT,

        LOADER_MGZ_DETECT,
        UNLOADER_MGZ_DETECT,
        LOADER_MGZ_CLAMPDOWN,
        UNLOADER_MGZ_CLAMPDOWN,

        LOADER_MGZ_CLAMPUP,
        UNLOADER_MGZ_CLAMPUP,

        LOADER_PICKER_PCBDETECT,
        UNLOADER_PICKER_PCBDETECT,

        Y_MGZ_LOADER_POSITION,
        Y_MGZ_UNLOADER_POSITION,

        LOADER_PUSHER_NOBACK,
        LOADER_OVERLOAD,
        UNLOADER_OVERLOAD,

        SIDE_CLAMP_NOTOPEN,
        ENDCAP_LOADER,
        TABLE_NOT_READY,
        TABLE_VAC_ERROR,
        NOBARCODE,

        LOADER_MGZ_CLAMPDOWN_HOME,
        UNLOADER_MGZ_CLAMPDOWN_HOME,
        ENDCAP_UNLOADER,

        LOADER_MZ_NOTREADY,
        UNLOADER_MZ_NOTREADY,
        STRIP_NOT_DETECT,

        LOADER_MGZ_NOT_DETECT,
        UNLOADER_MGZ_NOT_DETECT,
        DOORSAFTY_REAL,
        AREASAFTY_REAL,
        MOT_POWEROFF,
        MOT_ALM,

        LOADER_RAIL_NOPCB,
        UNLOADER_RAIL_NOPCB,

        LOADER_RAIL_IMCOMPLETE_PCB,
        UNLOADER_RAIL_IMCOMPLETE_NOPCB,

        SECS_RECVLOT_ERROR,
        SECS_RECVLOT_ERROR_FORMAT,

        GETTHICK_FROMDB,
        LOWAIR,

        LOADER_MGZ_CLAMPSENSOR_ERROR,
        UNLOADER_MGZ_CLAMPSENSOR_ERROR,


        CREDIT = 255,

    }

    public enum eNextStep : byte
    {
        NOTHING = 0,
        PAUSE,
        PAUSENOMESAGE,
        ERROR
    }

}
