Skip to content
Snippets Groups Projects
Commit 3fa39633 authored by Lucio Zambon's avatar Lucio Zambon
Browse files

Update gof2d.js

parent 0c268f16
No related branches found
No related tags found
No related merge requests found
......@@ -3,31 +3,32 @@
// sr/feedback/profile_s->GetSrCorrNames
// sr/feedback/profile_s/OrbitHorFast
let gofFactorsHor, gofFactorsVer;
let gofSt, gofFps, gofMaxFps, gofDataTs, gPos;
let gofSt, gofFps, gofDataTs, gPos;
let gofMaxFps = 25;
function getParam(param, defaultValue) {
if (document.location.search.indexOf(param+'=')>-1) return document.location.search.split(param+'=')[1].split('&')[0];
return defaultValue;
}
if (document.location.search.indexOf('machine=esrf')>-1 || document.location.search.indexOf('machine=gof_esrf')>-1) {
gofFactorsHor = {"": 1, "position": 100000, 'beta': 0.2, 'eta': 100, 'mu': 0.2, 'sigma': 20000000000};
gofFactorsVer = {"": 1, "position": 1, 'beta': 0.1, 'eta': 100, 'mu': 0.2, 'sigma': 50000000000};
gofFactorsHor = {"": 1, "corr": 100000, 'beta': 0.2, 'eta': 100, 'mu': 0.2, 'sigma': 20000000000};
gofFactorsVer = {"": 1, "corr": 1, 'beta': 0.1, 'eta': 100, 'mu': 0.2, 'sigma': 50000000000};
}
else if (document.location.search.indexOf('machine=gof_soleil')>-1) {
gofFactorsHor = {"": 1, "position": 50000, 'beta': 0.2, 'eta': 50, 'mu': 0.2, 'sigma': 20000000000};
gofFactorsVer = {"": 1, "position": 10000, 'beta': 0.1, 'eta': 100, 'mu': 0.2, 'sigma': 50000000000};
gofFactorsHor = {"": 1, "corr": 50000, 'beta': 0.2, 'eta': 50, 'mu': 0.2, 'sigma': 20000000000};
gofFactorsVer = {"": 1, "corr": 10000, 'beta': 0.1, 'eta': 100, 'mu': 0.2, 'sigma': 50000000000};
}
else if (document.location.search.indexOf('machine=elettra2')>-1) {
gofFactorsHor = {"": 1, "position": 500000, 'beta': 0.2, 'eta': 50, 'mu': 0.2, 'sigma': 20000000000};
gofFactorsVer = {"": 1, "position": 500000, 'beta': 0.1, 'eta': 100, 'mu': 0.2, 'sigma': 50000000000};
gofFactorsHor = {"": 1, "corr": 500000, 'beta': 0.2, 'eta': 50, 'mu': 0.2, 'sigma': 20000000000};
gofFactorsVer = {"": 1, "corr": 500000, 'beta': 0.1, 'eta': 100, 'mu': 0.2, 'sigma': 50000000000};
}
else {
gofFactorsHor = {"": 1, "position": getParam('positionScaleH', 0.005), 'beta': 0.5, 'eta': 100, 'mu': 0.2, 'sigma': 5000000000000};
gofFactorsVer = {"": 1, "position": getParam('positionScaleV', 0.005), 'beta': 0.25, 'eta': 100, 'mu': 0.2, 'sigma': 5000000000000};
gofFactorsHor = {"": 1, "corr": getParam('positionScaleH', 0.005), 'beta': 0.5, 'eta': 100, 'mu': 0.2, 'sigma': 5000000000000};
gofFactorsVer = {"": 1, "corr": getParam('positionScaleV', 0.005), 'beta': 0.25, 'eta': 100, 'mu': 0.2, 'sigma': 5000000000000};
}
let gof = document.location.search.indexOf('gof=')>-1? document.location.search.split('gof=')[1].split('&')[0]: '';
const gofTimeout = document.location.search.indexOf('gofTimeout=')>-1? document.location.search.split('gofTimeout=')[1].split('&')[0]: 40;
const gofTimeout = document.location.search.indexOf('gofTimeout=')>-1? document.location.search.split('gofTimeout=')[1].split('&')[0]: 10;
const gofPeriod = document.location.search.indexOf('gofPeriod=')>-1? document.location.search.split('gofPeriod=')[1].split('&')[0]: 200;
const gofDisplayerPeriod = document.location.search.indexOf('gofDisplayerPeriod=')>-1? document.location.search.split('gofDisplayerPeriod=')[1].split('&')[0]: 200;
const gofDisplayerPeriod = document.location.search.indexOf('gofDisplayerPeriod=')>-1? document.location.search.split('gofDisplayerPeriod=')[1].split('&')[0]: 40;
const gofVisibility = gof==''? 'hidden': 'visible';
const gofScaleType = 'slider';
const gofSimfacilities = [];
......@@ -43,7 +44,7 @@
const gofScaleSteps = 10;
// let ruler = document.location.search.indexOf('ruler')>-1;
rulerInit();
main.addEventListener('mousemove', function(e) {getRulerPosition(main, e, 'sr');});
// main.addEventListener('mousemove', function(e) {getRulerposition(main, e, 'sr');});
if (ruler) {
main.style.cursor = 'crosshair';
}
......@@ -56,12 +57,12 @@
const action = param.split('_')[1];
if (action=='set') {
localStorage.setItem('reference'+gof+dir, gofBuffer[dir=='hor'? 0: 1]);
$("#sr_gofreference"+dir).attr('gofVisibility', "visible");
$("#sr_gofreference"+dir).attr('visibility', "visible");
}
if (action=='clear') {
localStorage.removeItem('reference'+gof+dir);
localStorage.removeItem('scale'+gof+dir);
$("#sr_gofreference"+dir).attr('gofVisibility', "hidden");
$("#sr_gofreference"+dir).attr('visibility', "hidden");
}
}
function elapseHor(step, up) {
......@@ -134,10 +135,6 @@
function fpsSet(v) {
gofMaxFps = v;
}
/*
$("#fps")[0].getBoundingClientRect();
jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; position: absolute; background-color: yellow; left: 1480px; top: 450px;', class: 'some-class some-other-class', title: 'now this div has a title!',}).appendTo('body');
*/
function gofMenu(lattice, facilities, params) {
console.log('gofMenu',lattice, facilities, params, gui);
$('#notice').hide();
......@@ -147,16 +144,19 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
// params.gof = false;
$('.gofhor').css('display', 'none');
$('.gofver').css('display', 'none');
params.gof = document.location.search.indexOf('gof')>-1 && document.location.search.indexOf('=gof')==-1? 'position': '';
params.gof = document.location.search.indexOf('gof')>-1 && document.location.search.indexOf('=gof')==-1? 'corr': '';
if (document.location.search.indexOf('gof=')>-1) params.gof = document.location.search.split('gof=')[1].split('&')[0];
const options = ['', 'position', 'beta', 'eta', 'mu', 'sigma'];
if (options.indexOf(params.gof)==-1) params.gof = 'position';
const options = ['', 'corr'];
if (options.indexOf(params.gof)==-1) params.gof = 'corr';
gui.add(params, 'gof', options).name('gof H <img id="h" src="red.svg" style="margin-bottom: -4px;">&nbsp;&nbsp;&nbsp;V <img id="v" src="green.svg" style="margin-bottom: -4px;"> ').onChange(function() {gofSwitch(compData, params);});
const maxVer = Math.pow(10, Math.floor(Math.log10(gofFactorVer/1000))+2);
const maxHor = Math.pow(10, Math.floor(Math.log10(gofFactorHor/1000))+2);
menuParams['fps'] = 5;
gofFpsMenu = gui.add(menuParams, 'fps', 0.1, 20, 0.5).onChange(function() {fpsSet(menuParams['fps']);}); // .title('fps (max)')
menuParams['fps'] = gofMaxFps;
gofFpsMenu = gui.add(menuParams, 'fps', 0.5, 25, 0.5).onChange(function() {fpsSet(menuParams['fps']);}); // .title('fps (max)')
guiconf(gui, 'fps');
gPos = $("#fps").children().eq(1).children()[0].getBoundingClientRect();
jQuery('<div>', {id: 'fpsr', style: 'z-index: 1000; min-width: 45px; min-height: 3px; position: absolute; background-color: yellow; left: '+(gPos.left+0)+'px; top: '+(gPos.top+gPos.height-3)+'px;', title: 'fps',}).appendTo('body');
// $('#fpsr').hide();
if (gofScaleType == 'slider') {
/*menuParams['ruler'] = ruler;
gui.add(menuParams, 'ruler').onChange(function() {rulerSwitch();});
......@@ -220,11 +220,8 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
Math.round(compData[facility].pos[i][1] + f*1.05*Math.cos(beta))
);
}
appendSvg("path", {id:facility+"_gofhor", class: "gofhor trajectory "+facility, gofVisibility:gofVisibility, name:"gofhor", fill: "none", "stroke-width":"150", "stroke":"red", "stroke-opacity":"0.6", d: dhor.join(' ')+(lattice[facility].sections[0].chamber?' Z':'')}, gof_clicked_hor, false, false, '.svg-pan-zoom_viewport');
// appendSvg("path", {id:facility+"_gofreferencehor", class: "gofhor trajectory "+facility, gofVisibility:gofVisibility, name:"gofreferencehor", fill: "none", "stroke-width":"150", "stroke":"darkred", "stroke-opacity":"0.9", d: dhor.join(' ')+(lattice[facility].sections[0].chamber?' Z':'')}, gof_clicked_hor, false, false, '.svg-pan-zoom_viewport');
appendSvg("path", {id:facility+"_gofver", class: "gofver trajectory "+facility, gofVisibility:gofVisibility, name:"gofver", fill: "none", "stroke-width":"150", "stroke":"limegreen", "stroke-opacity":"0.6", d: dver.join(' ')+(lattice[facility].sections[0].chamber?' Z':'')}, gof_clicked_ver, false, false, '.svg-pan-zoom_viewport');
// appendSvg("path", {id:facility+"_gofreferencever", class: "gofver trajectory "+facility, gofVisibility:gofVisibility, name:"gofreferencever", fill: "none", "stroke-width":"150", "stroke":"darkgreen", "stroke-opacity":"0.9", d: dver.join(' ')+(lattice[facility].sections[0].chamber?' Z':'')}, gof_clicked_ver, false, false, '.svg-pan-zoom_viewport');
// console.log("path", {id:facility+"_gofhor", name:"gofhor", d: dver.join(' ')+' Z'});
appendSvg("path", {id:facility+"_gofhor", class: "gofhor trajectory "+facility, visibility:gofVisibility, name:"gofhor", fill: "none", "stroke-width":"150", "stroke":"red", "stroke-opacity":"0.6", d: dhor.join(' ')+(lattice[facility].sections[0].chamber?' Z':'')}, gof_clicked_hor, false, false, '.svg-pan-zoom_viewport');
appendSvg("path", {id:facility+"_gofver", class: "gofver trajectory "+facility, visibility:gofVisibility, name:"gofver", fill: "none", "stroke-width":"150", "stroke":"limegreen", "stroke-opacity":"0.6", d: dver.join(' ')+(lattice[facility].sections[0].chamber?' Z':'')}, gof_clicked_ver, false, false, '.svg-pan-zoom_viewport');
}
}
rulerScale('');
......@@ -249,8 +246,6 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
}
function gofSwitch(gofData, params) {
gof = params.gof;
// $("#sr_gofreferencehor").attr('gofVisibility', "hidden");
// $("#sr_gofreferencever").attr('gofVisibility', "hidden");
gofScaleHor.$fill.style.width = "50%";
gofScaleVer.$fill.style.width = "50%";
if (gofData.reader !== false) {
......@@ -259,15 +254,14 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
gofData.reader = false;
if (params.gof=='') {
for (let facility in gofData) {
if (typeof $('#'+facility+"_gofhor").attr('gofVisibility') != 'undefined') {
$('#'+facility+"_gofhor").attr('gofVisibility', "hidden");
$('#'+facility+"_gofver").attr('gofVisibility', "hidden");
// $('#'+facility+"_gofreferencehor").attr('gofVisibility', "hidden");
// $('#'+facility+"_gofreferencever").attr('gofVisibility', "hidden");
if (typeof $('#'+facility+"_gofhor").attr('visibility') != 'undefined') {
$('#'+facility+"_gofhor").attr('visibility', "hidden");
$('#'+facility+"_gofver").attr('visibility', "hidden");
}
}
$('.gofgauge').hide();
$('#fps').hide();
$('#fpsr').hide();
$('#scaleh').hide();
$('#scalev').hide();
$('#ruler').hide();
......@@ -276,30 +270,28 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
$('#trajectoryWidth').hide();
$('#application').hide();
$('#applicationReference').hide();
gofData.reader.clearInterval();
gofData.reader.clearInterval();
gofMaxFps = 0;
}
else {
// $('#application').show();
// $('#applicationReference').show();
$('#fps').show();
$('#fpsr').show();
$('#scaleh').show();
$('#scalev').show();
$('#trajectoryWidth').show();
$('#ruler').show();
$('#notice').show();
gPos = $("#fps").children().eq(1).children()[0].getBoundingClientRect();
jQuery('<div>', {id: 'fpsr', style: 'z-index: 1000; min-width: 45px; min-height: 3px; position: absolute; background-color: yellow; left: '+(gPos.left+0)+'px; top: '+(gPos.top+gPos.height-3)+'px;', class: 'some-class some-other-class', title: 'now this div has a title!',}).appendTo('body');
for (let facility in gofData) {
if (typeof $('#'+facility+"_gofhor").attr('gofVisibility') != 'undefined') {
$('#'+facility+"_gofhor").attr('gofVisibility', "visible");
$('#'+facility+"_gofver").attr('gofVisibility', "visible");
if (typeof $('#'+facility+"_gofhor").attr('visibility') != 'undefined') {
$('#'+facility+"_gofhor").attr('visibility', "visible");
$('#'+facility+"_gofver").attr('visibility', "visible");
}
// console.log('#'+facility+"_gofhor", $('#'+facility+"_gofhor").attr('gofVisibility'), typeof gofData[facility]);
if (typeof gofData[facility] == 'undefined' || typeof gofData[facility].corrMap == 'undefined') continue;
gofData.oldIndex = facility;
gofRead(gofData, params);
}
/* */
displayer = setInterval(gofDisplay, gofDisplayerPeriod, params);
if (gofTimeout) {
setTimeout(gofRead, gofTimeout, gofData, params);
......@@ -307,7 +299,6 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
else {
gofData.reader = setInterval(gofRead, gofPeriod, gofData, params);
}
/* */
$('.gofhor').css('display', 'block');
$('.gofver').css('display', 'block');
gofFactorHor = localStorage.getItem('scale'+gof+'hor')!=null? localStorage.getItem('scale'+gof+'hor')-0: gofFactorsHor[menuParams.gof]*1000;
......@@ -337,6 +328,9 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
document.getElementById("vergauge").contentWindow.setVal(gofFactorsVer[params.gof]);
$('.gofgauge').show();
}
gPos = $("#fps").children().eq(1).children()[0].getBoundingClientRect();
$('#fpsr').css('left', gPos.left);
$('#fpsr').css('top', gPos.top+gPos.height-3);
}
}
function gofRender(facility, gb, gof) {
......@@ -392,7 +386,7 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
const gofOldSt = gofSt;
gofSt = new Date();
gofFps = 1000/(gofSt-gofOldSt);
$('#fpsr').css('min-width', gofFps/20*gPos.width);
if (gofFps<30) $('#fpsr').css('min-width', gofFps/20*gPos.width);
// console.log(1000/(gofSt-gofOldSt));
$('#lt').html(gofSt.getFullYear()+'-'+pad(gofSt.getMonth()+1, 2)+'-'+pad(gofSt.getDate(), 2)+' '+pad(gofSt.getHours(), 2)+':'+pad(gofSt.getMinutes(), 2)+':'+pad(gofSt.getSeconds(), 2));
fetch((conf.gofUrl+'&machine='+machine+'&param='+params.gof).replace('?&','?'), {cache: "no-store"})
......@@ -410,6 +404,12 @@ jQuery('<div>', { id: 'id2', style: 'min-width: 45px; min-height: 3px; pos
const gofMinPeriod = 1000/gofMaxFps;
const elapsed = new Date() - gofSt;
const gp = gofMinPeriod-elapsed > gofTimeout? gofMinPeriod-elapsed: gofTimeout;
setTimeout(gofRead, gp, gofData, params);
if (params.gof!='') setTimeout(gofRead, gp, gofData, params);
})
.catch((err) => {
const gofMinPeriod = 1000/gofMaxFps;
const elapsed = new Date() - gofSt;
const gp = gofMinPeriod-elapsed > gofTimeout? gofMinPeriod-elapsed: gofTimeout;
if (params.gof!='') setTimeout(gofRead, gp, gofData, params);
});
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment