Hardcode Bio-Rad in OI output
UniqueId replacement for attachments Write input PDSF in output after EOF GetPropertyValue for MoveMatchingFiles ProcessDataStandardFormat over Tuple MoveMatchingFiles to use ProcessDataStandardFormatMapping
This commit is contained in:
@ -59,7 +59,7 @@ public class BIORAD2
|
||||
NonThrowTryCatch();
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
#if (!DEBUG)
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
|
File diff suppressed because it is too large
Load Diff
258
Adaptation/_Tests/Static/bio-rad.js
Normal file
258
Adaptation/_Tests/Static/bio-rad.js
Normal file
@ -0,0 +1,258 @@
|
||||
"use strict";
|
||||
|
||||
// getValue($('gv.thicknessPoints', ''), $('dcp.BIORAD2/csv/Index', '0'));
|
||||
|
||||
function getCollectionParseFloat(collection) {
|
||||
let result = [];
|
||||
let value;
|
||||
for (let i = 0; i < collection.length; i++) {
|
||||
value = parseFloat(collection[i]);
|
||||
result.push(value);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getSum(collection) {
|
||||
let result = 0;
|
||||
if (!collection || collection.length === 0) {
|
||||
result = 0;
|
||||
}
|
||||
else {
|
||||
for (let i = 0; i < collection.length; i++) {
|
||||
result += collection[i];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getAverage(collection) {
|
||||
let result = null;
|
||||
if (collection == null || collection.length === 0)
|
||||
result = 0;
|
||||
else {
|
||||
let sum = getSum(collection);
|
||||
result = sum / collection.length;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getValue39(thicknessPoints, index) {
|
||||
let result = null;
|
||||
if (index === 13) {
|
||||
if (thicknessPoints != undefined && thicknessPoints.length > 1) {
|
||||
let collection = thicknessPoints[0] === '|' ? thicknessPoints.substring(1).split('|') : thicknessPoints.split('|');
|
||||
let collectionParseFloat = getCollectionParseFloat(collection);
|
||||
let thicknessFourteen3mmEdgeMean = getAverage([[collectionParseFloat[10], collectionParseFloat[11], collectionParseFloat[12], collectionParseFloat[13]]]);
|
||||
let thicknessFourteenMeanFrom = getAverage([[collectionParseFloat[1], collectionParseFloat[2], collectionParseFloat[6], collectionParseFloat[7]]]);
|
||||
result = (thicknessFourteen3mmEdgeMean - thicknessFourteenMeanFrom) / thicknessFourteenMeanFrom * 100;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getVariance(collection) {
|
||||
let result = null;
|
||||
if (collection == null || collection.length === 0)
|
||||
result = null;
|
||||
else {
|
||||
let variance = 0;
|
||||
let t = collection[0];
|
||||
for (let i = 1; i < collection.length; i++) {
|
||||
t += collection[i];
|
||||
const diff = ((i + 1) * collection[i]) - t;
|
||||
variance += diff * diff / ((i + 1.0) * i);
|
||||
}
|
||||
result = variance / (collection.length - 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// $('gv.thicknessPoints', '') + '|' + $('dcp.BIORAD2/csv/Thickness', '')
|
||||
// $('gv.thicknessPoints', '') + '|' + $('dcp.BIORAD3/csv/Thickness', '')
|
||||
// $('gv.thicknessPoints', '') + '|' + $('dcp.BIORAD4/csv/Thickness', '')
|
||||
// $('gv.thicknessPoints', '') + '|' + $('dcp.BIORAD5/b-csv/Thickness', '')
|
||||
|
||||
// \\mesfs.infineon.com\EC_Characterization_Si\Archive\BIORAD2\2025_Week_08\2025-02-20\64-659712-4626_2025-02-20_11;50_AM_5144331401\638756490128318288
|
||||
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13
|
||||
// 1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
||||
const thicknessPoints = getCollectionParseFloat('|4.022|3.952|3.936|3.971|3.954|3.976|3.949|3.906|3.967|3.995|3.997|3.932|3.766|3.890'.substring(1).split('|'));
|
||||
const thicknessTenPoints = thicknessPoints.slice(0, 10);
|
||||
const thicknessFourteenCriticalPointsAverage = getAverage(thicknessTenPoints); // 15 // *3.962799999999999
|
||||
const thicknessFourteenCriticalPointsStdDev = Math.sqrt(getVariance(thicknessTenPoints)); // 16 // *0.0318496467798311
|
||||
const thicknessFourteenCenterMean = thicknessPoints[4]; // 17 // 3.954
|
||||
const thicknessFourteenMeanFrom = getAverage([thicknessPoints[1], thicknessPoints[2], thicknessPoints[6], thicknessPoints[7]]); // 18 // *3.954
|
||||
const thicknessFourteen5mmEdgeMean = getAverage([thicknessPoints[0], thicknessPoints[9]]); // 19 // *4.0085
|
||||
const thicknessFourteen3mmEdgeMean = getAverage([thicknessPoints[10], thicknessPoints[11], thicknessPoints[12], thicknessPoints[13]]); // 20 // *3.89625
|
||||
const thicknessFourteen5mmEdgePercent = (thicknessFourteen5mmEdgeMean - thicknessFourteenMeanFrom) / thicknessFourteenMeanFrom * 100; // 21 // *1.848440576764267
|
||||
const thicknessFourteen3mmEdgePercent = (thicknessFourteen3mmEdgeMean - thicknessFourteenMeanFrom) / thicknessFourteenMeanFrom * 100; // 22 // *-1.0036206567998442
|
||||
console.log(thicknessFourteenCriticalPointsAverage);
|
||||
|
||||
// getValue($('dcp.BIORAD2/csv/Batch', ''), $('dcp.BIORAD2/csv/Wafer', ''));
|
||||
|
||||
function getSlot92(wafer) {
|
||||
let result = null;
|
||||
if (wafer.length !== 1 && wafer.length !== 2)
|
||||
result = null;
|
||||
else {
|
||||
let slot = parseInt(wafer);
|
||||
if (slot < 1 || slot > 27)
|
||||
result = null;
|
||||
else
|
||||
result = slot < 10 ? '0' + slot : slot;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getBatch(batch, jobId, wafer) {
|
||||
let result = null;
|
||||
const slot = getSlot92(wafer);
|
||||
result = slot == null ? jobId : batch;
|
||||
return result;
|
||||
}
|
||||
|
||||
function getWafer(wafer) {
|
||||
let result = null;
|
||||
const slot = getSlot92(wafer);
|
||||
result = slot == null ? wafer : slot;
|
||||
return result;
|
||||
}
|
||||
|
||||
function getValue120(batch, wafer) {
|
||||
let result = null;
|
||||
const slot = getSlot92(wafer);
|
||||
const value = slot == null ? wafer : batch;
|
||||
result = value.replace(/[\{\}\\\/\:\*\?\"\<\>\|]/g, '_');
|
||||
return result;
|
||||
}
|
||||
|
||||
const values128 = [
|
||||
{ wafer: '11', jobId: 'BIORAD2', batch: 'O172068.1.60', waferCheck: '11', batchCheck: 'O172068.1.60', mid: 'O172068.1.60' },
|
||||
{ wafer: '27-588493-5008', jobId: 'BIORAD2', batch: 'BIORAD#2', waferCheck: '27-588493-5008', batchCheck: 'BIORAD2', mid: '27-588493-5008' },
|
||||
{ wafer: '27-588493-5"008', jobId: 'BIORAD2', batch: 'BIORAD#2', waferCheck: '27-588493-5008', batchCheck: 'BIORAD2', mid: '27-588493-5_008' },
|
||||
];
|
||||
|
||||
const wafer = "11";
|
||||
const jobId = "BIORAD2";
|
||||
const batch = "O172068.1.60";
|
||||
const waferCheck = getWafer(wafer);
|
||||
const batchCheck = getBatch(batch, jobId, wafer);
|
||||
const mid = getValue120(batch, wafer);
|
||||
console.log(mid);
|
||||
|
||||
values128.forEach(element => {
|
||||
let mid = getValue120(element.batch, element.wafer);
|
||||
if (mid != element.mid)
|
||||
console.error("MID doesn't match!");
|
||||
else
|
||||
console.info('Match');
|
||||
});
|
||||
|
||||
// '{"Area": "' +
|
||||
// 'Si' +
|
||||
// '", "EquipmentType": "' +
|
||||
// 'MET08THFTIRQS408M' +
|
||||
// '", "MesEntity": "' +
|
||||
// $('dcp.BIORAD2/csv/MesEntity', '') +
|
||||
// '", "Sequence": "' +
|
||||
// $('dcp.BIORAD2/csv/Sequence', '') +
|
||||
// '", "MID": "' +
|
||||
// getValue($('dcp.BIORAD2/csv/Batch', ''), $('dcp.BIORAD2/csv/Wafer', '')) +
|
||||
// '", "Recipe": "' +
|
||||
// $('dcp.BIORAD2/csv/Recipe', '').split('"')[0].split('\\')[0] +
|
||||
// '"}';
|
||||
|
||||
function getSlot164(wafer) {
|
||||
let result = null;
|
||||
if (wafer.length !== 1 && wafer.length !== 2)
|
||||
result = null;
|
||||
else {
|
||||
let slot = parseInt(wafer);
|
||||
if (slot < 1 || slot > 27)
|
||||
result = null;
|
||||
else
|
||||
result = slot < 10 ? '0' + slot : slot;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getValue178(batch, wafer) {
|
||||
let result = null;
|
||||
const slot = getSlot164(wafer);
|
||||
const value = slot == null ? wafer : batch;
|
||||
result = value.replace(/[\{\}\\\/\:\*\?\"\<\>\|]/g, '_');
|
||||
return result;
|
||||
}
|
||||
|
||||
// getValue(self, $('dcp.BIORAD2/csv/Wafer', ''), getContextData('2', 'cds.MID', ''));
|
||||
|
||||
function getSlot188(wafer) {
|
||||
let result = null;
|
||||
if (wafer.length !== 1 && wafer.length !== 2)
|
||||
result = null;
|
||||
else {
|
||||
let slot = parseInt(wafer);
|
||||
if (slot < 1 || slot > 27)
|
||||
result = null;
|
||||
else
|
||||
result = slot < 10 ? '0' + slot : slot;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getValue202(batch, wafer, mid) {
|
||||
let result = null;
|
||||
const slot = getSlot188(wafer);
|
||||
result = slot == null ? batch : mid;
|
||||
return result;
|
||||
}
|
||||
|
||||
const values210 = [
|
||||
{ wafer: '11', jobId: 'BIORAD2', batch: 'O172068.1.60', mid: '*O172068.1.60', result: '*O172068.1.60' },
|
||||
{ wafer: '27-588493-5008', jobId: 'BIORAD2', batch: 'BIORAD#2', mid: '*588493', result: 'BIORAD#2' },
|
||||
{ wafer: '27-588493-5"008', jobId: 'BIORAD2', batch: 'BIORAD#2', mid: '*588493', result: 'BIORAD#2' },
|
||||
];
|
||||
|
||||
values210.forEach(element => {
|
||||
let result = getValue202(element.batch, element.wafer, element.mid);
|
||||
if (result != element.result)
|
||||
console.error("result doesn't match!");
|
||||
else
|
||||
console.info('Match');
|
||||
});
|
||||
|
||||
// getValue(self, getContextData('2', 'cds.MID', ''));
|
||||
|
||||
function getSlot(wafer) {
|
||||
let result = null;
|
||||
if (wafer.length !== 1 && wafer.length !== 2)
|
||||
result = null;
|
||||
else {
|
||||
let slot = parseInt(wafer);
|
||||
if (slot < 1 || slot > 27)
|
||||
result = null;
|
||||
else
|
||||
result = slot < 10 ? '0' + slot : slot;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getValue(wafer, mid) {
|
||||
let result = null;
|
||||
const slot = getSlot(wafer);
|
||||
result = slot == null ? mid : wafer;
|
||||
return result;
|
||||
}
|
||||
|
||||
const values246 = [
|
||||
{ wafer: '11', jobId: 'BIORAD2', batch: 'O172068.1.60', mid: '*O172068.1.60', result: '11' },
|
||||
{ wafer: '27-588493-5008', jobId: 'BIORAD2', batch: 'BIORAD#2', mid: '*588493', result: '*588493' },
|
||||
{ wafer: '27-588493-5"008', jobId: 'BIORAD2', batch: 'BIORAD#2', mid: '*588493', result: '*588493' },
|
||||
];
|
||||
|
||||
values246.forEach(element => {
|
||||
let result = getValue(element.wafer, element.mid);
|
||||
if (result != element.result)
|
||||
console.error("result doesn't match!");
|
||||
else
|
||||
console.info('Match');
|
||||
});
|
Reference in New Issue
Block a user