namespace MainShell.Hardware
{
    public static class DeviceIoNames
    {
        public static class WZ
        {
            public const string StartButton = "PG.WZ.StartButton";
            public const string StopButton = "PG.WZ.StopButton";
            public const string ResetButton = "PG.WZ.ResetButton";
            public const string EmergencyStopButton = "PG.WZ.EmergencyStopButton";
            public const string BlueButton = "PG.WZ.BlueButton";
            public const string SafetyDoor1Closed = "PG.WZ.SafetyDoor1Closed";
            public const string SafetyDoor2Closed = "PG.WZ.SafetyDoor2Closed";
            public const string SafetyDoor3Closed = "PG.WZ.SafetyDoor3Closed";
            public const string SafetyDoor4Closed = "PG.WZ.SafetyDoor4Closed";
            public const string SecurityDoorShield = "PG.WZ.SecurityDoorShield";
            public const string StartButtonLight = "PG.WZ.StartButtonLight";
            public const string StopButtonLight = "PG.WZ.StopButtonLight";
            public const string ResetButtonLight = "PG.WZ.ResetButtonLight";
            public const string BlueButtonLight = "PG.WZ.BlueButtonLight";
            public const string WorkLight1 = "PG.WZ.WorkLight1";
            public const string StackLightRed = "PG.WZ.StackLightRed";
            public const string StackLightYellow = "PG.WZ.StackLightYellow";
            public const string StackLightGreen = "PG.WZ.StackLightGreen";
            public const string StackLightBlue = "PG.WZ.StackLightBlue";
            public const string BuzzerAct = "PG.WZ.BuzzerAct";
            public const string SafetyDoor1Open = "PG.WZ.SafetyDoor1Open";
            public const string SafetyDoor2Open = "PG.WZ.SafetyDoor2Open";
            public const string SafetyDoor3Open = "PG.WZ.SafetyDoor3Open";
            public const string SafetyDoor4Open = "PG.WZ.SafetyDoor4Open";
        }

        public static class Stage
        {
            public const string ToolSetterSignal = "PG.Stage.ToolSetterSignal";
            public const string SubstrateInPlace = "PG.Stage.SubstrateInPlace";
            public const string LifterCyl1WorkPos = "PG.Stage.LifterCyl1WorkPos";
            public const string LifterCyl1HomePos = "PG.Stage.LifterCyl1HomePos";
            public const string LifterCyl2WorkPos = "PG.Stage.LifterCyl2WorkPos";
            public const string LifterCyl2HomePos = "PG.Stage.LifterCyl2HomePos";
            public const string LifterCyl1Act = "PG.Stage.LifterCyl1Act";
            public const string LifterCyl2Act = "PG.Stage.LifterCyl2Act";
            public const string BreakingTheVacuum1 = "PG.Stage.BreakingTheVacuum1";
            public const string BreakingTheVacuum2 = "PG.Stage.BreakingTheVacuum2";
            public const string BreakingTheVacuum3 = "PG.Stage.BreakingTheVacuum3";
            public const string BreakingTheVacuum4 = "PG.Stage.BreakingTheVacuum4";
            public const string Vacuum1 = "PG.Stage.Vacuum1";
            public const string Vacuum2 = "PG.Stage.Vacuum2";
            public const string Vacuum3 = "PG.Stage.Vacuum3";
            public const string Vacuum4 = "PG.Stage.Vacuum4";
        }

        public static class WS
        {
            public const string ThetaClampCyl1WorkPos = "PG.WS.ThetaClampCyl1WorkPos";
            public const string ThetaClampCyl1HomePos = "PG.WS.ThetaClampCyl1HomePos";
            public const string ThetaClampCyl2WorkPos = "PG.WS.ThetaClampCyl2WorkPos";
            public const string ThetaClampCyl2HomePos = "PG.WS.ThetaClampCyl2HomePos";
            public const string ThetaClampCyl3WorkPos = "PG.WS.ThetaClampCyl3WorkPos";
            public const string ThetaClampCyl3HomePos = "PG.WS.ThetaClampCyl3HomePos";
            public const string ThetaClampCyl4WorkPos = "PG.WS.ThetaClampCyl4WorkPos";
            public const string ThetaClampCyl4HomePos = "PG.WS.ThetaClampCyl4HomePos";
            public const string ThetaTrayPresentSensor1 = "PG.WS.ThetaTrayPresentSensor1";
            public const string ThetaTrayPresentSensor2 = "PG.WS.ThetaTrayPresentSensor2";
            public const string ThetaTrayPresentSensor3 = "PG.WS.ThetaTrayPresentSensor3";
            public const string ThetaTrayPresentSensor4 = "PG.WS.ThetaTrayPresentSensor4";
            public const string BondHead1InPlace = "PG.WS.BondHead1InPlace";
            public const string BondHead2InPlace = "PG.WS.BondHead2InPlace";
            public const string BondHead3InPlace = "PG.WS.BondHead3InPlace";
            public const string BondHead4InPlace = "PG.WS.BondHead4InPlace";
            public const string ThetaClampCylAct = "PG.WS.ThetaClampCylAct";
            public const string ThetaBrakePressCylAct = "PG.WS.ThetaBrakePressCylAct";
        }

        public static class WEU
        {
            public const string Z11MaterialSensor1 = "PG.WEU.Z11MaterialSensor1";
            public const string Z11MaterialSensor2 = "PG.WEU.Z11MaterialSensor2";
            public const string Z12MaterialSensor3 = "PG.WEU.Z12MaterialSensor3";
            public const string Z12MaterialSensor4 = "PG.WEU.Z12MaterialSensor4";
            public const string IonBarAct1 = "PG.WEU.IonBarAct1";
            public const string IonBarAct2 = "PG.WEU.IonBarAct2";
            public const string TrayBreakVacuum1 = "PG.WEU.TrayBreakVacuum1";
            public const string TrayBreakVacuum2 = "PG.WEU.TrayBreakVacuum2";
            public const string TrayVacuum1 = "PG.WEU.TrayVacuum1";
            public const string TrayVacuum2 = "PG.WEU.TrayVacuum2";
        }

        public static class CV
        {
            public const string UpperInletSensor = "PG.CV.UpperInletSensor";
            public const string UpperInPlaceSensor = "PG.CV.UpperInPlaceSensor";
            public const string LowerOutletSensor = "PG.CV.LowerOutletSensor";
            public const string LowerInPlaceSensor = "PG.CV.LowerInPlaceSensor";
            public const string IonWindRodAlarmDetection = "PG.CV.IonWindRodAlarmDetection";
            public const string IonBarAct = "PG.CV.IonBarAct";
        }

        public static class General
        {
            public const string PhaseLossSensor = "PG.General.PhaseLossSensor";
            public const string SafetyCircuitStatus1 = "PG.General.SafetyCircuitStatus1";
            public const string SafetyCircuitStatus2 = "PG.General.SafetyCircuitStatus2";
        }

        public static class EFEM
        {
            public const string IonWindRodAlarmDetection1 = "PG.EFEM.IonWindRodAlarmDetection1";
            public const string IonWindRodAlarmDetection2 = "PG.EFEM.IonWindRodAlarmDetection2";
            public const string WorkLight1 = "PG.EFEM.WorkLight1";
        }

        public static class AxisZ
        {
            public const string Z1GuideRailBrake = "PG.AxisZ.Z1GuideRailBrake";
            public const string Z3CameraAirCooling = "PG.AxisZ.Z3CameraAirCooling";
            public const string Z5CameraAirCooling = "PG.AxisZ.Z5CameraAirCooling";
            public const string Z10CameraAirCooling = "PG.AxisZ.Z10CameraAirCooling";
            public const string Z2BondHeadAirCooling = "PG.AxisZ.Z2BondHeadAirCooling";
            public const string Z2BondHeadBreakVacuum = "PG.AxisZ.Z2BondHeadBreakVacuum";
            public const string Z2BondHeadVacuum = "PG.AxisZ.Z2BondHeadVacuum";
        }

        public static class SubstrateLoad
        {
            public const string SensorIn = "LG.SubstrateLoad.SensorIn";
            public const string TrackMotorRun = "LG.SubstrateLoad.TrackMotorRun";
            public const string HomeChecked = "LG.SubstrateLoad.HomeChecked";
            public const string VacuumOk = "LG.SubstrateLoad.VacuumOk";
        }

        public static class ChipLoad
        {
            public const string SensorIn = "LG.ChipLoad.SensorIn";
            public const string TrackMotorRun = "LG.ChipLoad.TrackMotorRun";
            public const string HomeChecked = "LG.ChipLoad.HomeChecked";
            public const string VacuumOk = "LG.ChipLoad.VacuumOk";
        }

        public static class Cylinder
        {
            public const string ClampExtended = "LG.Cylinder.Clamp.Extended";
            public const string ClampRetracted = "LG.Cylinder.Clamp.Retracted";
            public const string StopperExtended = "LG.Cylinder.Stopper.Extended";
            public const string StopperRetracted = "LG.Cylinder.Stopper.Retracted";
            public const string PressExtended = "LG.Cylinder.Press.Extended";
            public const string PressRetracted = "LG.Cylinder.Press.Retracted";
            public const string PressSafeSensor = "LG.Cylinder.Press.SafeSensor";
            public const string MultiExtended = "LG.Cylinder.Multi.Extended";
            public const string MultiRetracted = "LG.Cylinder.Multi.Retracted";
        }
    }

    public static class DeviceIoIds
    {
        public static class WZ
        {
            public const int StartButton = 0;
            public const int StopButton = 1;
            public const int ResetButton = 2;
            public const int EmergencyStopButton = 3;
            public const int BlueButton = 4;
            public const int SafetyDoor1Closed = 4;
            public const int SafetyDoor2Closed = 5;
            public const int SafetyDoor3Closed = 6;
            public const int SafetyDoor4Closed = 7;
            public const int SecurityDoorShield = 8;
            public const int StartButtonLight = 0;
            public const int StopButtonLight = 1;
            public const int ResetButtonLight = 2;
            public const int BlueButtonLight = 3;
            public const int WorkLight1 = 4;
            public const int StackLightRed = 8;
            public const int StackLightYellow = 9;
            public const int StackLightGreen = 10;
            public const int StackLightBlue = 11;
            public const int BuzzerAct = 12;
            public const int SafetyDoor1Open = 1;
            public const int SafetyDoor2Open = 2;
            public const int SafetyDoor3Open = 3;
            public const int SafetyDoor4Open = 4;
        }

        public static class Stage
        {
            public const int ToolSetterSignal = 5;
            public const int SubstrateInPlace = 6;
            public const int LifterCyl1WorkPos = 7;
            public const int LifterCyl1HomePos = 8;
            public const int LifterCyl2WorkPos = 9;
            public const int LifterCyl2HomePos = 10;
            public const int LifterCyl1Act = 10;
            public const int LifterCyl2Act = 11;
            public const int BreakingTheVacuum1 = 0;
            public const int BreakingTheVacuum2 = 1;
            public const int BreakingTheVacuum3 = 2;
            public const int BreakingTheVacuum4 = 3;
            public const int Vacuum1 = 7;
            public const int Vacuum2 = 8;
            public const int Vacuum3 = 9;
            public const int Vacuum4 = 10;
        }

        public static class WS
        {
            public const int ThetaClampCyl1WorkPos = 11;
            public const int ThetaClampCyl1HomePos = 12;
            public const int ThetaClampCyl2WorkPos = 13;
            public const int ThetaClampCyl2HomePos = 14;
            public const int ThetaClampCyl3WorkPos = 15;
            public const int ThetaClampCyl3HomePos = 0;
            public const int ThetaClampCyl4WorkPos = 1;
            public const int ThetaClampCyl4HomePos = 2;
            public const int ThetaTrayPresentSensor1 = 3;
            public const int ThetaTrayPresentSensor2 = 4;
            public const int ThetaTrayPresentSensor3 = 5;
            public const int ThetaTrayPresentSensor4 = 6;
            public const int BondHead1InPlace = 7;
            public const int BondHead2InPlace = 8;
            public const int BondHead3InPlace = 9;
            public const int BondHead4InPlace = 10;
            public const int ThetaClampCylAct = 8;
            public const int ThetaBrakePressCylAct = 9;
        }

        public static class WEU
        {
            public const int Z11MaterialSensor1 = 11;
            public const int Z11MaterialSensor2 = 12;
            public const int Z12MaterialSensor3 = 13;
            public const int Z12MaterialSensor4 = 14;
            public const int IonBarAct1 = 6;
            public const int IonBarAct2 = 7;
            public const int TrayBreakVacuum1 = 4;
            public const int TrayBreakVacuum2 = 5;
            public const int TrayVacuum1 = 11;
            public const int TrayVacuum2 = 12;
        }

        public static class CV
        {
            public const int UpperInletSensor = 0;
            public const int UpperInPlaceSensor = 1;
            public const int LowerOutletSensor = 2;
            public const int LowerInPlaceSensor = 3;
            public const int IonWindRodAlarmDetection = 13;
            public const int IonBarAct = 5;
        }

        public static class General
        {
            public const int PhaseLossSensor = 10;
            public const int SafetyCircuitStatus1 = 11;
            public const int SafetyCircuitStatus2 = 12;
        }

        public static class EFEM
        {
            public const int IonWindRodAlarmDetection1 = 14;
            public const int IonWindRodAlarmDetection2 = 15;
            public const int WorkLight1 = 6;
        }

        public static class AxisZ
        {
            public const int Z1GuideRailBrake = 0;
            public const int Z3CameraAirCooling = 1;
            public const int Z5CameraAirCooling = 2;
            public const int Z10CameraAirCooling = 3;
            public const int Z2BondHeadAirCooling = 4;
            public const int Z2BondHeadBreakVacuum = 6;
            public const int Z2BondHeadVacuum = 13;
        }

        public static class SubstrateLoad
        {
            public const int SensorIn = 1001;
            public const int TrackMotorRun = 1002;
            public const int HomeChecked = 1003;
            public const int VacuumOk = 1004;
        }

        public static class ChipLoad
        {
            public const int SensorIn = 1101;
            public const int TrackMotorRun = 1102;
            public const int HomeChecked = 1103;
            public const int VacuumOk = 1104;
        }

        public static class Cylinder
        {
            public const int ClampExtendCmd = 1701;
            public const int ClampExtended = 1702;
            public const int ClampRetracted = 1703;
            public const int StopperExtendCmd = 1711;
            public const int StopperRetractCmd = 1712;
            public const int StopperExtended = 1713;
            public const int StopperRetracted = 1714;
            public const int PressExtendCmd = 1721;
            public const int PressExtended = 1722;
            public const int PressRetracted = 1723;
            public const int PressSafeSensor = 1724;
            public const int MultiOutput1 = 1731;
            public const int MultiOutput2 = 1732;
            public const int MultiOutput3 = 1733;
            public const int MultiOutput4 = 1734;
            public const int MultiExtended = 1735;
            public const int MultiRetracted = 1736;
        }
    }

    public static class DeviceCylinderNames
    {
        public static class WS
        {
            public const string ThetaClamp = "WS θ夹紧气缸";
            public const string ThetaBrakePress = "WS θ刹车压紧气缸";
        }

        public static class Stage
        {
            public const string LifterSync = "Stage 顶升同步气缸";
        }

        public const string Clamp = "夹爪气缸";
        public const string Stopper = "挡停气缸";
        public const string Press = "压料气缸";
        public const string Multi = "多联气缸";
    }
}
