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

namespace INT_PT002.DataStore
{
    public class Define
    {
        public delegate void EventHandlerAlarmStateChange(Define.E_TrackingAlarm alarm, string status);

        public enum E_EquipmentStatus
        {
            Stop = 0,
            Start = 1,
        }

        public enum E_FormStore
        {
            FormNone = 0,
            FormMainDisplay,
            FormMenu,
        }

        public enum E_EquipmentMode
        {
            Normal,
            Menu,
            IOTest,
            EquipmentTest,
        }

        public enum E_TopMenuStore
        {
            Recipe,
            User,
            Manual,
            Log,
            System,
        }
        public enum E_MenuRecipeStore
        {
            _0_None,
            _1_Setting,
        }
        public enum E_MenuUserStore
        {
            _0_None,
            _1_UserEditor,
            _2_GroupEditor,
        }
        public enum E_MenuManualStore
        {
            _0_None,
            _1_IoTest,
        }
        public enum E_MenuLogStore
        {
            _0_None,
            _1_Inspection,
            _2_History,
            _3_Alarm,
        }
        public enum E_MenuSystemStore
        {
            _0_None,
            _1_Information,
            _2_Equipment,
            _3_Ethernet,
            _4_Equipment1,
        }

        public enum E_DisplayModeStore
        { 
            MainDisplay,
            Recipe,
            UserEditor,
            UserMyPage,
            UserGroupEditor,
            IOTest,
            LogInspection,
            LogHistory,
            LogAlarm,
            Information,
            Equipment,
            Ethernet,
            Equipment1,
        }

        public enum E_CommMode
        {
            f0_None = 0,
            f1_Modbus,
        }

        public enum E_ProcessStatus
        {
            _0_None = 0,
            _1_Ready,
            _2_ProductEntry,
            _3_MoveToLeak,
            _4_MoveToCheck,
            _5_ChamberMerge,
            _6_VacuumStart,
            _7_VacuumHold,
            _8_Judgment,
            _9_VacuumBreak,
            _10_ChamberRelease,
            _11_MoveToReady,
        }

        public enum E_JudgmentStatus
        {
            None,
            Pass,
            Ng,
            Error,
        }

        public enum E_ResponseData
        {
            NAK = 0,
            ACK = 1,
        }

        public enum E_UpdateCheck
        {
            Fail,
            Success,
            NoUsbMomery,
            NoUpdateFolder,
            NoFile,
        }

        public enum E_LanguageID
        {
            Korean,
            English,
        }

        public enum E_MessageBoxIcon
        {
            None,
            Hand,
            Question,
            Exclamation,
            Asterisk,
        }

        public enum E_UserGroup
        {
            None = 0,
            Level1 = 1,
            Level2 = 2,
            Level3 = 3,
            Admin = 4,
            Developer = 5,
            NotLogin = 6,
            LogOut = 7,
        }

        public enum E_TrackingOperation
        {
            None,
            PowerOn,
            BootingComplete,
            EquipmentStart,
            EquipmentStop,
            Login,
            Logout,
            Zero,
            Clear,
            UserEditor,

            TryEthernetStart,
            TryEthernetStop,
            ClientConnect,
            ClientDisconnect,
            ServerON,
            ServerOFF,
        }

        public enum E_TrackingParameter
        {
            RecipeNumber,
            Pressure,

            Disp_STD,
            Disp_IPH1,
            Disp_IPH2,
            Disp_Min1,
            Disp_Min2,
            Disp_WaitingTime,
            Disp_OPT1,

            Diff_SEC,
            Diff_AVG,
            Diff_SUM,
            Diff_WaitingTime,

            P_reliefTime,
            P_HlodingTime,
            P_HoldingTime2,
            P_BreakTime,

            Etc_LcdDataPeriod,
            Etc_Chattering,
            Etc_CutWait,
            Etc_Buzzer,
            Etc_SbDiffFilter,
            Etc_EquipmentLane,
            Etc_CheckLane,

            M_Origin,
            M_Chamber1,
            M_Chamber2,
            M_Chamber3,
            M_Chamber4,
            M_Chamber5,
            M_Chamber6,
            M_Chamber7,
            M_Chamber8,
            M_Chamber9,
            M_Chamber10,

            ProductNo,

            TCPOpMode,
            TCPComMode,
            TCPLocalPort,
            TCPLocalIPConfig,
            TCPLocalIPAddress,
            TCPLocalSubnetMask,
            TCPLocalGateway,
            TCPServerIPAddress,
            TCPServerPort,
            Mod_Role,
            Mod_StartAddr,
        }

        public enum E_TrackingAlarm
        {
            None,
            a1_ServoEmergencyStop,
            a2_Servo1Alarm,
            a3_Servo2Alarm,
            a4_Servo1TorqueAlarm,
            a5_Servo2TorqueAlarm,
            a6_PressureError,
            a7_SensorBoard1Error,
            a8_SensorBoard2Error,
            a9_SensorBoard3Error,
            a10_SensorBoard4Error,
            a11_SensorBoard5Error,
            a12_SensorBoard6Error,
            a13_SensorBoard7Error,
            a14_SensorBoard8Error,
            a15_SensorBoard9Error,
            a16_SensorBoard10Error,
        }

        public enum E_TrackingType
        {
            Operation,
            Parameter,
            Alarm,
        }

        public enum E_DataType
        {
            None,
            History,
            Inspection,
            Alarm,
        }

        public enum E_ModbusFunction
        {
            _04_ReadInputRegister,
            _16_WriteMultipleRegister,
            _03_ReadHoldingRegister,
        }
    }
}
