{ "version": 1, "header_image": "", "allow_edit": false, "plugins": [], "panes": [ { "width": 1, "row": { "1": 1, "2": 1, "3": 1, "4": 1 }, "col": { "1": 1, "2": 1, "3": 1, "4": 1 }, "col_width": 4, "widgets": [ { "type": "html", "settings": { "html": "datasources[\"Clock\"][\"numeric_value\"]; // trick to trigger the update\nvar cols = document.getElementsByClassName('gs_w')[0].getAttribute('data-sizex');\ndocument.getElementsByClassName('gs_w')[0].firstElementChild.firstElementChild.innerHTML = \"\";\nif (cols == 4){\n text = \"<div style=\\\"position: static; margin-top: -15px;\\\"><img src=\\\"../img/ess-logo.svg\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\"><div class=\\\"tw-value\\\" style=\\\"font-size: 56px; color:#ffffff !important; position: relative; bottom: 35px; left: 200px;\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\">Beam Instrumentation</div></img></div>\";\n}\nif (cols == 3){\n text = \"<div style=\\\"position: static; margin-top: -15px;\\\"><img src=\\\"../img/ess-logo.svg\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\"><div class=\\\"tw-value\\\" style=\\\"font-size: 46px; color:#ffffff !important; position: relative; bottom: 45px; left: 100px;\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\">Beam Instrumentation</div></img></div>\";\n}\n\nif (cols == 2){\n text = \"<div style=\\\"position: static; margin-top: -15px;\\\"><img src=\\\"../img/ess-logo.svg\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\"><div class=\\\"tw-value\\\" style=\\\"font-size: 30px; color:#ffffff !important; position: relative; bottom: 55px; left: 30px;\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\">Beam Instrumentation</div></img></div>\";\n}\nif (cols == 1){\n text = \"<div style=\\\"position: static; margin-top: -15px;\\\"><img src=\\\"../img/ess-logo.svg\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\"><div class=\\\"tw-value\\\" style=\\\"font-size: 30px; color:#ffffff !important; position: relative; bottom: 55px; left: 30px;\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\"></div></img></div>\";\n document.getElementsByClassName('gs_w')[0].firstElementChild.firstElementChild.innerHTML = \"Beam Instrumentation\";\n}\n\nreturn text", "height": 2 } } ] }, { "title": "Beam Current Monitors and Faraday Cups", "width": 1, "row": { "4": 7, "5": 7, "7": 7 }, "col": { "4": 1, "5": 3, "7": 3 }, "col_width": 4, "widgets": [ { "type": "flot_extended_plugin", "settings": { "plot_type": "line", "legend": true, "height": 6, "value": "isxdata = datasources[\"Current\"][\"ISrc-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1]\"][\"value\"];\nisydata = datasources[\"Current\"][\"ISrc-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1]\"][\"value\"];\nisdata = [];\n\nrfqxdata = datasources[\"Current\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1]\"][\"value\"];\nrfqydata = datasources[\"Current\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1]\"][\"value\"];\nrfqdata = [];\n\nlebtxdata = datasources[\"Current\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1]\"][\"value\"];\nlebtydata = datasources[\"Current\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1]\"][\"value\"];\nlebtdata = [];\n\nmebt1xdata = datasources[\"Current\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1]\"][\"value\"];\nmebt1ydata = datasources[\"Current\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1]\"][\"value\"];\nmebt1data = [];\n\nmebt2xdata = datasources[\"Current\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayTimeUs.[0:800:-1]\"][\"value\"];\nmebt2ydata = datasources[\"Current\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[0:800:-1]\"][\"value\"];\nmebt2data = [];\n\nlebtfcydata = datasources[\"Current\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:120:-1]\"][\"value\"];\nlebtfcdata = [];\n\nmebtfcydata = datasources[\"Current\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:120:-1]\"][\"value\"];\nmebtfcdata = [];\n\nfor (i=0; i < isxdata.length; i++) {\n\tisdata.push([isxdata[i]/1000, isydata[i]]);\n}\nfor (i=0; i < rfqxdata.length; i++) {\n rfqdata.push([rfqxdata[i]/1000, rfqydata[i]]);\n}\nfor (i=0; i < lebtxdata.length; i++) {\n lebtdata.push([lebtxdata[i]/1000, lebtydata[i]]);\n}\nfor (i=0; i < mebt1xdata.length; i++) {\n mebt1data.push([mebt1xdata[i]/1000, mebt1ydata[i]]);\n}\nfor (i=0; i < mebt2xdata.length; i++) {\n mebt2data.push([mebt2xdata[i]/1000, mebt2ydata[i]]);\n}\nfor (i=0; i < lebtfcydata.length; i++) {\n lebtfcdata.push([i*120/1000, lebtfcydata[i]]);\n}\nfor (i=0; i < mebtfcydata.length; i++) {\n mebtfcdata.push([i*120/1000, mebtfcydata[i]]);\n}\n\nbcmdata = [{label: 'ISrc BCM', data: isdata, color: \"lightblue\"},\n {label: 'RFQ BCM', data: rfqdata, color: \"green\"},\n {label: 'LEBT BCM', data: lebtdata, color: \"red\"},\n {label: 'MEBT 1 BCM', data: mebt1data, color: \"pink\"},\n {label: 'MEBT 2 BCM', data: mebt2data, color: \"black\"},\n {label: 'LEBT FC', data: lebtfcdata, color: \"lime\"},\n {label: 'MEBT FC', data: mebtfcdata, color: \"yellow\"}];\n\nreturn bcmdata;", "xticks": "", "yticks": "", "points": false, "zoom": "xy" } } ] }, { "title": "MEBT BPMS", "width": 1, "row": { "4": 21, "8": 19, "9": 19 }, "col": { "4": 1, "8": 1, "9": 1 }, "col_width": 4, "widgets": [ { "type": "flot_extended_plugin", "settings": { "plot_type": "line", "legend": true, "height": 6, "value": "datasources[\"Clock\"][\"numeric_value\"];\n\nxbpm = [];\nybpm = [];\n\nbpmpositions = [0.400, 0.762, 2.224, 2.424, 2.624, 3.436, 3.636, 3.836];\n\nfor (i=1; i < 9; i++) {\n xpv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":XP-AvgValue\";\n xvalue = datasources[\"BPM\"][xpv][\"value\"]/1000;\n if (xvalue == null) {\n xvalue = 0.0;\n }\n xbpm.push([bpmpositions[i-1], xvalue]);\n ypv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":YP-AvgValue\";\n yvalue = datasources[\"BPM\"][ypv][\"value\"]/1000;\n if (yvalue == null) {\n yvalue = 0.0;\n }\n ybpm.push([bpmpositions[i-1], yvalue]);\n}\n\ndata = [{label: 'Horizontal', data: xbpm, color: \"lime\"},\n {label: 'Vertical', data: ybpm, color: \"yellow\"}];\n\nreturn data;", "xticks": "datasources[\"Clock\"][\"numeric_value\"];\n\nvar cols = document.getElementsByClassName('gs_w')[0].getAttribute('data-sizex');\n\ndigits = 3;\nbpmxlabel = \"<br>BPM Position from MEBT start [m]\";\n\nif (cols == 2) {\n bpmxlabel = \"<br>BPM pos. [m]\";\n digits = 1;\n}\nif (cols == 1) {\n bpmxlabel = \"<br>BPM pos. [m]\";\n digits = 0;\n}\n\n\nbpmxtick = [];\n\nbpmpositions = [0.400, 0.762, 2.224, 2.424, 2.624, 3.436, 3.636, 3.836];\n\nfor (i = 0; i < 8; i += 1) {\n\tbpmxtick.push([bpmpositions[i], String(bpmpositions[i].toFixed(digits))]);\n}\nbpmxtick[2][1] += bpmxlabel;\n\nreturn bpmxtick;", "yticks": "datasources[\"Clock\"][\"numeric_value\"];\n\nytick = [];\n\nfor (i = -4; i < 4; i += 1) {\n\tytick.push([i, String(i)]);\n}\n\nytick.push([4, \"∆X,∆Y [mm]\"]);\n\nreturn ytick;", "points": true, "zoom": "xy" } } ] }, { "title": "MEBT Wire Scanner 2", "width": 1, "row": { "4": 35 }, "col": { "4": 1 }, "col_width": 2, "widgets": [ { "type": "flot_extended_plugin", "settings": { "plot_type": "line", "legend": true, "height": 6, "value": "ws2hx = datasources[\"WS\"][\"MEBT-010:PBI-WS-002:Positions_H\"][\"value\"];\nws2hy = datasources[\"WS\"][\"MEBT-010:PBI-WS-002:BeamProfile_H\"][\"value\"];\nws2h = [];\n\nws2vx = datasources[\"WS\"][\"MEBT-010:PBI-WS-002:Positions_V\"][\"value\"];\nws2vy = datasources[\"WS\"][\"MEBT-010:PBI-WS-002:BeamProfile_V\"][\"value\"];\nws2v = [];\n\nfor (i=0; i < ws2hx.length; i++) {\n\tws2h.push([ws2hx[i], ws2hy[i]]);\n}\nfor (i=0; i < ws2vx.length; i++) {\n\tws2v.push([ws2vx[i], ws2vy[i]]);\n}\n\nws2data = [{label: 'Horizontal', data: ws2h, color: \"red\"},\n {label: 'Vertical', data: ws2v, color: \"yellow\"}];\n\nreturn ws2data;", "zoom": "xy" } } ] }, { "title": "MEBT Wire Scanner 3", "width": 1, "row": { "4": 35 }, "col": { "4": 3 }, "col_width": 2, "widgets": [ { "type": "flot_extended_plugin", "settings": { "plot_type": "line", "legend": true, "height": 6, "value": "ws3hx = datasources[\"WS\"][\"MEBT-010:PBI-WS-003:Positions_H\"][\"value\"];\nws3hy = datasources[\"WS\"][\"MEBT-010:PBI-WS-003:BeamProfile_H\"][\"value\"];\nws3h = [];\n\nws3vx = datasources[\"WS\"][\"MEBT-010:PBI-WS-003:Positions_V\"][\"value\"];\nws3vy = datasources[\"WS\"][\"MEBT-010:PBI-WS-003:BeamProfile_V\"][\"value\"];\nws3v = [];\n\nfor (i=0; i < ws3hx.length; i++) {\n\tws3h.push([ws3hx[i], ws3hy[i]]);\n}\nfor (i=0; i < ws3vx.length; i++) {\n\tws3v.push([ws3vx[i], ws3vy[i]]);\n}\n\nws3data = [{label: 'Horizontal', data: ws3h, color: \"red\"},\n {label: 'Vertical', data: ws3v, color: \"yellow\"}];\n\nreturn ws3data;", "zoom": "xy" } } ] } ], "datasources": [ { "name": "Current", "type": "JSON", "settings": { "url": "/data/api/v2/pvget/ISrc-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1],ISrc-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1],RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1],RFQ-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1],LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1],LEBT-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1],MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:800:-1],MEBT-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:800:-1],MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[0:800:-1],MEBT-010:PBI-BCM-002:PRC-TR1-ArrayTimeUs.[0:800:-1],LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:120:-1],MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:120:-1],LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:120:-1],MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:120:-1]", "use_thingproxy": false, "refresh": 10, "method": "GET", "name": "Current" } }, { "name": "Clock", "type": "clock", "settings": { "refresh": 1 } }, { "name": "BPM", "type": "JSON", "settings": { "url": "/data/api/v2/pvget/MEBT-010:PBI-BPM-001:XP-AvgValue,MEBT-010:PBI-BPM-002:XP-AvgValue,MEBT-010:PBI-BPM-003:XP-AvgValue,MEBT-010:PBI-BPM-004:XP-AvgValue,MEBT-010:PBI-BPM-005:XP-AvgValue,MEBT-010:PBI-BPM-006:XP-AvgValue,MEBT-010:PBI-BPM-007:XP-AvgValue,MEBT-010:PBI-BPM-008:XP-AvgValue,MEBT-010:PBI-BPM-001:YP-AvgValue,MEBT-010:PBI-BPM-002:YP-AvgValue,MEBT-010:PBI-BPM-003:YP-AvgValue,MEBT-010:PBI-BPM-004:YP-AvgValue,MEBT-010:PBI-BPM-005:YP-AvgValue,MEBT-010:PBI-BPM-006:YP-AvgValue,MEBT-010:PBI-BPM-007:YP-AvgValue,MEBT-010:PBI-BPM-008:YP-AvgValue", "use_thingproxy": true, "refresh": 10, "method": "GET" } }, { "name": "WS", "type": "JSON", "settings": { "url": "/data/api/v2/pvget/MEBT-010:PBI-WS-002:PositionsFastScan_H,MEBT-010:PBI-WS-002:BeamProfileFastScan_H,MEBT-010:PBI-WS-002:PositionsFastScan_V,MEBT-010:PBI-WS-002:BeamProfileFastScan_V,MEBT-010:PBI-WS-003:PositionsFastScan_H,MEBT-010:PBI-WS-003:BeamProfileFastScan_H,MEBT-010:PBI-WS-003:PositionsFastScan_V,MEBT-010:PBI-WS-003:BeamProfileFastScan_V", "use_thingproxy": true, "refresh": 10, "method": "GET" } } ], "columns": 4 }