using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aitex.Core.Common; using Aitex.Sorter.Common; using MECF.Framework.Common.Equipment; namespace JetVirgoPM.Devices { public enum CommunicationType { Analogue, RS232, Ethernet } //public enum BusyFlag { Idle, Busy, Error } public enum OnlineFlag { Offline, Online } public enum AutoFlag { Manual, Auto } public enum ActionStatus { Unknown, Pending, SendCmd, RecACK, RecINF, Completed, PartialDone, AllCompleted, Timeout, Error, Cancel } public enum LightType { RED, BLUE, GREEN, YELLOW, WHITE, BUZZER1 } public enum LightStatus { OFF, ON, BLINK } public class Position { public ModuleName Module { get; set; } public byte Slot { get; set; } } public enum ExtendPos { //GetReady, GetTarget, GetBack, PutReady, PutTarget, PutBack G1, GB, G4, P1, PB, P4 } /// /// Wafer transferring argument /// class MoveParam { public Position SrcPos { get; } = new Position(); public Position DestPos { get; } = new Position(); public ModuleName SrcModule => SrcPos.Module; public byte SrcSlot => SrcPos.Slot; public ModuleName DestModule => DestPos.Module; public byte DestSlot => DestPos.Slot; public WaferSize WaferSize { get; set; } public Hand Arm { get; } public MoveParam(Position src, Position dest) { this.SrcPos = src; this.DestPos = dest; } public MoveParam(ModuleName srcMod, byte srcSlot, ModuleName destMod, byte destSlot, Hand arm, WaferSize ws) { SrcPos.Module = srcMod; SrcPos.Slot = srcSlot; DestPos.Module = destMod; DestPos.Slot = destSlot; Arm = arm; WaferSize = ws; } public MoveParam(int p0, int p1, int p2, int p3, int arm, int ws) { SrcPos.Module = (ModuleName)p0; SrcPos.Slot = (byte)p1; SrcPos.Module = (ModuleName)p2; SrcPos.Slot = (byte)p3; Arm = (Hand)arm; WaferSize = (WaferSize)ws; } } class SwapParam { public Position SrcPos { get; } = new Position(); public Position DestPos { get; } = new Position(); public ModuleName SrcModule => SrcPos.Module; public byte SrcSlot => SrcPos.Slot; public ModuleName DestModule => DestPos.Module; public byte DestSlot => DestPos.Slot; public WaferSize WaferSize { get; set; } public Hand Arm { get; } public SwapParam(Position src, Position dest) { this.SrcPos = src; this.DestPos = dest; } public SwapParam(ModuleName srcMod, byte srcSlot, ModuleName destMod, byte destSlot, Hand arm, WaferSize ws) { SrcPos.Module = srcMod; SrcPos.Slot = srcSlot; DestPos.Module = destMod; DestPos.Slot = destSlot; Arm = arm; WaferSize = ws; } public SwapParam(int p0, int p1, int p2, int p3, int arm, int ws) { SrcPos.Module = (ModuleName)p0; SrcPos.Slot = (byte)p1; SrcPos.Module = (ModuleName)p2; SrcPos.Slot = (byte)p3; Arm = (Hand)arm; WaferSize = (WaferSize)ws; } } class ExtendParam { public ModuleName Module { get; set; } public ExtendPos Pos { get; set; } public Hand Arm { get; set; } = Hand.Blade1; } static class Extension { public static MovePath Path(this MoveParam mp) { return MovePath.LPToPM; } } enum MovePath { LPToPM, PMToLP } interface IHardwareMessage { string RawString { get; set; } } public enum GeneratorMFG { AdTec = 1, Comet = 2 } public enum MatchMFG { AdTec = 1, MKS = 2, RevTec = 3, } public enum ChillerMFG { SMC = 1, AIRSYS = 2, } public enum ChillerSetupOp { NoShareSingleChiller, ShareSingleChiller, } public enum DryPumpMFG { SKY = 1, Edwards = 2 } public enum MsgDirection { Unknown, To, From } }