|
|
@@ -73,11 +73,58 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
|
|
|
public void RecipeComplete(string module, string recipeName)
|
|
|
{
|
|
|
+
|
|
|
ModuleName moduleName = ModuleHelper.Converter(module);
|
|
|
- EV.Notify(PMRecipeComplete[moduleName], new SerializableDictionary<string, string>()
|
|
|
+ var wafers = WaferManager.Instance.GetWafers(ModuleName.PM1);
|
|
|
+ List<string> fdcwafers = new List<string>();
|
|
|
+ List<string> fdcCarriers = new List<string>();
|
|
|
+ List<string> fdcLotIds = new List<string>();
|
|
|
+ if (wafers != null)
|
|
|
+ {
|
|
|
+ foreach (var wafer in wafers)
|
|
|
+ {
|
|
|
+ if (!(fdcwafers.Contains(wafer.OriginCarrierID)))
|
|
|
+ {
|
|
|
+ fdcCarriers.Add(wafer.OriginCarrierID);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!(fdcwafers.Contains(wafer.WaferID)))
|
|
|
+ {
|
|
|
+ fdcwafers.Add(wafer.WaferID);
|
|
|
+ }
|
|
|
+ if (!(fdcwafers.Contains(wafer.LotId)))
|
|
|
+ {
|
|
|
+ fdcLotIds.Add(wafer.LotId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ SECsDataItem _fdccridlst = new SECsDataItem(SECsFormat.List);
|
|
|
+ foreach (var fdcid in fdcCarriers)
|
|
|
+ {
|
|
|
+ _fdccridlst.Add("CRID", fdcid, SECsFormat.Ascii);
|
|
|
+ }
|
|
|
+
|
|
|
+ SECsDataItem _fdcwaferList = new SECsDataItem(SECsFormat.List);
|
|
|
+ foreach (var fdcid in fdcwafers)
|
|
|
+ {
|
|
|
+ _fdcwaferList.Add("CRID", fdcid, SECsFormat.Ascii);
|
|
|
+ }
|
|
|
+
|
|
|
+ SECsDataItem _fdcLotIds = new SECsDataItem(SECsFormat.List);
|
|
|
+ foreach (var fdcid in fdcLotIds)
|
|
|
+ {
|
|
|
+ _fdcLotIds.Add("CRID", fdcid, SECsFormat.Ascii);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ EV.Notify(PMRecipeComplete[moduleName], new SerializableDictionary<string, object>()
|
|
|
{
|
|
|
{DVIDName.RecipeID, recipeName},
|
|
|
{DVIDName.StationName, module},
|
|
|
+ {"ProcessWaferIdList", _fdcwaferList},
|
|
|
+ {"ProcessCarrierIDList", _fdccridlst},
|
|
|
+ {"LotIdList", _fdcLotIds},
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -97,6 +144,7 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
var wafers = WaferManager.Instance.GetWafers(ModuleName.PM1);
|
|
|
List<string> fdcwafers = new List<string>();
|
|
|
List<string> fdcCarriers = new List<string>();
|
|
|
+ List<string> fdcLotIds = new List<string>();
|
|
|
if (wafers != null)
|
|
|
{
|
|
|
foreach (var wafer in wafers)
|
|
|
@@ -109,6 +157,10 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
if (!(fdcwafers.Contains(wafer.WaferID)))
|
|
|
{
|
|
|
fdcwafers.Add(wafer.WaferID);
|
|
|
+ }
|
|
|
+ if (!(fdcwafers.Contains(wafer.LotId)))
|
|
|
+ {
|
|
|
+ fdcLotIds.Add(wafer.LotId);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -122,6 +174,12 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
foreach (var fdcid in fdcwafers)
|
|
|
{
|
|
|
_fdcwaferList.Add("CRID", fdcid, SECsFormat.Ascii);
|
|
|
+ }
|
|
|
+
|
|
|
+ SECsDataItem _fdcLotIds = new SECsDataItem(SECsFormat.List);
|
|
|
+ foreach (var fdcid in fdcLotIds)
|
|
|
+ {
|
|
|
+ _fdcLotIds.Add("CRID", fdcid, SECsFormat.Ascii);
|
|
|
}
|
|
|
|
|
|
EV.Notify(PMRecipeStart[moduleName], new SerializableDictionary<string, object>()
|
|
|
@@ -130,6 +188,7 @@ namespace FurnaceRT.Equipments.PMs
|
|
|
{DVIDName.StationName, module},
|
|
|
{"ProcessWaferIdList", _fdcwaferList},
|
|
|
{"ProcessCarrierIDList", _fdccridlst},
|
|
|
+ {"LotIdList", _fdcLotIds},
|
|
|
});
|
|
|
}
|
|
|
|