using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.Common.Equipment
{
///
/// 在框架中,Module指具备放置Wafer的单元
///
[DataContract]
[Serializable]
public enum ModuleName
{
[EnumMember]
System = 0,
[EnumMember]
LP1,
[EnumMember]
LP2,
[EnumMember]
LP3,
[EnumMember]
LP4,
[EnumMember]
LP5,
[EnumMember]
LP6,
[EnumMember]
LP7,
[EnumMember]
LP8,
[EnumMember]
LP9,
[EnumMember]
LP10,
//robot modules
//[EnumMember]
//Robot,
[EnumMember]
VaccumRobot,
[EnumMember]
LoadRobot,
[EnumMember]
EfemRobot,
//[EnumMember]
//TMRobot,
//upenders
[EnumMember]
Upender,
//efem
[EnumMember]
EFEM,
//aligners
[EnumMember]
Aligner,
[EnumMember]
Aligner1,
[EnumMember]
Aligner2,
//load locks
[EnumMember]
LL1,
[EnumMember]
LL2,
[EnumMember]
LL3,
[EnumMember]
LL4,
//load locks
[EnumMember]
LLA,
[EnumMember]
LLB,
[EnumMember]
LLC,
[EnumMember]
LLD,
[EnumMember]
VCE1,
[EnumMember]
VCE2,
//transfer modules
[EnumMember]
TM,
//buffers
[EnumMember]
Buffer,
[EnumMember]
Cooling1,
[EnumMember]
Cooling2,
//[EnumMember]
//Buffer1,
//[EnumMember]
//Buffer2,
[EnumMember]
Buffer3,
//PMs
[EnumMember]
PM1,
[EnumMember]
PM2,
[EnumMember]
PM3,
[EnumMember]
PM4,
[EnumMember]
PM5,
[EnumMember]
PM6,
[EnumMember]
PM7,
[EnumMember]
PM8,
[EnumMember]
Robot,
[EnumMember]
PMA,
[EnumMember]
PMB,
}
public static class ModuleHelper
{
public static bool IsBuffer(ModuleName unit)
{
return false;
}
public static bool IsLoadPort(ModuleName unit)
{
return unit == ModuleName.LP1
|| unit == ModuleName.LP2
|| unit == ModuleName.LP3
|| unit == ModuleName.LP4
|| unit == ModuleName.LP5
|| unit == ModuleName.LP6
|| unit == ModuleName.LP7
|| unit == ModuleName.LP8
|| unit == ModuleName.LP9
|| unit == ModuleName.LP10;
}
public static bool IsPm(string unit)
{
return IsPm(ModuleHelper.Converter(unit));
}
public static bool IsPm(ModuleName unit)
{
return unit == ModuleName.PM1
|| unit == ModuleName.PM2
|| unit == ModuleName.PM3
|| unit == ModuleName.PM4
|| unit == ModuleName.PM5
|| unit == ModuleName.PM6
|| unit == ModuleName.PM7
|| unit == ModuleName.PM8
|| unit == ModuleName.PMA
|| unit == ModuleName.PMB;
}
public static bool IsLoadLock(string unit)
{
return IsLoadLock(ModuleHelper.Converter(unit));
}
public static bool IsAligner(ModuleName unit)
{
return unit == ModuleName.Aligner || unit == ModuleName.Aligner1 || unit == ModuleName.Aligner2 ;
}
public static bool IsCooling(ModuleName unit)
{
return unit == ModuleName.Cooling1 || unit == ModuleName.Cooling2;
}
public static bool IsLoadLock(ModuleName unit)
{
return unit == ModuleName.LLA
|| unit == ModuleName.LLB
|| unit == ModuleName.LL1
|| unit == ModuleName.LL2
|| unit == ModuleName.LL3
|| unit == ModuleName.LL4
|| unit == ModuleName.LLC
|| unit == ModuleName.LLD;
}
public static string GetAbbr(ModuleName module)
{
switch (module)
{
case ModuleName.Aligner: return "PA";
case ModuleName.Robot: return "RB";
default: return module.ToString();
}
}
public static ModuleName Converter(string module)
{
return (ModuleName) Enum.Parse(typeof(ModuleName), module);
}
///
///
///
/// 0 based
///
public static ModuleName GetLoadPort(int index)
{
ModuleName[] lps = new ModuleName[]
{
ModuleName.LP1, ModuleName.LP2, ModuleName.LP3, ModuleName.LP4, ModuleName.LP5,
ModuleName.LP6, ModuleName.LP7, ModuleName.LP8, ModuleName.LP9, ModuleName.LP10,
};
return lps[index];
}
}
public class ModuleNameString
{
public const string System = "System";
public const string LDULD = "LDULD";
public const string BufferOut = "BufferOut";
public const string BufferIn = "BufferIn";
public const string Dryer = "Dryer";
public const string QDR = "QDR";
public const string Robot = "Robot";
public const string Handler = "Handler";
public static ModuleName ToEnum(string value)
{
return (ModuleName)Enum.Parse(typeof(ModuleName), value, true);
}
}
}