Compare commits
4 Commits
master
...
ea0c145d4a
Author | SHA1 | Date | |
---|---|---|---|
ea0c145d4a | |||
72cc064f56 | |||
ec90b4fbbd | |||
ddf12e5ec0 |
39
Adaptation/.vscode/launch.json
vendored
39
Adaptation/.vscode/launch.json
vendored
@ -1,10 +1,43 @@
|
|||||||
{
|
{
|
||||||
"configurations": [
|
"configurations": [
|
||||||
|
{
|
||||||
|
"mode": "debug",
|
||||||
|
"name": "Go launch file",
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "go"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "node Launch Current Opened File",
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"internalConsoleOptions": "neverOpen",
|
||||||
|
"name": "Debug File",
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"stopOnEntry": false,
|
||||||
|
"type": "bun",
|
||||||
|
"watchMode": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"internalConsoleOptions": "neverOpen",
|
||||||
|
"name": "Run File",
|
||||||
|
"noDebug": true,
|
||||||
|
"program": "${file}",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "bun",
|
||||||
|
"watchMode": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": ".NET Core Attach",
|
"name": ".NET Core Attach",
|
||||||
"type": "coreclr",
|
"processId": 32760,
|
||||||
"request": "attach",
|
"request": "attach",
|
||||||
"processId": 13604
|
"type": "coreclr"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -203,10 +203,11 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
|
@ -110,7 +110,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, List<txt.Description> descriptions, Test[] tests)
|
private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions, Test[] tests)
|
||||||
{
|
{
|
||||||
string duplicateFile;
|
string duplicateFile;
|
||||||
bool isDummyRun = false;
|
bool isDummyRun = false;
|
||||||
@ -143,7 +143,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
else
|
else
|
||||||
duplicateFile = Path.Combine(duplicateDirectory, $"{$"Viewer {subgroupId}".TrimEnd()} {fileName.Replace("Viewer", string.Empty)}");
|
duplicateFile = Path.Combine(duplicateDirectory, $"{$"Viewer {subgroupId}".TrimEnd()} {fileName.Replace("Viewer", string.Empty)}");
|
||||||
string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
|
string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
|
||||||
FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), subgroupId, weekOfYear);
|
FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, descriptions.First(), subgroupId, weekOfYear);
|
||||||
}
|
}
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
{
|
{
|
||||||
@ -155,14 +155,15 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
SaveOpenInsightFile(reportFullPath, dateTime, processDataStandardFormat, descriptions, tests);
|
SaveOpenInsightFile(reportFullPath, dateTime, descriptions, tests);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
@ -325,74 +325,18 @@ public class FromIQS
|
|||||||
return new(result, count, commandText);
|
return new(result, count, commandText);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetJson(Logistics logistics, ProcessDataStandardFormat processDataStandardFormat, txt.Description description)
|
internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, txt.Description description, long? subGroupId, string weekOfYear)
|
||||||
{
|
{
|
||||||
string result;
|
|
||||||
StringBuilder stringBuilder = new();
|
|
||||||
var @object = new
|
|
||||||
{
|
|
||||||
description.MesEntity,
|
|
||||||
description.Employee,
|
|
||||||
// description.Layer,
|
|
||||||
description.PSN,
|
|
||||||
description.RDS,
|
|
||||||
description.Reactor,
|
|
||||||
description.Recipe,
|
|
||||||
// description.Zone,
|
|
||||||
logistics.DateTimeFromSequence.Ticks
|
|
||||||
};
|
|
||||||
string[] pair;
|
|
||||||
string safeValue;
|
|
||||||
string[] segments;
|
|
||||||
string serializerValue;
|
|
||||||
foreach (string line in processDataStandardFormat.Logistics)
|
|
||||||
{
|
|
||||||
segments = line.Split('\t');
|
|
||||||
if (segments.Length < 2)
|
|
||||||
continue;
|
|
||||||
segments = segments[1].Split(';');
|
|
||||||
_ = stringBuilder.Append('{');
|
|
||||||
foreach (string segment in segments)
|
|
||||||
{
|
|
||||||
pair = segment.Split('=');
|
|
||||||
if (pair.Length != 2 || pair[0].Length < 3)
|
|
||||||
continue;
|
|
||||||
serializerValue = JsonSerializer.Serialize(pair[1]);
|
|
||||||
safeValue = serializerValue.Substring(1, serializerValue.Length - 2);
|
|
||||||
_ = stringBuilder.Append('"').Append(pair[0].Substring(2)).Append('"').Append(':').Append('"').Append(safeValue).Append('"').Append(',');
|
|
||||||
}
|
|
||||||
if (stringBuilder.Length > 0)
|
|
||||||
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
|
||||||
_ = stringBuilder.Append('}').Append(',');
|
|
||||||
}
|
|
||||||
if (stringBuilder.Length > 0)
|
|
||||||
_ = stringBuilder.Remove(stringBuilder.Length - 1, 1);
|
|
||||||
_ = stringBuilder.Append(']').Append('}');
|
|
||||||
_ = stringBuilder.Insert(0, ",\"Logistics\":[");
|
|
||||||
string json = JsonSerializer.Serialize(@object);
|
|
||||||
_ = stringBuilder.Insert(0, json.Substring(0, json.Length - 1));
|
|
||||||
JsonElement? jsonElement = JsonSerializer.Deserialize<JsonElement>(stringBuilder.ToString());
|
|
||||||
result = jsonElement is null ? "{}" : JsonSerializer.Serialize(jsonElement, new JsonSerializerOptions { WriteIndented = true });
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, txt.Description description, long? subGroupId, string weekOfYear)
|
|
||||||
{
|
|
||||||
string checkFile;
|
|
||||||
string fileName = Path.GetFileName(reportFullPath);
|
string fileName = Path.GetFileName(reportFullPath);
|
||||||
string json = GetJson(logistics, processDataStandardFormat, description);
|
|
||||||
string? ecPathRoot = Path.GetPathRoot(openInsightApiECDirectory);
|
string? ecPathRoot = Path.GetPathRoot(openInsightApiECDirectory);
|
||||||
bool ecExists = ecPathRoot is not null && Directory.Exists(ecPathRoot);
|
bool ecExists = ecPathRoot is not null && Directory.Exists(ecPathRoot);
|
||||||
string weekYear = $"{logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}";
|
string weekYear = $"{logistics.DateTimeFromSequence:yyyy}_Week_{weekOfYear}";
|
||||||
string ecDirectory = Path.Combine(openInsightApiECDirectory, weekYear, $"-{description.PSN}", $"-{description.Reactor}", $"-{description.RDS}", $"-{subGroupId}");
|
string ecDirectory = Path.Combine(openInsightApiECDirectory, weekYear, $"-{description.PSN}", $"-{description.Reactor}", $"-{description.RDS}", $"-{subGroupId}");
|
||||||
if (ecExists && !Directory.Exists(ecDirectory))
|
if (ecExists && !Directory.Exists(ecDirectory))
|
||||||
_ = Directory.CreateDirectory(ecDirectory);
|
_ = Directory.CreateDirectory(ecDirectory);
|
||||||
checkFile = Path.Combine(ecDirectory, fileName);
|
string checkFile = Path.Combine(ecDirectory, fileName);
|
||||||
if (ecExists && !File.Exists(checkFile))
|
if (ecExists && !File.Exists(checkFile))
|
||||||
File.Copy(reportFullPath, checkFile);
|
File.Copy(reportFullPath, checkFile);
|
||||||
checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.json");
|
|
||||||
if (ecExists && !File.Exists(checkFile))
|
|
||||||
File.WriteAllText(checkFile, json);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetCommandText(string[] iqsCopyValues)
|
private static string GetCommandText(string[] iqsCopyValues)
|
||||||
|
@ -110,10 +110,10 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SendData(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions)
|
private void SendData(string reportFullPath, DateTime dateTime, JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
WSRequest wsRequest = new(this, _Logistics, descriptions);
|
WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions);
|
||||||
int weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
int weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
||||||
string directory = Path.Combine(_OpenInsightMetrologyViewerFileShare, dateTime.Year.ToString(), $"WW{weekOfYear:00}");
|
string directory = Path.Combine(_OpenInsightMetrologyViewerFileShare, dateTime.Year.ToString(), $"WW{weekOfYear:00}");
|
||||||
checkDirectory = Path.Combine(directory, _Logistics.Sequence.ToString());
|
checkDirectory = Path.Combine(directory, _Logistics.Sequence.ToString());
|
||||||
@ -139,14 +139,15 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
SendData(reportFullPath, dateTime, descriptions);
|
SendData(reportFullPath, dateTime, jsonElements, descriptions);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ using System.Collections.Generic;
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace Adaptation.FileHandlers.OpenInsightMetrologyViewer;
|
namespace Adaptation.FileHandlers.OpenInsightMetrologyViewer;
|
||||||
|
|
||||||
@ -16,8 +17,17 @@ public class WSRequest
|
|||||||
//
|
//
|
||||||
|
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
public string AttemptCounter { get; set; }
|
||||||
public string CellName { get; set; }
|
public string CellName { get; set; }
|
||||||
public string Date { get; set; }
|
public string Date { get; set; }
|
||||||
|
public string DcnAllMax { get; set; }
|
||||||
|
public string DcnAllMean { get; set; }
|
||||||
|
public string DcnAllMin { get; set; }
|
||||||
|
public string DcnAllStDev { get; set; }
|
||||||
|
public string DcnAreaCntMax { get; set; }
|
||||||
|
public string DcnAreaCntMean { get; set; }
|
||||||
|
public string DcnAreaCntMin { get; set; }
|
||||||
|
public string IndexOf { get; set; }
|
||||||
public string LotID { get; set; }
|
public string LotID { get; set; }
|
||||||
public string Operator { get; set; }
|
public string Operator { get; set; }
|
||||||
public string PSN { get; set; }
|
public string PSN { get; set; }
|
||||||
@ -26,13 +36,6 @@ public class WSRequest
|
|||||||
public string Recipe { get; set; }
|
public string Recipe { get; set; }
|
||||||
public string Session { get; set; }
|
public string Session { get; set; }
|
||||||
public string UniqueID { get; set; }
|
public string UniqueID { get; set; }
|
||||||
public string DcnAllMax { get; set; }
|
|
||||||
public string DcnAllMean { get; set; }
|
|
||||||
public string DcnAllMin { get; set; }
|
|
||||||
public string DcnAllStDev { get; set; }
|
|
||||||
public string DcnAreaCntMax { get; set; }
|
|
||||||
public string DcnAreaCntMean { get; set; }
|
|
||||||
public string DcnAreaCntMin { get; set; }
|
|
||||||
public string DcnAreaCntStDev { get; set; }
|
public string DcnAreaCntStDev { get; set; }
|
||||||
public string DcnAreaMax { get; set; }
|
public string DcnAreaMax { get; set; }
|
||||||
public string DcnAreaMean { get; set; }
|
public string DcnAreaMean { get; set; }
|
||||||
@ -271,7 +274,7 @@ public class WSRequest
|
|||||||
[Obsolete("For json")] public WSRequest() { }
|
[Obsolete("For json")] public WSRequest() { }
|
||||||
|
|
||||||
#pragma warning disable IDE0060
|
#pragma warning disable IDE0060
|
||||||
internal WSRequest(IFileRead fileRead, Logistics logistics, List<txt.Description> descriptions, string processDataStandardFormat = null)
|
internal WSRequest(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, List<txt.Description> descriptions, string processDataStandardFormat = null)
|
||||||
#pragma warning restore IDE0060
|
#pragma warning restore IDE0060
|
||||||
{
|
{
|
||||||
Id = -1;
|
Id = -1;
|
||||||
@ -283,252 +286,254 @@ public class WSRequest
|
|||||||
UniqueID = x.UniqueId;
|
UniqueID = x.UniqueId;
|
||||||
Date = x.Date;
|
Date = x.Date;
|
||||||
Reactor = x.Reactor;
|
Reactor = x.Reactor;
|
||||||
LotID = x.Lot;
|
LotID = x.Lot; // different name
|
||||||
Session = x.Session;
|
Session = x.Session;
|
||||||
|
AttemptCounter = x.AttemptCounter;
|
||||||
|
IndexOf = x.IndexOf;
|
||||||
DcnAllMin = x.DcnAllMin;
|
DcnAllMin = x.DcnAllMin;
|
||||||
DcnAllMax = x.DcnAllMax;
|
DcnAllMax = x.DcnAllMax;
|
||||||
DcnAllMean = x.DcnAllMean;
|
DcnAllMean = x.DcnAllMean;
|
||||||
DcnAllStDev = x.DcnAllStdDev;
|
DcnAllStDev = x.DcnAllStdDev; // different name
|
||||||
DcnLpdMin = x.DcnLpdMin;
|
DcnLpdMin = x.DcnLpdMin;
|
||||||
DcnLpdMax = x.DcnLpdMax;
|
DcnLpdMax = x.DcnLpdMax;
|
||||||
DcnLpdMean = x.DcnLpdMean;
|
DcnLpdMean = x.DcnLpdMean;
|
||||||
DcnLpdStDev = x.DcnLpdStdDev;
|
DcnLpdStDev = x.DcnLpdStdDev; // different name
|
||||||
DcnLpdNMin = x.DcnLpdNMin;
|
DcnLpdNMin = x.DcnLpdNMin;
|
||||||
DcnLpdNMax = x.DcnLpdNMax;
|
DcnLpdNMax = x.DcnLpdNMax;
|
||||||
DcnLpdNMean = x.DcnLpdNMean;
|
DcnLpdNMean = x.DcnLpdNMean;
|
||||||
DcnLpdNStDev = x.DcnLpdNStdDev;
|
DcnLpdNStDev = x.DcnLpdNStdDev; // different name
|
||||||
DcnLpdESMin = x.DcnLpdESMin;
|
DcnLpdESMin = x.DcnLpdESMin;
|
||||||
DcnLpdESMax = x.DcnLpdESMax;
|
DcnLpdESMax = x.DcnLpdESMax;
|
||||||
DcnLpdESMean = x.DcnLpdESMean;
|
DcnLpdESMean = x.DcnLpdESMean;
|
||||||
DcnLpdESStDev = x.DcnLpdESStdDev;
|
DcnLpdESStDev = x.DcnLpdESStdDev; // different name
|
||||||
DcnMicroScrMin = x.DcnMicroScrMin;
|
DcnMicroScrMin = x.DcnMicroScrMin;
|
||||||
DcnMicroScrMax = x.DcnMicroScrMax;
|
DcnMicroScrMax = x.DcnMicroScrMax;
|
||||||
DcnMicroScrMean = x.DcnMicroScrMean;
|
DcnMicroScrMean = x.DcnMicroScrMean;
|
||||||
DcnMicroScrStDev = x.DcnMicroScrStdDev;
|
DcnMicroScrStDev = x.DcnMicroScrStdDev; // different name
|
||||||
DcnScrMin = x.DcnScrMin;
|
DcnScrMin = x.DcnScrMin;
|
||||||
DcnScrMax = x.DcnScrMax;
|
DcnScrMax = x.DcnScrMax;
|
||||||
DcnScrMean = x.DcnScrMean;
|
DcnScrMean = x.DcnScrMean;
|
||||||
DcnScrStDev = x.DcnScrStdDev;
|
DcnScrStDev = x.DcnScrStdDev; // different name
|
||||||
DcnSlipMin = x.DcnSlipMin;
|
DcnSlipMin = x.DcnSlipMin;
|
||||||
DcnSlipMax = x.DcnSlipMax;
|
DcnSlipMax = x.DcnSlipMax;
|
||||||
DcnSlipMean = x.DcnSlipMean;
|
DcnSlipMean = x.DcnSlipMean;
|
||||||
DcnSlipStDev = x.DcnSlipStdDev;
|
DcnSlipStDev = x.DcnSlipStdDev; // different name
|
||||||
DcnAreaCntMin = x.DcnAreaCountMin;
|
DcnAreaCntMin = x.DcnAreaCountMin; // different name
|
||||||
DcnAreaCntMax = x.DcnAreaCountMax;
|
DcnAreaCntMax = x.DcnAreaCountMax; // different name
|
||||||
DcnAreaCntMean = x.DcnAreaCountMean;
|
DcnAreaCntMean = x.DcnAreaCountMean; // different name
|
||||||
DcnAreaCntStDev = x.DcnAreaCountStdDev;
|
DcnAreaCntStDev = x.DcnAreaCountStdDev; // different name
|
||||||
DcnAreaMin = x.DcnAreaMin;
|
DcnAreaMin = x.DcnAreaMin;
|
||||||
DcnAreaMax = x.DcnAreaMax;
|
DcnAreaMax = x.DcnAreaMax;
|
||||||
DcnAreaMean = x.DcnAreaMean;
|
DcnAreaMean = x.DcnAreaMean;
|
||||||
DcnAreaStDev = x.DcnAreaStdDev;
|
DcnAreaStDev = x.DcnAreaStdDev; // different name
|
||||||
DcnHazeAvgMin = x.DcnHazeAvgMin;
|
DcnHazeAvgMin = x.DcnHazeAvgMin;
|
||||||
DcnHazeAvgMax = x.DcnHazeAvgMax;
|
DcnHazeAvgMax = x.DcnHazeAvgMax;
|
||||||
DcnHazeAvgMean = x.DcnHazeAvgMean;
|
DcnHazeAvgMean = x.DcnHazeAvgMean;
|
||||||
DcnHazeAvgStDev = x.DcnHazeAvgStdDev;
|
DcnHazeAvgStDev = x.DcnHazeAvgStdDev; // different name
|
||||||
DcnHazeMedMin = x.DcnHazeMedianMin;
|
DcnHazeMedMin = x.DcnHazeMedianMin; // different name
|
||||||
DcnHazeMedMax = x.DcnHazeMedianMax;
|
DcnHazeMedMax = x.DcnHazeMedianMax; // different name
|
||||||
DcnHazeMedMean = x.DcnHazeMedianMean;
|
DcnHazeMedMean = x.DcnHazeMedianMean; // different name
|
||||||
DcnHazeMedStDev = x.DcnHazeMedianStdDev;
|
DcnHazeMedStDev = x.DcnHazeMedianStdDev; // different name
|
||||||
DcnHazeStDevMin = x.DcnHazeStdDevMin;
|
DcnHazeStDevMin = x.DcnHazeStdDevMin; // different name
|
||||||
DcnHazeStDevMax = x.DcnHazeStdDevMax;
|
DcnHazeStDevMax = x.DcnHazeStdDevMax; // different name
|
||||||
DcnHazeStDevMean = x.DcnHazeStdDevMean;
|
DcnHazeStDevMean = x.DcnHazeStdDevMean; // different name
|
||||||
DcnHazeStDevStDev = x.DcnHazeStdDevStdDev;
|
DcnHazeStDevStDev = x.DcnHazeStdDevStdDev; // different name
|
||||||
DcnBin1Min = x.DcnBin1Min;
|
DcnBin1Min = x.DcnBin1Min;
|
||||||
DcnBin1Max = x.DcnBin1Max;
|
DcnBin1Max = x.DcnBin1Max;
|
||||||
DcnBin1Mean = x.DcnBin1Mean;
|
DcnBin1Mean = x.DcnBin1Mean;
|
||||||
DcnBin1StDev = x.DcnBin1StdDev;
|
DcnBin1StDev = x.DcnBin1StdDev; // different name
|
||||||
DcnBin2Min = x.DcnBin2Min;
|
DcnBin2Min = x.DcnBin2Min;
|
||||||
DcnBin2Max = x.DcnBin2Max;
|
DcnBin2Max = x.DcnBin2Max;
|
||||||
DcnBin2Mean = x.DcnBin2Mean;
|
DcnBin2Mean = x.DcnBin2Mean;
|
||||||
DcnBin2StDev = x.DcnBin2StdDev;
|
DcnBin2StDev = x.DcnBin2StdDev; // different name
|
||||||
DcnBin3Min = x.DcnBin3Min;
|
DcnBin3Min = x.DcnBin3Min;
|
||||||
DcnBin3Max = x.DcnBin3Max;
|
DcnBin3Max = x.DcnBin3Max;
|
||||||
DcnBin3Mean = x.DcnBin3Mean;
|
DcnBin3Mean = x.DcnBin3Mean;
|
||||||
DcnBin3StDev = x.DcnBin3StdDev;
|
DcnBin3StDev = x.DcnBin3StdDev; // different name
|
||||||
DcnBin4Min = x.DcnBin4Min;
|
DcnBin4Min = x.DcnBin4Min;
|
||||||
DcnBin4Max = x.DcnBin4Max;
|
DcnBin4Max = x.DcnBin4Max;
|
||||||
DcnBin4Mean = x.DcnBin4Mean;
|
DcnBin4Mean = x.DcnBin4Mean;
|
||||||
DcnBin4StDev = x.DcnBin4StdDev;
|
DcnBin4StDev = x.DcnBin4StdDev; // different name
|
||||||
DcnBin5Min = x.DcnBin5Min;
|
DcnBin5Min = x.DcnBin5Min;
|
||||||
DcnBin5Max = x.DcnBin5Max;
|
DcnBin5Max = x.DcnBin5Max;
|
||||||
DcnBin5Mean = x.DcnBin5Mean;
|
DcnBin5Mean = x.DcnBin5Mean;
|
||||||
DcnBin5StDev = x.DcnBin5StdDev;
|
DcnBin5StDev = x.DcnBin5StdDev; // different name
|
||||||
DcnBin6Min = x.DcnBin6Min;
|
DcnBin6Min = x.DcnBin6Min;
|
||||||
DcnBin6Max = x.DcnBin6Max;
|
DcnBin6Max = x.DcnBin6Max;
|
||||||
DcnBin6Mean = x.DcnBin6Mean;
|
DcnBin6Mean = x.DcnBin6Mean;
|
||||||
DcnBin6StDev = x.DcnBin6StdDev;
|
DcnBin6StDev = x.DcnBin6StdDev; // different name
|
||||||
DcnBin7Min = x.DcnBin7Min;
|
DcnBin7Min = x.DcnBin7Min;
|
||||||
DcnBin7Max = x.DcnBin7Max;
|
DcnBin7Max = x.DcnBin7Max;
|
||||||
DcnBin7Mean = x.DcnBin7Mean;
|
DcnBin7Mean = x.DcnBin7Mean;
|
||||||
DcnBin7StDev = x.DcnBin7StdDev;
|
DcnBin7StDev = x.DcnBin7StdDev; // different name
|
||||||
DcnBin8Min = x.DcnBin8Min;
|
DcnBin8Min = x.DcnBin8Min;
|
||||||
DcnBin8Max = x.DcnBin8Max;
|
DcnBin8Max = x.DcnBin8Max;
|
||||||
DcnBin8Mean = x.DcnBin8Mean;
|
DcnBin8Mean = x.DcnBin8Mean;
|
||||||
DcnBin8StDev = x.DcnBin8StdDev;
|
DcnBin8StDev = x.DcnBin8StdDev; // different name
|
||||||
DwnAllMin = x.DwnAllMin;
|
DwnAllMin = x.DwnAllMin;
|
||||||
DwnAllMax = x.DwnAllMax;
|
DwnAllMax = x.DwnAllMax;
|
||||||
DwnAllMean = x.DwnAllMean;
|
DwnAllMean = x.DwnAllMean;
|
||||||
DwnAllStDev = x.DwnAllStdDev;
|
DwnAllStDev = x.DwnAllStdDev; // different name
|
||||||
DwnLpdMin = x.DwnLpdMin;
|
DwnLpdMin = x.DwnLpdMin;
|
||||||
DwnLpdMax = x.DwnLpdMax;
|
DwnLpdMax = x.DwnLpdMax;
|
||||||
DwnLpdMean = x.DwnLpdMean;
|
DwnLpdMean = x.DwnLpdMean;
|
||||||
DwnLpdStDev = x.DwnLpdStdDev;
|
DwnLpdStDev = x.DwnLpdStdDev; // different name
|
||||||
DwnLpdNMin = x.DwnLpdNMin;
|
DwnLpdNMin = x.DwnLpdNMin;
|
||||||
DwnLpdNMax = x.DwnLpdNMax;
|
DwnLpdNMax = x.DwnLpdNMax;
|
||||||
DwnLpdNMean = x.DwnLpdNMean;
|
DwnLpdNMean = x.DwnLpdNMean;
|
||||||
DwnLpdNStDev = x.DwnLpdNStdDev;
|
DwnLpdNStDev = x.DwnLpdNStdDev; // different name
|
||||||
DwnLpdESMin = x.DwnLpdESMin;
|
DwnLpdESMin = x.DwnLpdESMin;
|
||||||
DwnLpdESMax = x.DwnLpdESMax;
|
DwnLpdESMax = x.DwnLpdESMax;
|
||||||
DwnLpdESMean = x.DwnLpdESMean;
|
DwnLpdESMean = x.DwnLpdESMean;
|
||||||
DwnLpdESStDev = x.DwnLpdESStdDev;
|
DwnLpdESStDev = x.DwnLpdESStdDev; // different name
|
||||||
DwnMicroScrMin = x.DwnMicroScrMin;
|
DwnMicroScrMin = x.DwnMicroScrMin;
|
||||||
DwnMicroScrMax = x.DwnMicroScrMax;
|
DwnMicroScrMax = x.DwnMicroScrMax;
|
||||||
DwnMicroScrMean = x.DwnMicroScrMean;
|
DwnMicroScrMean = x.DwnMicroScrMean;
|
||||||
DwnMicroScrStDev = x.DwnMicroScrStdDev;
|
DwnMicroScrStDev = x.DwnMicroScrStdDev; // different name
|
||||||
DwnScrMin = x.DwnScrMin;
|
DwnScrMin = x.DwnScrMin;
|
||||||
DwnScrMax = x.DwnScrMax;
|
DwnScrMax = x.DwnScrMax;
|
||||||
DwnScrMean = x.DwnScrMean;
|
DwnScrMean = x.DwnScrMean;
|
||||||
DwnScrStDev = x.DwnScrStdDev;
|
DwnScrStDev = x.DwnScrStdDev; // different name
|
||||||
DwnSlipMin = x.DwnSlipMin;
|
DwnSlipMin = x.DwnSlipMin;
|
||||||
DwnSlipMax = x.DwnSlipMax;
|
DwnSlipMax = x.DwnSlipMax;
|
||||||
DwnSlipMean = x.DwnSlipMean;
|
DwnSlipMean = x.DwnSlipMean;
|
||||||
DwnSlipStDev = x.DwnSlipStdDev;
|
DwnSlipStDev = x.DwnSlipStdDev; // different name
|
||||||
DwnAreaCntMin = x.DwnAreaCountMin;
|
DwnAreaCntMin = x.DwnAreaCountMin; // different name
|
||||||
DwnAreaCntMax = x.DwnAreaCountMax;
|
DwnAreaCntMax = x.DwnAreaCountMax; // different name
|
||||||
DwnAreaCntMean = x.DwnAreaCountMean;
|
DwnAreaCntMean = x.DwnAreaCountMean; // different name
|
||||||
DwnAreaCntStDev = x.DwnAreaCountStdDev;
|
DwnAreaCntStDev = x.DwnAreaCountStdDev; // different name
|
||||||
DwnAreaMin = x.DwnAreaMin;
|
DwnAreaMin = x.DwnAreaMin;
|
||||||
DwnAreaMax = x.DwnAreaMax;
|
DwnAreaMax = x.DwnAreaMax;
|
||||||
DwnAreaMean = x.DwnAreaMean;
|
DwnAreaMean = x.DwnAreaMean;
|
||||||
DwnAreaStDev = x.DwnAreaStdDev;
|
DwnAreaStDev = x.DwnAreaStdDev; // different name
|
||||||
DwnHazeAvgMin = x.DwnHazeAvgMin;
|
DwnHazeAvgMin = x.DwnHazeAvgMin;
|
||||||
DwnHazeAvgMax = x.DwnHazeAvgMax;
|
DwnHazeAvgMax = x.DwnHazeAvgMax;
|
||||||
DwnHazeAvgMean = x.DwnHazeAvgMean;
|
DwnHazeAvgMean = x.DwnHazeAvgMean;
|
||||||
DwnHazeAvgStDev = x.DwnHazeAvgStdDev;
|
DwnHazeAvgStDev = x.DwnHazeAvgStdDev; // different name
|
||||||
DwnHazeMedMin = x.DwnHazeMedianMin;
|
DwnHazeMedMin = x.DwnHazeMedianMin; // different name
|
||||||
DwnHazeMedMax = x.DwnHazeMedianMax;
|
DwnHazeMedMax = x.DwnHazeMedianMax; // different name
|
||||||
DwnHazeMedMean = x.DwnHazeMedianMean;
|
DwnHazeMedMean = x.DwnHazeMedianMean; // different name
|
||||||
DwnHazeMedStDev = x.DwnHazeMedianStdDev;
|
DwnHazeMedStDev = x.DwnHazeMedianStdDev; // different name
|
||||||
DwnHazeStDevMin = x.DwnHazeStdDevMin;
|
DwnHazeStDevMin = x.DwnHazeStdDevMin; // different name
|
||||||
DwnHazeStDevMax = x.DwnHazeStdDevMax;
|
DwnHazeStDevMax = x.DwnHazeStdDevMax; // different name
|
||||||
DwnHazeStDevMean = x.DwnHazeStdDevMean;
|
DwnHazeStDevMean = x.DwnHazeStdDevMean; // different name
|
||||||
DwnHazeStDevStDev = x.DwnHazeStdDevStdDev;
|
DwnHazeStDevStDev = x.DwnHazeStdDevStdDev; // different name
|
||||||
DwnBin1Min = x.DwnBin1Min;
|
DwnBin1Min = x.DwnBin1Min;
|
||||||
DwnBin1Max = x.DwnBin1Max;
|
DwnBin1Max = x.DwnBin1Max;
|
||||||
DwnBin1Mean = x.DwnBin1Mean;
|
DwnBin1Mean = x.DwnBin1Mean;
|
||||||
DwnBin1StDev = x.DwnBin1StdDev;
|
DwnBin1StDev = x.DwnBin1StdDev; // different name
|
||||||
DwnBin2Min = x.DwnBin2Min;
|
DwnBin2Min = x.DwnBin2Min;
|
||||||
DwnBin2Max = x.DwnBin2Max;
|
DwnBin2Max = x.DwnBin2Max;
|
||||||
DwnBin2Mean = x.DwnBin2Mean;
|
DwnBin2Mean = x.DwnBin2Mean;
|
||||||
DwnBin2StDev = x.DwnBin2StdDev;
|
DwnBin2StDev = x.DwnBin2StdDev; // different name
|
||||||
DwnBin3Min = x.DwnBin3Min;
|
DwnBin3Min = x.DwnBin3Min;
|
||||||
DwnBin3Max = x.DwnBin3Max;
|
DwnBin3Max = x.DwnBin3Max;
|
||||||
DwnBin3Mean = x.DwnBin3Mean;
|
DwnBin3Mean = x.DwnBin3Mean;
|
||||||
DwnBin3StDev = x.DwnBin3StdDev;
|
DwnBin3StDev = x.DwnBin3StdDev; // different name
|
||||||
DwnBin4Min = x.DwnBin4Min;
|
DwnBin4Min = x.DwnBin4Min;
|
||||||
DwnBin4Max = x.DwnBin4Max;
|
DwnBin4Max = x.DwnBin4Max;
|
||||||
DwnBin4Mean = x.DwnBin4Mean;
|
DwnBin4Mean = x.DwnBin4Mean;
|
||||||
DwnBin4StDev = x.DwnBin4StdDev;
|
DwnBin4StDev = x.DwnBin4StdDev; // different name
|
||||||
DwnBin5Min = x.DwnBin5Min;
|
DwnBin5Min = x.DwnBin5Min;
|
||||||
DwnBin5Max = x.DwnBin5Max;
|
DwnBin5Max = x.DwnBin5Max;
|
||||||
DwnBin5Mean = x.DwnBin5Mean;
|
DwnBin5Mean = x.DwnBin5Mean;
|
||||||
DwnBin5StDev = x.DwnBin5StdDev;
|
DwnBin5StDev = x.DwnBin5StdDev; // different name
|
||||||
DwnBin6Min = x.DwnBin6Min;
|
DwnBin6Min = x.DwnBin6Min;
|
||||||
DwnBin6Max = x.DwnBin6Max;
|
DwnBin6Max = x.DwnBin6Max;
|
||||||
DwnBin6Mean = x.DwnBin6Mean;
|
DwnBin6Mean = x.DwnBin6Mean;
|
||||||
DwnBin6StDev = x.DwnBin6StdDev;
|
DwnBin6StDev = x.DwnBin6StdDev; // different name
|
||||||
DwnBin7Min = x.DwnBin7Min;
|
DwnBin7Min = x.DwnBin7Min;
|
||||||
DwnBin7Max = x.DwnBin7Max;
|
DwnBin7Max = x.DwnBin7Max;
|
||||||
DwnBin7Mean = x.DwnBin7Mean;
|
DwnBin7Mean = x.DwnBin7Mean;
|
||||||
DwnBin7StDev = x.DwnBin7StdDev;
|
DwnBin7StDev = x.DwnBin7StdDev; // different name
|
||||||
DwnBin8Min = x.DwnBin8Min;
|
DwnBin8Min = x.DwnBin8Min;
|
||||||
DwnBin8Max = x.DwnBin8Max;
|
DwnBin8Max = x.DwnBin8Max;
|
||||||
DwnBin8Mean = x.DwnBin8Mean;
|
DwnBin8Mean = x.DwnBin8Mean;
|
||||||
DwnBin8StDev = x.DwnBin8StdDev;
|
DwnBin8StDev = x.DwnBin8StdDev; // different name
|
||||||
DnnAllMin = x.DnnAllMin;
|
DnnAllMin = x.DnnAllMin;
|
||||||
DnnAllMax = x.DnnAllMax;
|
DnnAllMax = x.DnnAllMax;
|
||||||
DnnAllMean = x.DnnAllMean;
|
DnnAllMean = x.DnnAllMean;
|
||||||
DnnAllStDev = x.DnnAllStdDev;
|
DnnAllStDev = x.DnnAllStdDev; // different name
|
||||||
DnnLpdMin = x.DnnLpdMin;
|
DnnLpdMin = x.DnnLpdMin;
|
||||||
DnnLpdMax = x.DnnLpdMax;
|
DnnLpdMax = x.DnnLpdMax;
|
||||||
DnnLpdMean = x.DnnLpdMean;
|
DnnLpdMean = x.DnnLpdMean;
|
||||||
DnnLpdStDev = x.DnnLpdStdDev;
|
DnnLpdStDev = x.DnnLpdStdDev; // different name
|
||||||
DnnLpdNMin = x.DnnLpdNMin;
|
DnnLpdNMin = x.DnnLpdNMin;
|
||||||
DnnLpdNMax = x.DnnLpdNMax;
|
DnnLpdNMax = x.DnnLpdNMax;
|
||||||
DnnLpdNMean = x.DnnLpdNMean;
|
DnnLpdNMean = x.DnnLpdNMean;
|
||||||
DnnLpdNStDev = x.DnnLpdNStdDev;
|
DnnLpdNStDev = x.DnnLpdNStdDev; // different name
|
||||||
DnnLpdESMin = x.DnnLpdESMin;
|
DnnLpdESMin = x.DnnLpdESMin;
|
||||||
DnnLpdESMax = x.DnnLpdESMax;
|
DnnLpdESMax = x.DnnLpdESMax;
|
||||||
DnnLpdESMean = x.DnnLpdESMean;
|
DnnLpdESMean = x.DnnLpdESMean;
|
||||||
DnnLpdESStDev = x.DnnLpdESStdDev;
|
DnnLpdESStDev = x.DnnLpdESStdDev; // different name
|
||||||
DnnMicroScrMin = x.DnnMicroScrMin;
|
DnnMicroScrMin = x.DnnMicroScrMin;
|
||||||
DnnMicroScrMax = x.DnnMicroScrMax;
|
DnnMicroScrMax = x.DnnMicroScrMax;
|
||||||
DnnMicroScrMean = x.DnnMicroScrMean;
|
DnnMicroScrMean = x.DnnMicroScrMean;
|
||||||
DnnMicroScrStDev = x.DnnMicroScrStdDev;
|
DnnMicroScrStDev = x.DnnMicroScrStdDev; // different name
|
||||||
DnnScrMin = x.DnnScrMin;
|
DnnScrMin = x.DnnScrMin;
|
||||||
DnnScrMax = x.DnnScrMax;
|
DnnScrMax = x.DnnScrMax;
|
||||||
DnnScrMean = x.DnnScrMean;
|
DnnScrMean = x.DnnScrMean;
|
||||||
DnnScrStDev = x.DnnScrStdDev;
|
DnnScrStDev = x.DnnScrStdDev; // different name
|
||||||
DnnSlipMin = x.DnnSlipMin;
|
DnnSlipMin = x.DnnSlipMin;
|
||||||
DnnSlipMax = x.DnnSlipMax;
|
DnnSlipMax = x.DnnSlipMax;
|
||||||
DnnSlipMean = x.DnnSlipMean;
|
DnnSlipMean = x.DnnSlipMean;
|
||||||
DnnSlipStDev = x.DnnSlipStdDev;
|
DnnSlipStDev = x.DnnSlipStdDev; // different name
|
||||||
DnnAreaCntMin = x.DnnAreaCountMin;
|
DnnAreaCntMin = x.DnnAreaCountMin; // different name
|
||||||
DnnAreaCntMax = x.DnnAreaCountMax;
|
DnnAreaCntMax = x.DnnAreaCountMax; // different name
|
||||||
DnnAreaCntMean = x.DnnAreaCountMean;
|
DnnAreaCntMean = x.DnnAreaCountMean; // different name
|
||||||
DnnAreaCntStDev = x.DnnAreaCountStdDev;
|
DnnAreaCntStDev = x.DnnAreaCountStdDev; // different name
|
||||||
DnnAreaMin = x.DnnAreaMin;
|
DnnAreaMin = x.DnnAreaMin;
|
||||||
DnnAreaMax = x.DnnAreaMax;
|
DnnAreaMax = x.DnnAreaMax;
|
||||||
DnnAreaMean = x.DnnAreaMean;
|
DnnAreaMean = x.DnnAreaMean;
|
||||||
DnnAreaStDev = x.DnnAreaStdDev;
|
DnnAreaStDev = x.DnnAreaStdDev; // different name
|
||||||
DnnHazeAvgMin = x.DnnHazeAvgMin;
|
DnnHazeAvgMin = x.DnnHazeAvgMin;
|
||||||
DnnHazeAvgMax = x.DnnHazeAvgMax;
|
DnnHazeAvgMax = x.DnnHazeAvgMax;
|
||||||
DnnHazeAvgMean = x.DnnHazeAvgMean;
|
DnnHazeAvgMean = x.DnnHazeAvgMean;
|
||||||
DnnHazeAvgStDev = x.DnnHazeAvgStdDev;
|
DnnHazeAvgStDev = x.DnnHazeAvgStdDev; // different name
|
||||||
DnnHazeMedMin = x.DnnHazeMedianMin;
|
DnnHazeMedMin = x.DnnHazeMedianMin; // different name
|
||||||
DnnHazeMedMax = x.DnnHazeMedianMax;
|
DnnHazeMedMax = x.DnnHazeMedianMax; // different name
|
||||||
DnnHazeMedMean = x.DnnHazeMedianMean;
|
DnnHazeMedMean = x.DnnHazeMedianMean; // different name
|
||||||
DnnHazeMedStDev = x.DnnHazeMedianStdDev;
|
DnnHazeMedStDev = x.DnnHazeMedianStdDev; // different name
|
||||||
DnnHazeStDevMin = x.DnnHazeStdDevMin;
|
DnnHazeStDevMin = x.DnnHazeStdDevMin; // different name
|
||||||
DnnHazeStDevMax = x.DnnHazeStdDevMax;
|
DnnHazeStDevMax = x.DnnHazeStdDevMax; // different name
|
||||||
DnnHazeStDevMean = x.DnnHazeStdDevMean;
|
DnnHazeStDevMean = x.DnnHazeStdDevMean; // different name
|
||||||
DnnHazeStDevStDev = x.DnnHazeStdDevStdDev;
|
DnnHazeStDevStDev = x.DnnHazeStdDevStdDev; // different name
|
||||||
DnnBin1Min = x.DnnBin1Min;
|
DnnBin1Min = x.DnnBin1Min;
|
||||||
DnnBin1Max = x.DnnBin1Max;
|
DnnBin1Max = x.DnnBin1Max;
|
||||||
DnnBin1Mean = x.DnnBin1Mean;
|
DnnBin1Mean = x.DnnBin1Mean;
|
||||||
DnnBin1StDev = x.DnnBin1StdDev;
|
DnnBin1StDev = x.DnnBin1StdDev; // different name
|
||||||
DnnBin2Min = x.DnnBin2Min;
|
DnnBin2Min = x.DnnBin2Min;
|
||||||
DnnBin2Max = x.DnnBin2Max;
|
DnnBin2Max = x.DnnBin2Max;
|
||||||
DnnBin2Mean = x.DnnBin2Mean;
|
DnnBin2Mean = x.DnnBin2Mean;
|
||||||
DnnBin2StDev = x.DnnBin2StdDev;
|
DnnBin2StDev = x.DnnBin2StdDev; // different name
|
||||||
DnnBin3Min = x.DnnBin3Min;
|
DnnBin3Min = x.DnnBin3Min;
|
||||||
DnnBin3Max = x.DnnBin3Max;
|
DnnBin3Max = x.DnnBin3Max;
|
||||||
DnnBin3Mean = x.DnnBin3Mean;
|
DnnBin3Mean = x.DnnBin3Mean;
|
||||||
DnnBin3StDev = x.DnnBin3StdDev;
|
DnnBin3StDev = x.DnnBin3StdDev; // different name
|
||||||
DnnBin4Min = x.DnnBin4Min;
|
DnnBin4Min = x.DnnBin4Min;
|
||||||
DnnBin4Max = x.DnnBin4Max;
|
DnnBin4Max = x.DnnBin4Max;
|
||||||
DnnBin4Mean = x.DnnBin4Mean;
|
DnnBin4Mean = x.DnnBin4Mean;
|
||||||
DnnBin4StDev = x.DnnBin4StdDev;
|
DnnBin4StDev = x.DnnBin4StdDev; // different name
|
||||||
DnnBin5Min = x.DnnBin5Min;
|
DnnBin5Min = x.DnnBin5Min;
|
||||||
DnnBin5Max = x.DnnBin5Max;
|
DnnBin5Max = x.DnnBin5Max;
|
||||||
DnnBin5Mean = x.DnnBin5Mean;
|
DnnBin5Mean = x.DnnBin5Mean;
|
||||||
DnnBin5StDev = x.DnnBin5StdDev;
|
DnnBin5StDev = x.DnnBin5StdDev; // different name
|
||||||
DnnBin6Min = x.DnnBin6Min;
|
DnnBin6Min = x.DnnBin6Min;
|
||||||
DnnBin6Max = x.DnnBin6Max;
|
DnnBin6Max = x.DnnBin6Max;
|
||||||
DnnBin6Mean = x.DnnBin6Mean;
|
DnnBin6Mean = x.DnnBin6Mean;
|
||||||
DnnBin6StDev = x.DnnBin6StdDev;
|
DnnBin6StDev = x.DnnBin6StdDev; // different name
|
||||||
DnnBin7Min = x.DnnBin7Min;
|
DnnBin7Min = x.DnnBin7Min;
|
||||||
DnnBin7Max = x.DnnBin7Max;
|
DnnBin7Max = x.DnnBin7Max;
|
||||||
DnnBin7Mean = x.DnnBin7Mean;
|
DnnBin7Mean = x.DnnBin7Mean;
|
||||||
DnnBin7StDev = x.DnnBin7StdDev;
|
DnnBin7StDev = x.DnnBin7StdDev; // different name
|
||||||
DnnBin8Min = x.DnnBin8Min;
|
DnnBin8Min = x.DnnBin8Min;
|
||||||
DnnBin8Max = x.DnnBin8Max;
|
DnnBin8Max = x.DnnBin8Max;
|
||||||
DnnBin8Mean = x.DnnBin8Mean;
|
DnnBin8Mean = x.DnnBin8Mean;
|
||||||
DnnBin8StDev = x.DnnBin8StdDev;
|
DnnBin8StDev = x.DnnBin8StdDev; // different name
|
||||||
RDS = x.RDS;
|
RDS = x.RDS;
|
||||||
PSN = x.PSN;
|
PSN = x.PSN;
|
||||||
Recipe = x.Recipe;
|
Recipe = x.Recipe;
|
||||||
Operator = x.Employee;
|
Operator = x.Employee; // different name
|
||||||
}
|
}
|
||||||
txt.Detail detail;
|
txt.Detail detail;
|
||||||
foreach (txt.Description description in descriptions)
|
foreach (txt.Description description in descriptions)
|
||||||
@ -635,14 +640,14 @@ public class WSRequest
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, WS.Results results, List<txt.Description> descriptions)
|
internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, WS.Results results, JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
long result;
|
long result;
|
||||||
if (results is not null && results.HeaderId is not null)
|
if (results is not null && results.HeaderId is not null)
|
||||||
result = results.HeaderId.Value;
|
result = results.HeaderId.Value;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WSRequest wsRequest = new(fileRead, logistics, descriptions);
|
WSRequest wsRequest = new(fileRead, logistics, jsonElements, descriptions);
|
||||||
string directory = Path.Combine(openInsightMetrologyViewerFileShare, logistics.DateTimeFromSequence.Year.ToString(), $"WW{weekOfYear:00}");
|
string directory = Path.Combine(openInsightMetrologyViewerFileShare, logistics.DateTimeFromSequence.Year.ToString(), $"WW{weekOfYear:00}");
|
||||||
(_, WS.Results wsResults) = WS.SendData(openInsightMetrologyViewerAPI, logistics.Sequence, directory, wsRequest);
|
(_, WS.Results wsResults) = WS.SendData(openInsightMetrologyViewerAPI, logistics.Sequence, directory, wsRequest);
|
||||||
if (wsResults.Success is null || !wsResults.Success.Value)
|
if (wsResults.Success is null || !wsResults.Success.Value)
|
||||||
|
@ -139,7 +139,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PostOpenInsightMetrologyViewerAttachments(List<txt.Description> descriptions)
|
private void PostOpenInsightMetrologyViewerAttachments(JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
Shared.Metrology.WS.Results? results;
|
Shared.Metrology.WS.Results? results;
|
||||||
string jobIdDirectory = Path.Combine(Path.GetDirectoryName(_FileConnectorConfiguration.AlternateTargetFolder) ?? throw new Exception(), _Logistics.JobID);
|
string jobIdDirectory = Path.Combine(Path.GetDirectoryName(_FileConnectorConfiguration.AlternateTargetFolder) ?? throw new Exception(), _Logistics.JobID);
|
||||||
@ -155,7 +155,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
results = wsResults[0];
|
results = wsResults[0];
|
||||||
}
|
}
|
||||||
int weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
int weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
|
||||||
long headerId = !_IsEAFHosted ? -1 : OpenInsightMetrologyViewer.WSRequest.GetHeaderId(this, _Logistics, _OpenInsightMetrologyViewerAPI, _OpenInsightMetrologyViewerFileShare, weekOfYear, results, descriptions);
|
long headerId = !_IsEAFHosted ? -1 : OpenInsightMetrologyViewer.WSRequest.GetHeaderId(this, _Logistics, _OpenInsightMetrologyViewerAPI, _OpenInsightMetrologyViewerFileShare, weekOfYear, results, jsonElements, descriptions);
|
||||||
string? headerIdDirectory = GetHeaderIdDirectory(headerId);
|
string? headerIdDirectory = GetHeaderIdDirectory(headerId);
|
||||||
if (string.IsNullOrEmpty(headerIdDirectory))
|
if (string.IsNullOrEmpty(headerIdDirectory))
|
||||||
throw new Exception($"Didn't find header id directory <{headerId}>");
|
throw new Exception($"Didn't find header id directory <{headerId}>");
|
||||||
@ -167,14 +167,15 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
if (dateTime == DateTime.MinValue)
|
if (dateTime == DateTime.MinValue)
|
||||||
throw new ArgumentNullException(nameof(dateTime));
|
throw new ArgumentNullException(nameof(dateTime));
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
PostOpenInsightMetrologyViewerAttachments(descriptions);
|
PostOpenInsightMetrologyViewerAttachments(jsonElements, descriptions);
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DirectoryMove(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions)
|
private void DirectoryMove(string reportFullPath, DateTime dateTime, JsonElement[] jsonElements, List<txt.Description> descriptions)
|
||||||
{
|
{
|
||||||
if (dateTime == DateTime.MinValue)
|
if (dateTime == DateTime.MinValue)
|
||||||
throw new ArgumentNullException(nameof(dateTime));
|
throw new ArgumentNullException(nameof(dateTime));
|
||||||
@ -122,7 +122,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
throw new Exception("Didn't find directory by logistics sequence");
|
throw new Exception("Didn't find directory by logistics sequence");
|
||||||
if (fileInfo.Exists && fileInfo.LastWriteTime < fileInfo.CreationTime)
|
if (fileInfo.Exists && fileInfo.LastWriteTime < fileInfo.CreationTime)
|
||||||
File.SetLastWriteTime(reportFullPath, fileInfo.CreationTime);
|
File.SetLastWriteTime(reportFullPath, fileInfo.CreationTime);
|
||||||
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, descriptions);
|
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions);
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
||||||
string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
||||||
string directoryName = $"{Path.GetFileName(matchDirectories[0]).Split(new string[] { logisticsSequence }, StringSplitOptions.None)[0]}{_Logistics.DateTimeFromSequence:yyyy-MM-dd_hh;mm_tt_}{DateTime.Now.Ticks - _Logistics.Sequence}";
|
string directoryName = $"{Path.GetFileName(matchDirectories[0]).Split(new string[] { logisticsSequence }, StringSplitOptions.None)[0]}{_Logistics.DateTimeFromSequence:yyyy-MM-dd_hh;mm_tt_}{DateTime.Now.Ticks - _Logistics.Sequence}";
|
||||||
@ -166,23 +166,24 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
private Tuple<string, Test[], JsonElement[], List<FileInfo>> GetExtractResult(string reportFullPath, DateTime dateTime)
|
||||||
{
|
{
|
||||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
Tuple<string, Test[], JsonElement[], List<FileInfo>> results;
|
||||||
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath);
|
string[] lines = File.ReadAllLines(reportFullPath);
|
||||||
|
ProcessDataStandardFormat processDataStandardFormat = ProcessDataStandardFormat.GetProcessDataStandardFormat(reportFullPath, lines);
|
||||||
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
_Logistics = new Logistics(reportFullPath, processDataStandardFormat);
|
||||||
SetFileParameterLotIDToLogisticsMID();
|
SetFileParameterLotIDToLogisticsMID();
|
||||||
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat);
|
JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(reportFullPath, lines, processDataStandardFormat);
|
||||||
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements);
|
||||||
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
Test[] tests = (from l in descriptions select (Test)l.Test).ToArray();
|
||||||
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
results = new Tuple<string, Test[], JsonElement[], List<FileInfo>>(string.Join(Environment.NewLine, processDataStandardFormat.Logistics), tests, jsonElements, new List<FileInfo>());
|
||||||
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0)
|
||||||
DirectoryMove(reportFullPath, dateTime, descriptions);
|
DirectoryMove(reportFullPath, dateTime, jsonElements, descriptions);
|
||||||
else if (!_IsEAFHosted)
|
else if (!_IsEAFHosted)
|
||||||
{
|
{
|
||||||
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, descriptions);
|
OpenInsightMetrologyViewer.WSRequest wsRequest = new(this, _Logistics, jsonElements, descriptions);
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
JsonSerializerOptions jsonSerializerOptions = new() { WriteIndented = true };
|
||||||
string json = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
string check = JsonSerializer.Serialize(wsRequest, wsRequest.GetType(), jsonSerializerOptions);
|
||||||
string jsonFileName = Path.ChangeExtension(reportFullPath, ".json");
|
string jsonFileName = Path.ChangeExtension(reportFullPath, ".json");
|
||||||
string historicalText = File.ReadAllText(jsonFileName);
|
string historicalText = File.ReadAllText(jsonFileName);
|
||||||
if (json != historicalText)
|
if (check != historicalText)
|
||||||
throw new Exception("File doesn't match historical!");
|
throw new Exception("File doesn't match historical!");
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
|
@ -19,6 +19,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
public const string BarcodeHostFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\BarcodeHost\API";
|
public const string BarcodeHostFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\BarcodeHost\API";
|
||||||
public const string MetrologyFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\WorkMaterialOut\API";
|
public const string MetrologyFileShare = @"\\mesfs.infineon.com\EC_Metrology_Si\WorkMaterialOut\API";
|
||||||
public const string OpenInsightApplicationProgrammingInterface = @"http://oi-metrology-viewer-api.mes.infineon.com:8080/api/oiWizard";
|
public const string OpenInsightApplicationProgrammingInterface = @"http://oi-metrology-viewer-api.mes.infineon.com:8080/api/oiWizard";
|
||||||
|
public const string IQSConnectionString = @"Data Source=messqlec1.infineon.com\PROD1,53959;Initial Catalog=IRMNSPC;Integrated Security=True";
|
||||||
public const string LSL2SQLConnectionString = @"Data Source=messqlec1.infineon.com\PROD1,53959;Initial Catalog=LSL2SQL;Persist Security Info=True;User ID=srpadmin;Password=0okm9ijn;";
|
public const string LSL2SQLConnectionString = @"Data Source=messqlec1.infineon.com\PROD1,53959;Initial Catalog=LSL2SQL;Persist Security Info=True;User ID=srpadmin;Password=0okm9ijn;";
|
||||||
|
|
||||||
private long? _TickOffset;
|
private long? _TickOffset;
|
||||||
@ -38,6 +39,9 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
string barcodeHostFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Barcode.Host.FileShare");
|
string barcodeHostFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Barcode.Host.FileShare");
|
||||||
if (barcodeHostFileShare != BarcodeHostFileShare)
|
if (barcodeHostFileShare != BarcodeHostFileShare)
|
||||||
throw new NotSupportedException($"Update configuration for [{nameof(BarcodeHostFileShare)}]");
|
throw new NotSupportedException($"Update configuration for [{nameof(BarcodeHostFileShare)}]");
|
||||||
|
string iqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString");
|
||||||
|
if (iqsConnectionString != IQSConnectionString)
|
||||||
|
throw new NotSupportedException($"Update configuration for [{nameof(IQSConnectionString)}]");
|
||||||
string lsl2SQLConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "ConnectionString.LSL2SQL");
|
string lsl2SQLConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "ConnectionString.LSL2SQL");
|
||||||
if (lsl2SQLConnectionString != LSL2SQLConnectionString)
|
if (lsl2SQLConnectionString != LSL2SQLConnectionString)
|
||||||
throw new NotSupportedException($"Update configuration for [{nameof(LSL2SQLConnectionString)}]");
|
throw new NotSupportedException($"Update configuration for [{nameof(LSL2SQLConnectionString)}]");
|
||||||
@ -53,14 +57,14 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
string tibcoParameterSubjectPrefix = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_SUBJECT_PREFIX");
|
string tibcoParameterSubjectPrefix = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_SUBJECT_PREFIX");
|
||||||
string tibcoParameterConfigurationLocation = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION");
|
string tibcoParameterConfigurationLocation = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION");
|
||||||
string tibcoParameterConfigurationLocationCopy = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION_LOCAL_COPY");
|
string tibcoParameterConfigurationLocationCopy = GetPropertyValue(cellInstanceConnectionName, tibcoParameters, "TIBCO.IFX_CONFIGURATION_LOCATION_LOCAL_COPY");
|
||||||
if (!Directory.Exists(MetrologyFileShare))
|
if (!Directory.Exists(metrologyFileShare))
|
||||||
throw new Exception($"Unable to access file-share <{MetrologyFileShare}>");
|
throw new Exception($"Unable to access file-share <{MetrologyFileShare}>");
|
||||||
if (!Directory.Exists(BarcodeHostFileShare))
|
if (!Directory.Exists(barcodeHostFileShare))
|
||||||
throw new Exception($"Unable to access file-share <{BarcodeHostFileShare}>");
|
throw new Exception($"Unable to access file-share <{BarcodeHostFileShare}>");
|
||||||
if (_IsEAFHosted)
|
if (_IsEAFHosted)
|
||||||
{
|
{
|
||||||
HttpClient httpClient = new() { BaseAddress = new(OpenInsightApplicationProgrammingInterface) };
|
HttpClient httpClient = new() { BaseAddress = new(openInsightApplicationProgrammingInterface) };
|
||||||
Transport.Main.Initialize(smtp, cellInstanceName, fileConnectorConfiguration, LSL2SQLConnectionString, MetrologyFileShare, BarcodeHostFileShare, httpClient);
|
Transport.Main.Initialize(smtp, cellInstanceName, fileConnectorConfiguration, iqsConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient);
|
||||||
if (!string.IsNullOrEmpty(fileConnectorConfiguration.SourceFileLocation))
|
if (!string.IsNullOrEmpty(fileConnectorConfiguration.SourceFileLocation))
|
||||||
_ = Transport.Main.Setup(useSleep: true, setIfxTransport: true, tibcoParameterChannel, tibcoParameterSubjectPrefix, tibcoParameterConfigurationLocation, tibcoParameterConfigurationLocationCopy, tibcoParameterSubject);
|
_ = Transport.Main.Setup(useSleep: true, setIfxTransport: true, tibcoParameterChannel, tibcoParameterSubjectPrefix, tibcoParameterConfigurationLocation, tibcoParameterConfigurationLocationCopy, tibcoParameterSubject);
|
||||||
else
|
else
|
||||||
|
@ -1,25 +1,74 @@
|
|||||||
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
namespace Adaptation.FileHandlers.TIBCO.Transport;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
public class CommonB
|
public class CommonB
|
||||||
{
|
{
|
||||||
|
|
||||||
public string Layer { get; }
|
public string? Layer { get; }
|
||||||
public string LoadLockSide { get; }
|
|
||||||
public int? RDSNumber { get; }
|
public int? RDSNumber { get; }
|
||||||
public string ReactorType { get; }
|
public string? PSN { get; }
|
||||||
public string PSN { get; }
|
|
||||||
public int? ReactorNumber { get; }
|
public int? ReactorNumber { get; }
|
||||||
public string Zone { get; }
|
public string? Zone { get; }
|
||||||
|
|
||||||
public CommonB(string layer, string loadLockSide, int? rdsNumber, string reactorType, string psn, int? reactorNumber, string zone)
|
public CommonB(string? layer,
|
||||||
|
int? rdsNumber,
|
||||||
|
string? psn,
|
||||||
|
int? reactorNumber,
|
||||||
|
string? zone)
|
||||||
{
|
{
|
||||||
Layer = layer;
|
Layer = layer;
|
||||||
LoadLockSide = loadLockSide;
|
|
||||||
RDSNumber = rdsNumber;
|
RDSNumber = rdsNumber;
|
||||||
ReactorType = reactorType;
|
|
||||||
PSN = psn;
|
PSN = psn;
|
||||||
ReactorNumber = reactorNumber;
|
ReactorNumber = reactorNumber;
|
||||||
Zone = zone;
|
Zone = zone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static CommonB Get(Common common, RunDataSheetRoot? runDataSheetRoot, Run[]? runs)
|
||||||
|
{
|
||||||
|
CommonB result;
|
||||||
|
string? psn;
|
||||||
|
string? zone;
|
||||||
|
string? layer;
|
||||||
|
int? reactorNumber;
|
||||||
|
if (runs is null || runs.Length == 0)
|
||||||
|
{
|
||||||
|
zone = common.Zone;
|
||||||
|
layer = common.Layer;
|
||||||
|
if (runDataSheetRoot?.RunDataSheet is null)
|
||||||
|
{
|
||||||
|
psn = common.PSN;
|
||||||
|
reactorNumber = common.ReactorNumber;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
psn = runDataSheetRoot?.RunDataSheet.PSN.ToString();
|
||||||
|
reactorNumber = runDataSheetRoot?.RunDataSheet.Reactor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const int zero = 0;
|
||||||
|
Run run = runs[zero];
|
||||||
|
if (runDataSheetRoot?.RunDataSheet is not null)
|
||||||
|
{
|
||||||
|
psn = runDataSheetRoot?.RunDataSheet.PSN.ToString();
|
||||||
|
reactorNumber = runDataSheetRoot?.RunDataSheet.Reactor;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
psn = string.IsNullOrEmpty(common.PSN) ? run.PSN : common.PSN;
|
||||||
|
reactorNumber = common.ReactorNumber is null ? run.Reactor : common.ReactorNumber;
|
||||||
|
}
|
||||||
|
zone = string.IsNullOrEmpty(common.Zone) ? run.Zone : common.Zone;
|
||||||
|
layer = string.IsNullOrEmpty(common.Layer) ? run.EpiLayer : common.Layer;
|
||||||
|
}
|
||||||
|
result = new(layer: layer,
|
||||||
|
rdsNumber: common.RDSNumber,
|
||||||
|
psn: psn,
|
||||||
|
reactorNumber: reactorNumber,
|
||||||
|
zone: zone);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -41,7 +41,7 @@ public partial class Job
|
|||||||
public DateTime DateTime { get; }
|
public DateTime DateTime { get; }
|
||||||
public List<Item> Items { get; }
|
public List<Item> Items { get; }
|
||||||
|
|
||||||
public Job(string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient, string mid, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter)
|
public Job(string iqsSQLConnectionString, string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient, string mid, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter)
|
||||||
{
|
{
|
||||||
const int zero = 0;
|
const int zero = 0;
|
||||||
Items = new List<Item>();
|
Items = new List<Item>();
|
||||||
@ -49,8 +49,10 @@ public partial class Job
|
|||||||
IsAreaSi = false;
|
IsAreaSi = false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Run[]? runs;
|
||||||
Common common;
|
Common common;
|
||||||
CommonB commonB;
|
CommonB commonB;
|
||||||
|
string? basicType;
|
||||||
int? reactorNumber;
|
int? reactorNumber;
|
||||||
const string hyphen = "-";
|
const string hyphen = "-";
|
||||||
const string bioRad2 = "BIORAD2";
|
const string bioRad2 = "BIORAD2";
|
||||||
@ -63,6 +65,7 @@ public partial class Job
|
|||||||
DateTime = DateTime.Now;
|
DateTime = DateTime.Now;
|
||||||
else
|
else
|
||||||
DateTime = new DateTime(sequence);
|
DateTime = new DateTime(sequence);
|
||||||
|
string? jobNames = GetJobNames(input);
|
||||||
const string dep08CEPIEPSILON = "DEP08CEPIEPSILON";
|
const string dep08CEPIEPSILON = "DEP08CEPIEPSILON";
|
||||||
if (input.EquipmentType == dep08CEPIEPSILON)
|
if (input.EquipmentType == dep08CEPIEPSILON)
|
||||||
common = ReactorGet(input, httpClient);
|
common = ReactorGet(input, httpClient);
|
||||||
@ -87,27 +90,34 @@ public partial class Job
|
|||||||
common = Get(input, httpClient);
|
common = Get(input, httpClient);
|
||||||
}
|
}
|
||||||
bool isValid = IsValid(common.RDSNumber);
|
bool isValid = IsValid(common.RDSNumber);
|
||||||
if (isValid)
|
if (common.RDSNumber is null || !isValid)
|
||||||
commonB = GetWithValidRDS(lsl2SQLConnectionString, enteredDateTimeFilter, loadSignatureDateTimeFilter, common.Layer, common.PSN, common.RDSNumber, common.ReactorNumber, common.Zone);
|
|
||||||
else if (common.WorkOrder is null || common.WorkOrder.IsWorkOrder || common.RDSNumber.HasValue)
|
|
||||||
commonB = Get(lsl2SQLConnectionString, enteredDateTimeFilter, loadSignatureDateTimeFilter, common);
|
|
||||||
else
|
|
||||||
commonB = new(layer: hyphen,
|
|
||||||
loadLockSide: hyphen,
|
|
||||||
rdsNumber: common.RDSNumber,
|
|
||||||
reactorType: hyphen,
|
|
||||||
psn: common.PSN,
|
|
||||||
reactorNumber: common.ReactorNumber,
|
|
||||||
zone: hyphen);
|
|
||||||
if (commonB.RDSNumber is null || common.RunDataSheetRoot is not null)
|
|
||||||
runDataSheetRoot = common.RunDataSheetRoot;
|
runDataSheetRoot = common.RunDataSheetRoot;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{ runDataSheetRoot = GetRunDataSheetRoot(httpClient, commonB.RDSNumber.Value); }
|
{ runDataSheetRoot = GetRunDataSheetRoot(httpClient, common.RDSNumber.Value); }
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{ runDataSheetRoot = null; }
|
{ runDataSheetRoot = null; }
|
||||||
}
|
}
|
||||||
|
if (isValid)
|
||||||
|
runs = GetWithValidRDS(lsl2SQLConnectionString, enteredDateTimeFilter, loadSignatureDateTimeFilter, common);
|
||||||
|
else if (common.WorkOrder is null || common.WorkOrder.IsWorkOrder || common.RDSNumber.HasValue)
|
||||||
|
runs = Get(lsl2SQLConnectionString, enteredDateTimeFilter, loadSignatureDateTimeFilter, common);
|
||||||
|
else
|
||||||
|
runs = null;
|
||||||
|
commonB = CommonB.Get(common, runDataSheetRoot, runs);
|
||||||
|
if (string.IsNullOrEmpty(jobNames) || commonB.RDSNumber is null || commonB.ReactorNumber is null || string.IsNullOrEmpty(commonB.PSN))
|
||||||
|
basicType = hyphen;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int? runCount;
|
||||||
|
string commandText = GetCommandText(commonB, jobNames);
|
||||||
|
try
|
||||||
|
{ runCount = GetScalar(iqsSQLConnectionString, commandText); }
|
||||||
|
catch (Exception)
|
||||||
|
{ runCount = null; }
|
||||||
|
basicType = runCount is null ? hyphen : runCount.ToString();
|
||||||
|
}
|
||||||
Qty = "1";
|
Qty = "1";
|
||||||
Status = hyphen; // INFO
|
Status = hyphen; // INFO
|
||||||
CreationUser = hyphen; // ?
|
CreationUser = hyphen; // ?
|
||||||
@ -116,10 +126,10 @@ public partial class Job
|
|||||||
PackageName = hyphen; // WAFER_ID
|
PackageName = hyphen; // WAFER_ID
|
||||||
Qty2 = input.Sequence; // SEQUENCE
|
Qty2 = input.Sequence; // SEQUENCE
|
||||||
RecipeName = input.Recipe; // PPID
|
RecipeName = input.Recipe; // PPID
|
||||||
|
BasicType = basicType; // BASIC_TYPE
|
||||||
IsAreaSi = input.Area == "Si"; // N/A
|
IsAreaSi = input.Area == "Si"; // N/A
|
||||||
StateModel = input.EquipmentType; // ?
|
StateModel = input.EquipmentType; // ?
|
||||||
JobName = DateTime.Ticks.ToString(); // ?
|
JobName = DateTime.Ticks.ToString(); // ?
|
||||||
BasicType = GetComment(hyphen, runDataSheetRoot, commonB); // BASIC_TYPE
|
|
||||||
AutomationMode = string.Concat(DateTime.Ticks, ".", input.MesEntity); // ?
|
AutomationMode = string.Concat(DateTime.Ticks, ".", input.MesEntity); // ?
|
||||||
SpecName = !string.IsNullOrEmpty(commonB.Layer) ? commonB.Layer : hyphen; // LAYER
|
SpecName = !string.IsNullOrEmpty(commonB.Layer) ? commonB.Layer : hyphen; // LAYER
|
||||||
ProductName = !string.IsNullOrEmpty(commonB.PSN) ? commonB.PSN : hyphen; // PRODUCT
|
ProductName = !string.IsNullOrEmpty(commonB.PSN) ? commonB.PSN : hyphen; // PRODUCT
|
||||||
@ -131,27 +141,6 @@ public partial class Job
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetComment(string hyphen, RunDataSheetRoot? runDataSheetRoot, CommonB commonB)
|
|
||||||
{
|
|
||||||
string result;
|
|
||||||
string? loadLockSide = commonB.LoadLockSide;
|
|
||||||
if (string.IsNullOrEmpty(loadLockSide) && commonB.RDSNumber is not null)
|
|
||||||
loadLockSide = runDataSheetRoot?.RunDataSheet?.LoadLockSide;
|
|
||||||
if (string.IsNullOrEmpty(loadLockSide) || string.IsNullOrEmpty(commonB.ReactorType))
|
|
||||||
result = hyphen;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
string loadLockSideFull = loadLockSide switch
|
|
||||||
{
|
|
||||||
"L" => "Left",
|
|
||||||
"R" => "Right",
|
|
||||||
_ => loadLockSide,
|
|
||||||
};
|
|
||||||
result = $"{loadLockSideFull} - {commonB.ReactorType}";
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int? GetReactorNumber(Input input)
|
private static int? GetReactorNumber(Input input)
|
||||||
{
|
{
|
||||||
int? result;
|
int? result;
|
||||||
@ -564,12 +553,12 @@ public partial class Job
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetRunJson(string lsl2SQLConnectionString, string commandText)
|
private static string GetRunJson(string connectionString, string commandText)
|
||||||
{
|
{
|
||||||
StringBuilder result = new();
|
StringBuilder result = new();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using SqlConnection sqlConnection = new(lsl2SQLConnectionString);
|
using SqlConnection sqlConnection = new(connectionString);
|
||||||
sqlConnection.Open();
|
sqlConnection.Open();
|
||||||
using SqlCommand sqlCommand = new(commandText, sqlConnection);
|
using SqlCommand sqlCommand = new(commandText, sqlConnection);
|
||||||
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(CommandBehavior.SequentialAccess);
|
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(CommandBehavior.SequentialAccess);
|
||||||
@ -667,16 +656,9 @@ public partial class Job
|
|||||||
return string.Join(Environment.NewLine, results);
|
return string.Join(Environment.NewLine, results);
|
||||||
} // cSpell:restore
|
} // cSpell:restore
|
||||||
|
|
||||||
private static CommonB Get(string lsl2SQLConnectionString, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter, Common common)
|
private static Run[]? Get(string lsl2SQLConnectionString, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter, Common common)
|
||||||
{
|
{
|
||||||
int? rdsNumber;
|
Run[]? results;
|
||||||
string? psn;
|
|
||||||
string? zone;
|
|
||||||
string? layer;
|
|
||||||
const int zero = 0;
|
|
||||||
int? reactorNumber;
|
|
||||||
string? reactorType;
|
|
||||||
string? loadLockSide;
|
|
||||||
string commandText = GetCommandText(enteredDateTimeFilter,
|
string commandText = GetCommandText(enteredDateTimeFilter,
|
||||||
loadSignatureDateTimeFilter,
|
loadSignatureDateTimeFilter,
|
||||||
rds: null,
|
rds: null,
|
||||||
@ -686,106 +668,96 @@ public partial class Job
|
|||||||
reactor: common.ReactorNumber);
|
reactor: common.ReactorNumber);
|
||||||
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
||||||
if (string.IsNullOrEmpty(json))
|
if (string.IsNullOrEmpty(json))
|
||||||
{
|
results = null;
|
||||||
psn = common.PSN;
|
|
||||||
rdsNumber = null;
|
|
||||||
reactorType = null;
|
|
||||||
zone = common.Zone;
|
|
||||||
loadLockSide = null;
|
|
||||||
layer = common.Layer;
|
|
||||||
reactorNumber = common.ReactorNumber;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Run[]? runs;
|
|
||||||
try
|
try
|
||||||
{ runs = JsonSerializer.Deserialize<Run[]>(json); }
|
{ results = JsonSerializer.Deserialize<Run[]>(json); }
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{ runs = Array.Empty<Run>(); }
|
{ results = Array.Empty<Run>(); }
|
||||||
if (runs is null || runs.Length == 0)
|
|
||||||
{
|
|
||||||
psn = common.PSN;
|
|
||||||
rdsNumber = null;
|
|
||||||
reactorType = null;
|
|
||||||
zone = common.Zone;
|
|
||||||
loadLockSide = null;
|
|
||||||
layer = common.Layer;
|
|
||||||
reactorNumber = common.ReactorNumber;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
reactorType = null;
|
|
||||||
Run run = runs[zero];
|
|
||||||
rdsNumber = run.RdsNo;
|
|
||||||
reactorNumber = run.Reactor;
|
|
||||||
loadLockSide = run.LoadLockSide;
|
|
||||||
psn = string.IsNullOrEmpty(common.PSN) ? run.PSN : common.PSN;
|
|
||||||
zone = string.IsNullOrEmpty(common.Zone) ? run.Zone : common.Zone;
|
|
||||||
layer = string.IsNullOrEmpty(common.Layer) ? run.EpiLayer : common.Layer;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return new(layer: layer,
|
return results;
|
||||||
loadLockSide: loadLockSide,
|
|
||||||
rdsNumber: rdsNumber,
|
|
||||||
psn: psn,
|
|
||||||
reactorNumber: reactorNumber,
|
|
||||||
reactorType: reactorType,
|
|
||||||
zone: zone);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static CommonB GetWithValidRDS(string lsl2SQLConnectionString, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter, string? layer, string? psn, int? rdsNumber, int? reactorNumber, string? zone)
|
private static Run[]? GetWithValidRDS(string lsl2SQLConnectionString, DateTime enteredDateTimeFilter, DateTime loadSignatureDateTimeFilter, Common common)
|
||||||
{
|
{
|
||||||
const int zero = 0;
|
Run[]? results;
|
||||||
string? reactorType;
|
|
||||||
string? loadLockSide;
|
|
||||||
string commandText = GetCommandText(enteredDateTimeFilter,
|
string commandText = GetCommandText(enteredDateTimeFilter,
|
||||||
loadSignatureDateTimeFilter,
|
loadSignatureDateTimeFilter,
|
||||||
rds: rdsNumber,
|
rds: common.RDSNumber,
|
||||||
workOrderNumber: null,
|
workOrderNumber: null,
|
||||||
workOrderCassette: null,
|
workOrderCassette: null,
|
||||||
slot: null,
|
slot: null,
|
||||||
reactor: null);
|
reactor: null);
|
||||||
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
string json = GetRunJson(lsl2SQLConnectionString, commandText);
|
||||||
if (string.IsNullOrEmpty(json))
|
if (string.IsNullOrEmpty(json))
|
||||||
{
|
results = null;
|
||||||
zone = null;
|
|
||||||
reactorType = null;
|
|
||||||
loadLockSide = null;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Run[]? runs;
|
|
||||||
try
|
try
|
||||||
{ runs = JsonSerializer.Deserialize<Run[]>(json); }
|
{ results = JsonSerializer.Deserialize<Run[]>(json); }
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{ runs = Array.Empty<Run>(); }
|
{ results = Array.Empty<Run>(); }
|
||||||
if (runs is null || runs.Length == 0)
|
|
||||||
{
|
|
||||||
zone = null;
|
|
||||||
reactorType = null;
|
|
||||||
loadLockSide = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Run run = runs[zero];
|
|
||||||
if (string.IsNullOrEmpty(psn))
|
|
||||||
psn = run.PSN;
|
|
||||||
if (string.IsNullOrEmpty(zone))
|
|
||||||
zone = run.Zone;
|
|
||||||
if (string.IsNullOrEmpty(layer))
|
|
||||||
layer = run.EpiLayer;
|
|
||||||
reactorNumber = run.Reactor is null ? reactorNumber : run.Reactor.Value;
|
|
||||||
loadLockSide = run.LoadLockSide;
|
|
||||||
reactorType = run.ReactorType;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return new(layer: layer,
|
return results;
|
||||||
loadLockSide: loadLockSide,
|
}
|
||||||
rdsNumber: rdsNumber,
|
|
||||||
reactorType: reactorType,
|
private static string? GetJobNames(Input input) =>
|
||||||
psn: psn,
|
input.EquipmentType switch
|
||||||
reactorNumber: reactorNumber,
|
{
|
||||||
zone: zone);
|
"MET08ANLYSDIFAAST230" => "'SPV01'",
|
||||||
|
"MET08DDUPSFS6420" => "'TENCOR1','TENCOR2','TENCOR3'",
|
||||||
|
"MET08DDUPSP1TBI" => "'SP101'",
|
||||||
|
"MET08RESIHGCV" => "'HGCV1','HGCV2','HGCV3'",
|
||||||
|
"MET08RESIMAPCDE" => "'CDE1','CDE2','CDE3','CDE4','CDE5','CDE6'",
|
||||||
|
"MET08RESISRP2100" => "'SRP'",
|
||||||
|
"MET08THFTIRQS408M" => "'BIORAD2','BIORAD3','BIORAD4','BIORAD5'",
|
||||||
|
"MET08THFTIRSTRATUS" => "'BIORAD4','BIORAD5'",
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
|
||||||
|
private static string GetCommandText(CommonB commonB, string jobNames)
|
||||||
|
{ // cSpell:disable
|
||||||
|
List<string> results = new();
|
||||||
|
results.Add(" select count(distinct(se.f_sgrp)) count_se_sgrp ");
|
||||||
|
results.Add(" from [spcepiworld].[dbo].[sgrp_ext] se ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[prcs_dat] pr ");
|
||||||
|
results.Add(" on se.f_prcs = pr.f_prcs ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[job_dat] jd ");
|
||||||
|
results.Add(" on se.f_job = jd.f_job ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[part_lot] pl ");
|
||||||
|
results.Add(" on se.f_lot = pl.f_lot ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[part_dat] pd ");
|
||||||
|
results.Add(" on se.f_part = pd.f_part ");
|
||||||
|
results.Add(" join [spcepiworld].[dbo].[test_dat] td ");
|
||||||
|
results.Add(" on se.f_test = td.f_test ");
|
||||||
|
results.Add(" where se.f_flag = 0 ");
|
||||||
|
results.Add($" and pl.f_name = '{commonB.RDSNumber}' ");
|
||||||
|
results.Add($" and pr.f_name = '{commonB.ReactorNumber}' ");
|
||||||
|
results.Add($" and pd.f_name = '{commonB.PSN}' ");
|
||||||
|
results.Add($" and jd.f_name in ({jobNames}) ");
|
||||||
|
return string.Join(Environment.NewLine, results);
|
||||||
|
} // cSpell:restore
|
||||||
|
|
||||||
|
private static int? GetScalar(string connectionString, string commandText)
|
||||||
|
{
|
||||||
|
int? result;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using SqlConnection sqlConnection = new(connectionString);
|
||||||
|
sqlConnection.Open();
|
||||||
|
using SqlCommand sqlCommand = new(commandText, sqlConnection);
|
||||||
|
object scalar = sqlCommand.ExecuteScalar();
|
||||||
|
if (scalar is null || !int.TryParse(scalar.ToString(), out int value))
|
||||||
|
result = null;
|
||||||
|
else
|
||||||
|
result = value;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -17,19 +17,21 @@ internal partial class Main
|
|||||||
private static object _IfxTransport;
|
private static object _IfxTransport;
|
||||||
private static string _CellInstanceName;
|
private static string _CellInstanceName;
|
||||||
private static string _MetrologyFileShare;
|
private static string _MetrologyFileShare;
|
||||||
|
private static string _IQSConnectionString;
|
||||||
private static string _BarcodeHostFileShare;
|
private static string _BarcodeHostFileShare;
|
||||||
private static string _LSL2SQLConnectionString;
|
private static string _LSL2SQLConnectionString;
|
||||||
private static string _TibcoParameterSubjectPrefix;
|
private static string _TibcoParameterSubjectPrefix;
|
||||||
private static HttpClient _HttpClient;
|
private static HttpClient _HttpClient;
|
||||||
private static FileConnectorConfiguration _FileConnectorConfiguration;
|
private static FileConnectorConfiguration _FileConnectorConfiguration;
|
||||||
|
|
||||||
internal static void Initialize(ISMTP smtp, string cellInstanceName, FileConnectorConfiguration fileConnectorConfiguration, string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient)
|
internal static void Initialize(ISMTP smtp, string cellInstanceName, FileConnectorConfiguration fileConnectorConfiguration, string iqsConnectionString, string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, HttpClient httpClient)
|
||||||
{
|
{
|
||||||
_SMTP = smtp;
|
_SMTP = smtp;
|
||||||
_IfxTransport = null;
|
_IfxTransport = null;
|
||||||
_HttpClient = httpClient;
|
_HttpClient = httpClient;
|
||||||
_CellInstanceName = cellInstanceName;
|
_CellInstanceName = cellInstanceName;
|
||||||
_MetrologyFileShare = metrologyFileShare;
|
_MetrologyFileShare = metrologyFileShare;
|
||||||
|
_IQSConnectionString = iqsConnectionString;
|
||||||
_TibcoParameterSubjectPrefix = string.Empty;
|
_TibcoParameterSubjectPrefix = string.Empty;
|
||||||
_BarcodeHostFileShare = barcodeHostFileShare;
|
_BarcodeHostFileShare = barcodeHostFileShare;
|
||||||
_LSL2SQLConnectionString = lsl2SQLConnectionString;
|
_LSL2SQLConnectionString = lsl2SQLConnectionString;
|
||||||
@ -190,7 +192,7 @@ internal partial class Main
|
|||||||
string mid = GetJobsMID(envelopeDocument);
|
string mid = GetJobsMID(envelopeDocument);
|
||||||
DateTime enteredDateTimeFilter = dateTime.AddDays(-356);
|
DateTime enteredDateTimeFilter = dateTime.AddDays(-356);
|
||||||
DateTime loadSignatureDateTimeFilter = dateTime.AddDays(-4);
|
DateTime loadSignatureDateTimeFilter = dateTime.AddDays(-4);
|
||||||
Job job = new(_LSL2SQLConnectionString, _MetrologyFileShare, _BarcodeHostFileShare, _HttpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
Job job = new(_IQSConnectionString, _LSL2SQLConnectionString, _MetrologyFileShare, _BarcodeHostFileShare, _HttpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
if (job.IsAreaSi)
|
if (job.IsAreaSi)
|
||||||
{
|
{
|
||||||
IfxDoc sendReply = GetJobsReply(job);
|
IfxDoc sendReply = GetJobsReply(job);
|
||||||
|
@ -29,12 +29,6 @@ public class Run
|
|||||||
[JsonPropertyName("ps_no")]
|
[JsonPropertyName("ps_no")]
|
||||||
public string PSN { get; set; }
|
public string PSN { get; set; }
|
||||||
|
|
||||||
[JsonPropertyName("load_lock_side")]
|
|
||||||
public string LoadLockSide { get; set; }
|
|
||||||
|
|
||||||
[JsonPropertyName("reactor_type")]
|
|
||||||
public string ReactorType { get; set; }
|
|
||||||
|
|
||||||
[JsonPropertyName("recipe_name")]
|
[JsonPropertyName("recipe_name")]
|
||||||
public string RecipeName { get; set; }
|
public string RecipeName { get; set; }
|
||||||
|
|
||||||
|
@ -6,15 +6,23 @@ public class RunDataSheet
|
|||||||
{
|
{
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
public RunDataSheet(string loadLockSide, int psn, int reactor)
|
public RunDataSheet(string loadLockSide,
|
||||||
|
int number,
|
||||||
|
int psn,
|
||||||
|
int reactor,
|
||||||
|
string reactorType)
|
||||||
{
|
{
|
||||||
PSN = psn;
|
PSN = psn;
|
||||||
|
Number = number;
|
||||||
LoadLockSide = loadLockSide;
|
LoadLockSide = loadLockSide;
|
||||||
Reactor = reactor;
|
Reactor = reactor;
|
||||||
|
ReactorType = reactorType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[JsonPropertyName("keyId")] public int Number { get; } // { init; get; }
|
||||||
[JsonPropertyName("loadLockSide")] public string LoadLockSide { get; } // { init; get; }
|
[JsonPropertyName("loadLockSide")] public string LoadLockSide { get; } // { init; get; }
|
||||||
[JsonPropertyName("PSN")] public int PSN { get; } // { init; get; }
|
[JsonPropertyName("PSN")] public int PSN { get; } // { init; get; }
|
||||||
[JsonPropertyName("reactor")] public int Reactor { get; } // { init; get; }
|
[JsonPropertyName("reactor")] public int Reactor { get; } // { init; get; }
|
||||||
|
[JsonPropertyName("reactorType")] public string ReactorType { get; } // { init; get; }
|
||||||
|
|
||||||
}
|
}
|
@ -4,341 +4,344 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Adaptation.FileHandlers.txt;
|
namespace Adaptation.FileHandlers.txt;
|
||||||
|
|
||||||
public class Description : IDescription, Shared.Properties.IDescription
|
public class Description : IDescription, Shared.Properties.IDescription
|
||||||
{
|
{
|
||||||
|
|
||||||
public int Test { get; set; }
|
[JsonPropertyName("EventId")] public int Test { get; set; }
|
||||||
public int Count { get; set; }
|
[JsonPropertyName("Count")] public int Count { get; set; }
|
||||||
public int Index { get; set; }
|
[JsonPropertyName("Index")] public int Index { get; set; }
|
||||||
//
|
//
|
||||||
public string EventName { get; set; }
|
public string EventName { get; set; }
|
||||||
public string NullData { get; set; }
|
public string NullData { get; set; }
|
||||||
public string JobID { get; set; }
|
public string JobID { get; set; }
|
||||||
public string Sequence { get; set; }
|
public string Sequence { get; set; }
|
||||||
public string MesEntity { get; set; }
|
[JsonPropertyName("MesEntity")] public string MesEntity { get; set; }
|
||||||
public string ReportFullPath { get; set; }
|
public string ReportFullPath { get; set; }
|
||||||
public string ProcessJobID { get; set; }
|
public string ProcessJobID { get; set; }
|
||||||
public string MID { get; set; }
|
public string MID { get; set; }
|
||||||
//
|
//
|
||||||
public string Date { get; set; }
|
[JsonPropertyName("Date")] public string Date { get; set; }
|
||||||
public string Employee { get; set; }
|
[JsonPropertyName("Employee")] public string Employee { get; set; }
|
||||||
public string Lot { get; set; }
|
[JsonPropertyName("Lot")] public string Lot { get; set; }
|
||||||
public string PSN { get; set; }
|
[JsonPropertyName("PSN")] public string PSN { get; set; }
|
||||||
public string Reactor { get; set; }
|
[JsonPropertyName("Reactor")] public string Reactor { get; set; }
|
||||||
public string Recipe { get; set; }
|
public string Recipe { get; set; }
|
||||||
|
[JsonPropertyName("IndexOf")] public string IndexOf { get; set; }
|
||||||
|
[JsonPropertyName("AttemptCounter")] public string AttemptCounter { get; set; }
|
||||||
//
|
//
|
||||||
public string Grade { get; set; }
|
[JsonPropertyName("Grade")] public string Grade { get; set; }
|
||||||
public string HeaderUniqueId { get; set; }
|
public string HeaderUniqueId { get; set; }
|
||||||
public string RDS { get; set; }
|
[JsonPropertyName("RDS")] public string RDS { get; set; }
|
||||||
public string Session { get; set; }
|
[JsonPropertyName("Session")] public string Session { get; set; }
|
||||||
public string Side { get; set; }
|
[JsonPropertyName("Side")] public string Side { get; set; }
|
||||||
public string SrcDest { get; set; }
|
[JsonPropertyName("SrcDest")] public string SrcDest { get; set; }
|
||||||
public string UniqueId { get; set; }
|
public string UniqueId { get; set; }
|
||||||
public string WaferID { get; set; }
|
[JsonPropertyName("WaferID")] public string WaferID { get; set; }
|
||||||
//
|
//
|
||||||
public string DcnAllMax { get; set; }
|
[JsonPropertyName("DcnAllMax")] public string DcnAllMax { get; set; }
|
||||||
public string DcnAllMean { get; set; }
|
[JsonPropertyName("DcnAllMean")] public string DcnAllMean { get; set; }
|
||||||
public string DcnAllMin { get; set; }
|
[JsonPropertyName("DcnAllMin")] public string DcnAllMin { get; set; }
|
||||||
public string DcnAllStdDev { get; set; }
|
[JsonPropertyName("DcnAllStdDev")] public string DcnAllStdDev { get; set; }
|
||||||
public string DcnAreaCountMax { get; set; }
|
[JsonPropertyName("DcnAreaCountMax")] public string DcnAreaCountMax { get; set; }
|
||||||
public string DcnAreaCountMean { get; set; }
|
[JsonPropertyName("DcnAreaCountMean")] public string DcnAreaCountMean { get; set; }
|
||||||
public string DcnAreaCountMin { get; set; }
|
[JsonPropertyName("DcnAreaCountMin")] public string DcnAreaCountMin { get; set; }
|
||||||
public string DcnAreaCountStdDev { get; set; }
|
[JsonPropertyName("DcnAreaCountStdDev")] public string DcnAreaCountStdDev { get; set; }
|
||||||
public string DcnAreaMax { get; set; }
|
[JsonPropertyName("DcnAreaMax")] public string DcnAreaMax { get; set; }
|
||||||
public string DcnAreaMean { get; set; }
|
[JsonPropertyName("DcnAreaMean")] public string DcnAreaMean { get; set; }
|
||||||
public string DcnAreaMin { get; set; }
|
[JsonPropertyName("DcnAreaMin")] public string DcnAreaMin { get; set; }
|
||||||
public string DcnAreaStdDev { get; set; }
|
[JsonPropertyName("DcnAreaStdDev")] public string DcnAreaStdDev { get; set; }
|
||||||
public string DcnBin1Max { get; set; }
|
[JsonPropertyName("DcnBin1Max")] public string DcnBin1Max { get; set; }
|
||||||
public string DcnBin1Mean { get; set; }
|
[JsonPropertyName("DcnBin1Mean")] public string DcnBin1Mean { get; set; }
|
||||||
public string DcnBin1Min { get; set; }
|
[JsonPropertyName("DcnBin1Min")] public string DcnBin1Min { get; set; }
|
||||||
public string DcnBin1StdDev { get; set; }
|
[JsonPropertyName("DcnBin1StdDev")] public string DcnBin1StdDev { get; set; }
|
||||||
public string DcnBin2Max { get; set; }
|
[JsonPropertyName("DcnBin2Max")] public string DcnBin2Max { get; set; }
|
||||||
public string DcnBin2Mean { get; set; }
|
[JsonPropertyName("DcnBin2Mean")] public string DcnBin2Mean { get; set; }
|
||||||
public string DcnBin2Min { get; set; }
|
[JsonPropertyName("DcnBin2Min")] public string DcnBin2Min { get; set; }
|
||||||
public string DcnBin2StdDev { get; set; }
|
[JsonPropertyName("DcnBin2StdDev")] public string DcnBin2StdDev { get; set; }
|
||||||
public string DcnBin3Max { get; set; }
|
[JsonPropertyName("DcnBin3Max")] public string DcnBin3Max { get; set; }
|
||||||
public string DcnBin3Mean { get; set; }
|
[JsonPropertyName("DcnBin3Mean")] public string DcnBin3Mean { get; set; }
|
||||||
public string DcnBin3Min { get; set; }
|
[JsonPropertyName("DcnBin3Min")] public string DcnBin3Min { get; set; }
|
||||||
public string DcnBin3StdDev { get; set; }
|
[JsonPropertyName("DcnBin3StdDev")] public string DcnBin3StdDev { get; set; }
|
||||||
public string DcnBin4Max { get; set; }
|
[JsonPropertyName("DcnBin4Max")] public string DcnBin4Max { get; set; }
|
||||||
public string DcnBin4Mean { get; set; }
|
[JsonPropertyName("DcnBin4Mean")] public string DcnBin4Mean { get; set; }
|
||||||
public string DcnBin4Min { get; set; }
|
[JsonPropertyName("DcnBin4Min")] public string DcnBin4Min { get; set; }
|
||||||
public string DcnBin4StdDev { get; set; }
|
[JsonPropertyName("DcnBin4StdDev")] public string DcnBin4StdDev { get; set; }
|
||||||
public string DcnBin5Max { get; set; }
|
[JsonPropertyName("DcnBin5Max")] public string DcnBin5Max { get; set; }
|
||||||
public string DcnBin5Mean { get; set; }
|
[JsonPropertyName("DcnBin5Mean")] public string DcnBin5Mean { get; set; }
|
||||||
public string DcnBin5Min { get; set; }
|
[JsonPropertyName("DcnBin5Min")] public string DcnBin5Min { get; set; }
|
||||||
public string DcnBin5StdDev { get; set; }
|
[JsonPropertyName("DcnBin5StdDev")] public string DcnBin5StdDev { get; set; }
|
||||||
public string DcnBin6Max { get; set; }
|
[JsonPropertyName("DcnBin6Max")] public string DcnBin6Max { get; set; }
|
||||||
public string DcnBin6Mean { get; set; }
|
[JsonPropertyName("DcnBin6Mean")] public string DcnBin6Mean { get; set; }
|
||||||
public string DcnBin6Min { get; set; }
|
[JsonPropertyName("DcnBin6Min")] public string DcnBin6Min { get; set; }
|
||||||
public string DcnBin6StdDev { get; set; }
|
[JsonPropertyName("DcnBin6StdDev")] public string DcnBin6StdDev { get; set; }
|
||||||
public string DcnBin7Max { get; set; }
|
[JsonPropertyName("DcnBin7Max")] public string DcnBin7Max { get; set; }
|
||||||
public string DcnBin7Mean { get; set; }
|
[JsonPropertyName("DcnBin7Mean")] public string DcnBin7Mean { get; set; }
|
||||||
public string DcnBin7Min { get; set; }
|
[JsonPropertyName("DcnBin7Min")] public string DcnBin7Min { get; set; }
|
||||||
public string DcnBin7StdDev { get; set; }
|
[JsonPropertyName("DcnBin7StdDev")] public string DcnBin7StdDev { get; set; }
|
||||||
public string DcnBin8Max { get; set; }
|
[JsonPropertyName("DcnBin8Max")] public string DcnBin8Max { get; set; }
|
||||||
public string DcnBin8Mean { get; set; }
|
[JsonPropertyName("DcnBin8Mean")] public string DcnBin8Mean { get; set; }
|
||||||
public string DcnBin8Min { get; set; }
|
[JsonPropertyName("DcnBin8Min")] public string DcnBin8Min { get; set; }
|
||||||
public string DcnBin8StdDev { get; set; }
|
[JsonPropertyName("DcnBin8StdDev")] public string DcnBin8StdDev { get; set; }
|
||||||
public string DcnHazeAvgMax { get; set; }
|
[JsonPropertyName("DcnHazeAvgMax")] public string DcnHazeAvgMax { get; set; }
|
||||||
public string DcnHazeAvgMean { get; set; }
|
[JsonPropertyName("DcnHazeAvgMean")] public string DcnHazeAvgMean { get; set; }
|
||||||
public string DcnHazeAvgMin { get; set; }
|
[JsonPropertyName("DcnHazeAvgMin")] public string DcnHazeAvgMin { get; set; }
|
||||||
public string DcnHazeAvgStdDev { get; set; }
|
[JsonPropertyName("DcnHazeAvgStdDev")] public string DcnHazeAvgStdDev { get; set; }
|
||||||
public string DcnHazeMedianMax { get; set; }
|
[JsonPropertyName("DcnHazeMedianMax")] public string DcnHazeMedianMax { get; set; }
|
||||||
public string DcnHazeMedianMean { get; set; }
|
[JsonPropertyName("DcnHazeMedianMean")] public string DcnHazeMedianMean { get; set; }
|
||||||
public string DcnHazeMedianMin { get; set; }
|
[JsonPropertyName("DcnHazeMedianMin")] public string DcnHazeMedianMin { get; set; }
|
||||||
public string DcnHazeMedianStdDev { get; set; }
|
[JsonPropertyName("DcnHazeMedianStdDev")] public string DcnHazeMedianStdDev { get; set; }
|
||||||
public string DcnHazeStdDevMax { get; set; }
|
[JsonPropertyName("DcnHazeStdDevMax")] public string DcnHazeStdDevMax { get; set; }
|
||||||
public string DcnHazeStdDevMean { get; set; }
|
[JsonPropertyName("DcnHazeStdDevMean")] public string DcnHazeStdDevMean { get; set; }
|
||||||
public string DcnHazeStdDevMin { get; set; }
|
[JsonPropertyName("DcnHazeStdDevMin")] public string DcnHazeStdDevMin { get; set; }
|
||||||
public string DcnHazeStdDevStdDev { get; set; }
|
[JsonPropertyName("DcnHazeStdDevStdDev")] public string DcnHazeStdDevStdDev { get; set; }
|
||||||
public string DcnLpdESMax { get; set; }
|
[JsonPropertyName("DcnLpdESMax")] public string DcnLpdESMax { get; set; }
|
||||||
public string DcnLpdESMean { get; set; }
|
[JsonPropertyName("DcnLpdESMean")] public string DcnLpdESMean { get; set; }
|
||||||
public string DcnLpdESMin { get; set; }
|
[JsonPropertyName("DcnLpdESMin")] public string DcnLpdESMin { get; set; }
|
||||||
public string DcnLpdESStdDev { get; set; }
|
[JsonPropertyName("DcnLpdESStdDev")] public string DcnLpdESStdDev { get; set; }
|
||||||
public string DcnLpdMax { get; set; }
|
[JsonPropertyName("DcnLpdMax")] public string DcnLpdMax { get; set; }
|
||||||
public string DcnLpdMean { get; set; }
|
[JsonPropertyName("DcnLpdMean")] public string DcnLpdMean { get; set; }
|
||||||
public string DcnLpdMin { get; set; }
|
[JsonPropertyName("DcnLpdMin")] public string DcnLpdMin { get; set; }
|
||||||
public string DcnLpdNMax { get; set; }
|
[JsonPropertyName("DcnLpdNMax")] public string DcnLpdNMax { get; set; }
|
||||||
public string DcnLpdNMean { get; set; }
|
[JsonPropertyName("DcnLpdNMean")] public string DcnLpdNMean { get; set; }
|
||||||
public string DcnLpdNMin { get; set; }
|
[JsonPropertyName("DcnLpdNMin")] public string DcnLpdNMin { get; set; }
|
||||||
public string DcnLpdNStdDev { get; set; }
|
[JsonPropertyName("DcnLpdNStdDev")] public string DcnLpdNStdDev { get; set; }
|
||||||
public string DcnLpdStdDev { get; set; }
|
[JsonPropertyName("DcnLpdStdDev")] public string DcnLpdStdDev { get; set; }
|
||||||
public string DcnMicroScrMax { get; set; }
|
[JsonPropertyName("DcnMicroScrMax")] public string DcnMicroScrMax { get; set; }
|
||||||
public string DcnMicroScrMean { get; set; }
|
[JsonPropertyName("DcnMicroScrMean")] public string DcnMicroScrMean { get; set; }
|
||||||
public string DcnMicroScrMin { get; set; }
|
[JsonPropertyName("DcnMicroScrMin")] public string DcnMicroScrMin { get; set; }
|
||||||
public string DcnMicroScrStdDev { get; set; }
|
[JsonPropertyName("DcnMicroScrStdDev")] public string DcnMicroScrStdDev { get; set; }
|
||||||
public string DcnScrMax { get; set; }
|
[JsonPropertyName("DcnScrMax")] public string DcnScrMax { get; set; }
|
||||||
public string DcnScrMean { get; set; }
|
[JsonPropertyName("DcnScrMean")] public string DcnScrMean { get; set; }
|
||||||
public string DcnScrMin { get; set; }
|
[JsonPropertyName("DcnScrMin")] public string DcnScrMin { get; set; }
|
||||||
public string DcnScrStdDev { get; set; }
|
[JsonPropertyName("DcnScrStdDev")] public string DcnScrStdDev { get; set; }
|
||||||
public string DcnSlipMax { get; set; }
|
[JsonPropertyName("DcnSlipMax")] public string DcnSlipMax { get; set; }
|
||||||
public string DcnSlipMean { get; set; }
|
[JsonPropertyName("DcnSlipMean")] public string DcnSlipMean { get; set; }
|
||||||
public string DcnSlipMin { get; set; }
|
[JsonPropertyName("DcnSlipMin")] public string DcnSlipMin { get; set; }
|
||||||
public string DcnSlipStdDev { get; set; }
|
[JsonPropertyName("DcnSlipStdDev")] public string DcnSlipStdDev { get; set; }
|
||||||
public string DnnAllMax { get; set; }
|
[JsonPropertyName("DnnAllMax")] public string DnnAllMax { get; set; }
|
||||||
public string DnnAllMean { get; set; }
|
[JsonPropertyName("DnnAllMean")] public string DnnAllMean { get; set; }
|
||||||
public string DnnAllMin { get; set; }
|
[JsonPropertyName("DnnAllMin")] public string DnnAllMin { get; set; }
|
||||||
public string DnnAllStdDev { get; set; }
|
[JsonPropertyName("DnnAllStdDev")] public string DnnAllStdDev { get; set; }
|
||||||
public string DnnAreaCountMax { get; set; }
|
[JsonPropertyName("DnnAreaCountMax")] public string DnnAreaCountMax { get; set; }
|
||||||
public string DnnAreaCountMean { get; set; }
|
[JsonPropertyName("DnnAreaCountMean")] public string DnnAreaCountMean { get; set; }
|
||||||
public string DnnAreaCountMin { get; set; }
|
[JsonPropertyName("DnnAreaCountMin")] public string DnnAreaCountMin { get; set; }
|
||||||
public string DnnAreaCountStdDev { get; set; }
|
[JsonPropertyName("DnnAreaCountStdDev")] public string DnnAreaCountStdDev { get; set; }
|
||||||
public string DnnAreaMax { get; set; }
|
[JsonPropertyName("DnnAreaMax")] public string DnnAreaMax { get; set; }
|
||||||
public string DnnAreaMean { get; set; }
|
[JsonPropertyName("DnnAreaMean")] public string DnnAreaMean { get; set; }
|
||||||
public string DnnAreaMin { get; set; }
|
[JsonPropertyName("DnnAreaMin")] public string DnnAreaMin { get; set; }
|
||||||
public string DnnAreaStdDev { get; set; }
|
[JsonPropertyName("DnnAreaStdDev")] public string DnnAreaStdDev { get; set; }
|
||||||
public string DnnBin1Max { get; set; }
|
[JsonPropertyName("DnnBin1Max")] public string DnnBin1Max { get; set; }
|
||||||
public string DnnBin1Mean { get; set; }
|
[JsonPropertyName("DnnBin1Mean")] public string DnnBin1Mean { get; set; }
|
||||||
public string DnnBin1Min { get; set; }
|
[JsonPropertyName("DnnBin1Min")] public string DnnBin1Min { get; set; }
|
||||||
public string DnnBin1StdDev { get; set; }
|
[JsonPropertyName("DnnBin1StdDev")] public string DnnBin1StdDev { get; set; }
|
||||||
public string DnnBin2Max { get; set; }
|
[JsonPropertyName("DnnBin2Max")] public string DnnBin2Max { get; set; }
|
||||||
public string DnnBin2Mean { get; set; }
|
[JsonPropertyName("DnnBin2Mean")] public string DnnBin2Mean { get; set; }
|
||||||
public string DnnBin2Min { get; set; }
|
[JsonPropertyName("DnnBin2Min")] public string DnnBin2Min { get; set; }
|
||||||
public string DnnBin2StdDev { get; set; }
|
[JsonPropertyName("DnnBin2StdDev")] public string DnnBin2StdDev { get; set; }
|
||||||
public string DnnBin3Max { get; set; }
|
[JsonPropertyName("DnnBin3Max")] public string DnnBin3Max { get; set; }
|
||||||
public string DnnBin3Mean { get; set; }
|
[JsonPropertyName("DnnBin3Mean")] public string DnnBin3Mean { get; set; }
|
||||||
public string DnnBin3Min { get; set; }
|
[JsonPropertyName("DnnBin3Min")] public string DnnBin3Min { get; set; }
|
||||||
public string DnnBin3StdDev { get; set; }
|
[JsonPropertyName("DnnBin3StdDev")] public string DnnBin3StdDev { get; set; }
|
||||||
public string DnnBin4Max { get; set; }
|
[JsonPropertyName("DnnBin4Max")] public string DnnBin4Max { get; set; }
|
||||||
public string DnnBin4Mean { get; set; }
|
[JsonPropertyName("DnnBin4Mean")] public string DnnBin4Mean { get; set; }
|
||||||
public string DnnBin4Min { get; set; }
|
[JsonPropertyName("DnnBin4Min")] public string DnnBin4Min { get; set; }
|
||||||
public string DnnBin4StdDev { get; set; }
|
[JsonPropertyName("DnnBin4StdDev")] public string DnnBin4StdDev { get; set; }
|
||||||
public string DnnBin5Max { get; set; }
|
[JsonPropertyName("DnnBin5Max")] public string DnnBin5Max { get; set; }
|
||||||
public string DnnBin5Mean { get; set; }
|
[JsonPropertyName("DnnBin5Mean")] public string DnnBin5Mean { get; set; }
|
||||||
public string DnnBin5Min { get; set; }
|
[JsonPropertyName("DnnBin5Min")] public string DnnBin5Min { get; set; }
|
||||||
public string DnnBin5StdDev { get; set; }
|
[JsonPropertyName("DnnBin5StdDev")] public string DnnBin5StdDev { get; set; }
|
||||||
public string DnnBin6Max { get; set; }
|
[JsonPropertyName("DnnBin6Max")] public string DnnBin6Max { get; set; }
|
||||||
public string DnnBin6Mean { get; set; }
|
[JsonPropertyName("DnnBin6Mean")] public string DnnBin6Mean { get; set; }
|
||||||
public string DnnBin6Min { get; set; }
|
[JsonPropertyName("DnnBin6Min")] public string DnnBin6Min { get; set; }
|
||||||
public string DnnBin6StdDev { get; set; }
|
[JsonPropertyName("DnnBin6StdDev")] public string DnnBin6StdDev { get; set; }
|
||||||
public string DnnBin7Max { get; set; }
|
[JsonPropertyName("DnnBin7Max")] public string DnnBin7Max { get; set; }
|
||||||
public string DnnBin7Mean { get; set; }
|
[JsonPropertyName("DnnBin7Mean")] public string DnnBin7Mean { get; set; }
|
||||||
public string DnnBin7Min { get; set; }
|
[JsonPropertyName("DnnBin7Min")] public string DnnBin7Min { get; set; }
|
||||||
public string DnnBin7StdDev { get; set; }
|
[JsonPropertyName("DnnBin7StdDev")] public string DnnBin7StdDev { get; set; }
|
||||||
public string DnnBin8Max { get; set; }
|
[JsonPropertyName("DnnBin8Max")] public string DnnBin8Max { get; set; }
|
||||||
public string DnnBin8Mean { get; set; }
|
[JsonPropertyName("DnnBin8Mean")] public string DnnBin8Mean { get; set; }
|
||||||
public string DnnBin8Min { get; set; }
|
[JsonPropertyName("DnnBin8Min")] public string DnnBin8Min { get; set; }
|
||||||
public string DnnBin8StdDev { get; set; }
|
[JsonPropertyName("DnnBin8StdDev")] public string DnnBin8StdDev { get; set; }
|
||||||
public string DnnHazeAvgMax { get; set; }
|
[JsonPropertyName("DnnHazeAvgMax")] public string DnnHazeAvgMax { get; set; }
|
||||||
public string DnnHazeAvgMean { get; set; }
|
[JsonPropertyName("DnnHazeAvgMean")] public string DnnHazeAvgMean { get; set; }
|
||||||
public string DnnHazeAvgMin { get; set; }
|
[JsonPropertyName("DnnHazeAvgMin")] public string DnnHazeAvgMin { get; set; }
|
||||||
public string DnnHazeAvgStdDev { get; set; }
|
[JsonPropertyName("DnnHazeAvgStdDev")] public string DnnHazeAvgStdDev { get; set; }
|
||||||
public string DnnHazeMedianMax { get; set; }
|
[JsonPropertyName("DnnHazeMedianMax")] public string DnnHazeMedianMax { get; set; }
|
||||||
public string DnnHazeMedianMean { get; set; }
|
[JsonPropertyName("DnnHazeMedianMean")] public string DnnHazeMedianMean { get; set; }
|
||||||
public string DnnHazeMedianMin { get; set; }
|
[JsonPropertyName("DnnHazeMedianMin")] public string DnnHazeMedianMin { get; set; }
|
||||||
public string DnnHazeMedianStdDev { get; set; }
|
[JsonPropertyName("DnnHazeMedianStdDev")] public string DnnHazeMedianStdDev { get; set; }
|
||||||
public string DnnHazeStdDevMax { get; set; }
|
[JsonPropertyName("DnnHazeStdDevMax")] public string DnnHazeStdDevMax { get; set; }
|
||||||
public string DnnHazeStdDevMean { get; set; }
|
[JsonPropertyName("DnnHazeStdDevMean")] public string DnnHazeStdDevMean { get; set; }
|
||||||
public string DnnHazeStdDevMin { get; set; }
|
[JsonPropertyName("DnnHazeStdDevMin")] public string DnnHazeStdDevMin { get; set; }
|
||||||
public string DnnHazeStdDevStdDev { get; set; }
|
[JsonPropertyName("DnnHazeStdDevStdDev")] public string DnnHazeStdDevStdDev { get; set; }
|
||||||
public string DnnLpdESMax { get; set; }
|
[JsonPropertyName("DnnLpdESMax")] public string DnnLpdESMax { get; set; }
|
||||||
public string DnnLpdESMean { get; set; }
|
[JsonPropertyName("DnnLpdESMean")] public string DnnLpdESMean { get; set; }
|
||||||
public string DnnLpdESMin { get; set; }
|
[JsonPropertyName("DnnLpdESMin")] public string DnnLpdESMin { get; set; }
|
||||||
public string DnnLpdESStdDev { get; set; }
|
[JsonPropertyName("DnnLpdESStdDev")] public string DnnLpdESStdDev { get; set; }
|
||||||
public string DnnLpdMax { get; set; }
|
[JsonPropertyName("DnnLpdMax")] public string DnnLpdMax { get; set; }
|
||||||
public string DnnLpdMean { get; set; }
|
[JsonPropertyName("DnnLpdMean")] public string DnnLpdMean { get; set; }
|
||||||
public string DnnLpdMin { get; set; }
|
[JsonPropertyName("DnnLpdMin")] public string DnnLpdMin { get; set; }
|
||||||
public string DnnLpdNMax { get; set; }
|
[JsonPropertyName("DnnLpdNMax")] public string DnnLpdNMax { get; set; }
|
||||||
public string DnnLpdNMean { get; set; }
|
[JsonPropertyName("DnnLpdNMean")] public string DnnLpdNMean { get; set; }
|
||||||
public string DnnLpdNMin { get; set; }
|
[JsonPropertyName("DnnLpdNMin")] public string DnnLpdNMin { get; set; }
|
||||||
public string DnnLpdNStdDev { get; set; }
|
[JsonPropertyName("DnnLpdNStdDev")] public string DnnLpdNStdDev { get; set; }
|
||||||
public string DnnLpdStdDev { get; set; }
|
[JsonPropertyName("DnnLpdStdDev")] public string DnnLpdStdDev { get; set; }
|
||||||
public string DnnMicroScrMax { get; set; }
|
[JsonPropertyName("DnnMicroScrMax")] public string DnnMicroScrMax { get; set; }
|
||||||
public string DnnMicroScrMean { get; set; }
|
[JsonPropertyName("DnnMicroScrMean")] public string DnnMicroScrMean { get; set; }
|
||||||
public string DnnMicroScrMin { get; set; }
|
[JsonPropertyName("DnnMicroScrMin")] public string DnnMicroScrMin { get; set; }
|
||||||
public string DnnMicroScrStdDev { get; set; }
|
[JsonPropertyName("DnnMicroScrStdDev")] public string DnnMicroScrStdDev { get; set; }
|
||||||
public string DnnScrMax { get; set; }
|
[JsonPropertyName("DnnScrMax")] public string DnnScrMax { get; set; }
|
||||||
public string DnnScrMean { get; set; }
|
[JsonPropertyName("DnnScrMean")] public string DnnScrMean { get; set; }
|
||||||
public string DnnScrMin { get; set; }
|
[JsonPropertyName("DnnScrMin")] public string DnnScrMin { get; set; }
|
||||||
public string DnnScrStdDev { get; set; }
|
[JsonPropertyName("DnnScrStdDev")] public string DnnScrStdDev { get; set; }
|
||||||
public string DnnSlipMax { get; set; }
|
[JsonPropertyName("DnnSlipMax")] public string DnnSlipMax { get; set; }
|
||||||
public string DnnSlipMean { get; set; }
|
[JsonPropertyName("DnnSlipMean")] public string DnnSlipMean { get; set; }
|
||||||
public string DnnSlipMin { get; set; }
|
[JsonPropertyName("DnnSlipMin")] public string DnnSlipMin { get; set; }
|
||||||
public string DnnSlipStdDev { get; set; }
|
[JsonPropertyName("DnnSlipStdDev")] public string DnnSlipStdDev { get; set; }
|
||||||
public string DwnAllMax { get; set; }
|
[JsonPropertyName("DwnAllMax")] public string DwnAllMax { get; set; }
|
||||||
public string DwnAllMean { get; set; }
|
[JsonPropertyName("DwnAllMean")] public string DwnAllMean { get; set; }
|
||||||
public string DwnAllMin { get; set; }
|
[JsonPropertyName("DwnAllMin")] public string DwnAllMin { get; set; }
|
||||||
public string DwnAllStdDev { get; set; }
|
[JsonPropertyName("DwnAllStdDev")] public string DwnAllStdDev { get; set; }
|
||||||
public string DwnAreaCountMax { get; set; }
|
[JsonPropertyName("DwnAreaCountMax")] public string DwnAreaCountMax { get; set; }
|
||||||
public string DwnAreaCountMean { get; set; }
|
[JsonPropertyName("DwnAreaCountMean")] public string DwnAreaCountMean { get; set; }
|
||||||
public string DwnAreaCountMin { get; set; }
|
[JsonPropertyName("DwnAreaCountMin")] public string DwnAreaCountMin { get; set; }
|
||||||
public string DwnAreaCountStdDev { get; set; }
|
[JsonPropertyName("DwnAreaCountStdDev")] public string DwnAreaCountStdDev { get; set; }
|
||||||
public string DwnAreaMax { get; set; }
|
[JsonPropertyName("DwnAreaMax")] public string DwnAreaMax { get; set; }
|
||||||
public string DwnAreaMean { get; set; }
|
[JsonPropertyName("DwnAreaMean")] public string DwnAreaMean { get; set; }
|
||||||
public string DwnAreaMin { get; set; }
|
[JsonPropertyName("DwnAreaMin")] public string DwnAreaMin { get; set; }
|
||||||
public string DwnAreaStdDev { get; set; }
|
[JsonPropertyName("DwnAreaStdDev")] public string DwnAreaStdDev { get; set; }
|
||||||
public string DwnBin1Max { get; set; }
|
[JsonPropertyName("DwnBin1Max")] public string DwnBin1Max { get; set; }
|
||||||
public string DwnBin1Mean { get; set; }
|
[JsonPropertyName("DwnBin1Mean")] public string DwnBin1Mean { get; set; }
|
||||||
public string DwnBin1Min { get; set; }
|
[JsonPropertyName("DwnBin1Min")] public string DwnBin1Min { get; set; }
|
||||||
public string DwnBin1StdDev { get; set; }
|
[JsonPropertyName("DwnBin1StdDev")] public string DwnBin1StdDev { get; set; }
|
||||||
public string DwnBin2Max { get; set; }
|
[JsonPropertyName("DwnBin2Max")] public string DwnBin2Max { get; set; }
|
||||||
public string DwnBin2Mean { get; set; }
|
[JsonPropertyName("DwnBin2Mean")] public string DwnBin2Mean { get; set; }
|
||||||
public string DwnBin2Min { get; set; }
|
[JsonPropertyName("DwnBin2Min")] public string DwnBin2Min { get; set; }
|
||||||
public string DwnBin2StdDev { get; set; }
|
[JsonPropertyName("DwnBin2StdDev")] public string DwnBin2StdDev { get; set; }
|
||||||
public string DwnBin3Max { get; set; }
|
[JsonPropertyName("DwnBin3Max")] public string DwnBin3Max { get; set; }
|
||||||
public string DwnBin3Mean { get; set; }
|
[JsonPropertyName("DwnBin3Mean")] public string DwnBin3Mean { get; set; }
|
||||||
public string DwnBin3Min { get; set; }
|
[JsonPropertyName("DwnBin3Min")] public string DwnBin3Min { get; set; }
|
||||||
public string DwnBin3StdDev { get; set; }
|
[JsonPropertyName("DwnBin3StdDev")] public string DwnBin3StdDev { get; set; }
|
||||||
public string DwnBin4Max { get; set; }
|
[JsonPropertyName("DwnBin4Max")] public string DwnBin4Max { get; set; }
|
||||||
public string DwnBin4Mean { get; set; }
|
[JsonPropertyName("DwnBin4Mean")] public string DwnBin4Mean { get; set; }
|
||||||
public string DwnBin4Min { get; set; }
|
[JsonPropertyName("DwnBin4Min")] public string DwnBin4Min { get; set; }
|
||||||
public string DwnBin4StdDev { get; set; }
|
[JsonPropertyName("DwnBin4StdDev")] public string DwnBin4StdDev { get; set; }
|
||||||
public string DwnBin5Max { get; set; }
|
[JsonPropertyName("DwnBin5Max")] public string DwnBin5Max { get; set; }
|
||||||
public string DwnBin5Mean { get; set; }
|
[JsonPropertyName("DwnBin5Mean")] public string DwnBin5Mean { get; set; }
|
||||||
public string DwnBin5Min { get; set; }
|
[JsonPropertyName("DwnBin5Min")] public string DwnBin5Min { get; set; }
|
||||||
public string DwnBin5StdDev { get; set; }
|
[JsonPropertyName("DwnBin5StdDev")] public string DwnBin5StdDev { get; set; }
|
||||||
public string DwnBin6Max { get; set; }
|
[JsonPropertyName("DwnBin6Max")] public string DwnBin6Max { get; set; }
|
||||||
public string DwnBin6Mean { get; set; }
|
[JsonPropertyName("DwnBin6Mean")] public string DwnBin6Mean { get; set; }
|
||||||
public string DwnBin6Min { get; set; }
|
[JsonPropertyName("DwnBin6Min")] public string DwnBin6Min { get; set; }
|
||||||
public string DwnBin6StdDev { get; set; }
|
[JsonPropertyName("DwnBin6StdDev")] public string DwnBin6StdDev { get; set; }
|
||||||
public string DwnBin7Max { get; set; }
|
[JsonPropertyName("DwnBin7Max")] public string DwnBin7Max { get; set; }
|
||||||
public string DwnBin7Mean { get; set; }
|
[JsonPropertyName("DwnBin7Mean")] public string DwnBin7Mean { get; set; }
|
||||||
public string DwnBin7Min { get; set; }
|
[JsonPropertyName("DwnBin7Min")] public string DwnBin7Min { get; set; }
|
||||||
public string DwnBin7StdDev { get; set; }
|
[JsonPropertyName("DwnBin7StdDev")] public string DwnBin7StdDev { get; set; }
|
||||||
public string DwnBin8Max { get; set; }
|
[JsonPropertyName("DwnBin8Max")] public string DwnBin8Max { get; set; }
|
||||||
public string DwnBin8Mean { get; set; }
|
[JsonPropertyName("DwnBin8Mean")] public string DwnBin8Mean { get; set; }
|
||||||
public string DwnBin8Min { get; set; }
|
[JsonPropertyName("DwnBin8Min")] public string DwnBin8Min { get; set; }
|
||||||
public string DwnBin8StdDev { get; set; }
|
[JsonPropertyName("DwnBin8StdDev")] public string DwnBin8StdDev { get; set; }
|
||||||
public string DwnHazeAvgMax { get; set; }
|
[JsonPropertyName("DwnHazeAvgMax")] public string DwnHazeAvgMax { get; set; }
|
||||||
public string DwnHazeAvgMean { get; set; }
|
[JsonPropertyName("DwnHazeAvgMean")] public string DwnHazeAvgMean { get; set; }
|
||||||
public string DwnHazeAvgMin { get; set; }
|
[JsonPropertyName("DwnHazeAvgMin")] public string DwnHazeAvgMin { get; set; }
|
||||||
public string DwnHazeAvgStdDev { get; set; }
|
[JsonPropertyName("DwnHazeAvgStdDev")] public string DwnHazeAvgStdDev { get; set; }
|
||||||
public string DwnHazeMedianMax { get; set; }
|
[JsonPropertyName("DwnHazeMedianMax")] public string DwnHazeMedianMax { get; set; }
|
||||||
public string DwnHazeMedianMean { get; set; }
|
[JsonPropertyName("DwnHazeMedianMean")] public string DwnHazeMedianMean { get; set; }
|
||||||
public string DwnHazeMedianMin { get; set; }
|
[JsonPropertyName("DwnHazeMedianMin")] public string DwnHazeMedianMin { get; set; }
|
||||||
public string DwnHazeMedianStdDev { get; set; }
|
[JsonPropertyName("DwnHazeMedianStdDev")] public string DwnHazeMedianStdDev { get; set; }
|
||||||
public string DwnHazeStdDevMax { get; set; }
|
[JsonPropertyName("DwnHazeStdDevMax")] public string DwnHazeStdDevMax { get; set; }
|
||||||
public string DwnHazeStdDevMean { get; set; }
|
[JsonPropertyName("DwnHazeStdDevMean")] public string DwnHazeStdDevMean { get; set; }
|
||||||
public string DwnHazeStdDevMin { get; set; }
|
[JsonPropertyName("DwnHazeStdDevMin")] public string DwnHazeStdDevMin { get; set; }
|
||||||
public string DwnHazeStdDevStdDev { get; set; }
|
[JsonPropertyName("DwnHazeStdDevStdDev")] public string DwnHazeStdDevStdDev { get; set; }
|
||||||
public string DwnLpdESMax { get; set; }
|
[JsonPropertyName("DwnLpdESMax")] public string DwnLpdESMax { get; set; }
|
||||||
public string DwnLpdESMean { get; set; }
|
[JsonPropertyName("DwnLpdESMean")] public string DwnLpdESMean { get; set; }
|
||||||
public string DwnLpdESMin { get; set; }
|
[JsonPropertyName("DwnLpdESMin")] public string DwnLpdESMin { get; set; }
|
||||||
public string DwnLpdESStdDev { get; set; }
|
[JsonPropertyName("DwnLpdESStdDev")] public string DwnLpdESStdDev { get; set; }
|
||||||
public string DwnLpdMax { get; set; }
|
[JsonPropertyName("DwnLpdMax")] public string DwnLpdMax { get; set; }
|
||||||
public string DwnLpdMean { get; set; }
|
[JsonPropertyName("DwnLpdMean")] public string DwnLpdMean { get; set; }
|
||||||
public string DwnLpdMin { get; set; }
|
[JsonPropertyName("DwnLpdMin")] public string DwnLpdMin { get; set; }
|
||||||
public string DwnLpdNMax { get; set; }
|
[JsonPropertyName("DwnLpdNMax")] public string DwnLpdNMax { get; set; }
|
||||||
public string DwnLpdNMean { get; set; }
|
[JsonPropertyName("DwnLpdNMean")] public string DwnLpdNMean { get; set; }
|
||||||
public string DwnLpdNMin { get; set; }
|
[JsonPropertyName("DwnLpdNMin")] public string DwnLpdNMin { get; set; }
|
||||||
public string DwnLpdNStdDev { get; set; }
|
[JsonPropertyName("DwnLpdNStdDev")] public string DwnLpdNStdDev { get; set; }
|
||||||
public string DwnLpdStdDev { get; set; }
|
[JsonPropertyName("DwnLpdStdDev")] public string DwnLpdStdDev { get; set; }
|
||||||
public string DwnMicroScrMax { get; set; }
|
[JsonPropertyName("DwnMicroScrMax")] public string DwnMicroScrMax { get; set; }
|
||||||
public string DwnMicroScrMean { get; set; }
|
[JsonPropertyName("DwnMicroScrMean")] public string DwnMicroScrMean { get; set; }
|
||||||
public string DwnMicroScrMin { get; set; }
|
[JsonPropertyName("DwnMicroScrMin")] public string DwnMicroScrMin { get; set; }
|
||||||
public string DwnMicroScrStdDev { get; set; }
|
[JsonPropertyName("DwnMicroScrStdDev")] public string DwnMicroScrStdDev { get; set; }
|
||||||
public string DwnScrMax { get; set; }
|
[JsonPropertyName("DwnScrMax")] public string DwnScrMax { get; set; }
|
||||||
public string DwnScrMean { get; set; }
|
[JsonPropertyName("DwnScrMean")] public string DwnScrMean { get; set; }
|
||||||
public string DwnScrMin { get; set; }
|
[JsonPropertyName("DwnScrMin")] public string DwnScrMin { get; set; }
|
||||||
public string DwnScrStdDev { get; set; }
|
[JsonPropertyName("DwnScrStdDev")] public string DwnScrStdDev { get; set; }
|
||||||
public string DwnSlipMax { get; set; }
|
[JsonPropertyName("DwnSlipMax")] public string DwnSlipMax { get; set; }
|
||||||
public string DwnSlipMean { get; set; }
|
[JsonPropertyName("DwnSlipMean")] public string DwnSlipMean { get; set; }
|
||||||
public string DwnSlipMin { get; set; }
|
[JsonPropertyName("DwnSlipMin")] public string DwnSlipMin { get; set; }
|
||||||
public string DwnSlipStdDev { get; set; }
|
[JsonPropertyName("DwnSlipStdDev")] public string DwnSlipStdDev { get; set; }
|
||||||
public string DcnAll { get; set; }
|
[JsonPropertyName("DcnAll")] public string DcnAll { get; set; }
|
||||||
public string DcnArea { get; set; }
|
[JsonPropertyName("DcnArea")] public string DcnArea { get; set; }
|
||||||
public string DcnAreaCount { get; set; }
|
[JsonPropertyName("DcnAreaCount")] public string DcnAreaCount { get; set; }
|
||||||
public string DcnBin1 { get; set; }
|
[JsonPropertyName("DcnBin1")] public string DcnBin1 { get; set; }
|
||||||
public string DcnBin2 { get; set; }
|
[JsonPropertyName("DcnBin2")] public string DcnBin2 { get; set; }
|
||||||
public string DcnBin3 { get; set; }
|
[JsonPropertyName("DcnBin3")] public string DcnBin3 { get; set; }
|
||||||
public string DcnBin4 { get; set; }
|
[JsonPropertyName("DcnBin4")] public string DcnBin4 { get; set; }
|
||||||
public string DcnBin5 { get; set; }
|
[JsonPropertyName("DcnBin5")] public string DcnBin5 { get; set; }
|
||||||
public string DcnBin6 { get; set; }
|
[JsonPropertyName("DcnBin6")] public string DcnBin6 { get; set; }
|
||||||
public string DcnBin7 { get; set; }
|
[JsonPropertyName("DcnBin7")] public string DcnBin7 { get; set; }
|
||||||
public string DcnBin8 { get; set; }
|
[JsonPropertyName("DcnBin8")] public string DcnBin8 { get; set; }
|
||||||
public string DcnHazeAvg { get; set; }
|
[JsonPropertyName("DcnHazeAvg")] public string DcnHazeAvg { get; set; }
|
||||||
public string DcnHazeMedian { get; set; }
|
[JsonPropertyName("DcnHazeMedian")] public string DcnHazeMedian { get; set; }
|
||||||
public string DcnHazeStdDev { get; set; }
|
[JsonPropertyName("DcnHazeStdDev")] public string DcnHazeStdDev { get; set; }
|
||||||
public string DcnLpd { get; set; }
|
[JsonPropertyName("DcnLpd")] public string DcnLpd { get; set; }
|
||||||
public string DcnLpdES { get; set; }
|
[JsonPropertyName("DcnLpdES")] public string DcnLpdES { get; set; }
|
||||||
public string DcnLpdN { get; set; }
|
[JsonPropertyName("DcnLpdN")] public string DcnLpdN { get; set; }
|
||||||
public string DcnMicroScr { get; set; }
|
[JsonPropertyName("DcnMicroScr")] public string DcnMicroScr { get; set; }
|
||||||
public string DcnScr { get; set; }
|
[JsonPropertyName("DcnScr")] public string DcnScr { get; set; }
|
||||||
public string DcnSlip { get; set; }
|
[JsonPropertyName("DcnSlip")] public string DcnSlip { get; set; }
|
||||||
public string DnnAll { get; set; }
|
[JsonPropertyName("DnnAll")] public string DnnAll { get; set; }
|
||||||
public string DnnArea { get; set; }
|
[JsonPropertyName("DnnArea")] public string DnnArea { get; set; }
|
||||||
public string DnnAreaCount { get; set; }
|
[JsonPropertyName("DnnAreaCount")] public string DnnAreaCount { get; set; }
|
||||||
public string DnnBin1 { get; set; }
|
[JsonPropertyName("DnnBin1")] public string DnnBin1 { get; set; }
|
||||||
public string DnnBin2 { get; set; }
|
[JsonPropertyName("DnnBin2")] public string DnnBin2 { get; set; }
|
||||||
public string DnnBin3 { get; set; }
|
[JsonPropertyName("DnnBin3")] public string DnnBin3 { get; set; }
|
||||||
public string DnnBin4 { get; set; }
|
[JsonPropertyName("DnnBin4")] public string DnnBin4 { get; set; }
|
||||||
public string DnnBin5 { get; set; }
|
[JsonPropertyName("DnnBin5")] public string DnnBin5 { get; set; }
|
||||||
public string DnnBin6 { get; set; }
|
[JsonPropertyName("DnnBin6")] public string DnnBin6 { get; set; }
|
||||||
public string DnnBin7 { get; set; }
|
[JsonPropertyName("DnnBin7")] public string DnnBin7 { get; set; }
|
||||||
public string DnnBin8 { get; set; }
|
[JsonPropertyName("DnnBin8")] public string DnnBin8 { get; set; }
|
||||||
public string DnnHazeAvg { get; set; }
|
[JsonPropertyName("DnnHazeAvg")] public string DnnHazeAvg { get; set; }
|
||||||
public string DnnHazeMedian { get; set; }
|
[JsonPropertyName("DnnHazeMedian")] public string DnnHazeMedian { get; set; }
|
||||||
public string DnnHazeStdDev { get; set; }
|
[JsonPropertyName("DnnHazeStdDev")] public string DnnHazeStdDev { get; set; }
|
||||||
public string DnnLpd { get; set; }
|
[JsonPropertyName("DnnLpd")] public string DnnLpd { get; set; }
|
||||||
public string DnnLpdES { get; set; }
|
[JsonPropertyName("DnnLpdES")] public string DnnLpdES { get; set; }
|
||||||
public string DnnLpdN { get; set; }
|
[JsonPropertyName("DnnLpdN")] public string DnnLpdN { get; set; }
|
||||||
public string DnnMicroScr { get; set; }
|
[JsonPropertyName("DnnMicroScr")] public string DnnMicroScr { get; set; }
|
||||||
public string DnnScr { get; set; }
|
[JsonPropertyName("DnnScr")] public string DnnScr { get; set; }
|
||||||
public string DnnSlip { get; set; }
|
[JsonPropertyName("DnnSlip")] public string DnnSlip { get; set; }
|
||||||
public string DwnAll { get; set; }
|
[JsonPropertyName("DwnAll")] public string DwnAll { get; set; }
|
||||||
public string DwnArea { get; set; }
|
[JsonPropertyName("DwnArea")] public string DwnArea { get; set; }
|
||||||
public string DwnAreaCount { get; set; }
|
[JsonPropertyName("DwnAreaCount")] public string DwnAreaCount { get; set; }
|
||||||
public string DwnBin1 { get; set; }
|
[JsonPropertyName("DwnBin1")] public string DwnBin1 { get; set; }
|
||||||
public string DwnBin2 { get; set; }
|
[JsonPropertyName("DwnBin2")] public string DwnBin2 { get; set; }
|
||||||
public string DwnBin3 { get; set; }
|
[JsonPropertyName("DwnBin3")] public string DwnBin3 { get; set; }
|
||||||
public string DwnBin4 { get; set; }
|
[JsonPropertyName("DwnBin4")] public string DwnBin4 { get; set; }
|
||||||
public string DwnBin5 { get; set; }
|
[JsonPropertyName("DwnBin5")] public string DwnBin5 { get; set; }
|
||||||
public string DwnBin6 { get; set; }
|
[JsonPropertyName("DwnBin6")] public string DwnBin6 { get; set; }
|
||||||
public string DwnBin7 { get; set; }
|
[JsonPropertyName("DwnBin7")] public string DwnBin7 { get; set; }
|
||||||
public string DwnBin8 { get; set; }
|
[JsonPropertyName("DwnBin8")] public string DwnBin8 { get; set; }
|
||||||
public string DwnHazeAvg { get; set; }
|
[JsonPropertyName("DwnHazeAvg")] public string DwnHazeAvg { get; set; }
|
||||||
public string DwnHazeMedian { get; set; }
|
[JsonPropertyName("DwnHazeMedian")] public string DwnHazeMedian { get; set; }
|
||||||
public string DwnHazeStdDev { get; set; }
|
[JsonPropertyName("DwnHazeStdDev")] public string DwnHazeStdDev { get; set; }
|
||||||
public string DwnLpd { get; set; }
|
[JsonPropertyName("DwnLpd")] public string DwnLpd { get; set; }
|
||||||
public string DwnLpdES { get; set; }
|
[JsonPropertyName("DwnLpdES")] public string DwnLpdES { get; set; }
|
||||||
public string DwnLpdN { get; set; }
|
[JsonPropertyName("DwnLpdN")] public string DwnLpdN { get; set; }
|
||||||
public string DwnMicroScr { get; set; }
|
[JsonPropertyName("DwnMicroScr")] public string DwnMicroScr { get; set; }
|
||||||
public string DwnScr { get; set; }
|
[JsonPropertyName("DwnScr")] public string DwnScr { get; set; }
|
||||||
public string DwnSlip { get; set; }
|
[JsonPropertyName("DwnSlip")] public string DwnSlip { get; set; }
|
||||||
|
|
||||||
string IDescription.GetEventDescription() => "File Has been read and parsed";
|
string IDescription.GetEventDescription() => "File Has been read and parsed";
|
||||||
|
|
||||||
@ -782,6 +785,8 @@ public class Description : IDescription, Shared.Properties.IDescription
|
|||||||
PSN = processData.PSN,
|
PSN = processData.PSN,
|
||||||
Reactor = processData.Reactor,
|
Reactor = processData.Reactor,
|
||||||
Recipe = processData.Recipe,
|
Recipe = processData.Recipe,
|
||||||
|
IndexOf = nameof(IndexOf),
|
||||||
|
AttemptCounter = nameof(AttemptCounter),
|
||||||
//
|
//
|
||||||
Grade = detail.Grade,
|
Grade = detail.Grade,
|
||||||
HeaderUniqueId = detail.HeaderUniqueID,
|
HeaderUniqueId = detail.HeaderUniqueID,
|
||||||
@ -1128,6 +1133,8 @@ public class Description : IDescription, Shared.Properties.IDescription
|
|||||||
PSN = nameof(PSN),
|
PSN = nameof(PSN),
|
||||||
Reactor = nameof(Reactor),
|
Reactor = nameof(Reactor),
|
||||||
Recipe = nameof(Recipe),
|
Recipe = nameof(Recipe),
|
||||||
|
IndexOf = nameof(IndexOf),
|
||||||
|
AttemptCounter = nameof(AttemptCounter),
|
||||||
//
|
//
|
||||||
Grade = nameof(Grade),
|
Grade = nameof(Grade),
|
||||||
HeaderUniqueId = nameof(HeaderUniqueId),
|
HeaderUniqueId = nameof(HeaderUniqueId),
|
||||||
@ -1444,4 +1451,16 @@ public class Description : IDescription, Shared.Properties.IDescription
|
|||||||
|
|
||||||
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description))]
|
||||||
|
internal partial class DescriptionSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description[]))]
|
||||||
|
internal partial class DescriptionArraySourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
}
|
}
|
@ -1,76 +1,90 @@
|
|||||||
namespace Adaptation.FileHandlers.txt;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace Adaptation.FileHandlers.txt;
|
||||||
|
|
||||||
public class Detail
|
public class Detail
|
||||||
{
|
{
|
||||||
|
|
||||||
public string Grade { get; set; }
|
[JsonPropertyName("Grade")] public string Grade { get; set; }
|
||||||
public string HeaderUniqueID { get; set; }
|
public string HeaderUniqueID { get; set; }
|
||||||
public string Side { get; set; }
|
[JsonPropertyName("Side")] public string Side { get; set; }
|
||||||
public string SrcDest { get; set; }
|
[JsonPropertyName("SrcDest")] public string SrcDest { get; set; }
|
||||||
public string UniqueID { get; set; }
|
public string UniqueID { get; set; }
|
||||||
public string WaferID { get; set; }
|
[JsonPropertyName("WaferID")] public string WaferID { get; set; }
|
||||||
public string Data { get; set; }
|
public string Data { get; set; }
|
||||||
public string DcnAll { get; set; }
|
[JsonPropertyName("DcnAll")] public string DcnAll { get; set; }
|
||||||
public string DcnArea { get; set; }
|
[JsonPropertyName("DcnArea")] public string DcnArea { get; set; }
|
||||||
public string DcnAreaCount { get; set; }
|
[JsonPropertyName("DcnAreaCount")] public string DcnAreaCount { get; set; }
|
||||||
public string DcnBin1 { get; set; }
|
[JsonPropertyName("DcnBin1")] public string DcnBin1 { get; set; }
|
||||||
public string DcnBin2 { get; set; }
|
[JsonPropertyName("DcnBin2")] public string DcnBin2 { get; set; }
|
||||||
public string DcnBin3 { get; set; }
|
[JsonPropertyName("DcnBin3")] public string DcnBin3 { get; set; }
|
||||||
public string DcnBin4 { get; set; }
|
[JsonPropertyName("DcnBin4")] public string DcnBin4 { get; set; }
|
||||||
public string DcnBin5 { get; set; }
|
[JsonPropertyName("DcnBin5")] public string DcnBin5 { get; set; }
|
||||||
public string DcnBin6 { get; set; }
|
[JsonPropertyName("DcnBin6")] public string DcnBin6 { get; set; }
|
||||||
public string DcnBin7 { get; set; }
|
[JsonPropertyName("DcnBin7")] public string DcnBin7 { get; set; }
|
||||||
public string DcnBin8 { get; set; }
|
[JsonPropertyName("DcnBin8")] public string DcnBin8 { get; set; }
|
||||||
public string DcnHazeAvg { get; set; }
|
[JsonPropertyName("DcnHazeAvg")] public string DcnHazeAvg { get; set; }
|
||||||
public string DcnHazeMedian { get; set; }
|
[JsonPropertyName("DcnHazeMedian")] public string DcnHazeMedian { get; set; }
|
||||||
public string DcnHazeStdDev { get; set; }
|
[JsonPropertyName("DcnHazeStdDev")] public string DcnHazeStdDev { get; set; }
|
||||||
public string DcnLpd { get; set; }
|
[JsonPropertyName("DcnLpd")] public string DcnLpd { get; set; }
|
||||||
public string DcnLpdES { get; set; }
|
[JsonPropertyName("DcnLpdES")] public string DcnLpdES { get; set; }
|
||||||
public string DcnLpdN { get; set; }
|
[JsonPropertyName("DcnLpdN")] public string DcnLpdN { get; set; }
|
||||||
public string DcnMicroScr { get; set; }
|
[JsonPropertyName("DcnMicroScr")] public string DcnMicroScr { get; set; }
|
||||||
public string DcnScr { get; set; }
|
[JsonPropertyName("DcnScr")] public string DcnScr { get; set; }
|
||||||
public string DcnSlip { get; set; }
|
[JsonPropertyName("DcnSlip")] public string DcnSlip { get; set; }
|
||||||
public string DnnAll { get; set; }
|
[JsonPropertyName("DnnAll")] public string DnnAll { get; set; }
|
||||||
public string DnnArea { get; set; }
|
[JsonPropertyName("DnnArea")] public string DnnArea { get; set; }
|
||||||
public string DnnAreaCount { get; set; }
|
[JsonPropertyName("DnnAreaCount")] public string DnnAreaCount { get; set; }
|
||||||
public string DnnBin1 { get; set; }
|
[JsonPropertyName("DnnBin1")] public string DnnBin1 { get; set; }
|
||||||
public string DnnBin2 { get; set; }
|
[JsonPropertyName("DnnBin2")] public string DnnBin2 { get; set; }
|
||||||
public string DnnBin3 { get; set; }
|
[JsonPropertyName("DnnBin3")] public string DnnBin3 { get; set; }
|
||||||
public string DnnBin4 { get; set; }
|
[JsonPropertyName("DnnBin4")] public string DnnBin4 { get; set; }
|
||||||
public string DnnBin5 { get; set; }
|
[JsonPropertyName("DnnBin5")] public string DnnBin5 { get; set; }
|
||||||
public string DnnBin6 { get; set; }
|
[JsonPropertyName("DnnBin6")] public string DnnBin6 { get; set; }
|
||||||
public string DnnBin7 { get; set; }
|
[JsonPropertyName("DnnBin7")] public string DnnBin7 { get; set; }
|
||||||
public string DnnBin8 { get; set; }
|
[JsonPropertyName("DnnBin8")] public string DnnBin8 { get; set; }
|
||||||
public string DnnHazeAvg { get; set; }
|
[JsonPropertyName("DnnHazeAvg")] public string DnnHazeAvg { get; set; }
|
||||||
public string DnnHazeMedian { get; set; }
|
[JsonPropertyName("DnnHazeMedian")] public string DnnHazeMedian { get; set; }
|
||||||
public string DnnHazeStdDev { get; set; }
|
[JsonPropertyName("DnnHazeStdDev")] public string DnnHazeStdDev { get; set; }
|
||||||
public string DnnLpd { get; set; }
|
[JsonPropertyName("DnnLpd")] public string DnnLpd { get; set; }
|
||||||
public string DnnLpdES { get; set; }
|
[JsonPropertyName("DnnLpdES")] public string DnnLpdES { get; set; }
|
||||||
public string DnnLpdN { get; set; }
|
[JsonPropertyName("DnnLpdN")] public string DnnLpdN { get; set; }
|
||||||
public string DnnMicroScr { get; set; }
|
[JsonPropertyName("DnnMicroScr")] public string DnnMicroScr { get; set; }
|
||||||
public string DnnScr { get; set; }
|
[JsonPropertyName("DnnScr")] public string DnnScr { get; set; }
|
||||||
public string DnnSlip { get; set; }
|
[JsonPropertyName("DnnSlip")] public string DnnSlip { get; set; }
|
||||||
public string DwnAll { get; set; }
|
[JsonPropertyName("DwnAll")] public string DwnAll { get; set; }
|
||||||
public string DwnArea { get; set; }
|
[JsonPropertyName("DwnArea")] public string DwnArea { get; set; }
|
||||||
public string DwnAreaCount { get; set; }
|
[JsonPropertyName("DwnAreaCount")] public string DwnAreaCount { get; set; }
|
||||||
public string DwnBin1 { get; set; }
|
[JsonPropertyName("DwnBin1")] public string DwnBin1 { get; set; }
|
||||||
public string DwnBin2 { get; set; }
|
[JsonPropertyName("DwnBin2")] public string DwnBin2 { get; set; }
|
||||||
public string DwnBin3 { get; set; }
|
[JsonPropertyName("DwnBin3")] public string DwnBin3 { get; set; }
|
||||||
public string DwnBin4 { get; set; }
|
[JsonPropertyName("DwnBin4")] public string DwnBin4 { get; set; }
|
||||||
public string DwnBin5 { get; set; }
|
[JsonPropertyName("DwnBin5")] public string DwnBin5 { get; set; }
|
||||||
public string DwnBin6 { get; set; }
|
[JsonPropertyName("DwnBin6")] public string DwnBin6 { get; set; }
|
||||||
public string DwnBin7 { get; set; }
|
[JsonPropertyName("DwnBin7")] public string DwnBin7 { get; set; }
|
||||||
public string DwnBin8 { get; set; }
|
[JsonPropertyName("DwnBin8")] public string DwnBin8 { get; set; }
|
||||||
public string DwnHazeAvg { get; set; }
|
[JsonPropertyName("DwnHazeAvg")] public string DwnHazeAvg { get; set; }
|
||||||
public string DwnHazeMedian { get; set; }
|
[JsonPropertyName("DwnHazeMedian")] public string DwnHazeMedian { get; set; }
|
||||||
public string DwnHazeStdDev { get; set; }
|
[JsonPropertyName("DwnHazeStdDev")] public string DwnHazeStdDev { get; set; }
|
||||||
public string DwnLpd { get; set; }
|
[JsonPropertyName("DwnLpd")] public string DwnLpd { get; set; }
|
||||||
public string DwnLpdES { get; set; }
|
[JsonPropertyName("DwnLpdES")] public string DwnLpdES { get; set; }
|
||||||
public string DwnLpdN { get; set; }
|
[JsonPropertyName("DwnLpdN")] public string DwnLpdN { get; set; }
|
||||||
public string DwnMicroScr { get; set; }
|
[JsonPropertyName("DwnMicroScr")] public string DwnMicroScr { get; set; }
|
||||||
public string DwnScr { get; set; }
|
[JsonPropertyName("DwnScr")] public string DwnScr { get; set; }
|
||||||
public string DwnSlip { get; set; }
|
[JsonPropertyName("DwnSlip")] public string DwnSlip { get; set; }
|
||||||
|
|
||||||
public Detail() => Data = "*Data*";
|
public Detail() => Data = "*Data*";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Detail))]
|
||||||
|
internal partial class DetailSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Detail[]))]
|
||||||
|
internal partial class DetailArraySourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
}
|
}
|
@ -1060,12 +1060,11 @@ public class ProcessData : IProcessData
|
|||||||
{
|
{
|
||||||
List<Description> results = new();
|
List<Description> results = new();
|
||||||
Description? description;
|
Description? description;
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString };
|
|
||||||
foreach (JsonElement jsonElement in jsonElements)
|
foreach (JsonElement jsonElement in jsonElements)
|
||||||
{
|
{
|
||||||
if (jsonElement.ValueKind != JsonValueKind.Object)
|
if (jsonElement.ValueKind != JsonValueKind.Object)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
description = JsonSerializer.Deserialize<Description>(jsonElement.ToString(), jsonSerializerOptions);
|
description = JsonSerializer.Deserialize(jsonElement.ToString(), DescriptionSourceGenerationContext.Default.Description);
|
||||||
if (description is null)
|
if (description is null)
|
||||||
continue;
|
continue;
|
||||||
results.Add(description);
|
results.Add(description);
|
||||||
|
@ -226,9 +226,9 @@ public class MonIn : IMonIn, IDisposable
|
|||||||
{
|
{
|
||||||
StringBuilder stringBuilder = new();
|
StringBuilder stringBuilder = new();
|
||||||
if (string.IsNullOrEmpty(subresource))
|
if (string.IsNullOrEmpty(subresource))
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
||||||
else
|
else
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
||||||
return stringBuilder.ToString();
|
return stringBuilder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,14 +247,14 @@ public class MonIn : IMonIn, IDisposable
|
|||||||
if (string.IsNullOrEmpty(subresource))
|
if (string.IsNullOrEmpty(subresource))
|
||||||
{
|
{
|
||||||
if (unit.Equals(string.Empty) && !interval.HasValue)
|
if (unit.Equals(string.Empty) && !interval.HasValue)
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), performanceName.Trim(), value, description.Trim());
|
||||||
else
|
else
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} {5} {{interval={6}, unit={7}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} {5} {{interval={6}, unit={7}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : string.Empty, unit.Trim());
|
||||||
}
|
}
|
||||||
else if (unit.Equals(string.Empty) && !interval.HasValue)
|
else if (unit.Equals(string.Empty) && !interval.HasValue)
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim());
|
||||||
else
|
else
|
||||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} {6} {{interval={7}, unit={8}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim());
|
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} {6} {{interval={7}, unit={8}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : "now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : string.Empty, unit.Trim());
|
||||||
return stringBuilder.ToString();
|
return stringBuilder.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Adaptation.Shared.Duplicator;
|
namespace Adaptation.Shared.Duplicator;
|
||||||
|
|
||||||
@ -178,4 +179,16 @@ public class Description : IDescription, Properties.IDescription
|
|||||||
|
|
||||||
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description))]
|
||||||
|
internal partial class SharedDescriptionSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
|
||||||
|
[JsonSerializable(typeof(Description[]))]
|
||||||
|
internal partial class SharedDescriptionArraySourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
}
|
}
|
@ -9,7 +9,6 @@ using System.IO;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
namespace Adaptation.Shared;
|
namespace Adaptation.Shared;
|
||||||
@ -447,12 +446,13 @@ public class FileRead : Properties.IFileRead
|
|||||||
{
|
{
|
||||||
List<Properties.IDescription> results = new();
|
List<Properties.IDescription> results = new();
|
||||||
Duplicator.Description description;
|
Duplicator.Description description;
|
||||||
JsonSerializerOptions jsonSerializerOptions = new() { NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString };
|
|
||||||
foreach (JsonElement jsonElement in jsonElements)
|
foreach (JsonElement jsonElement in jsonElements)
|
||||||
{
|
{
|
||||||
if (jsonElement.ValueKind != JsonValueKind.Object)
|
if (jsonElement.ValueKind != JsonValueKind.Object)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
description = JsonSerializer.Deserialize<Duplicator.Description>(jsonElement.ToString(), jsonSerializerOptions);
|
description = JsonSerializer.Deserialize(jsonElement.ToString(), Duplicator.SharedDescriptionSourceGenerationContext.Default.Description);
|
||||||
|
if (description is null)
|
||||||
|
continue;
|
||||||
results.Add(description);
|
results.Add(description);
|
||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
|
@ -187,7 +187,7 @@ internal class ProcessDataStandardFormat
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
string? linesOne = lines.Length > 0 && body.Count == 0 && columns.Count == 0 ? lines[1] : null;
|
string? linesOne = lines.Length > 1 && body.Count == 0 && columns.Count == 0 ? lines[1] : null;
|
||||||
logistics = GetLogistics(footer, linesOne: linesOne);
|
logistics = GetLogistics(footer, linesOne: linesOne);
|
||||||
if (logistics.Count == 0)
|
if (logistics.Count == 0)
|
||||||
sequence = null;
|
sequence = null;
|
||||||
@ -235,7 +235,7 @@ internal class ProcessDataStandardFormat
|
|||||||
const int columnsLine = 6;
|
const int columnsLine = 6;
|
||||||
FileInfo fileInfo = new(reportFullPath);
|
FileInfo fileInfo = new(reportFullPath);
|
||||||
ProcessDataStandardFormat processDataStandardFormat = GetProcessDataStandardFormat(fileInfo.LastWriteTime, columnsLine, fileInfo.FullName, lines: null);
|
ProcessDataStandardFormat processDataStandardFormat = GetProcessDataStandardFormat(fileInfo.LastWriteTime, columnsLine, fileInfo.FullName, lines: null);
|
||||||
JsonElement[]? jsonElements = processDataStandardFormatMapping.OldColumnNames.Count != processDataStandardFormatMapping.ColumnIndices.Count ? null : GetFullArray(processDataStandardFormat);
|
JsonElement[]? jsonElements = processDataStandardFormatMapping.OldColumnNames.Count == 0 ? null : GetFullArray(processDataStandardFormat);
|
||||||
JsonProperty[]? jsonProperties = jsonElements is null || jsonElements.Length == 0 ? null : jsonElements[0].EnumerateObject().ToArray();
|
JsonProperty[]? jsonProperties = jsonElements is null || jsonElements.Length == 0 ? null : jsonElements[0].EnumerateObject().ToArray();
|
||||||
if (jsonElements is null || jsonProperties is null || jsonProperties.Length != processDataStandardFormatMapping.NewColumnNames.Count)
|
if (jsonElements is null || jsonProperties is null || jsonProperties.Length != processDataStandardFormatMapping.NewColumnNames.Count)
|
||||||
result = processDataStandardFormat;
|
result = processDataStandardFormat;
|
||||||
@ -654,6 +654,17 @@ internal class ProcessDataStandardFormat
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static JsonElement[] GetArray(string reportFullPath, string[] lines, ProcessDataStandardFormat processDataStandardFormat)
|
||||||
|
{
|
||||||
|
JsonElement[] results;
|
||||||
|
string? json = GetRecordsJson(reportFullPath, lines);
|
||||||
|
if (string.IsNullOrEmpty(json))
|
||||||
|
results = GetArray(processDataStandardFormat);
|
||||||
|
else
|
||||||
|
results = JsonSerializer.Deserialize(json, JsonElementCollectionSourceGenerationContext.Default.JsonElementArray) ?? throw new Exception();
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
internal static string GetPDSFText(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, string logisticsText)
|
internal static string GetPDSFText(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, string logisticsText)
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
@ -903,7 +914,7 @@ internal class ProcessDataStandardFormat
|
|||||||
}
|
}
|
||||||
foreach (KeyValuePair<string, List<string>> keyValuePair in results)
|
foreach (KeyValuePair<string, List<string>> keyValuePair in results)
|
||||||
{
|
{
|
||||||
if (body.Count < 3)
|
if (body.Count < 2)
|
||||||
break;
|
break;
|
||||||
if (keyValuePair.Value.Count != body.Count)
|
if (keyValuePair.Value.Count != body.Count)
|
||||||
continue;
|
continue;
|
||||||
@ -956,6 +967,26 @@ internal class ProcessDataStandardFormat
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string? GetRecordsJson(string reportFullPath, string[] lines)
|
||||||
|
{
|
||||||
|
string? result;
|
||||||
|
bool foundRecords = false;
|
||||||
|
List<string> results = new();
|
||||||
|
lines ??= File.ReadAllLines(reportFullPath);
|
||||||
|
foreach (string line in lines)
|
||||||
|
{
|
||||||
|
if (line.StartsWith("\"Records\""))
|
||||||
|
foundRecords = true;
|
||||||
|
if (!foundRecords)
|
||||||
|
continue;
|
||||||
|
if (line == "],")
|
||||||
|
break;
|
||||||
|
results.Add(line);
|
||||||
|
}
|
||||||
|
result = results.Count == 0 ? null : $"{string.Join(Environment.NewLine, results.Skip(1))}{Environment.NewLine}]";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_60_0
|
||||||
using Adaptation._Tests.Shared;
|
using Adaptation._Tests.Shared;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_60_0
|
||||||
using Adaptation._Tests.Shared;
|
using Adaptation._Tests.Shared;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_60_0
|
||||||
using Adaptation._Tests.Shared;
|
using Adaptation._Tests.Shared;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
@ -0,0 +1,195 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static MET08DDUPSP1TBI EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static MET08DDUPSP1TBI() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MET08DDUPSP1TBI(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new MET08DDUPSP1TBI(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewer()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__IQSSi()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__APC()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__SPaCe()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Processed()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Archive()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Dummy()
|
||||||
|
{
|
||||||
|
string check = "637400748000000000.zip";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__TIBCO()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
@ -0,0 +1,70 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101_EQPT EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101_EQPT() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101_EQPT() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101_EQPT(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101_EQPT(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101_EQPT__MoveAllFiles()
|
||||||
|
{
|
||||||
|
string check = "*";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
@ -0,0 +1,65 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation._Tests.Shared;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101 : EAFLoggingUnitTesting
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
internal static string DummyRoot { get; private set; }
|
||||||
|
internal static SP101 EAFLoggingUnitTesting { get; private set; }
|
||||||
|
|
||||||
|
static SP101() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy";
|
||||||
|
|
||||||
|
public SP101() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
if (EAFLoggingUnitTesting is null)
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
|
||||||
|
public SP101(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting ??= new SP101(testContext);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize"));
|
||||||
|
string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName);
|
||||||
|
File.WriteAllText(fileNameAndText[0], fileNameAndText[1]);
|
||||||
|
File.WriteAllText(fileNameAndText[2], fileNameAndText[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClassCleanup()]
|
||||||
|
public static void ClassCleanup()
|
||||||
|
{
|
||||||
|
EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
||||||
|
EAFLoggingUnitTesting?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101__txt()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
|
_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);
|
||||||
|
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_60_0
|
||||||
using Adaptation.Shared;
|
using Adaptation.Shared;
|
||||||
using Adaptation.Shared.Methods;
|
using Adaptation.Shared.Methods;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_60_0
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
namespace Adaptation._Tests.Extract.Production.v2_60_0;
|
namespace Adaptation._Tests.Extract.Production.v2_60_0;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#if true
|
#if v2_60_0
|
||||||
using Adaptation.Shared;
|
using Adaptation.Shared;
|
||||||
using Adaptation.Shared.Methods;
|
using Adaptation.Shared.Methods;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
146
Adaptation/_Tests/Extract/Production/v2.61.1/MET08DDUPSP1TBI.cs
Normal file
146
Adaptation/_Tests/Extract/Production/v2.61.1/MET08DDUPSP1TBI.cs
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class MET08DDUPSP1TBI
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_61_1.MET08DDUPSP1TBI _MET08DDUPSP1TBI;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_61_1.MET08DDUPSP1TBI.ClassInitialize(testContext);
|
||||||
|
_MET08DDUPSP1TBI = CreateSelfDescription.Production.v2_61_1.MET08DDUPSP1TBI.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__MoveMatchingFiles();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewer() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewer();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__IQSSi() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__IQSSi();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight638052814829645888__IqsSql()
|
||||||
|
{
|
||||||
|
string check = "*.pdsf";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsight();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
IFileRead fileRead = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__OpenInsightMetrologyViewerAttachments();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__APC() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__APC();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__SPaCe() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__SPaCe();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Processed() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__Processed();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Archive() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__Archive();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__Dummy() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__Dummy();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__TIBCO() => _MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__MET08DDUPSP1TBI__TIBCO638217888620242702__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.idc";
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
_MET08DDUPSP1TBI.Production__v2_61_1__MET08DDUPSP1TBI__TIBCO();
|
||||||
|
string[] variables = _MET08DDUPSP1TBI.AdaptationTesting.GetVariables(methodBase, check, validatePDSF: false);
|
||||||
|
_ = _MET08DDUPSP1TBI.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
for (int i = 0; i < int.MaxValue; i++)
|
||||||
|
System.Threading.Thread.Sleep(500);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
27
Adaptation/_Tests/Extract/Production/v2.61.1/SP101-EQPT.cs
Normal file
27
Adaptation/_Tests/Extract/Production/v2.61.1/SP101-EQPT.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#if true
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101_EQPT
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_61_1.SP101_EQPT _SP101_EQPT;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_61_1.SP101_EQPT.ClassInitialize(testContext);
|
||||||
|
_SP101_EQPT = CreateSelfDescription.Production.v2_61_1.SP101_EQPT.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Ignore]
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101_EQPT__MoveAllFiles() => _SP101_EQPT.Production__v2_61_1__SP101_EQPT__MoveAllFiles();
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
58
Adaptation/_Tests/Extract/Production/v2.61.1/SP101.cs
Normal file
58
Adaptation/_Tests/Extract/Production/v2.61.1/SP101.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#if true
|
||||||
|
using Adaptation.Shared;
|
||||||
|
using Adaptation.Shared.Methods;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace Adaptation._Tests.Extract.Production.v2_61_1;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class SP101
|
||||||
|
{
|
||||||
|
|
||||||
|
#pragma warning disable CA2254
|
||||||
|
#pragma warning disable IDE0060
|
||||||
|
|
||||||
|
private static CreateSelfDescription.Production.v2_61_1.SP101 _SP101;
|
||||||
|
|
||||||
|
[ClassInitialize]
|
||||||
|
public static void ClassInitialize(TestContext testContext)
|
||||||
|
{
|
||||||
|
CreateSelfDescription.Production.v2_61_1.SP101.ClassInitialize(testContext);
|
||||||
|
_SP101 = CreateSelfDescription.Production.v2_61_1.SP101.EAFLoggingUnitTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void NonThrowTryCatch()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ throw new Exception(); }
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101__txt() => _SP101.Production__v2_61_1__SP101__txt();
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Production__v2_61_1__SP101__txt637955319879801344__Normal()
|
||||||
|
{
|
||||||
|
string check = "*.txt";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
_SP101.Production__v2_61_1__SP101__txt();
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
string[] variables = _SP101.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _SP101.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
@ -193,7 +193,12 @@ public class AdaptationTesting : ISMTP
|
|||||||
segments = withActualCICN.Split(new string[] { ticks }, StringSplitOptions.None);
|
segments = withActualCICN.Split(new string[] { ticks }, StringSplitOptions.None);
|
||||||
dummyDirectory = Path.Combine(dummyRoot, cellInstanceName, ticks, string.Join(null, segments));
|
dummyDirectory = Path.Combine(dummyRoot, cellInstanceName, ticks, string.Join(null, segments));
|
||||||
if (!Directory.Exists(dummyDirectory))
|
if (!Directory.Exists(dummyDirectory))
|
||||||
|
{
|
||||||
_ = Directory.CreateDirectory(dummyDirectory);
|
_ = Directory.CreateDirectory(dummyDirectory);
|
||||||
|
try
|
||||||
|
{ Directory.SetLastWriteTime(Path.Combine(dummyRoot, cellInstanceName), DateTime.Now); }
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(ticks))
|
if (string.IsNullOrEmpty(ticks))
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
catch (Exception) { }
|
catch (Exception) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !Always
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
#endif
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -57,41 +57,42 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
mid = """
|
mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "12-123456-1234", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "12-123456-1234", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
||||||
Assert.AreEqual("123456", job.LotName);
|
Assert.AreEqual("123456", job.LotName);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
||||||
mid = """
|
mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "12-1234567-1234", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "12-1234567-1234", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "21");
|
||||||
Assert.AreEqual("1234567", job.LotName);
|
Assert.AreEqual("1234567", job.LotName);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4609");
|
||||||
mid = """
|
mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "-544481-", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "-544481-", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
||||||
Assert.AreEqual("544481", job.LotName);
|
Assert.AreEqual("544481", job.LotName);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
||||||
mid = """
|
mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "00-544481-0000", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "00-544481-0000", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "51");
|
||||||
Assert.AreEqual("544481", job.LotName);
|
Assert.AreEqual("544481", job.LotName);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5158");
|
||||||
mid = """
|
mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "00-o171308.1.51-0000", "Recipe": "Recipe", "Slot": "11"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "00-o171308.1.51-0000", "Recipe": "Recipe", "Slot": "11"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "547000");
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "547000");
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
||||||
@ -99,7 +100,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
mid = """
|
mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638163023363575829", "MID": "B48", "Recipe": "lsl_6in "}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638163023363575829", "MID": "B48", "Recipe": "lsl_6in "}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "54");
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "547000");
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "547000");
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "4445");
|
||||||
@ -118,13 +119,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08THFTIRQS408M", "MesEntity": "BIORAD2", "Sequence": "123456789", "MID": "37--", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "MET08THFTIRQS408M", "MesEntity": "BIORAD2", "Sequence": "123456789", "MID": "37--", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.AreEqual("37", job.ProcessType);
|
Assert.AreEqual("37", job.ProcessType);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "549918");
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "549918");
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5101");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5101");
|
||||||
@ -132,7 +134,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !Always
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
#endif
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -144,13 +146,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "P1234", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE4", "Sequence": "123456789", "MID": "P1234", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
@ -170,13 +173,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "BIORAD3", "Sequence": "638234699589174855", "MID": "33--", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "BIORAD3", "Sequence": "638234699589174855", "MID": "33--", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
@ -184,7 +188,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !Always
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
#endif
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -196,13 +200,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "DEP08CEPIEPSILON", "MesEntity": "R32", "Sequence": "", "MID": "32--", "Recipe": "Recipe"}
|
{"Area": "Si", "EquipmentType": "DEP08CEPIEPSILON", "MesEntity": "R32", "Sequence": "", "MID": "32--", "Recipe": "Recipe"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
@ -211,7 +216,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !Always
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
#endif
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -223,13 +228,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638756365880000000", "MID": "38-660275-5095.1", "Recipe": "IRC6mm"}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638756365880000000", "MID": "38-660275-5095.1", "Recipe": "IRC6mm"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
@ -238,7 +244,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !Always
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
#endif
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -250,13 +256,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08THFTIRQS408M", "MesEntity": "BIORAD2", "Sequence": "638757112479659597", "MID": "173308.1.5", "Recipe": "6inTHICK"}
|
{"Area": "Si", "EquipmentType": "MET08THFTIRQS408M", "MesEntity": "BIORAD2", "Sequence": "638757112479659597", "MID": "173308.1.5", "Recipe": "6inTHICK"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
@ -265,7 +272,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !Always
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
#endif
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -277,13 +284,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08DDUPSFS6420", "MesEntity": "TENCOR1", "Sequence": "638765945581765554", "MID": "1T661282", "Recipe": "8IN_THIN ROTR"}
|
{"Area": "Si", "EquipmentType": "MET08DDUPSFS6420", "MesEntity": "TENCOR1", "Sequence": "638765945581765554", "MID": "1T661282", "Recipe": "8IN_THIN ROTR"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
@ -292,7 +300,7 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !Always
|
#if Always
|
||||||
[Ignore]
|
[Ignore]
|
||||||
#endif
|
#endif
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@ -304,13 +312,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08DDUPSFS6420", "MesEntity": "TENCOR1", "Sequence": "638765945581765554", "MID": "AK1PL2", "Recipe": "8INCLEAN"}
|
{"Area": "Si", "EquipmentType": "MET08DDUPSFS6420", "MesEntity": "TENCOR1", "Sequence": "638765945581765554", "MID": "AK1PL2", "Recipe": "8INCLEAN"}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName));
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName));
|
||||||
@ -328,13 +337,14 @@ public class Job : LoggingUnitTesting, IDisposable
|
|||||||
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
DateTime loadSignatureDateTimeFilter = new(2023, 05, 01);
|
||||||
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
string metrologyFileShare = FileHandlers.TIBCO.FileRead.MetrologyFileShare;
|
||||||
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
string barcodeHostFileShare = FileHandlers.TIBCO.FileRead.BarcodeHostFileShare;
|
||||||
|
string iqsSQLConnectionString = FileHandlers.TIBCO.FileRead.IQSConnectionString;
|
||||||
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
string lsl2SQLConnectionString = FileHandlers.TIBCO.FileRead.LSL2SQLConnectionString;
|
||||||
|
HttpClient httpClient = new() { BaseAddress = new("http://messa020ec.infineon.com/api/oiWizard") };
|
||||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||||
HttpClient httpClient = new() { BaseAddress = new(FileHandlers.TIBCO.FileRead.OpenInsightApplicationProgrammingInterface) };
|
|
||||||
string mid = """
|
string mid = """
|
||||||
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638163023363575829", "MID": "23-111111-5053", "Recipe": "lsl_6in "}
|
{"Area": "Si", "EquipmentType": "MET08RESIMAPCDE", "MesEntity": "CDE5", "Sequence": "638163023363575829", "MID": "1T1014894", "Recipe": "lsl_6in "}
|
||||||
""";
|
""";
|
||||||
job = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
job = new(iqsSQLConnectionString, lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, httpClient, mid, enteredDateTimeFilter, loadSignatureDateTimeFilter);
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "23");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProcessType)); // == "23");
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "111111");
|
Assert.IsFalse(string.IsNullOrEmpty(job.LotName)); // == "111111");
|
||||||
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5053");
|
Assert.IsFalse(string.IsNullOrEmpty(job.ProductName)); // == "5053");
|
||||||
|
@ -64,7 +64,7 @@ public class MET08DDUPSP1TBI : LoggingUnitTesting, IDisposable
|
|||||||
StringBuilder results = new();
|
StringBuilder results = new();
|
||||||
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
||||||
{
|
{
|
||||||
new("MET08DDUPSP1TBI", "v2.60.0"),
|
new("MET08DDUPSP1TBI", "v2.61.1"),
|
||||||
};
|
};
|
||||||
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
||||||
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
||||||
|
115
Adaptation/_Tests/Static/recipes-and-patterns.js
Normal file
115
Adaptation/_Tests/Static/recipes-and-patterns.js
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
// Recipe 1 = Matched
|
||||||
|
// recipes-and-patterns.js under IndexOf
|
||||||
|
// RecipesAndPatternsMatch
|
||||||
|
// ($('dcp.SP101/csv/Index', 0) + 1) == $('dcp.SP101/csv/Count', 0)
|
||||||
|
// getValue('TENCOR', $('dcp.SP101/csv/Count', 0), $('dcp.SP101/csv/Session', ''), 'pattern', getContextData('2', 'cds.NULL_DATA', ''));
|
||||||
|
|
||||||
|
function getValue(tool, patternSize, recipe, pattern, json) {
|
||||||
|
let result;
|
||||||
|
if (tool == undefined || tool.length === 0 || patternSize == undefined || patternSize.length === 0 || recipe == undefined || recipe.length === 0 || pattern == undefined || pattern.length === 0 || json == undefined || json.length === 0)
|
||||||
|
result = 'A) Invalid input!';
|
||||||
|
else {
|
||||||
|
let parsed;
|
||||||
|
try {
|
||||||
|
parsed = JSON.parse(json);
|
||||||
|
} catch (error) {
|
||||||
|
parsed = null;
|
||||||
|
}
|
||||||
|
if (parsed == null)
|
||||||
|
result = 'B) Invalid input!';
|
||||||
|
else if (parsed.rds == undefined || parsed.rds.prodSpec == undefined || parsed.rds.prodSpec.recipesAndPatterns == undefined)
|
||||||
|
result = 'C) No Spec!';
|
||||||
|
else {
|
||||||
|
let toolMatches = [];
|
||||||
|
for (let index = 0; index < parsed.rds.prodSpec.recipesAndPatterns.length; index++) {
|
||||||
|
if (parsed.rds.prodSpec.recipesAndPatterns[index].tool === tool) {
|
||||||
|
toolMatches.push(parsed.rds.prodSpec.recipesAndPatterns[index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (toolMatches == null || toolMatches.length === 0)
|
||||||
|
result = 'Tool [' + tool + '] not found in OI API results!';
|
||||||
|
else {
|
||||||
|
let debug = '';
|
||||||
|
let matches = 0;
|
||||||
|
for (let index = 0; index < toolMatches.length; index++) {
|
||||||
|
debug += 'patternSize: ' + toolMatches[index].patternSize +
|
||||||
|
'; recipe: ' + toolMatches[index].recipe +
|
||||||
|
'; pattern: ' + toolMatches[index].pattern + ';~';
|
||||||
|
if (toolMatches[index].recipe.localeCompare(recipe, ['en-US'], { sensitivity: 'base' }) === 0) {
|
||||||
|
matches++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (matches > 0)
|
||||||
|
result = '1';
|
||||||
|
else
|
||||||
|
result = 'Value not matched~Run~patternSize: ' + patternSize + '; recipe: ' + recipe + '; pattern: ' + pattern + ';~API~' + debug;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
getValue('TENCOR', 0, 'AS_IFX100_ROTR', 'pattern', '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}');
|
||||||
|
|
||||||
|
let json;
|
||||||
|
let tool;
|
||||||
|
let recipe;
|
||||||
|
let pattern;
|
||||||
|
let patternSize;
|
||||||
|
|
||||||
|
tool = 'TENCOR'
|
||||||
|
patternSize = 9;
|
||||||
|
recipe = 'lr8in.SET';
|
||||||
|
pattern = '4_108IN.PAT';
|
||||||
|
json = '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}';
|
||||||
|
const testA = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testA !== '1')
|
||||||
|
throw 'Test A failed: ' + testA;
|
||||||
|
tool = null;
|
||||||
|
const testB = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testB !== 'A) Invalid input!')
|
||||||
|
throw 'Test L failed: ' + testB;
|
||||||
|
tool = '';
|
||||||
|
const testC = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testC !== 'A) Invalid input!')
|
||||||
|
throw 'Test M failed: ' + testC;
|
||||||
|
patternSize = null;
|
||||||
|
const testD = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testD !== 'A) Invalid input!')
|
||||||
|
throw 'Test J failed: ' + testD;
|
||||||
|
patternSize = '';
|
||||||
|
const testE = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testE !== 'A) Invalid input!')
|
||||||
|
throw 'Test K failed: ' + testE;
|
||||||
|
recipe = null;
|
||||||
|
const testF = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testF !== 'A) Invalid input!')
|
||||||
|
throw 'Test F failed: ' + testF;
|
||||||
|
recipe = '';
|
||||||
|
const testG = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testG !== 'A) Invalid input!')
|
||||||
|
throw 'Test G failed: ' + testG;
|
||||||
|
pattern = null;
|
||||||
|
const testH = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testH !== 'A) Invalid input!')
|
||||||
|
throw 'Test H failed: ' + testH;
|
||||||
|
pattern = '';
|
||||||
|
const testI = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testI !== 'A) Invalid input!')
|
||||||
|
throw 'Test I failed: ' + testI;
|
||||||
|
json = '';
|
||||||
|
const testK = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testK !== 'A) Invalid input!')
|
||||||
|
throw 'Test B failed: ' + testK;
|
||||||
|
json = 'invalid';
|
||||||
|
const testL = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testL !== 'B) Invalid input!')
|
||||||
|
throw 'Test C failed: ' + testL;
|
||||||
|
json = '{"rds":{}}';
|
||||||
|
const testM = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testM !== 'C) No Spec!')
|
||||||
|
throw 'Test D failed: ' + testM;
|
||||||
|
json = '{"rds":{"prodSpec":{"recipesAndPatterns":[]}}}';
|
||||||
|
const testN = getValue(tool, patternSize, recipe, pattern, json);
|
||||||
|
if (testN !== 'Tool [TENCOR] not found in OI API results!')
|
||||||
|
throw 'Test E failed: ' + testN;
|
@ -203,8 +203,8 @@ public class TXT : LoggingUnitTesting, IDisposable
|
|||||||
StringBuilder results = new();
|
StringBuilder results = new();
|
||||||
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
(string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[]
|
||||||
{
|
{
|
||||||
new("SP101", "v2.60.0"),
|
new("SP101", "v2.61.1"),
|
||||||
new("SP101-EQPT", "v2.60.0"),
|
new("SP101-EQPT", "v2.61.1"),
|
||||||
};
|
};
|
||||||
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2";
|
||||||
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion;
|
||||||
|
@ -196,13 +196,13 @@
|
|||||||
<Version>7.2.4630.5</Version>
|
<Version>7.2.4630.5</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Infineon.EAF.Runtime">
|
<PackageReference Include="Infineon.EAF.Runtime">
|
||||||
<Version>2.60.0</Version>
|
<Version>2.61.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Pdfbox">
|
<PackageReference Include="Pdfbox">
|
||||||
<Version>1.1.1</Version>
|
<Version>1.1.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="System.Text.Json">
|
<PackageReference Include="System.Text.Json">
|
||||||
<Version>8.0.5</Version>
|
<Version>8.0.3</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.60.0.0")]
|
[assembly: AssemblyVersion("2.61.1.0")]
|
||||||
[assembly: AssemblyFileVersion("2.60.0.0")]
|
[assembly: AssemblyFileVersion("2.61.1.0")]
|
||||||
|
Reference in New Issue
Block a user