This commit is contained in:
2025-02-15 10:03:30 -07:00
parent b771761936
commit a156ff8dcb
5 changed files with 547 additions and 1 deletions

186
Scripts/descriptor.js Normal file
View File

@ -0,0 +1,186 @@
"use strict";
const twoAlphaPattern = /^[a-zA-z]{2,3}/;
const processOnlyB = /^[a-zA-z][0-9]{2,4}$/;
// const reactorNumberPattern = /^[0-9]{2}--/;
// const id = /[-]?([QP][0-9]{4,}|[0-9]{5,})[-]?/;
const normal = /^[0-9]{2}[.][0-9]{1}[.]?[0-9]{0,1}/;
const fileSystemSafe = /[\\,\/,\:,\*,\?,\"",\<,\>,\|]/;
const values = [
{ text: '', rds: '', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: '' },
{ text: '12-123456-1234', rds: '123456', psn: '1234', reactor: '12', layer: '', zone: '', employee: '', lot: '' },
{ text: '12-1234567-1234', rds: '1234567', psn: '1234', reactor: '12', layer: '', zone: '', employee: '', lot: '' },
{ text: '12-12345678-1234', rds: '12345678', psn: '1234', reactor: '12', layer: '', zone: '', employee: '', lot: '' },
{ text: '123456', rds: '123456', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: '' },
{ text: '1T123456', rds: '123456', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: '' },
{ text: 'MP', rds: '', psn: '', reactor: '', layer: '', zone: '', employee: 'MP', lot: '' },
{ text: '12-123456-1234.2-1', rds: '123456', psn: '1234', reactor: '12', layer: '2', zone: '1', employee: '', lot: '' },
{ text: '12-1234567-1234.2-1', rds: '1234567', psn: '1234', reactor: '12', layer: '2', zone: '1', employee: '', lot: '' },
{ text: '12-12345678-1234.2-1', rds: '12345678', psn: '1234', reactor: '12', layer: '2', zone: '1', employee: '', lot: '' },
{ text: '12-123456-1234.02-1', rds: '123456', psn: '1234', reactor: '12', layer: '2', zone: '1', employee: '', lot: '' },
{ text: '12-1234567-1234.02-1', rds: '1234567', psn: '1234', reactor: '12', layer: '2', zone: '1', employee: '', lot: '' },
{ text: '12-12345678-1234.02-1', rds: '12345678', psn: '1234', reactor: '12', layer: '2', zone: '1', employee: '', lot: '' },
{ text: '20', rds: '', psn: '', reactor: '20', layer: '', zone: '', employee: '', lot: '' },
{ text: '20.2', rds: '', psn: '', reactor: '20', layer: '2', zone: '', employee: '', lot: '' },
{ text: '20.2.1', rds: '', psn: '', reactor: '20', layer: '2', zone: '1', employee: '', lot: '' },
{ text: '20.1.1', rds: '', psn: '', reactor: '20', layer: '1', zone: '1', employee: '', lot: '' },
{ text: 'P2-LOW-RR', rds: '', psn: 'RR', reactor: 'P2', layer: '', zone: '', employee: '', lot: '' },
{ text: 'i171308.1.51', rds: 'i171308.1.51', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: '' },
{ text: 'o171308.1.51', rds: 'o171308.1.51', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: '' },
{ text: 'O171308.1.51', rds: 'O171308.1.51', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: '' },
{ text: '171308.1.51', rds: '171308.1.51', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: '' },
{ text: '75-QP1414-SPLIT4', rds: '', psn: 'SPLIT4', reactor: '75', layer: '', zone: '', employee: '', lot: '' },
{ text: 'B48', rds: '', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: 'B48' },
{ text: 'B48', rds: '', psn: '', reactor: '', layer: '', zone: '', employee: '', lot: 'B48' },
];
function tryParseInt(str, defaultValue) {
const parsedValue = parseInt(str);
return isNaN(parsedValue) ? defaultValue : parsedValue;
}
function getReactorAndRDS(defaultReactor, defaultRDS, text, formattedText, segments) {
let result = {};
let rds;
let reactor;
let rdsValue;
if (text == null || text.length === 0 || segments.length === 0 || formattedText == null || formattedText.length === 0)
reactor = defaultReactor;
else
reactor = segments[0];
if (segments.length <= 1 || !tryParseInt(segments[1], false) || rdsValue < 99)
rds = defaultRDS;
else
rds = segments[1];
if (reactor.length > 3) {
rds = reactor;
reactor = defaultReactor;
}
result = { reactor: reactor, rds: rds };
return result;
}
function getLayerAndPSN(defaultLayer, defaultPSN, segments) {
let result = {};
let psn;
let layer;
if (segments.length <= 2) {
psn = defaultPSN;
layer = defaultLayer;
}
else {
let segmentsB = segments[2].split('.');
psn = segmentsB[0];
if (segmentsB.length <= 1)
layer = defaultLayer;
else {
layer = segmentsB[1];
if (layer.length > 1 && layer[0] === '0')
layer = layer.substring(1);
}
}
result = { layer: layer, psn: psn };
return result;
}
function getZone(segments) {
let result = '';
if (segments.length <= 3)
result = '';
else {
result = segments[3];
if (result.length > 1 && result[0] === '0')
result = result.substring(1);
}
return result;
}
function getValue(text) {
let result = {};
let lot = '';
let psn = '';
let rds = '';
let zone = '';
let layer = '';
let reactor = '';
let employee = '';
let defaultPSN = '';
let defaultRDS = '';
let defaultZone = '';
let defaultLayer = '';
let defaultReactor = '';
let defaultEmployee = '';
if (text.match(processOnlyB)) {
lot = text.toUpperCase();
psn = defaultPSN;
rds = defaultRDS;
zone = defaultZone;
layer = defaultLayer;
reactor = defaultReactor;
employee = defaultEmployee;
}
else if (text == null || text.length === 0 || (text.length == 2 && text.match(twoAlphaPattern))) {
lot = text;
employee = lot;
psn = defaultPSN;
rds = defaultRDS;
zone = defaultZone;
layer = defaultLayer;
reactor = defaultReactor;
}
else if (text.match(normal)) {
let segments = text.split('.');
lot = text;
psn = defaultPSN;
rds = defaultRDS;
layer = segments[1];
reactor = segments[0];
employee = defaultEmployee;
if (segments.length <= 2)
zone = defaultZone;
else
zone = segments[2];
}
else {
// Remove illegal characters \/:*?"<>| found in the Lot.
lot = text.replace(fileSystemSafe, "_").split('\r')[0].split('\n')[0];
if (lot.length > 2 && lot[0] == '1' && (lot[1] == 'T' || lot[1] == 't'))
lot = lot.substring(2);
let segments = lot.split('-');
// let hasRDS = lot.match(id);
let reactorAndRDS = getReactorAndRDS(defaultReactor, defaultRDS, text, lot, segments);
reactor = reactorAndRDS.reactor;
rds = reactorAndRDS.rds;
let layerAndPSN = getLayerAndPSN(defaultLayer, defaultPSN, segments);
layer = layerAndPSN.layer;
psn = layerAndPSN.psn;
zone = getZone(segments);
if (segments.length <= 4)
employee = defaultEmployee;
else
employee = segments[4];
}
result = { rds: rds, psn: psn, reactor: reactor, layer: layer, zone: zone, employee: employee, lot: lot };
return result;
};
values.forEach(element => {
let value = getValue(element.text);
if (value.rds !== element.rds)
console.error("RDS doesn't match!");
else if (value.psn !== element.psn)
console.error("PSN doesn't match!");
else if (value.reactor !== element.reactor)
console.error("Reactor doesn't match!");
else if (value.layer !== element.layer)
console.error("Layer doesn't match!");
else if (value.zone !== element.zone)
console.error("Zone doesn't match!");
else if (value.employee !== element.employee)
console.error("Employee doesn't match!");
else if (value.lot !== element.lot)
console.error("Lot doesn't match!");
else
console.info('Match');
});

130
Scripts/hgcv.js Normal file
View File

@ -0,0 +1,130 @@
"use strict";
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 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;
}
function getNineEdgeMeanDelta(edge4mmRhoPoints, edge10mmRhoPoints) {
let result;
const nine4mmEdgeSum = getSum(edge4mmRhoPoints);
const nine10mmEdgeSum = getSum(edge10mmRhoPoints);
result = (nine4mmEdgeSum - nine10mmEdgeSum) / nine10mmEdgeSum * 100;
return result;
}
function getMax(collection) {
let result = collection[0];
for (let i = 1; i < collection.length; i++) {
if (collection[i] > result) {
result = collection[i];
}
}
return result;
}
function getMin(collection) {
let result = collection[0];
for (let i = 1; i < collection.length; i++) {
if (collection[i] < result) {
result = collection[i];
}
}
return result;
}
function getNineResRangePercent(criticalRhoPoints) {
let result;
const nineCriticalPointsAverage = getAverage(criticalRhoPoints);
// result = (Math.max(...criticalRhoPoints) - Math.min(...criticalRhoPoints)) / nineCriticalPointsAverage * 100;
// let max = criticalRhoPoints.reduce((a, b) => Math.max(a, b));
// let min = criticalRhoPoints.reduce((a, b) => Math.min(a, b));
// result = (max - min) / nineCriticalPointsAverage * 100;
// let max = criticalRhoPoints.sort((a, b) => b - a);
// let min = criticalRhoPoints.sort((a, b) => a - b);
// result = (max[0] - min[0]) / nineCriticalPointsAverage * 100;
let max = getMax(criticalRhoPoints);
let min = getMin(criticalRhoPoints);
result = (max - min) / nineCriticalPointsAverage * 100;
return result;
}
function getValue(allRhoAvg, index) {
let result = null;
if (index === 8) {
if (allRhoAvg != undefined && allRhoAvg.length > 1) {
let collection = allRhoAvg[0] === '|' ? allRhoAvg.substring(1).split('|') : allRhoAvg.split('|');
let collectionParseFloat = getCollectionParseFloat(collection);
result = average(collectionParseFloat);
}
}
return result;
}
// 0 1 2 3 4 5 6 7 8
// 1 2 3 4 5 6 7 8 9
const allRhoAvg = getCollectionParseFloat('|2.648|3.076|2.877|2.747|2.821|2.765|2.669|2.814|2.876'.substring(1).split('|'));
const edge4mmRhoPoints = getCollectionParseFloat('|2.877|2.747|2.669|2.814'.substring(1).split('|'));
const edge10mmRhoPoints = getCollectionParseFloat('|3.076|2.821|2.765|2.876'.substring(1).split('|'));
const criticalRhoPoints = getCollectionParseFloat('|2.648|3.076|2.821|2.765|2.876'.substring(1).split('|'));
// 0 1 2 3 4 5 6 7 8
// 1 2 3 4 5 6 7 8 9
const allPhase = getCollectionParseFloat('|88.874|88.999|89.085|89.029|89.018|89.007|89.049|89.024|89.007'.substring(1).split('|'));
const criticalPhasePoints = getCollectionParseFloat('|88.874|88.999|89.018|89.007|89.007'.substring(1).split('|'));
const nineMean = getAverage(allRhoAvg);
const nine4mmEdgeMean = getAverage(edge4mmRhoPoints);
const nine10mmEdgeMean = getAverage(edge10mmRhoPoints);
const nineCriticalPointsAverage = getAverage(criticalRhoPoints);
const nineResRangePercent = getNineResRangePercent(criticalRhoPoints);
const nineCriticalPointsStdDev = Math.sqrt(getVariance(criticalRhoPoints));
const nineCriticalPointsPhaseAngleAverage = getAverage(criticalPhasePoints);
const nineEdgeMeanDelta = getNineEdgeMeanDelta(edge4mmRhoPoints, edge10mmRhoPoints);
console.log(nineCriticalPointsStdDev);

50
Scripts/immich.js Normal file
View File

@ -0,0 +1,50 @@
const axios = require('axios');
const url = 'https://immich.bchs.duckdns.org';
let config = {
method: 'get',
maxBodyLength: Infinity,
// url: url + '/api/users',
url: url + '/api/assets/f89d0de1-2762-4f9e-b60e-c7eeec93c4e9',
headers: {
'Accept': 'application/json',
'x-api-key': 'Pm2CbhJvgStEPAFKRVclW88qrOAy79OeIEcfj3k'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
// let data = JSON.stringify({
// "avatar": {
// "color": "green"
// }
// });
// let configB = {
// method: 'put',
// maxBodyLength: Infinity,
// url: url + '/api/users/me/preferences',
// headers: {
// 'Content-Type': 'application/json',
// 'Accept': 'application/json',
// 'x-api-key': 'Pm2CbhJvgStEPAFKRVclW88qrOAy79OeIEcfj3k'
// },
// data: data
// };
// axios.request(configB)
// .then((response) => {
// console.log(JSON.stringify(response.data));
// })
// .catch((error) => {
// console.log(error);
// });