From ccba3b8dba10cca17d2b287d918f8c13aca75ef9 Mon Sep 17 00:00:00 2001 From: "phares@iscn5cg20977xq" Date: Mon, 13 Oct 2025 17:43:00 -0700 Subject: [PATCH] Add IndexOf and AttemptCounter properties to WSRequest and Description classes; implement getValue function in recipes-and-patterns.js --- .../OpenInsightMetrologyViewer/WSRequest.cs | 4 ++++ Adaptation/FileHandlers/Stratus/Description.cs | 6 ++++++ Adaptation/Infineon/Monitoring/MonA/MonIn.cs | 12 ++++++------ Adaptation/Shared/FileRead.cs | 1 - Adaptation/Shared/ProcessDataStandardFormat.cs | 4 ++-- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs index 8a2d491..06a30b9 100644 --- a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs +++ b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs @@ -13,11 +13,13 @@ public class WSRequest { public int Id { get; set; } + public string AttemptCounter { get; set; } public string Batch { get; set; } public string Cassette { get; set; } public string CellName { get; set; } public string Date { get; set; } public string FilePath { get; set; } + public string IndexOf { get; set; } public string MeanThickness { get; set; } public string Operator { get; set; } public string PSN { get; set; } @@ -43,9 +45,11 @@ public class WSRequest Details = new List(); //Header { + AttemptCounter = x.AttemptCounter; Batch = x.Lot; // different name Cassette = x.Cassette; Date = x.Date; + IndexOf = x.IndexOf; MeanThickness = x.MeanThickness; Operator = x.Employee; // different name PSN = x.PSN; diff --git a/Adaptation/FileHandlers/Stratus/Description.cs b/Adaptation/FileHandlers/Stratus/Description.cs index 1ebbd8c..8ebed80 100644 --- a/Adaptation/FileHandlers/Stratus/Description.cs +++ b/Adaptation/FileHandlers/Stratus/Description.cs @@ -30,6 +30,8 @@ public class Description : IDescription, Shared.Properties.IDescription [JsonPropertyName("PSN")] public string PSN { get; set; } [JsonPropertyName("Reactor")] public string Reactor { get; set; } [JsonPropertyName("Recipe")] public string Recipe { get; set; } + [JsonPropertyName("IndexOf")] public string IndexOf { get; set; } + [JsonPropertyName("AttemptCounter")] public string AttemptCounter { get; set; } // [JsonPropertyName("Cassette")] public string Cassette { get; set; } [JsonPropertyName("GradeStdDev")] public string GradeStdDev { get; set; } @@ -203,6 +205,8 @@ public class Description : IDescription, Shared.Properties.IDescription PSN = processData.PSN, Reactor = processData.Reactor, Recipe = detail.Recipe, + IndexOf = nameof(IndexOf), + AttemptCounter = nameof(AttemptCounter), // Cassette = processData.Cassette, GradeStdDev = processData.StdDev, @@ -262,6 +266,8 @@ public class Description : IDescription, Shared.Properties.IDescription PSN = nameof(PSN), Reactor = nameof(Reactor), Recipe = nameof(Recipe), + IndexOf = nameof(IndexOf), + AttemptCounter = nameof(AttemptCounter), // Cassette = nameof(Cassette), GradeStdDev = nameof(GradeStdDev), diff --git a/Adaptation/Infineon/Monitoring/MonA/MonIn.cs b/Adaptation/Infineon/Monitoring/MonA/MonIn.cs index 7a8a711..fcd16ca 100644 --- a/Adaptation/Infineon/Monitoring/MonA/MonIn.cs +++ b/Adaptation/Infineon/Monitoring/MonA/MonIn.cs @@ -226,9 +226,9 @@ public class MonIn : IMonIn, IDisposable { StringBuilder stringBuilder = new(); 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 - _ = 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(); } @@ -247,14 +247,14 @@ public class MonIn : IMonIn, IDisposable if (string.IsNullOrEmpty(subresource)) { 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 - _ = 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) - _ = 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 - _ = 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(); } diff --git a/Adaptation/Shared/FileRead.cs b/Adaptation/Shared/FileRead.cs index 773eeae..aaa6958 100644 --- a/Adaptation/Shared/FileRead.cs +++ b/Adaptation/Shared/FileRead.cs @@ -9,7 +9,6 @@ using System.IO; using System.Linq; using System.Text; using System.Text.Json; -using System.Text.Json.Serialization; using System.Threading; namespace Adaptation.Shared; diff --git a/Adaptation/Shared/ProcessDataStandardFormat.cs b/Adaptation/Shared/ProcessDataStandardFormat.cs index 9d48a31..bc3c424 100644 --- a/Adaptation/Shared/ProcessDataStandardFormat.cs +++ b/Adaptation/Shared/ProcessDataStandardFormat.cs @@ -187,7 +187,7 @@ internal class ProcessDataStandardFormat 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); if (logistics.Count == 0) sequence = null; @@ -235,7 +235,7 @@ internal class ProcessDataStandardFormat const int columnsLine = 6; FileInfo fileInfo = new(reportFullPath); 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(); if (jsonElements is null || jsonProperties is null || jsonProperties.Length != processDataStandardFormatMapping.NewColumnNames.Count) result = processDataStandardFormat;