HttpSelfHostConfigurationBaseAddress
OpenInsightApplicationProgrammingInterface Infineon.EAF.Runtime 2.49.3
This commit is contained in:
@ -1,5 +1,4 @@
|
||||
#if NETFRAMEWORK && NET48
|
||||
using Adaptation.FileHandlers.TIBCO.Transport;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Results;
|
||||
|
||||
|
@ -1,7 +1,10 @@
|
||||
using Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
using Adaptation.FileHandlers.TIBCO.Transport;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Net.Http;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@ -12,7 +15,7 @@ public class BarcodeHelper
|
||||
|
||||
#nullable enable
|
||||
|
||||
private static string? GetJson(System.Net.Http.HttpContent? httpContent)
|
||||
private static string? GetJson(HttpContent? httpContent)
|
||||
{
|
||||
string? result;
|
||||
if (httpContent is null)
|
||||
@ -46,7 +49,7 @@ public class BarcodeHelper
|
||||
return result;
|
||||
}
|
||||
|
||||
internal static PostReplay? Post(string id, System.Net.Http.HttpContent? httpContent)
|
||||
internal static PostReplay? Post(string id, HttpContent? httpContent)
|
||||
{
|
||||
PostReplay? result;
|
||||
string? json = GetJson(httpContent);
|
||||
@ -59,16 +62,46 @@ public class BarcodeHelper
|
||||
result = null;
|
||||
else
|
||||
{
|
||||
const string hyphen = "-";
|
||||
Job? job;
|
||||
string? mid;
|
||||
List<QaMetTest>? collection;
|
||||
Dictionary<string, List<QaMetTest>> qaMetTests = new();
|
||||
Write(TIBCO.FileRead.BarcodeHostFileShare, id, notification.Value);
|
||||
Job job = GetJob(TIBCO.FileRead.LSL2SQLConnectionString, TIBCO.FileRead.MetrologyFileShare, TIBCO.FileRead.BarcodeHostFileShare, id, notification.Value);
|
||||
string mid = job.SpecName == hyphen || job.ProcessSpecName == hyphen ? $"{job.ProcessType}" : $"{job.ProcessType}.{job.SpecName}.{job.ProcessSpecName}";
|
||||
try
|
||||
{
|
||||
// https://oi-prod-ec-api.mes.infineon.com/api/oiWizard/materials/rds/
|
||||
const string hyphen = "-";
|
||||
HttpClient httpClient = new();
|
||||
job = GetJob(TIBCO.FileRead.LSL2SQLConnectionString, TIBCO.FileRead.MetrologyFileShare, TIBCO.FileRead.BarcodeHostFileShare, id, notification.Value);
|
||||
mid = job.SpecName == hyphen || job.ProcessSpecName == hyphen ? $"{job.ProcessType}" : $"{job.ProcessType}.{job.SpecName}.{job.ProcessSpecName}";
|
||||
string httpClientResult = httpClient.GetStringAsync($"{FileRead.OpenInsightApplicationProgrammingInterface}/materials/rds/{job.LotName}").Result;
|
||||
Root? root = JsonSerializer.Deserialize<Root>(httpClientResult);
|
||||
httpClient.Dispose();
|
||||
if (root is not null)
|
||||
{
|
||||
foreach (PrsStage prsStage in root.Rds.ProdSpec.PrsStages)
|
||||
{
|
||||
if (prsStage.QaMetTests is null)
|
||||
continue;
|
||||
foreach (QaMetTest qaMetTest in prsStage.QaMetTests)
|
||||
{
|
||||
if (qaMetTest.ToolClass != notification.Value.ToolClass)
|
||||
continue;
|
||||
if (!qaMetTests.TryGetValue(prsStage.Stage, out collection))
|
||||
{
|
||||
qaMetTests.Add(prsStage.Stage, new());
|
||||
if (!qaMetTests.TryGetValue(prsStage.Stage, out collection))
|
||||
throw new Exception();
|
||||
}
|
||||
collection.Add(qaMetTest);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception) { }
|
||||
result = new(job, mid, job.RecipeName);
|
||||
catch (Exception)
|
||||
{
|
||||
mid = null;
|
||||
}
|
||||
result = new(mid, qaMetTests); // .ProdSpec.PrsStages[0].QaMetTests[0].Recipe);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
@ -5,12 +5,16 @@ public readonly struct Notification
|
||||
|
||||
public KeyPressEvent KeyPressEvent { get; }
|
||||
public string LastScanServiceResultValue { get; }
|
||||
public string ToolClass { get; }
|
||||
public string HttpContentBody { get; }
|
||||
|
||||
[System.Text.Json.Serialization.JsonConstructor]
|
||||
public Notification(KeyPressEvent keyPressEvent, string lastScanServiceResultValue)
|
||||
public Notification(KeyPressEvent keyPressEvent, string lastScanServiceResultValue, string toolClass, string httpContentBody)
|
||||
{
|
||||
KeyPressEvent = keyPressEvent;
|
||||
LastScanServiceResultValue = lastScanServiceResultValue;
|
||||
ToolClass = toolClass;
|
||||
HttpContentBody = httpContentBody;
|
||||
}
|
||||
|
||||
}
|
@ -1,20 +1,21 @@
|
||||
using Adaptation.FileHandlers.TIBCO.Transport;
|
||||
using Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
|
||||
|
||||
public class PostReplay
|
||||
{
|
||||
|
||||
public Job Job { get; }
|
||||
public string MId { get; }
|
||||
public string Recipe { get; }
|
||||
#nullable enable
|
||||
|
||||
public string? MId { get; }
|
||||
public Dictionary<string, List<QaMetTest>> QaMetTests { get; }
|
||||
|
||||
[System.Text.Json.Serialization.JsonConstructor]
|
||||
public PostReplay(Job job, string mid, string recipe)
|
||||
public PostReplay(string? mid, Dictionary<string, List<QaMetTest>> qaMetTests)
|
||||
{
|
||||
Job = job;
|
||||
MId = mid;
|
||||
Recipe = recipe;
|
||||
QaMetTests = qaMetTests;
|
||||
}
|
||||
|
||||
}
|
@ -19,6 +19,9 @@ public class FileRead : Shared.FileRead, IFileRead
|
||||
|
||||
#nullable enable
|
||||
|
||||
public const string HttpSelfHostConfigurationBaseAddress = "http://localhost:8080/";
|
||||
public const string OpenInsightApplicationProgrammingInterface = "https://oi-prod-ec-api.mes.infineon.com/api/oiWizard";
|
||||
|
||||
private long? _TickOffset;
|
||||
#if NETFRAMEWORK && NET48
|
||||
private readonly HttpSelfHostServer? _HttpSelfHostServer;
|
||||
@ -36,14 +39,26 @@ public class FileRead : Shared.FileRead, IFileRead
|
||||
throw new Exception(cellInstanceConnectionName);
|
||||
if (_IsDuplicator)
|
||||
throw new Exception(cellInstanceConnectionName);
|
||||
string barcodeHostFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Barcode.Host.FileShare");
|
||||
if (barcodeHostFileShare != TIBCO.FileRead.BarcodeHostFileShare)
|
||||
throw new NotSupportedException($"Update configuration for [{nameof(TIBCO.FileRead.BarcodeHostFileShare)}]");
|
||||
string httpSelfHostConfigurationBaseAddress = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Http.Self.Host.Configuration.Base.Address");
|
||||
if (httpSelfHostConfigurationBaseAddress != HttpSelfHostConfigurationBaseAddress)
|
||||
throw new NotSupportedException($"Update configuration for [{nameof(HttpSelfHostConfigurationBaseAddress)}]");
|
||||
string lsl2SQLConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "ConnectionString.LSL2SQL");
|
||||
if (lsl2SQLConnectionString != TIBCO.FileRead.LSL2SQLConnectionString)
|
||||
throw new NotSupportedException($"Update configuration for [{nameof(TIBCO.FileRead.LSL2SQLConnectionString)}]");
|
||||
string metrologyFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Metrology.FileShare");
|
||||
if (metrologyFileShare != TIBCO.FileRead.MetrologyFileShare)
|
||||
throw new NotSupportedException($"Update configuration for [{nameof(TIBCO.FileRead.MetrologyFileShare)}]");
|
||||
string openInsightApplicationProgrammingInterface = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.Application.Programming.Interface");
|
||||
if (openInsightApplicationProgrammingInterface != OpenInsightApplicationProgrammingInterface)
|
||||
throw new NotSupportedException($"Update configuration for [{nameof(OpenInsightApplicationProgrammingInterface)}]");
|
||||
#if NETFRAMEWORK && NET48
|
||||
if (!_IsEAFHosted)
|
||||
_HttpSelfHostServer = null;
|
||||
else
|
||||
{
|
||||
// string propertyName = string.Concat("CellInstance.", cellInstanceName, ".HttpSelfHostConfiguration.BaseAddress");
|
||||
// string httpSelfHostConfigurationBaseAddress = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, propertyName);
|
||||
string httpSelfHostConfigurationBaseAddress = "http://localhost:8080/";
|
||||
HttpSelfHostConfiguration config = new(httpSelfHostConfigurationBaseAddress);
|
||||
_ = config.Routes.MapHttpRoute("API Default", "api/{controller}/{id}", new { id = RouteParameter.Optional });
|
||||
_HttpSelfHostServer = new(config);
|
||||
|
18
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/BackSide.cs
Normal file
18
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/BackSide.cs
Normal file
@ -0,0 +1,18 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class BackSide
|
||||
{
|
||||
[JsonPropertyName("scratches")]
|
||||
public int? Scratches { get; set; }
|
||||
|
||||
[JsonPropertyName("scratchLen")]
|
||||
public int? ScratchLen { get; set; }
|
||||
|
||||
[JsonPropertyName("nodules")]
|
||||
public object Nodules { get; set; }
|
||||
|
||||
[JsonPropertyName("spikes")]
|
||||
public object Spikes { get; set; }
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class CleanInsp
|
||||
{
|
||||
[JsonPropertyName("keyId")]
|
||||
public int KeyId { get; set; }
|
||||
|
||||
[JsonPropertyName("stage")]
|
||||
public string Stage { get; set; }
|
||||
|
||||
[JsonPropertyName("cleans")]
|
||||
public Cleans Cleans { get; set; }
|
||||
|
||||
[JsonPropertyName("inspection")]
|
||||
public Inspection Inspection { get; set; }
|
||||
|
||||
[JsonPropertyName("surfScan")]
|
||||
public SurfScan SurfScan { get; set; }
|
||||
}
|
22
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Cleans.cs
Normal file
22
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Cleans.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class Cleans
|
||||
{
|
||||
[JsonPropertyName("cleanRecipe")]
|
||||
public object CleanRecipe { get; set; }
|
||||
|
||||
[JsonPropertyName("cleanSigReq")]
|
||||
public bool CleanSigReq { get; set; }
|
||||
|
||||
[JsonPropertyName("cleanTools")]
|
||||
public List<object> CleanTools { get; set; }
|
||||
|
||||
[JsonPropertyName("specs")]
|
||||
public Spec Specs { get; set; }
|
||||
|
||||
[JsonPropertyName("operations")]
|
||||
public List<object> Operations { get; set; }
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class CustEpiPart
|
||||
{
|
||||
[JsonPropertyName("keyId")]
|
||||
public string KeyId { get; set; }
|
||||
}
|
12
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/EpiPart.cs
Normal file
12
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/EpiPart.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class EpiPart
|
||||
{
|
||||
[JsonPropertyName("keyID")]
|
||||
public int KeyID { get; set; }
|
||||
|
||||
[JsonPropertyName("waferSize")]
|
||||
public string WaferSize { get; set; }
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class FrontSide
|
||||
{
|
||||
[JsonPropertyName("lpd")]
|
||||
public int? Lpd { get; set; }
|
||||
|
||||
[JsonPropertyName("scratches")]
|
||||
public int? Scratches { get; set; }
|
||||
|
||||
[JsonPropertyName("scratchLen")]
|
||||
public string ScratchLen { get; set; }
|
||||
|
||||
[JsonPropertyName("pits")]
|
||||
public int? Pits { get; set; }
|
||||
|
||||
[JsonPropertyName("mounds")]
|
||||
public int? Mounds { get; set; }
|
||||
|
||||
[JsonPropertyName("stackFaults")]
|
||||
public int? StackFaults { get; set; }
|
||||
|
||||
[JsonPropertyName("spikes")]
|
||||
public int? Spikes { get; set; }
|
||||
|
||||
[JsonPropertyName("spots")]
|
||||
public int? Spots { get; set; }
|
||||
|
||||
[JsonPropertyName("blDefects")]
|
||||
public int? BlDefects { get; set; }
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class Inspection
|
||||
{
|
||||
[JsonPropertyName("microscope")]
|
||||
public bool Microscope { get; set; }
|
||||
|
||||
[JsonPropertyName("brightlight")]
|
||||
public bool Brightlight { get; set; }
|
||||
|
||||
[JsonPropertyName("inspSigReq")]
|
||||
public bool InspSigReq { get; set; }
|
||||
|
||||
[JsonPropertyName("inspInterval")]
|
||||
public int? InspInterval { get; set; }
|
||||
|
||||
[JsonPropertyName("frontSide")]
|
||||
public FrontSide FrontSide { get; set; }
|
||||
|
||||
[JsonPropertyName("backSide")]
|
||||
public BackSide BackSide { get; set; }
|
||||
|
||||
[JsonPropertyName("specs")]
|
||||
public Spec Specs { get; set; }
|
||||
}
|
49
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/ProdSpec.cs
Normal file
49
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/ProdSpec.cs
Normal file
@ -0,0 +1,49 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class ProdSpec
|
||||
{
|
||||
[JsonPropertyName("keyId")]
|
||||
public int KeyId { get; set; }
|
||||
|
||||
[JsonPropertyName("specType")]
|
||||
public string SpecType { get; set; }
|
||||
|
||||
[JsonPropertyName("status")]
|
||||
public string Status { get; set; }
|
||||
|
||||
[JsonPropertyName("minutesPerWafer")]
|
||||
public double MinutesPerWafer { get; set; }
|
||||
|
||||
[JsonPropertyName("proveInTime")]
|
||||
public double ProveInTime { get; set; }
|
||||
|
||||
[JsonPropertyName("layerType")]
|
||||
public string LayerType { get; set; }
|
||||
|
||||
[JsonPropertyName("reactorType")]
|
||||
public string ReactorType { get; set; }
|
||||
|
||||
[JsonPropertyName("susceptorType")]
|
||||
public string SusceptorType { get; set; }
|
||||
|
||||
[JsonPropertyName("tubePressureType")]
|
||||
public string TubePressureType { get; set; }
|
||||
|
||||
[JsonPropertyName("recipeLayers")]
|
||||
public List<RecipeLayer> RecipeLayers { get; set; }
|
||||
|
||||
[JsonPropertyName("prodVers")]
|
||||
public List<ProdVer> ProdVers { get; set; }
|
||||
|
||||
[JsonPropertyName("epiPart")]
|
||||
public EpiPart EpiPart { get; set; }
|
||||
|
||||
[JsonPropertyName("custEpiParts")]
|
||||
public List<CustEpiPart> CustEpiParts { get; set; }
|
||||
|
||||
[JsonPropertyName("prsStages")]
|
||||
public List<PrsStage> PrsStages { get; set; }
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class ProdVer
|
||||
{
|
||||
[JsonPropertyName("keyId")]
|
||||
public int KeyId { get; set; }
|
||||
}
|
28
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/PrsStage.cs
Normal file
28
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/PrsStage.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class PrsStage
|
||||
{
|
||||
[JsonPropertyName("keyId")]
|
||||
public string KeyId { get; set; }
|
||||
|
||||
[JsonPropertyName("psn")]
|
||||
public int Psn { get; set; }
|
||||
|
||||
[JsonPropertyName("stage")]
|
||||
public string Stage { get; set; }
|
||||
|
||||
[JsonPropertyName("cleans")]
|
||||
public Cleans Cleans { get; set; }
|
||||
|
||||
[JsonPropertyName("inspection")]
|
||||
public Inspection Inspection { get; set; }
|
||||
|
||||
[JsonPropertyName("surfscan")]
|
||||
public SurfScan Surfscan { get; set; }
|
||||
|
||||
[JsonPropertyName("qaMetTests")]
|
||||
public List<QaMetTest> QaMetTests { get; set; }
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class QaMetTest
|
||||
{
|
||||
[JsonPropertyName("test")]
|
||||
public string Test { get; set; }
|
||||
|
||||
[JsonPropertyName("property")]
|
||||
public string Property { get; set; }
|
||||
|
||||
[JsonPropertyName("propertyDesc")]
|
||||
public string PropertyDesc { get; set; }
|
||||
|
||||
[JsonPropertyName("toolClass")]
|
||||
public string ToolClass { get; set; }
|
||||
|
||||
[JsonPropertyName("recipe")]
|
||||
public string Recipe { get; set; }
|
||||
|
||||
[JsonPropertyName("recipePattern")]
|
||||
public string RecipePattern { get; set; }
|
||||
|
||||
[JsonPropertyName("min")]
|
||||
public double Min { get; set; }
|
||||
|
||||
[JsonPropertyName("max")]
|
||||
public double Max { get; set; }
|
||||
|
||||
[JsonPropertyName("phaseMin")]
|
||||
public double? PhaseMin { get; set; }
|
||||
|
||||
[JsonPropertyName("slots")]
|
||||
public object Slots { get; set; }
|
||||
|
||||
[JsonPropertyName("wfrQty")]
|
||||
public int WfrQty { get; set; }
|
||||
|
||||
[JsonPropertyName("reactSched")]
|
||||
public bool ReactSched { get; set; }
|
||||
|
||||
[JsonPropertyName("interval")]
|
||||
public int Interval { get; set; }
|
||||
|
||||
[JsonPropertyName("start")]
|
||||
public int Start { get; set; }
|
||||
|
||||
[JsonPropertyName("sequence")]
|
||||
public string Sequence { get; set; }
|
||||
}
|
97
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Rds.cs
Normal file
97
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Rds.cs
Normal file
@ -0,0 +1,97 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class Rds
|
||||
{
|
||||
[JsonPropertyName("keyId")]
|
||||
public int KeyId { get; set; }
|
||||
|
||||
[JsonPropertyName("reactor")]
|
||||
public int Reactor { get; set; }
|
||||
|
||||
[JsonPropertyName("workOrder")]
|
||||
public int WorkOrder { get; set; }
|
||||
|
||||
[JsonPropertyName("cassNo")]
|
||||
public int CassNo { get; set; }
|
||||
|
||||
[JsonPropertyName("combStatus")]
|
||||
public string CombStatus { get; set; }
|
||||
|
||||
[JsonPropertyName("partNo")]
|
||||
public int PartNo { get; set; }
|
||||
|
||||
[JsonPropertyName("PSN")]
|
||||
public int PSN { get; set; }
|
||||
|
||||
[JsonPropertyName("entryId")]
|
||||
public string EntryId { get; set; }
|
||||
|
||||
[JsonPropertyName("entryDtm")]
|
||||
public string EntryDtm { get; set; }
|
||||
|
||||
[JsonPropertyName("preEpiSig")]
|
||||
public string PreEpiSig { get; set; }
|
||||
|
||||
[JsonPropertyName("preEpiSigDtm")]
|
||||
public string PreEpiSigDtm { get; set; }
|
||||
|
||||
[JsonPropertyName("operatorIn")]
|
||||
public string OperatorIn { get; set; }
|
||||
|
||||
[JsonPropertyName("dtmIn")]
|
||||
public string DtmIn { get; set; }
|
||||
|
||||
[JsonPropertyName("operatorOut")]
|
||||
public string OperatorOut { get; set; }
|
||||
|
||||
[JsonPropertyName("dtmOut")]
|
||||
public string DtmOut { get; set; }
|
||||
|
||||
[JsonPropertyName("postEpiSig")]
|
||||
public string PostEpiSig { get; set; }
|
||||
|
||||
[JsonPropertyName("postEpiSigDtm")]
|
||||
public string PostEpiSigDtm { get; set; }
|
||||
|
||||
[JsonPropertyName("supVerSig")]
|
||||
public string SupVerSig { get; set; }
|
||||
|
||||
[JsonPropertyName("supVerSigDtm")]
|
||||
public string SupVerSigDtm { get; set; }
|
||||
|
||||
[JsonPropertyName("shipDtm")]
|
||||
public object ShipDtm { get; set; }
|
||||
|
||||
[JsonPropertyName("subPartNo")]
|
||||
public int SubPartNo { get; set; }
|
||||
|
||||
[JsonPropertyName("shipNo")]
|
||||
public object ShipNo { get; set; }
|
||||
|
||||
[JsonPropertyName("cassWaferQty")]
|
||||
public int CassWaferQty { get; set; }
|
||||
|
||||
[JsonPropertyName("loadLockSide")]
|
||||
public string LoadLockSide { get; set; }
|
||||
|
||||
[JsonPropertyName("waferSize")]
|
||||
public string WaferSize { get; set; }
|
||||
|
||||
[JsonPropertyName("reactorType")]
|
||||
public string ReactorType { get; set; }
|
||||
|
||||
[JsonPropertyName("prodSpec")]
|
||||
public ProdSpec ProdSpec { get; set; }
|
||||
|
||||
[JsonPropertyName("cleanInsp")]
|
||||
public List<CleanInsp> CleanInsp { get; set; }
|
||||
|
||||
[JsonPropertyName("woMatQA")]
|
||||
public WoMatQA WoMatQA { get; set; }
|
||||
|
||||
[JsonPropertyName("rdsLayers")]
|
||||
public List<RdsLayer> RdsLayers { get; set; }
|
||||
}
|
63
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/RdsLayer.cs
Normal file
63
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/RdsLayer.cs
Normal file
@ -0,0 +1,63 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class RdsLayer
|
||||
{
|
||||
[JsonPropertyName("keyID")]
|
||||
public string KeyID { get; set; }
|
||||
|
||||
[JsonPropertyName("EpiTime")]
|
||||
public double EpiTime { get; set; }
|
||||
|
||||
[JsonPropertyName("DiluentAdjParam")]
|
||||
public int DiluentAdjParam { get; set; }
|
||||
|
||||
[JsonPropertyName("DopantFlow")]
|
||||
public double DopantFlow { get; set; }
|
||||
|
||||
[JsonPropertyName("HCLFlow")]
|
||||
public object HCLFlow { get; set; }
|
||||
|
||||
[JsonPropertyName("BakeTime")]
|
||||
public string BakeTime { get; set; }
|
||||
|
||||
[JsonPropertyName("EpiH2Flow")]
|
||||
public int EpiH2Flow { get; set; }
|
||||
|
||||
[JsonPropertyName("TCSFlow")]
|
||||
public int TCSFlow { get; set; }
|
||||
|
||||
[JsonPropertyName("DCSFlow")]
|
||||
public object DCSFlow { get; set; }
|
||||
|
||||
[JsonPropertyName("FOffset")]
|
||||
public int FOffset { get; set; }
|
||||
|
||||
[JsonPropertyName("SOffset")]
|
||||
public int SOffset { get; set; }
|
||||
|
||||
[JsonPropertyName("ROffset")]
|
||||
public int ROffset { get; set; }
|
||||
|
||||
[JsonPropertyName("Etch1")]
|
||||
public string Etch1 { get; set; }
|
||||
|
||||
[JsonPropertyName("Etch2")]
|
||||
public string Etch2 { get; set; }
|
||||
|
||||
[JsonPropertyName("Etch3")]
|
||||
public string Etch3 { get; set; }
|
||||
|
||||
[JsonPropertyName("AUX1")]
|
||||
public object AUX1 { get; set; }
|
||||
|
||||
[JsonPropertyName("AUX2")]
|
||||
public object AUX2 { get; set; }
|
||||
|
||||
[JsonPropertyName("ULTemp")]
|
||||
public int ULTemp { get; set; }
|
||||
|
||||
[JsonPropertyName("SuscEtch")]
|
||||
public object SuscEtch { get; set; }
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class RecipeLayer
|
||||
{
|
||||
[JsonPropertyName("layerNo")]
|
||||
public int LayerNo { get; set; }
|
||||
|
||||
[JsonPropertyName("layerId")]
|
||||
public string LayerId { get; set; }
|
||||
|
||||
[JsonPropertyName("layerType")]
|
||||
public string LayerType { get; set; }
|
||||
|
||||
[JsonPropertyName("layerRecipe")]
|
||||
public int LayerRecipe { get; set; }
|
||||
|
||||
[JsonPropertyName("layerDopant")]
|
||||
public string LayerDopant { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickMin")]
|
||||
public double LayerThickMin { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickTarget")]
|
||||
public double LayerThickTarget { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickMax")]
|
||||
public double LayerThickMax { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickUnits")]
|
||||
public string LayerThickUnits { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickAMin")]
|
||||
public object LayerThickAMin { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickATarget")]
|
||||
public object LayerThickATarget { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickAMaxes")]
|
||||
public object LayerThickAMaxes { get; set; }
|
||||
|
||||
[JsonPropertyName("layerThickAUnits")]
|
||||
public object LayerThickAUnits { get; set; }
|
||||
|
||||
[JsonPropertyName("layerResMin")]
|
||||
public double LayerResMin { get; set; }
|
||||
|
||||
[JsonPropertyName("layerResTarget")]
|
||||
public int LayerResTarget { get; set; }
|
||||
|
||||
[JsonPropertyName("layerResMax")]
|
||||
public double LayerResMax { get; set; }
|
||||
|
||||
[JsonPropertyName("layerResUnits")]
|
||||
public string LayerResUnits { get; set; }
|
||||
|
||||
[JsonPropertyName("layerSResMin")]
|
||||
public object LayerSResMin { get; set; }
|
||||
|
||||
[JsonPropertyName("layerSResTarget")]
|
||||
public object LayerSResTarget { get; set; }
|
||||
|
||||
[JsonPropertyName("layerSResMax")]
|
||||
public object LayerSResMax { get; set; }
|
||||
|
||||
[JsonPropertyName("layerSResUnits")]
|
||||
public object LayerSResUnits { get; set; }
|
||||
}
|
15
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Root.cs
Normal file
15
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Root.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class Root
|
||||
{
|
||||
[JsonPropertyName("rds")]
|
||||
public Rds Rds { get; set; }
|
||||
|
||||
[JsonPropertyName("_links")]
|
||||
public object Links { get; set; }
|
||||
|
||||
[JsonPropertyName("_class")]
|
||||
public string Class { get; set; }
|
||||
}
|
73
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Spec.cs
Normal file
73
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Spec.cs
Normal file
@ -0,0 +1,73 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class Spec
|
||||
{
|
||||
[JsonPropertyName("recipe")]
|
||||
public string Recipe { get; set; }
|
||||
|
||||
[JsonPropertyName("defect")]
|
||||
public int Defect { get; set; }
|
||||
|
||||
[JsonPropertyName("haze")]
|
||||
public int Haze { get; set; }
|
||||
|
||||
[JsonPropertyName("sampleQty")]
|
||||
public int SampleQty { get; set; }
|
||||
|
||||
[JsonPropertyName("tools")]
|
||||
public List<object> Tools { get; set; }
|
||||
|
||||
[JsonPropertyName("recipes")]
|
||||
public List<object> Recipes { get; set; }
|
||||
|
||||
[JsonPropertyName("microscopeReq")]
|
||||
public bool MicroscopeReq { get; set; }
|
||||
|
||||
[JsonPropertyName("brightlightReq")]
|
||||
public bool BrightlightReq { get; set; }
|
||||
|
||||
[JsonPropertyName("lpd")]
|
||||
public int Lpd { get; set; }
|
||||
|
||||
[JsonPropertyName("scratches")]
|
||||
public int Scratches { get; set; }
|
||||
|
||||
[JsonPropertyName("scratchLen")]
|
||||
public int ScratchLen { get; set; }
|
||||
|
||||
[JsonPropertyName("pits")]
|
||||
public int Pits { get; set; }
|
||||
|
||||
[JsonPropertyName("mounds")]
|
||||
public int Mounds { get; set; }
|
||||
|
||||
[JsonPropertyName("stackFaults")]
|
||||
public int StackFaults { get; set; }
|
||||
|
||||
[JsonPropertyName("spikes")]
|
||||
public int Spikes { get; set; }
|
||||
|
||||
[JsonPropertyName("spots")]
|
||||
public int Spots { get; set; }
|
||||
|
||||
[JsonPropertyName("fov")]
|
||||
public int Fov { get; set; }
|
||||
|
||||
[JsonPropertyName("blDefects")]
|
||||
public int BlDefects { get; set; }
|
||||
|
||||
[JsonPropertyName("bsideScratches")]
|
||||
public int BsideScratches { get; set; }
|
||||
|
||||
[JsonPropertyName("bsideScratchLen")]
|
||||
public int BsideScratchLen { get; set; }
|
||||
|
||||
[JsonPropertyName("bsideNodules")]
|
||||
public object BsideNodules { get; set; }
|
||||
|
||||
[JsonPropertyName("bsideSpikes")]
|
||||
public object BsideSpikes { get; set; }
|
||||
}
|
13
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/SurfScan.cs
Normal file
13
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/SurfScan.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class SurfScan
|
||||
{
|
||||
[JsonPropertyName("surfscanSigReq")]
|
||||
public bool SurfscanSigReq { get; set; }
|
||||
|
||||
[JsonPropertyName("surfscanRecipes")]
|
||||
public List<SurfscanRecipe> SurfscanRecipes { get; set; }
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class SurfScan2
|
||||
{
|
||||
[JsonPropertyName("specs")]
|
||||
public List<Spec> Specs { get; set; }
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class SurfscanRecipe
|
||||
{
|
||||
[JsonPropertyName("recipe")]
|
||||
public string Recipe { get; set; }
|
||||
|
||||
[JsonPropertyName("defects")]
|
||||
public int Defects { get; set; }
|
||||
|
||||
[JsonPropertyName("haze")]
|
||||
public int Haze { get; set; }
|
||||
|
||||
[JsonPropertyName("sampleSize")]
|
||||
public int SampleSize { get; set; }
|
||||
}
|
73
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Test.cs
Normal file
73
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/Test.cs
Normal file
@ -0,0 +1,73 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class Test
|
||||
{
|
||||
[JsonPropertyName("stage")]
|
||||
public string Stage { get; set; }
|
||||
|
||||
[JsonPropertyName("profile")]
|
||||
public string Profile { get; set; }
|
||||
|
||||
[JsonPropertyName("prop")]
|
||||
public string Prop { get; set; }
|
||||
|
||||
[JsonPropertyName("toolClass")]
|
||||
public string ToolClass { get; set; }
|
||||
|
||||
[JsonPropertyName("recipe")]
|
||||
public string Recipe { get; set; }
|
||||
|
||||
[JsonPropertyName("recipePattern")]
|
||||
public string RecipePattern { get; set; }
|
||||
|
||||
[JsonPropertyName("specMin")]
|
||||
public double SpecMin { get; set; }
|
||||
|
||||
[JsonPropertyName("specMax")]
|
||||
public double SpecMax { get; set; }
|
||||
|
||||
[JsonPropertyName("specSlot")]
|
||||
public object SpecSlot { get; set; }
|
||||
|
||||
[JsonPropertyName("testSlot")]
|
||||
public object TestSlot { get; set; }
|
||||
|
||||
[JsonPropertyName("testResult")]
|
||||
public List<double> TestResult { get; set; }
|
||||
|
||||
[JsonPropertyName("testSig")]
|
||||
public string TestSig { get; set; }
|
||||
|
||||
[JsonPropertyName("testSigDtm")]
|
||||
public string TestSigDtm { get; set; }
|
||||
|
||||
[JsonPropertyName("specStdDev")]
|
||||
public object SpecStdDev { get; set; }
|
||||
|
||||
[JsonPropertyName("testStdDev")]
|
||||
public object TestStdDev { get; set; }
|
||||
|
||||
[JsonPropertyName("specWfrQty")]
|
||||
public int SpecWfrQty { get; set; }
|
||||
|
||||
[JsonPropertyName("dataPoints")]
|
||||
public List<List<object>> DataPoints { get; set; }
|
||||
|
||||
[JsonPropertyName("testResultMin")]
|
||||
public List<object> TestResultMin { get; set; }
|
||||
|
||||
[JsonPropertyName("testResultMax")]
|
||||
public List<object> TestResultMax { get; set; }
|
||||
|
||||
[JsonPropertyName("testOutOfSpec")]
|
||||
public bool TestOutOfSpec { get; set; }
|
||||
|
||||
[JsonPropertyName("phaseMin")]
|
||||
public object PhaseMin { get; set; }
|
||||
|
||||
[JsonPropertyName("failReason")]
|
||||
public object FailReason { get; set; }
|
||||
}
|
13
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/WoMatQA.cs
Normal file
13
Adaptation/FileHandlers/MoveAllFiles/OpenInsight/WoMatQA.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
|
||||
|
||||
public class WoMatQA
|
||||
{
|
||||
[JsonPropertyName("keyId")]
|
||||
public string KeyId { get; set; }
|
||||
|
||||
[JsonPropertyName("tests")]
|
||||
public List<Test> Tests { get; set; }
|
||||
}
|
Reference in New Issue
Block a user