MET08DDUPSFS6420 - v2.43.4 - MethodBaseName
This commit is contained in:
@ -33,6 +33,7 @@ public class ProcessData : IProcessData
|
||||
public string AreaTotalMin { get; set; }
|
||||
public string AreaTotalStdDev { get; set; }
|
||||
public string Date { get; set; }
|
||||
public string Employee { get; set; }
|
||||
public string HazeAverageAvg { get; set; }
|
||||
public string HazeAverageMax { get; set; }
|
||||
public string HazeAverageMin { get; set; }
|
||||
@ -50,8 +51,8 @@ public class ProcessData : IProcessData
|
||||
public string LPDCountMin { get; set; }
|
||||
public string LPDCountStdDev { get; set; }
|
||||
public string Lot { get; set; }
|
||||
public string ParseErrorText { get; set; }
|
||||
public string PSN { get; set; }
|
||||
public string ParseErrorText { get; set; }
|
||||
public string RDS { get; set; }
|
||||
public string Reactor { get; set; }
|
||||
public string Recipe { get; set; }
|
||||
@ -249,6 +250,88 @@ public class ProcessData : IProcessData
|
||||
return toEol;
|
||||
}
|
||||
|
||||
public static Descriptor GetDescriptor(string text)
|
||||
{
|
||||
Descriptor result;
|
||||
string lot;
|
||||
string rds;
|
||||
string psn;
|
||||
string reactor;
|
||||
string employee;
|
||||
const string defaultPSN = "0000";
|
||||
const string defaultReactor = "00";
|
||||
const string defaultRDS = "000000";
|
||||
if (text.Length is 2 or 3)
|
||||
{
|
||||
lot = text;
|
||||
employee = text;
|
||||
rds = defaultRDS;
|
||||
psn = defaultPSN;
|
||||
reactor = defaultReactor;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove illegal characters \/:*?"<>| found in the Lot.
|
||||
lot = Regex.Replace(text, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||
string[] segments = lot.Split('-');
|
||||
if (segments.Length == 0)
|
||||
reactor = defaultReactor;
|
||||
else
|
||||
reactor = segments[0];
|
||||
if (segments.Length <= 1)
|
||||
rds = defaultRDS;
|
||||
else
|
||||
rds = segments[1];
|
||||
if (reactor.Length > 3)
|
||||
{
|
||||
rds = reactor;
|
||||
reactor = defaultReactor;
|
||||
}
|
||||
if (segments.Length <= 2)
|
||||
psn = defaultPSN;
|
||||
else
|
||||
psn = segments[2];
|
||||
if (segments.Length <= 3)
|
||||
employee = string.Empty;
|
||||
else
|
||||
employee = segments[3];
|
||||
}
|
||||
result = new(employee, lot, psn, rds, reactor);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void Set(ILogistics logistics)
|
||||
{
|
||||
string lot;
|
||||
string rds;
|
||||
string psn;
|
||||
string recipe;
|
||||
string reactor;
|
||||
string employee;
|
||||
ScanPast("Recipe ID:");
|
||||
recipe = GetBefore("LotID:");
|
||||
recipe = recipe.Replace(";", "");
|
||||
if (_Data.Contains("[]"))
|
||||
lot = GetBefore("[]");
|
||||
else if (_Data.Contains("[7]"))
|
||||
lot = GetBefore("[7]");
|
||||
else
|
||||
lot = GetBefore("[");
|
||||
Descriptor descriptor = GetDescriptor(lot);
|
||||
lot = descriptor.Lot;
|
||||
psn = descriptor.PSN;
|
||||
rds = descriptor.RDS;
|
||||
reactor = descriptor.Reactor;
|
||||
employee = descriptor.Employee;
|
||||
Lot = lot;
|
||||
PSN = psn;
|
||||
RDS = rds;
|
||||
Recipe = recipe;
|
||||
Reactor = reactor;
|
||||
Employee = employee;
|
||||
UniqueId = string.Format("{0}_{1}_{2}", logistics.JobID, lot, Path.GetFileNameWithoutExtension(logistics.ReportFullPath));
|
||||
}
|
||||
|
||||
private void ParseLotSummary(IFileRead fileRead, ILogistics logistics, string headerFileName, Dictionary<string, string> pages, Dictionary<string, List<Detail>> slots)
|
||||
{
|
||||
if (fileRead is null)
|
||||
@ -261,19 +344,7 @@ public class ProcessData : IProcessData
|
||||
_Data = pages[headerFileName];
|
||||
ScanPast("Date:");
|
||||
Date = GetToEOL();
|
||||
ScanPast("Recipe ID:");
|
||||
Recipe = GetBefore("LotID:");
|
||||
Recipe = Recipe.Replace(";", "");
|
||||
if (_Data.Contains("[]"))
|
||||
Lot = GetBefore("[]");
|
||||
else if (_Data.Contains("[7]"))
|
||||
Lot = GetBefore("[7]");
|
||||
else
|
||||
Lot = GetBefore("[");
|
||||
|
||||
// Remove illegal characters \/:*?"<>| found in the Lot.
|
||||
Lot = Regex.Replace(Lot, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||
|
||||
Set(logistics);
|
||||
// determine number of wafers and their slot numbers
|
||||
_Log.Debug(_Data.Substring(_I));
|
||||
string slot;
|
||||
@ -347,16 +418,6 @@ public class ProcessData : IProcessData
|
||||
SumOfDefectsStdDev = toEol4[6].Trim();
|
||||
HazeRegionStdDev = toEol4[7].Trim();
|
||||
HazeAverageStdDev = toEol4[8].Trim();
|
||||
|
||||
string[] segments = Lot.Split('-');
|
||||
if (segments.Length > 0)
|
||||
Reactor = segments[0];
|
||||
if (segments.Length > 1)
|
||||
RDS = segments[1];
|
||||
if (segments.Length > 2)
|
||||
PSN = segments[2];
|
||||
// Example of header.UniqueId is TENCOR1_33-289217-4693_201901300556533336
|
||||
UniqueId = string.Format("{0}_{1}_{2}", logistics.JobID, Lot, Path.GetFileNameWithoutExtension(logistics.ReportFullPath));
|
||||
}
|
||||
|
||||
private Detail ParseWaferSummary(string waferFileName, Dictionary<string, string> pages)
|
||||
|
Reference in New Issue
Block a user