|
@@ -81,6 +81,14 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public Visibility GripVisibility
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return Visibility.Collapsed;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public Visibility Foup2Visibility
|
|
|
{
|
|
|
get
|
|
@@ -172,7 +180,8 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
set
|
|
|
{
|
|
|
_PickSelectedModule = value;
|
|
|
- PickSlots = GetSlotsByModule(_PickSelectedModule);
|
|
|
+
|
|
|
+ PickSlots = GetSlotsByModule(_nameFromMap[_PickSelectedModule]);
|
|
|
PickSelectedSlot = 1;
|
|
|
NotifyOfPropertyChange("PickSelectedModule");
|
|
|
}
|
|
@@ -188,7 +197,7 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
set
|
|
|
{
|
|
|
_PlaceSelectedModule = value;
|
|
|
- PlaceSlots = GetSlotsByModule(_PlaceSelectedModule);
|
|
|
+ PlaceSlots = GetSlotsByModule(_nameFromMap[_PlaceSelectedModule]);
|
|
|
PlaceSelectedSlot = 1;
|
|
|
NotifyOfPropertyChange("PlaceSelectedModule");
|
|
|
}
|
|
@@ -550,6 +559,9 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
get { return GetWaferSize(PMBWaferSize); }
|
|
|
}
|
|
|
|
|
|
+ [Subscription("Buffer.WaferSize")]
|
|
|
+ public string BufferWaferSize { get; set; }
|
|
|
+
|
|
|
[Subscription("EFEM.SmallWafer")]
|
|
|
public int SmallWafer { get; set; }
|
|
|
|
|
@@ -825,17 +837,29 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private Dictionary<string, string> _nameFromMap = new Dictionary<string, string>() {
|
|
|
+ {"LP1","LP1" },
|
|
|
+ {"LP2", "LP2" },
|
|
|
+ {"Aligner","Aligner1" },
|
|
|
+ {"Aligner2","Aligner2" },
|
|
|
+ {"Cooling1","Cooling1" },
|
|
|
+ {"Cooling2","Cooling2" },
|
|
|
+ {"Cooling","Buffer" },
|
|
|
+ {"PMA","PMA" },
|
|
|
+ {"PMB","PMB" }
|
|
|
+ };
|
|
|
+
|
|
|
public EFEMViewModel()
|
|
|
{
|
|
|
this.DisplayName = "EFEM";
|
|
|
|
|
|
- _pickModules = new List<string>() { "LP1", "LP2", "Aligner1", "Aligner2", "Cooling1", "Cooling2", "Buffer" };
|
|
|
- _mapModules = new List<string>() { "LP1", "LP2", "Buffer" };
|
|
|
+ _pickModules = new List<string>() { "LP1", "LP2", "Aligner", "Aligner2", "Cooling1", "Cooling2", "Cooling" };
|
|
|
+ _mapModules = new List<string>() { "LP1", "LP2" };//new List<string>() { "LP1", "LP2", "Cooling" };
|
|
|
_extendModules = new List<string>() { "PMA", "PMB" };
|
|
|
var installModules = (string)QueryDataClient.Instance.Service.GetConfig($"System.InstalledModules");
|
|
|
if(!string.IsNullOrWhiteSpace(installModules))
|
|
|
{
|
|
|
- var delMods = _pickModules.Where(p=> !installModules.Contains(p)).ToList();
|
|
|
+ var delMods = _pickModules.Where(p=> !installModules.Contains(_nameFromMap[p])).ToList();
|
|
|
if(delMods != null && delMods.Count() > 0)
|
|
|
{
|
|
|
delMods.ForEach(p => {
|
|
@@ -855,6 +879,7 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
_RobotSpeeds = new List<string>() { "Full", "High", "Medium", "Low", "Home", "Jog" };
|
|
|
_HomeModules = new List<string>() { "EFEM", "AllAxes", "EE1", "EE2", "Theta", "X", "Z" };
|
|
|
|
|
|
+
|
|
|
PickSelectedModule = _pickModules[0];
|
|
|
PlaceSelectedModule = _pickModules[0];
|
|
|
ExtendSelectedModule = _extendModules[0];
|
|
@@ -1000,29 +1025,31 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
public void RobotPick()
|
|
|
{
|
|
|
if (MenuPermission != 3) return;
|
|
|
- string ws = PickSelectedModule == ModuleName.LP1.ToString() ? LP1WaferSize :
|
|
|
- PickSelectedModule == ModuleName.LP2.ToString() ? LP2WaferSize :
|
|
|
- PickSelectedModule == ModuleName.Aligner1.ToString() ? Aligner1WaferSize :
|
|
|
- PickSelectedModule == ModuleName.Aligner2.ToString() ? Aligner2WaferSize :
|
|
|
- PickSelectedModule == ModuleName.Cooling2.ToString() ? Cooling2WaferSize :
|
|
|
- PickSelectedModule == ModuleName.Cooling1.ToString() ? Cooling1WaferSize : throw new ArgumentOutOfRangeException();
|
|
|
+ string ws = _nameFromMap[PickSelectedModule] == ModuleName.LP1.ToString() ? LP1WaferSize :
|
|
|
+ _nameFromMap[PickSelectedModule] == ModuleName.LP2.ToString() ? LP2WaferSize :
|
|
|
+ _nameFromMap[PickSelectedModule] == ModuleName.Aligner1.ToString() ? Aligner1WaferSize :
|
|
|
+ _nameFromMap[PickSelectedModule] == ModuleName.Aligner2.ToString() ? Aligner2WaferSize :
|
|
|
+ _nameFromMap[PickSelectedModule] == ModuleName.Cooling2.ToString() ? Cooling2WaferSize :
|
|
|
+ _nameFromMap[PickSelectedModule] == ModuleName.Cooling1.ToString() ? Cooling1WaferSize :
|
|
|
+ _nameFromMap[PickSelectedModule] == ModuleName.Buffer.ToString() ? BufferWaferSize : throw new ArgumentOutOfRangeException();
|
|
|
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName.EfemRobot}.{EfemOperation.Pick}",
|
|
|
- PickSelectedModule, PickSelectedSlot - 1, ws, PickSelectedBlade);
|
|
|
+ _nameFromMap[PickSelectedModule], PickSelectedSlot - 1, ws, PickSelectedBlade);
|
|
|
}
|
|
|
|
|
|
public void RobotPlace()
|
|
|
{
|
|
|
if (MenuPermission != 3) return;
|
|
|
- string ws = PlaceSelectedModule == ModuleName.LP1.ToString() ? LP1WaferSize :
|
|
|
- PlaceSelectedModule == ModuleName.LP2.ToString() ? LP2WaferSize :
|
|
|
- PlaceSelectedModule == ModuleName.Aligner1.ToString() ? Aligner1WaferSize :
|
|
|
- PlaceSelectedModule == ModuleName.Aligner2.ToString() ? Aligner2WaferSize :
|
|
|
- PlaceSelectedModule == ModuleName.Cooling1.ToString() ? Cooling1WaferSize :
|
|
|
- PlaceSelectedModule == ModuleName.Cooling2.ToString() ? Cooling2WaferSize : throw new ArgumentOutOfRangeException();
|
|
|
+ string ws = _nameFromMap[PlaceSelectedModule] == ModuleName.LP1.ToString() ? LP1WaferSize :
|
|
|
+ _nameFromMap[PlaceSelectedModule] == ModuleName.LP2.ToString() ? LP2WaferSize :
|
|
|
+ _nameFromMap[PlaceSelectedModule] == ModuleName.Aligner1.ToString() ? Aligner1WaferSize :
|
|
|
+ _nameFromMap[PlaceSelectedModule] == ModuleName.Aligner2.ToString() ? Aligner2WaferSize :
|
|
|
+ _nameFromMap[PlaceSelectedModule] == ModuleName.Cooling1.ToString() ? Cooling1WaferSize :
|
|
|
+ _nameFromMap[PlaceSelectedModule] == ModuleName.Cooling2.ToString() ? Cooling2WaferSize :
|
|
|
+ _nameFromMap[PlaceSelectedModule] == ModuleName.Buffer.ToString() ? BufferWaferSize : throw new ArgumentOutOfRangeException();
|
|
|
|
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName.EfemRobot}.{EfemOperation.Place}",
|
|
|
- PlaceSelectedModule, PlaceSelectedSlot - 1, ws, PlaceSelectedBlade);
|
|
|
+ _nameFromMap[PlaceSelectedModule], PlaceSelectedSlot - 1, ws, PlaceSelectedBlade);
|
|
|
}
|
|
|
|
|
|
public void RobotExtend()
|
|
@@ -1040,7 +1067,7 @@ namespace VirgoUI.Client.Models.Platform.EFEM
|
|
|
public void RobotMap()
|
|
|
{
|
|
|
if (MenuPermission != 3) return;
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{MapSelectedModule}.{EfemOperation.Map}");
|
|
|
+ InvokeClient.Instance.Service.DoOperation($"{_nameFromMap[MapSelectedModule]}.{EfemOperation.Map}");
|
|
|
}
|
|
|
|
|
|
public void RobotGrip()
|