Enhanced Last Processed Data
IDescription.GetDescriptions with body Nuget bump Removed ~ logic
This commit is contained in:
parent
6498e3edb9
commit
652494d15f
@ -118,8 +118,8 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
private static string GetLines(List<QS408M.Description> descriptions)
|
private static string GetLines(List<QS408M.Description> descriptions)
|
||||||
{
|
{
|
||||||
StringBuilder results = new();
|
StringBuilder results = new();
|
||||||
QS408M.Description x = descriptions[0];
|
|
||||||
char del = '\t';
|
char del = '\t';
|
||||||
|
QS408M.Description x = descriptions[0];
|
||||||
_ = results.Append(x.UniqueId).Append(del).
|
_ = results.Append(x.UniqueId).Append(del).
|
||||||
Append(x.Date).Append(del).
|
Append(x.Date).Append(del).
|
||||||
Append(x.Employee).Append(del).
|
Append(x.Employee).Append(del).
|
||||||
@ -132,11 +132,9 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
Append(x.Cassette).Append(del).
|
Append(x.Cassette).Append(del).
|
||||||
Append(x.Wafer).Append(del).
|
Append(x.Wafer).Append(del).
|
||||||
Append(x.RVThickness);
|
Append(x.RVThickness);
|
||||||
if (x.Lot.StartsWith("O17"))
|
|
||||||
{
|
|
||||||
for (int i = 0; i < descriptions.Count; i++)
|
for (int i = 0; i < descriptions.Count; i++)
|
||||||
_ = results.Append(del).Append(descriptions[i].Position).Append(del).Append(descriptions[i].Thickness);
|
_ = results.Append(del).Append(descriptions[i].Position).
|
||||||
}
|
Append(del).Append(descriptions[i].Thickness);
|
||||||
return results.ToString();
|
return results.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ public class FileRead : Shared.FileRead, IFileRead
|
|||||||
|
|
||||||
private long? _TickOffset;
|
private long? _TickOffset;
|
||||||
private readonly string _OriginalDataBioRad;
|
private readonly string _OriginalDataBioRad;
|
||||||
private readonly ProcessData _LastProcessData;
|
private readonly LastProcessData _LastProcessData;
|
||||||
|
|
||||||
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
|
||||||
base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
|
||||||
|
@ -9,6 +9,7 @@ public class Header
|
|||||||
public string Operator { get; set; }
|
public string Operator { get; set; }
|
||||||
public string Batch { get; set; }
|
public string Batch { get; set; }
|
||||||
public string Cassette { get; set; }
|
public string Cassette { get; set; }
|
||||||
|
public bool UsedLast { get; set; }
|
||||||
public string Wafer { get; set; }
|
public string Wafer { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
13
Adaptation/FileHandlers/QS408M/LastProcessData.cs
Normal file
13
Adaptation/FileHandlers/QS408M/LastProcessData.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
namespace Adaptation.FileHandlers.QS408M;
|
||||||
|
|
||||||
|
public class LastProcessData
|
||||||
|
{
|
||||||
|
|
||||||
|
public string Title { get; set; }
|
||||||
|
public string Recipe { get; set; }
|
||||||
|
public string Date { get; set; }
|
||||||
|
public string Operator { get; set; }
|
||||||
|
public string Batch { get; set; }
|
||||||
|
public string Cassette { get; set; }
|
||||||
|
|
||||||
|
}
|
@ -7,7 +7,6 @@ using System.Data;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
@ -58,16 +57,16 @@ public partial class ProcessData : IProcessData
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProcessData(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection, string originalDataBioRad, ProcessData lastProcessData, long tickOffset)
|
public ProcessData(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection, string originalDataBioRad, LastProcessData lastProcessData, long tickOffset)
|
||||||
{
|
{
|
||||||
JobID = logistics.JobID;
|
JobID = logistics.JobID;
|
||||||
fileInfoCollection.Clear();
|
fileInfoCollection.Clear();
|
||||||
_Details = new List<object>();
|
_Details = new List<object>();
|
||||||
MesEntity = logistics.MesEntity;
|
MesEntity = logistics.MesEntity;
|
||||||
_Log = LogManager.GetLogger(typeof(ProcessData));
|
_Log = LogManager.GetLogger(typeof(ProcessData));
|
||||||
TXT txt = Parse(fileRead, logistics, fileInfoCollection, originalDataBioRad);
|
TXT txt = Parse(fileRead, logistics, fileInfoCollection, originalDataBioRad, lastProcessData);
|
||||||
if (txt is not null)
|
if (txt is not null)
|
||||||
SetValues(logistics, lastProcessData, tickOffset, txt);
|
SetValues(logistics, tickOffset, txt);
|
||||||
}
|
}
|
||||||
|
|
||||||
string IProcessData.GetCurrentReactor(IFileRead fileRead, Logistics logistics, Dictionary<string, string> reactors) => throw new Exception(string.Concat("See ", nameof(Parse)));
|
string IProcessData.GetCurrentReactor(IFileRead fileRead, Logistics logistics, Dictionary<string, string> reactors) => throw new Exception(string.Concat("See ", nameof(Parse)));
|
||||||
@ -246,7 +245,7 @@ public partial class ProcessData : IProcessData
|
|||||||
}
|
}
|
||||||
|
|
||||||
#pragma warning disable IDE0060
|
#pragma warning disable IDE0060
|
||||||
private static TXT Parse(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection, string originalDataBioRad)
|
private static TXT Parse(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection, string originalDataBioRad, LastProcessData lastProcessData)
|
||||||
#pragma warning restore IDE0060
|
#pragma warning restore IDE0060
|
||||||
{
|
{
|
||||||
TXT result;
|
TXT result;
|
||||||
@ -266,7 +265,7 @@ public partial class ProcessData : IProcessData
|
|||||||
result = null;
|
result = null;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = new TXT(receivedData);
|
result = new TXT(lastProcessData, receivedData);
|
||||||
string fileName = Path.Combine(directoryName, $"{Path.GetFileNameWithoutExtension(logistics.ReportFullPath)}.json");
|
string fileName = Path.Combine(directoryName, $"{Path.GetFileNameWithoutExtension(logistics.ReportFullPath)}.json");
|
||||||
string json = JsonSerializer.Serialize(result, new JsonSerializerOptions { WriteIndented = true });
|
string json = JsonSerializer.Serialize(result, new JsonSerializerOptions { WriteIndented = true });
|
||||||
File.WriteAllText(fileName, json);
|
File.WriteAllText(fileName, json);
|
||||||
@ -276,101 +275,37 @@ public partial class ProcessData : IProcessData
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetValues(Logistics logistics, ProcessData lastProcessData, long tickOffset, TXT txt)
|
private void SetValues(Logistics logistics, long tickOffset, TXT txt)
|
||||||
{
|
{
|
||||||
string psn;
|
|
||||||
string rds;
|
|
||||||
string zone;
|
|
||||||
string layer;
|
|
||||||
string wafer;
|
|
||||||
int slot = 0;
|
int slot = 0;
|
||||||
Detail detail;
|
Detail detail;
|
||||||
string reactor;
|
|
||||||
int counter = 1;
|
int counter = 1;
|
||||||
List<Detail> details = new();
|
List<Detail> details = new();
|
||||||
StringBuilder titleFixed = new();
|
|
||||||
StringBuilder waferFixed = new();
|
|
||||||
string recipe = txt.Header.Recipe;
|
|
||||||
string cassette = txt.Header.Cassette;
|
|
||||||
string employee = txt.Header.Operator;
|
|
||||||
DateTime dateTime = GetDateTime(logistics, tickOffset, txt.Header.DateTime);
|
DateTime dateTime = GetDateTime(logistics, tickOffset, txt.Header.DateTime);
|
||||||
// Remove illegal characters \/:*?"<>| found in the Batch
|
|
||||||
bool isWaferSlot = !string.IsNullOrEmpty(txt.Header.Wafer) && txt.Header.Wafer.Length is 1 or 2 && int.TryParse(txt.Header.Wafer, out slot) && slot < 27;
|
bool isWaferSlot = !string.IsNullOrEmpty(txt.Header.Wafer) && txt.Header.Wafer.Length is 1 or 2 && int.TryParse(txt.Header.Wafer, out slot) && slot < 27;
|
||||||
string batch = !isWaferSlot ? logistics.JobID : Regex.Replace(txt.Header.Batch, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
string batch = !isWaferSlot ? logistics.JobID : Regex.Replace(txt.Header.Batch, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||||
Descriptor descriptor = isWaferSlot ? GetDescriptor(txt.Header.Batch) : GetDescriptor(txt.Header.Wafer);
|
Descriptor descriptor = isWaferSlot ? GetDescriptor(txt.Header.Batch) : GetDescriptor(txt.Header.Wafer);
|
||||||
psn = descriptor.PSN;
|
string wafer = isWaferSlot ? slot.ToString("00") : descriptor.Wafer;
|
||||||
rds = descriptor.RDS;
|
string uniqueId = string.Concat(txt.Header.Title, '_', wafer, '_', logistics.DateTimeFromSequence.ToString("yyyyMMddHHmmssffff"), '_', logistics.TotalSecondsSinceLastWriteTimeFromSequence);
|
||||||
zone = descriptor.Zone;
|
|
||||||
layer = descriptor.Layer;
|
|
||||||
reactor = descriptor.Reactor;
|
|
||||||
wafer = isWaferSlot ? slot.ToString("00") : descriptor.Wafer;
|
|
||||||
if (string.IsNullOrEmpty(employee))
|
|
||||||
employee = descriptor.Employee;
|
|
||||||
foreach (char c in txt.Header.Title)
|
|
||||||
{
|
|
||||||
if (char.IsLetterOrDigit(c) || c == '-' || c == '.')
|
|
||||||
_ = titleFixed.Append(c);
|
|
||||||
}
|
|
||||||
foreach (char c in wafer)
|
|
||||||
{
|
|
||||||
if (char.IsLetterOrDigit(c) || c == '-' || c == '.')
|
|
||||||
_ = waferFixed.Append(c);
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(lastProcessData.Wafer))
|
|
||||||
{
|
|
||||||
lastProcessData.Batch = logistics.JobID;
|
|
||||||
lastProcessData.Cassette = logistics.JobID;
|
|
||||||
lastProcessData.Employee = logistics.JobID;
|
|
||||||
lastProcessData.Recipe = logistics.JobID;
|
|
||||||
lastProcessData.Title = logistics.JobID;
|
|
||||||
}
|
|
||||||
lastProcessData.Wafer = waferFixed.ToString();
|
|
||||||
lastProcessData.Reactor = reactor;
|
|
||||||
string check = "--------";
|
|
||||||
if (string.IsNullOrEmpty(rds) || rds.Contains(check))
|
|
||||||
rds = lastProcessData.RDS;
|
|
||||||
else
|
|
||||||
lastProcessData.RDS = rds;
|
|
||||||
if (string.IsNullOrEmpty(batch) || batch.Contains(check))
|
|
||||||
batch = lastProcessData.Batch;
|
|
||||||
else
|
|
||||||
lastProcessData.Batch = batch;
|
|
||||||
if (string.IsNullOrEmpty(cassette) || cassette.Contains(check))
|
|
||||||
cassette = lastProcessData.Cassette;
|
|
||||||
else
|
|
||||||
lastProcessData.Cassette = cassette;
|
|
||||||
if (string.IsNullOrEmpty(employee) || employee.Contains(check))
|
|
||||||
employee = lastProcessData.Employee;
|
|
||||||
else
|
|
||||||
lastProcessData.Employee = employee;
|
|
||||||
if (string.IsNullOrEmpty(recipe) || recipe.Contains(check))
|
|
||||||
recipe = lastProcessData.Recipe;
|
|
||||||
else
|
|
||||||
lastProcessData.Recipe = recipe;
|
|
||||||
if (string.IsNullOrEmpty(txt.Header.Title) || txt.Header.Title.Contains(check))
|
|
||||||
titleFixed = new(lastProcessData.Title);
|
|
||||||
else
|
|
||||||
lastProcessData.Title = titleFixed.ToString();
|
|
||||||
string uniqueId = string.Concat(titleFixed, '_', waferFixed, '_', logistics.DateTimeFromSequence.ToString("yyyyMMddHHmmssffff"), '_', logistics.TotalSecondsSinceLastWriteTimeFromSequence);
|
|
||||||
PSN = psn;
|
|
||||||
RDS = rds;
|
|
||||||
Date = dateTime;
|
|
||||||
Zone = zone;
|
|
||||||
Batch = batch;
|
Batch = batch;
|
||||||
Layer = layer;
|
Wafer = wafer;
|
||||||
Recipe = recipe;
|
Date = dateTime;
|
||||||
Reactor = reactor;
|
|
||||||
Cassette = cassette;
|
|
||||||
Employee = employee;
|
|
||||||
UniqueId = uniqueId;
|
UniqueId = uniqueId;
|
||||||
|
PSN = descriptor.PSN;
|
||||||
|
RDS = descriptor.RDS;
|
||||||
|
Zone = descriptor.Zone;
|
||||||
JobID = logistics.JobID;
|
JobID = logistics.JobID;
|
||||||
|
Layer = descriptor.Layer;
|
||||||
StdDev = txt.Body.StdDev;
|
StdDev = txt.Body.StdDev;
|
||||||
|
Title = txt.Header.Title;
|
||||||
|
Recipe = txt.Header.Recipe;
|
||||||
PassFail = txt.Body.PassFail;
|
PassFail = txt.Body.PassFail;
|
||||||
Title = titleFixed.ToString();
|
Reactor = descriptor.Reactor;
|
||||||
Wafer = waferFixed.ToString();
|
Cassette = txt.Header.Cassette;
|
||||||
Slot = string.IsNullOrEmpty(txt.Footer.Slot) ? slot.ToString("00") : txt.Footer.Slot;
|
|
||||||
MeanThickness = string.IsNullOrEmpty(txt.Body.WaferMeanThickness) && txt.Body.Sites.Count == 1 ? txt.Body.Sites.First().Thickness : txt.Body.WaferMeanThickness;
|
|
||||||
RVThickness = txt.Footer.RadialVariationThickness;
|
RVThickness = txt.Footer.RadialVariationThickness;
|
||||||
|
Slot = string.IsNullOrEmpty(txt.Footer.Slot) ? slot.ToString("00") : txt.Footer.Slot;
|
||||||
|
Employee = string.IsNullOrEmpty(txt.Header.Operator) ? Employee : txt.Header.Operator;
|
||||||
|
MeanThickness = string.IsNullOrEmpty(txt.Body.WaferMeanThickness) && txt.Body.Sites.Count == 1 ? txt.Body.Sites.First().Thickness : txt.Body.WaferMeanThickness;
|
||||||
foreach (Site site in txt.Body.Sites)
|
foreach (Site site in txt.Body.Sites)
|
||||||
{
|
{
|
||||||
detail = new()
|
detail = new()
|
||||||
|
@ -13,15 +13,18 @@ public class TXT
|
|||||||
private int _I;
|
private int _I;
|
||||||
private readonly string _Data;
|
private readonly string _Data;
|
||||||
|
|
||||||
public TXT(string receivedData)
|
public TXT(LastProcessData lastProcessData, string receivedData)
|
||||||
{
|
{
|
||||||
_I = 0;
|
_I = 0;
|
||||||
Site site;
|
Site site;
|
||||||
|
bool usedLast;
|
||||||
_Data = receivedData;
|
_Data = receivedData;
|
||||||
List<Site> sites = new();
|
List<Site> sites = new();
|
||||||
|
const string twoSpaces = " ";
|
||||||
string title = GetBefore("Recipe:");
|
string title = GetBefore("Recipe:");
|
||||||
string recipe = GetToken();
|
string recipeAndDateTime = GetToEOL();
|
||||||
string dateTime = GetToEOL();
|
string recipe = !recipeAndDateTime.Contains(twoSpaces) ? recipeAndDateTime.Substring(0, 25).Trim() : recipeAndDateTime.Split(new string[] { twoSpaces }, StringSplitOptions.None)[0].Trim();
|
||||||
|
string dateTime = recipeAndDateTime.Substring(recipe.Length).Trim();
|
||||||
if (dateTime.EndsWith("."))
|
if (dateTime.EndsWith("."))
|
||||||
dateTime = dateTime.Remove(dateTime.Length - 1, 1);
|
dateTime = dateTime.Remove(dateTime.Length - 1, 1);
|
||||||
ScanPast("operator:");
|
ScanPast("operator:");
|
||||||
@ -42,6 +45,17 @@ public class TXT
|
|||||||
_ = GetToEOL();
|
_ = GetToEOL();
|
||||||
if (string.IsNullOrEmpty(wafer))
|
if (string.IsNullOrEmpty(wafer))
|
||||||
throw new Exception("Wafer field is missing.");
|
throw new Exception("Wafer field is missing.");
|
||||||
|
if (!string.IsNullOrEmpty(title))
|
||||||
|
usedLast = false;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
title = lastProcessData.Title;
|
||||||
|
recipe = lastProcessData.Recipe;
|
||||||
|
@operator = lastProcessData.Operator;
|
||||||
|
batch = lastProcessData.Batch;
|
||||||
|
cassette = lastProcessData.Cassette;
|
||||||
|
usedLast = true;
|
||||||
|
}
|
||||||
string token = GetToken();
|
string token = GetToken();
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
@ -75,6 +89,7 @@ public class TXT
|
|||||||
Operator = @operator,
|
Operator = @operator,
|
||||||
Batch = batch,
|
Batch = batch,
|
||||||
Cassette = cassette,
|
Cassette = cassette,
|
||||||
|
UsedLast = usedLast,
|
||||||
Wafer = wafer,
|
Wafer = wafer,
|
||||||
};
|
};
|
||||||
Body = new()
|
Body = new()
|
||||||
@ -90,6 +105,11 @@ public class TXT
|
|||||||
RadialVariationThickness = radialVariationThickness,
|
RadialVariationThickness = radialVariationThickness,
|
||||||
Slot = slot,
|
Slot = slot,
|
||||||
};
|
};
|
||||||
|
lastProcessData.Title = title;
|
||||||
|
lastProcessData.Recipe = recipe;
|
||||||
|
lastProcessData.Operator = @operator;
|
||||||
|
lastProcessData.Batch = batch;
|
||||||
|
lastProcessData.Cassette = cassette;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetBefore(string text)
|
private string GetBefore(string text)
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<DefineConstants>Linux</DefineConstants>
|
<DefineConstants>Linux</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="coverlet.collector" Version="3.2.0" />
|
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||||
<PackageReference Include="FFMpegCore" Version="5.1.0" />
|
<PackageReference Include="FFMpegCore" Version="5.1.0" />
|
||||||
<PackageReference Include="IKVM.AWT.WinForms" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.AWT.WinForms" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="IKVM.OpenJDK.Core" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.OpenJDK.Core" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
@ -43,6 +43,7 @@
|
|||||||
<PackageReference Include="IKVM.OpenJDK.XML.API" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.OpenJDK.XML.API" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="IKVM.Runtime" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="IKVM.Runtime" Version="7.2.4630.5"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="Instances" Version="3.0.0" />
|
<PackageReference Include="Instances" Version="3.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="7.0.5" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.4" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.4" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" />
|
||||||
@ -53,10 +54,10 @@
|
|||||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.1" />
|
||||||
<PackageReference Include="Microsoft.Win32.SystemEvents" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Win32.SystemEvents" Version="7.0.0" />
|
||||||
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
|
<PackageReference Include="MSTest.TestAdapter" Version="3.0.4" />
|
||||||
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
|
<PackageReference Include="MSTest.TestFramework" Version="3.0.4" />
|
||||||
<PackageReference Include="Pdfbox" Version="1.1.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="Pdfbox" Version="1.1.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
<PackageReference Include="RoboSharp" Version="1.2.8" />
|
<PackageReference Include="RoboSharp" Version="1.2.8" />
|
||||||
<PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
|
<PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
|
||||||
@ -67,8 +68,8 @@
|
|||||||
<PackageReference Include="Tesseract" Version="5.2.0" />
|
<PackageReference Include="Tesseract" Version="5.2.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Tibco.Rendezvous" Version="8.5.0" />
|
<PackageReference Include="Tibco.Rendezvous.DotNetCore" Version="8.5.0" />
|
||||||
<PackageReference Include="Infineon.Yoda" Version="5.4.1" />
|
<PackageReference Include="Infineon.Yoda.DotNetCore" Version="5.4.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
<PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||||
|
@ -110,6 +110,42 @@ public class Description : IDescription, Properties.IDescription
|
|||||||
List<IDescription> IDescription.GetDescriptions(IFileRead fileRead, Logistics logistics, List<Test> tests, IProcessData iProcessData)
|
List<IDescription> IDescription.GetDescriptions(IFileRead fileRead, Logistics logistics, List<Test> tests, IProcessData iProcessData)
|
||||||
{
|
{
|
||||||
List<IDescription> results = new();
|
List<IDescription> results = new();
|
||||||
|
if (iProcessData is null || !iProcessData.Details.Any())
|
||||||
|
results.Add(GetDefault(fileRead, logistics));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string nullData;
|
||||||
|
Description description;
|
||||||
|
object configDataNullData = fileRead.NullData;
|
||||||
|
if (configDataNullData is null)
|
||||||
|
nullData = string.Empty;
|
||||||
|
else
|
||||||
|
nullData = configDataNullData.ToString();
|
||||||
|
for (int i = 0; i < iProcessData.Details.Count; i++)
|
||||||
|
{
|
||||||
|
if (iProcessData.Details[i] is null)
|
||||||
|
continue;
|
||||||
|
description = new Description
|
||||||
|
{
|
||||||
|
Test = (int)tests[i],
|
||||||
|
Count = tests.Count,
|
||||||
|
Index = i,
|
||||||
|
//
|
||||||
|
EventName = fileRead.EventName,
|
||||||
|
NullData = nullData,
|
||||||
|
JobID = fileRead.CellInstanceName,
|
||||||
|
Sequence = logistics.Sequence.ToString(),
|
||||||
|
MesEntity = logistics.MesEntity,
|
||||||
|
ReportFullPath = logistics.ReportFullPath,
|
||||||
|
ProcessJobID = logistics.ProcessJobID,
|
||||||
|
MID = logistics.MID,
|
||||||
|
//
|
||||||
|
Date = DateTime.Now.ToString(GetDateFormat()),
|
||||||
|
RDS = string.Empty,
|
||||||
|
};
|
||||||
|
results.Add(description);
|
||||||
|
}
|
||||||
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,4 +102,26 @@ public class BIORAD2
|
|||||||
NonThrowTryCatch();
|
NonThrowTryCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
[Ignore]
|
||||||
|
#endif
|
||||||
|
[TestMethod]
|
||||||
|
public void Staging__v2_49_2__BIORAD2__QS408M638211310710952565__WMO()
|
||||||
|
{
|
||||||
|
DateTime dateTime;
|
||||||
|
string check = "*.txt";
|
||||||
|
bool validatePDSF = false;
|
||||||
|
_BIORAD2.Staging__v2_49_2__BIORAD2__QS408M();
|
||||||
|
MethodBase methodBase = new StackFrame().GetMethod();
|
||||||
|
string[] variables = _BIORAD2.AdaptationTesting.GetVariables(methodBase, check, validatePDSF);
|
||||||
|
IFileRead fileRead = _BIORAD2.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false);
|
||||||
|
Logistics logistics = new(fileRead);
|
||||||
|
dateTime = FileHandlers.QS408M.ProcessData.GetDateTime(logistics, tickOffset: 0, dateTimeText: string.Empty);
|
||||||
|
Assert.IsTrue(dateTime == logistics.DateTimeFromSequence);
|
||||||
|
dateTime = FileHandlers.QS408M.ProcessData.GetDateTime(logistics, tickOffset: 0, dateTimeText: "Tue Nov 10 12:03:56 1970");
|
||||||
|
Assert.IsTrue(dateTime == logistics.DateTimeFromSequence);
|
||||||
|
_ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF);
|
||||||
|
NonThrowTryCatch();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -116,6 +116,7 @@
|
|||||||
<Compile Include="Adaptation\FileHandlers\QS408M\FileRead.cs" />
|
<Compile Include="Adaptation\FileHandlers\QS408M\FileRead.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\QS408M\Footer.cs" />
|
<Compile Include="Adaptation\FileHandlers\QS408M\Footer.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\QS408M\Header.cs" />
|
<Compile Include="Adaptation\FileHandlers\QS408M\Header.cs" />
|
||||||
|
<Compile Include="Adaptation\FileHandlers\QS408M\LastProcessData.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\QS408M\ProcessData.cs" />
|
<Compile Include="Adaptation\FileHandlers\QS408M\ProcessData.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\QS408M\Site.cs" />
|
<Compile Include="Adaptation\FileHandlers\QS408M\Site.cs" />
|
||||||
<Compile Include="Adaptation\FileHandlers\QS408M\TXT.cs" />
|
<Compile Include="Adaptation\FileHandlers\QS408M\TXT.cs" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user