Skip to content
Snippets Groups Projects
dashboard.json 27.8 KiB
Newer Older
Emanuele Laface's avatar
Emanuele Laface committed
{
	"version": 1,
	"header_image": "",
	"allow_edit": false,
Emanuele Laface's avatar
Emanuele Laface committed
	"plugins": [],
	"panes": [
		{
			"width": 1,
			"row": {
				"1": 1,
				"2": 1,
				"3": 1,
				"4": 1,
				"5": 1,
				"6": 1
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col": {
				"1": 1,
				"2": 1,
				"3": 1,
				"4": 1,
				"5": 1,
				"6": 1
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col_width": 6,
Emanuele Laface's avatar
Emanuele Laface committed
			"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 = \"\";\n\nfontsize = 56;\nlmargin = 0;\nwidth = 100-lmargin;\n\nif (cols == 3) {\n    lmargin=20;\n    fontsize=36;\n    width = 100-lmargin;\n\n}\n\nif (cols == 2) {\n    lmargin=30;\n    fontsize=26;\n    width = 100-lmargin;\n\n}\n\ntext = `<div style=\\\"position: relative; margin-top: -15px; text-align: left;\\\">\n\t\t\t<div style=\\\"position: relative;\\\">\n\t\t\t\t<img src=\\\"../img/ess-logo.svg\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\"></img>\n\t\t\t</div>\n<div class=\\\"tw-value\\\" style=\\\"font-size: `+String(fontsize)+`px; color:#ffffff !important; position: absolute; left: `+String(lmargin)+`%; width: `+String(width)+`%; height: 100%; justify-content: center; display: flex; align-items: center;\\\" title=\\\"Designed by Emanuele Laface with PyEpics and Freeboard. Graphics by Dirk Nordt.\\\">\n\t\t\t\tPublic Operations Screen\n\t\t\t</div>\n\t\t</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 = \"Public Operations Screen\";\n}\n\nreturn text;\n\n//display: flex; align-items: center; justify-content: center;\n//",
Emanuele Laface's avatar
Emanuele Laface committed
						"height": 2
					}
				}
			]
		},
Emanuele Laface's avatar
Emanuele Laface committed
		{
			"title": "Permit table",
			"width": 1,
			"row": {
				"1": 7,
				"2": 7,
				"3": 7,
				"4": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"7": 11,
Emanuele Laface's avatar
Emanuele Laface committed
				"9": 11,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 11,
				"11": 11
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col": {
				"1": 1,
				"2": 1,
				"3": 1,
				"4": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"7": 2,
Emanuele Laface's avatar
Emanuele Laface committed
				"9": 2,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 2,
				"11": 2
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col_width": 1,
			"widgets": [
				{
					"type": "indicator",
					"settings": {
						"title": "",
						"value": "datasources[\"POS\"][\"FBIS::beam_permit_ok\"][\"value\"]",
						"on_text": "FBIS Global Permit",
						"off_text": "FBIS Global Permit"
					}
				},
Emanuele Laface's avatar
Emanuele Laface committed
				{
					"type": "indicator",
					"settings": {
						"value": "datasources[\"POS\"][\"BPROD:Ops:BState\"][\"value\"]",
						"on_text": "OP Beam Requested",
						"off_text": "OP Beam Requested"
					}
				},
Emanuele Laface's avatar
Emanuele Laface committed
				{
					"type": "text_widget",
					"settings": {
						"title": "PSS1 Mode of Operation",
						"size": "regular",
Emanuele Laface's avatar
Emanuele Laface committed
						"value": "switch(datasources[\"POS\"][\"AccPSS:PSS-Area-1:PSSMode\"][\"value\"]) {\n  case 0:\n    return \"Alarm\";\n  case 1:\n    return \"Open Access\";\n  case 2:\n    return \"Search\";\n  case 3:\n    return \"Tunnel Closed\";\n  case 4:\n    return \"Beam On\";\n  case 5:\n    return \"RM Interlock\";\n  case 6:\n    return \"RP Survey\";\n  case 7:\n    return \"Restricted Access\";\n  default:\n    // code block\n}",
Emanuele Laface's avatar
Emanuele Laface committed
						"animate": true
					}
				}
			]
		},
Emanuele Laface's avatar
Emanuele Laface committed
		{
Emanuele Laface's avatar
Emanuele Laface committed
			"title": "Control Room",
Emanuele Laface's avatar
Emanuele Laface committed
			"width": 1,
			"row": {
Emanuele Laface's avatar
Emanuele Laface committed
				"1": 15,
Emanuele Laface's avatar
Emanuele Laface committed
				"2": 15,
Emanuele Laface's avatar
Emanuele Laface committed
				"3": 7,
				"4": 17,
Emanuele Laface's avatar
Emanuele Laface committed
				"5": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"6": 7,
				"7": 7,
				"8": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"9": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"11": 7,
				"12": 7,
				"13": 7,
				"14": 7,
				"15": 7
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col": {
				"1": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"2": 1,
				"3": 2,
Emanuele Laface's avatar
Emanuele Laface committed
				"4": 2,
				"5": 3,
Emanuele Laface's avatar
Emanuele Laface committed
				"6": 2,
Emanuele Laface's avatar
Emanuele Laface committed
				"7": 1,
				"8": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"9": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"11": 1,
				"12": 1,
				"13": 1,
				"14": 1,
				"15": 1
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col_width": 1,
			"widgets": [
				{
Emanuele Laface's avatar
Emanuele Laface committed
					"type": "text_widget",
Emanuele Laface's avatar
Emanuele Laface committed
					"settings": {
Emanuele Laface's avatar
Emanuele Laface committed
						"title": "Shift ID",
						"size": "regular",
						"value": "datasources[\"POS\"][\"NSO:Ops:SID\"][\"value\"]",
						"animate": false
Emanuele Laface's avatar
Emanuele Laface committed
					}
				},
				{
					"type": "text_widget",
					"settings": {
						"size": "regular",
Emanuele Laface's avatar
Emanuele Laface committed
						"value": "datasources[\"Clock\"][\"numeric_value\"];\n\nvar elements = document.getElementsByClassName('tw-value');\n\nfor (var i = 0; i < elements.length; i++) {\n    var element = elements[i];\n    if (element.innerHTML == datasources[\"POS\"][\"NSO:Ops:Msg\"][\"value\"]) {\n        element.style.fontSize = \"18px\";\n    }\n}\n\nreturn datasources[\"POS\"][\"NSO:Ops:Msg\"][\"value\"];",
						"animate": true
Emanuele Laface's avatar
Emanuele Laface committed
					}
				},
				{
					"type": "indicator",
					"settings": {
Emanuele Laface's avatar
Emanuele Laface committed
						"value": "datasources[\"POS\"][\"NSO:Ops:ESSSystemPermit\"][\"value\"]",
						"on_text": "Beam Authorization",
						"off_text": "Beam Authorization"
					}
				},
				{
					"type": "indicator",
					"settings": {
						"value": "datasources[\"POS\"][\"NSO:Ops:ESSSystemPermit\"][\"value\"]",
						"on_text": "System Permit",
						"off_text": "System Permit"
Emanuele Laface's avatar
Emanuele Laface committed
					}
				}
			]
		},
Emanuele Laface's avatar
Emanuele Laface committed
		{
			"title": "Beam Production Table",
Emanuele Laface's avatar
Emanuele Laface committed
			"width": 1,
			"row": {
Emanuele Laface's avatar
Emanuele Laface committed
				"1": 33,
				"2": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"3": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"4": 7,
				"5": 7,
				"6": 7,
				"7": 13,
				"8": 13,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 13,
				"11": 13
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col": {
				"1": 1,
				"2": 2,
Emanuele Laface's avatar
Emanuele Laface committed
				"3": 3,
Emanuele Laface's avatar
Emanuele Laface committed
				"4": 2,
Emanuele Laface's avatar
Emanuele Laface committed
				"7": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 1,
				"11": 1
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col_width": 1,
			"widgets": [
				{
					"type": "text_widget",
Emanuele Laface's avatar
Emanuele Laface committed
					"settings": {
						"title": "Frequency",
						"size": "regular",
						"value": "datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:ScTable-RB\"][\"value\"].split(\"__\")[1];",
						"animate": true
Emanuele Laface's avatar
Emanuele Laface committed
					}
				},
				{
					"type": "text_widget",
					"settings": {
						"title": "ISrc Pulse Length",
Emanuele Laface's avatar
Emanuele Laface committed
						"size": "regular",
						"value": "valueArray = [];\nrawArray = datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:ScTable-RB\"][\"value\"].split(\"_\")\nrawArray.forEach(function (item, index) {\n  if (item != \"\") {\n      valueArray.push(item);\n  }\n});\n\nreturn valueArray[2];",
Emanuele Laface's avatar
Emanuele Laface committed
						"animate": true,
						"units": "µs"
Emanuele Laface's avatar
Emanuele Laface committed
					}
				},
				{
					"type": "text_widget",
Emanuele Laface's avatar
Emanuele Laface committed
					"settings": {
						"title": "LEBT Pulse Length",
						"size": "regular",
						"value": "valueArray = [];\nrawArray = datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:ScTable-RB\"][\"value\"].split(\"_\")\nrawArray.forEach(function (item, index) {\n  if (item != \"\") {\n      valueArray.push(item);\n  }\n});\n\nreturn valueArray[3];",
						"animate": true,
						"units": "µs"
					}
				},
				{
					"type": "text_widget",
					"settings": {
						"title": "MEBT Pulse Length",
						"size": "regular",
						"value": "valueArray = [];\nrawArray = datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:ScTable-RB\"][\"value\"].split(\"_\")\nrawArray.forEach(function (item, index) {\n  if (item != \"\") {\n      valueArray.push(item);\n  }\n});\n\nreturn valueArray[4];",
						"animate": true,
						"units": "µs"
Emanuele Laface's avatar
Emanuele Laface committed
					}
				}
			]
		},
		{
			"title": "Ion Source",
			"width": 1,
			"row": {
				"1": 25,
				"2": 17,
				"3": 15,
				"4": 15,
				"5": 17,
				"6": 7,
				"7": 7,
				"8": 7,
				"10": 7,
				"11": 7,
				"12": 7
			},
			"col": {
				"1": 1,
				"2": 2,
				"3": 1,
				"4": 1,
				"5": 3,
				"6": 4,
				"7": 1,
				"8": 1,
				"10": 1,
				"11": 1,
				"12": 1
			},
			"col_width": 1,
			"widgets": [
				{
					"type": "indicator",
					"settings": {
						"value": "datasources[\"POS\"][\"ISrc-CS:ISS-Magtr-01:MwRdy\"][\"value\"]",
						"on_text": "Magnetron On",
						"off_text": "Magnetron Off"
					}
				},
				{
					"type": "text_widget",
					"settings": {
						"title": "Power",
						"size": "regular",
						"value": "datasources[\"POS\"][\"ISrc-CS:ISS-Magtr-01:PulsHLvl-S\"][\"value\"]",
						"animate": true,
						"units": "W"
					}
				},
				{
					"type": "indicator",
					"settings": {
						"title": "High Voltage Platform",
						"value": "datasources[\"POS\"][\"ISrc-CS:ISS-HVPS-01:Pwr-R\"][\"value\"]",
						"on_text": "String(datasources[\"POS\"][\"ISrc-CS:ISS-HVPS-01:Vol-R\"][\"value\"].toFixed(0))+\" kV\"",
						"off_text": "String(datasources[\"POS\"][\"ISrc-CS:ISS-HVPS-01:Vol-R\"][\"value\"].toFixed(0))+\" kV\""
					}
				}
			]
		},
Emanuele Laface's avatar
Emanuele Laface committed
		{
Emanuele Laface's avatar
Emanuele Laface committed
			"title": "RFQ",
Emanuele Laface's avatar
Emanuele Laface committed
			"width": 1,
			"row": {
Emanuele Laface's avatar
Emanuele Laface committed
				"1": 49,
Emanuele Laface's avatar
Emanuele Laface committed
				"2": 33,
Emanuele Laface's avatar
Emanuele Laface committed
				"3": 17,
				"4": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"5": 7,
				"6": 7,
				"7": 7,
Emanuele Laface's avatar
Emanuele Laface committed
				"8": 7,
				"11": 7
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col": {
				"1": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"2": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"3": 2,
Emanuele Laface's avatar
Emanuele Laface committed
				"4": 3,
				"5": 4,
				"6": 5,
				"7": 3,
Emanuele Laface's avatar
Emanuele Laface committed
				"8": 3,
				"11": 3
Emanuele Laface's avatar
Emanuele Laface committed
			},
Emanuele Laface's avatar
Emanuele Laface committed
			"col_width": 2,
Emanuele Laface's avatar
Emanuele Laface committed
			"widgets": [
				{
Emanuele Laface's avatar
Emanuele Laface committed
					"type": "indicator",
Emanuele Laface's avatar
Emanuele Laface committed
					"settings": {
Emanuele Laface's avatar
Emanuele Laface committed
						"value": "timelength = datasources[\"POS\"][\"RFQ-010:RFS-EVR-101:RFSyncWdt-SP\"][\"value\"]/1000;\npwxdata = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:Dwn6-XAxis.[0:100:-1]\"][\"value\"];\npwydata = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:Dwn6-Cmp0.[0:100:-1]\"][\"value\"];\n\npower = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI2-SMonAvg-Mag\"][\"value\"]-datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI3-SMonAvg-Mag\"][\"value\"]+datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI4-SMonAvg-Mag\"][\"value\"]-datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI5-SMonAvg-Mag\"][\"value\"];\n\npwdata = 0;\ncounts = 0;\n\ntimestamp = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:Dwn6-Cmp0.[0:100:-1]\"][\"timestamp\"];\nnow = Math.floor((new Date()).getTime() / 1000);\nenable = 1;\nif (now - timestamp > 60) {\n    enable = 0;\n}\n\nfor (i=0; i < pwxdata.length; i++) {\n    if (pwxdata[i] > timelength) {\n        break;\n    }\n\tpwdata += enable*pwydata[i];\n    counts += 1;\n}\n\nif (counts == 0) {\n    return 0;\n}\n\nif (pwdata/counts < 3) {\n    return 0;\n}\n\nreturn 1;",
						"on_text": "RFQ On",
						"off_text": "RFQ Off"
Emanuele Laface's avatar
Emanuele Laface committed
					}
Emanuele Laface's avatar
Emanuele Laface committed
				},
Emanuele Laface's avatar
Emanuele Laface committed
				{
					"type": "text_widget",
					"settings": {
Emanuele Laface's avatar
Emanuele Laface committed
						"title": "Average Power",
Emanuele Laface's avatar
Emanuele Laface committed
						"size": "regular",
Emanuele Laface's avatar
Emanuele Laface committed
						"value": "power = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI2-SMonAvg-Mag\"][\"value\"]-datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI3-SMonAvg-Mag\"][\"value\"]+datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI4-SMonAvg-Mag\"][\"value\"]-datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI5-SMonAvg-Mag\"][\"value\"];\n\ntimestamp = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:AI2-SMonAvg-Mag\"][\"timestamp\"];\nnow = Math.floor((new Date()).getTime() / 1000);\nenable = 1;\nif (now - timestamp > 60) {\n    enable = 0;\n}\n\n\nreturn enable*power.toFixed(3);",
						"animate": true,
						"units": "kW"
Emanuele Laface's avatar
Emanuele Laface committed
				},
Emanuele Laface's avatar
Emanuele Laface committed
				{
Emanuele Laface's avatar
Emanuele Laface committed
					"type": "flot_extended_plugin",
Emanuele Laface's avatar
Emanuele Laface committed
					"settings": {
Emanuele Laface's avatar
Emanuele Laface committed
						"plot_type": "area",
						"legend": true,
						"height": 4,
Emanuele Laface's avatar
Emanuele Laface committed
						"value": "datasources[\"Clock\"][\"numeric_value\"];\n\ntimelength = datasources[\"POS\"][\"RFQ-010:RFS-EVR-101:RFSyncWdt-SP\"][\"value\"]/1000*2;\n\npwxdata = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:Dwn6-XAxis.[0:100:-1]\"][\"value\"];\npwydata = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:Dwn6-Cmp0.[0:100:-1]\"][\"value\"];\n\ntimestamp = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:Dwn6-Cmp0.[0:100:-1]\"][\"timestamp\"];\nnow = Math.floor((new Date()).getTime() / 1000);\nenable = 1;\nif (now - timestamp > 120) {\n    enable = 0;\n}\nelse {\n    enable = 1;\n}\n\npwdata = [];\n\nfor (i=0; i < pwxdata.length; i++) {\n    if (pwxdata[i] > timelength) {\n        break;\n    }\n\tpwdata.push([pwxdata[i], enable*pwydata[i]]);\n}\n\ndata = [{label: 'Power applied', data: pwdata, color: \"green\"}];\n\nreturn data;",
Emanuele Laface's avatar
Emanuele Laface committed
						"xticks": "datasources[\"Clock\"][\"numeric_value\"];\n\nvar cols = document.getElementsByClassName('gs_w')[0].getAttribute('data-sizex');\n\ntimelength = datasources[\"POS\"][\"RFQ-010:RFS-EVR-101:RFSyncWdt-SP\"][\"value\"]/1000*2;\nxdata = datasources[\"POS\"][\"RFQ-010:RFS-DIG-101:Dwn6-XAxis.[0:100:-1]\"][\"value\"];\n\nif (xdata.length == 0) {\n    return;\n}\n\nif (timelength > xdata[xdata.length-1]) {\n    timelength = xdata[xdata.length-1];\n}\n\nxtick = [];\nsize = 10;\nif (cols == 1) {\n    size = 4;\n}\n\nfor (i = 0; i < (size+1); i += 1) {\n    xtick.push([timelength*i/size, (timelength*i/size).toFixed(3).toString()]);\n}\nxtick[size/2][1] = xtick[size/2][1]+\"<br>t [ms]\";\n\nreturn xtick;\n\n",
Emanuele Laface's avatar
Emanuele Laface committed
						"yticks": "datasources[\"Clock\"][\"numeric_value\"]\n\nif (typeof axes === 'undefined') {\n    return;\n}\n\nytick = [];\nfor (i = 0; i < axes.yaxis.ticks.length-1; i += 1) {\n\tytick.push([axes.yaxis.ticks[i][\"v\"], axes.yaxis.ticks[i][\"label\"]]);\n}\n\nytick.push([axes.yaxis.ticks[axes.yaxis.ticks.length-1][\"v\"], \"P [kW]\"]);\nreturn ytick;",
						"zoom": "xy"
Emanuele Laface's avatar
Emanuele Laface committed
		},
		{
			"title": "Beam Mode",
			"width": 1,
			"row": {
				"1": 43,
				"2": 25,
				"3": 23,
				"4": 23,
				"5": 15,
				"6": 15,
				"7": 21,
				"8": 21,
				"9": 21,
				"10": 21,
				"12": 21
			},
			"col": {
				"1": 1,
				"2": 1,
				"3": 1,
				"4": 1,
				"5": 1,
				"6": 1,
				"7": 3,
				"8": 3,
				"9": 3,
				"10": 3,
				"12": 3
			},
			"col_width": 1,
			"widgets": [
				{
					"type": "text_widget",
					"settings": {
						"size": "regular",
						"value": "switch(datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:BMod-Sel\"][\"value\"]) {\n    case 0:\n        return \"No Beam\";\n    case 1:\n        return \"Conditioning\";\n    case 2:\n        return \"Probe Beam\";\n    case 3:\n        return \"Fast Commissioning\"\n    case 4:\n        return \"RF Test\";\n    case 5:\n        return \"Stability Test\";\n    case 6:\n        return \"Slow Commissioning\";\n    case 7:\n        return \"Fast Tuning\";\n    case 8:\n        return \"Slow Tunning\";\n    default:\n}",
						"animate": true
					}
				},
				{
					"type": "text_widget",
					"settings": {
						"title": "Destination",
						"size": "regular",
						"value": "switch(datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:BDest-Sel\"][\"value\"]) {\n    case 0:\n        return \"ISrc\";\n        break;\n    case 1:\n\t\treturn \"LEBT FC\";\n        break;\n\tcase 2:\n\t\treturn \"MEBT FC\";\n        break;\n\tcase 3:\n\t\treturn \"DTL2\";\n        break;\n\tcase 4:\n\t\treturn \"DLT3\";\n        break;\n    default:\n        return \"NO Destination\";\n}",
						"animate": true
					}
				}
			]
		},
Emanuele Laface's avatar
Emanuele Laface committed
		{
			"title": "Beam Energy",
			"width": 1,
			"row": {
				"1": 63,
				"2": 29,
				"3": 29,
				"4": 21,
				"5": 17,
				"6": 17,
				"9": 17,
				"12": 17
			},
			"col": {
				"1": 1,
				"2": 2,
				"3": 1,
				"4": 4,
				"5": 2,
				"6": 3,
				"9": 2,
				"12": 2
			},
			"col_width": 1,
			"widgets": [
				{
					"type": "text_widget",
					"settings": {
						"size": "regular",
						"value": "switch(datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:BDest-Sel\"][\"value\"]) {\n    case 0:\n        return \"0 keV\";\n        break;\n    case 1:\n\t\treturn \"75 keV\";\n        break;\n\tcase 2:\n\t\treturn String(datasources[\"POS\"][\"PBI-FBPM01:FBPM-01:Energy-R\"][\"value\"].toFixed(2))+\" MeV\";\n        break;\n\tcase 3:\n\t\treturn \"DTL2 Energy\";\n        break;\n\tcase 4:\n\t\treturn \"DLT3 Energy\";\n        break;\n    default:\n        return \"NO Energy reading\";\n}",
						"animate": true
					}
				}
			]
		},
		{
			"title": "ISrc Beam Current",
			"width": 1,
			"row": {
				"1": 67,
				"2": 25,
				"3": 33,
				"4": 21,
				"5": 21,
				"6": 17,
				"9": 17
			},
			"col": {
				"1": 1,
				"2": 2,
				"3": 1,
				"4": 3,
				"5": 2,
				"6": 2,
				"9": 2
			},
			"col_width": 1,
			"widgets": [
				{
					"type": "text_widget",
					"settings": {
						"size": "regular",
						"value": "datasources[\"POS\"][\"ISrc-010:PBI-BCM-001:FlatTopCurrentR\"][\"value\"].toFixed(3)",
						"animate": true,
						"units": "mA"
					}
				}
			]
		},
Emanuele Laface's avatar
Emanuele Laface committed
		{
Emanuele Laface's avatar
Emanuele Laface committed
			"title": "Beam Current",
Emanuele Laface's avatar
Emanuele Laface committed
			"width": 1,
			"row": {
Emanuele Laface's avatar
Emanuele Laface committed
				"1": 71,
				"2": 47,
				"3": 37,
				"4": 29,
				"5": 25,
Emanuele Laface's avatar
Emanuele Laface committed
				"6": 21,
Emanuele Laface's avatar
Emanuele Laface committed
				"7": 25,
				"8": 25,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 25,
				"12": 25
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col": {
				"1": 1,
				"2": 1,
				"3": 1,
				"4": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"7": 1,
				"8": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 1,
				"12": 1
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col_width": 3,
Emanuele Laface's avatar
Emanuele Laface committed
			"widgets": [
				{
					"type": "flot_extended_plugin",
					"settings": {
						"plot_type": "line",
						"legend": true,
						"height": 5,
						"value": "datasources[\"Clock\"][\"numeric_value\"];\n\nswitch(datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:BDest-Sel\"][\"value\"]) {\n    case 0:\n        return \"ISrc\";\n        break;\n    case 1:\n\t\tlebtydata = datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"];\n        rfqydata = datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"];\n        mebt1ydata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"];\n        mebt2ydata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"];\n        fclebtydata = datasources[\"POS\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000]\"][\"value\"];\n        fcmebtydata = datasources[\"POS\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000]\"][\"value\"];\n        startroi = 1000;\n\t\tendroi = 9000;\n        break;\n\tcase 2:\n        lebtydata = datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"];\n        rfqydata = datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"];\n        mebt1ydata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"];\n        mebt2ydata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"];\n        fclebtydata = datasources[\"POS\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700]\"][\"value\"];\n        fcmebtydata = datasources[\"POS\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700]\"][\"value\"];\n        startroi = 6500;\n\t\tendroi = 6700;\n        break;\n\tcase 3:\n\t\treturn \"DTL2\";\n        break;\n\tcase 4:\n\t\treturn \"DLT3\";\n        break;\n    default:\n        return \"NO Destination\";\n}\n\nlebtdata = [];\nrfqdata = [];\nmebt1data = [];\nmebt2data = [];\nfclebtdata = [];\nfcmebtdata = [];\n\n\n\nfor (i=0; i < lebtydata.length; i++) {\n\tlebtdata.push([((endroi-startroi)/lebtydata.length*i+startroi)/1000, lebtydata[i]]);\n}\n\nfor (i=0; i < rfqydata.length; i++) {\n\trfqdata.push([((endroi-startroi)/rfqydata.length*i+startroi)/1000, rfqydata[i]]);\n}\n\nfor (i=0; i < mebt1ydata.length; i++) {\n\tmebt1data.push([((endroi-startroi)/mebt1ydata.length*i+startroi)/1000, mebt1ydata[i]]);\n}\n\nfor (i=0; i < mebt2ydata.length; i++) {\n\tmebt2data.push([((endroi-startroi)/mebt2ydata.length*i+startroi)/1000, mebt2ydata[i]]);\n}\n\nfor (i=0; i < fclebtydata.length; i++) {\n\tfclebtdata.push([((endroi-startroi)/fclebtydata.length*i+startroi)/1000, fclebtydata[i]]);\n}\n\nfor (i=0; i < fcmebtydata.length; i++) {\n\tfcmebtdata.push([((endroi-startroi)/fcmebtydata.length*i+startroi)/1000, fcmebtydata[i]]);\n}\n\ndata = [{label: 'BCM LEBT', data: lebtdata, color: \"red\"},\n        {label: 'BCM RFQ', data: rfqdata, color: \"green\"},\n        {label: 'BCM MEBT 1', data: mebt1data, color: \"pink\"},\n        {label: 'BCM MEBT 2', data: mebt2data, color: \"black\"},\n        {label: 'FC LEBT', data: fclebtdata, color: \"lime\"},\n        {label: 'FC MEBT', data: fcmebtdata, color: \"yellow\"}];\n\nreturn data;",
Emanuele Laface's avatar
Emanuele Laface committed
						"xticks": "",
						"yticks": "datasources[\"Clock\"][\"numeric_value\"];\n\nif (typeof axes === 'undefined') {\n    return;\n}\n\nytick = [];\n\nmax_val = 0;\nmin_val = 0;\n    \nswitch(datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:BDest-Sel\"][\"value\"]) {\n    case 0: // ISrc\n        return;\n        break;\n    case 1:\n        max_val = Math.max(Math.max.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000]\"][\"value\"]));\n        \n        min_val = Math.min(Math.min.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[5503:200:49530]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000]\"][\"value\"]));\n        break;\n\tcase 2:\n        max_val = Math.max(Math.max.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700]\"][\"value\"]),\n        Math.max.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700]\"][\"value\"]));\n        \n        min_val = Math.min(Math.min.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[35772:4:36872]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700]\"][\"value\"]),\n        Math.min.apply(Math, datasources[\"POS\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700]\"][\"value\"]));\n        break;\n\tcase 3: // DTL1\n\t\treturn;\n        break;\n\tcase 4: // DTL2\n\t\treturn;\n        break;\n    default:\n        return;\n}\n\n\nif (max_val < 0.3) {\n    for (i=-0.2; i<0.2; i+=0.05) {\n        ytick.push([i,String(i.toFixed(2))]);\n    }\n    ytick.push([0.2,\"I [mA]\"]);\n}\nelse {\n    step = (max_val-min_val)/10;\n    for (i=min_val; i<max_val; i+=step) {\n        ytick.push([i,String(i.toFixed(1))]);\n    }\n    ytick.push([max_val+step,\"I [mA]\"]);\n}\n\n\n\n\nreturn ytick;",
Emanuele Laface's avatar
Emanuele Laface committed
						"zoom": "xy"
					}
				}
			]
		},
		{
Emanuele Laface's avatar
Emanuele Laface committed
			"title": "Beam Position Monitors",
Emanuele Laface's avatar
Emanuele Laface committed
			"width": 1,
			"row": {
Emanuele Laface's avatar
Emanuele Laface committed
				"1": 83,
				"2": 59,
				"3": 49,
				"4": 41,
				"5": 37,
				"6": 21,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 37,
Emanuele Laface's avatar
Emanuele Laface committed
				"13": 37,
				"14": 37
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col": {
				"1": 1,
				"2": 1,
				"3": 1,
				"4": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"10": 1,
Emanuele Laface's avatar
Emanuele Laface committed
				"13": 1,
				"14": 1
Emanuele Laface's avatar
Emanuele Laface committed
			},
			"col_width": 3,
Emanuele Laface's avatar
Emanuele Laface committed
			"widgets": [
				{
					"type": "flot_extended_plugin",
					"settings": {
						"plot_type": "line",
						"legend": true,
Emanuele Laface's avatar
Emanuele Laface committed
						"height": 5,
Emanuele Laface's avatar
Emanuele Laface committed
						"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\nif (datasources[\"POS\"][\"TD-M:Ctrl-SCE-1:BDest-Sel\"][\"value\"] != 2) { // MEBT\n    for (i=1; i < 9; i++) {\n        xbpm.push([bpmpositions[i-1], 0]);\n        ybpm.push([bpmpositions[i-1], 0]);\n    }\n\tdata = [{label: 'Horizontal', data: xbpm, color: \"lime\"},\n        {label: 'Vertical', data: ybpm, color: \"yellow\"}];\n    return data;\n}\n\nfor (i=1; i < 9; i++) {\n    xpv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":XP-AvgValue\";\n    xvalue = datasources[\"POS\"][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[\"POS\"][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;",
Emanuele Laface's avatar
Emanuele Laface committed
						"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;",
Emanuele Laface's avatar
Emanuele Laface committed
						"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;",
Emanuele Laface's avatar
Emanuele Laface committed
						"points": true,
Emanuele Laface's avatar
Emanuele Laface committed
						"tooltip": false,
Emanuele Laface's avatar
Emanuele Laface committed
						"zoom": "xy"
					}
				}
			]
Emanuele Laface's avatar
Emanuele Laface committed
		}
	],
	"datasources": [
		{
Emanuele Laface's avatar
Emanuele Laface committed
			"type": "JSON",
			"settings": {
Emanuele Laface's avatar
Emanuele Laface committed
				"url": "/data/api/v1/caget/ISrc-CS:ISS-Magtr-01:MwRdy,ISrc-CS:ISS-Magtr-01:PulsHLvl-S,ISrc-CS:ISS-HVPS-01:Pwr-R,RFQ-010:RFS-DIG-101:AI2-SMonAvg-Mag,RFQ-010:RFS-DIG-101:AI3-SMonAvg-Mag,RFQ-010:RFS-DIG-101:AI4-SMonAvg-Mag,RFQ-010:RFS-DIG-101:AI5-SMonAvg-Mag,RFQ-010:RFS-DIG-101:Dwn6-XAxis.[0:100:-1],RFQ-010:RFS-DIG-101:Dwn6-Cmp0.[0:100:-1],LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872],RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872],MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[35772:4:36872],MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[35772:4:36872],LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700],MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[6500:1:6700],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,AccPSS:PSS-Area-1:PSSMode,NSO:Ops:SID,NSO:Ops:Msg,RFQ-010:RFS-EVR-101:RFSyncWdt-SP,FBIS::beam_permit_ok,TD-M:Ctrl-SCE-1:ScTable-RB,BPROD:Ops:BState,TD-M:Ctrl-SCE-1:BState-Sts,TD-M:Ctrl-SCE-1:BMod-Sel,NSO:Ops:BeamAuthorization,NSO:Ops:ESSSystemPermit,ISrc-CS:ISS-HVPS-01:Vol-R,TD-M:Ctrl-SCE-1:BDest-Sel,PBI-FBPM01:FBPM-01:Energy-R,ISrc-010:PBI-BCM-001:FlatTopCurrentR,LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530],RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530],MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[5503:200:49530],MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[5503:200:49530],LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000],MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[1000:40:9000]",
Emanuele Laface's avatar
Emanuele Laface committed
				"use_thingproxy": false,
				"refresh": 10,
Emanuele Laface's avatar
Emanuele Laface committed
			}
		},
		{
			"name": "Clock",
			"type": "clock",
			"settings": {
Emanuele Laface's avatar
Emanuele Laface committed
		}
	],
Emanuele Laface's avatar
Emanuele Laface committed
}