From f359ea5126e6707ed1aae1d53c950060dd2f6cc3 Mon Sep 17 00:00:00 2001
From: "emanuele.laface@esss.se" <emanuele.laface@esss.se>
Date: Wed, 10 Nov 2021 14:48:43 +0100
Subject: [PATCH] fix scale BCM

---
 WebSites/pos/dashboard.json | 112 ++++++++++++++++++------------------
 1 file changed, 57 insertions(+), 55 deletions(-)

diff --git a/WebSites/pos/dashboard.json b/WebSites/pos/dashboard.json
index 318bf34..123433e 100644
--- a/WebSites/pos/dashboard.json
+++ b/WebSites/pos/dashboard.json
@@ -131,6 +131,56 @@
 				}
 			]
 		},
+		{
+			"title": "Ion Source",
+			"width": 1,
+			"row": {
+				"1": 39,
+				"2": 7,
+				"3": 21,
+				"4": 7,
+				"7": 7,
+				"8": 7
+			},
+			"col": {
+				"1": 1,
+				"2": 2,
+				"3": 3,
+				"4": 2,
+				"7": 1,
+				"8": 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": "Average Power",
+						"size": "regular",
+						"value": "String(datasources[\"POS\"][\"ISrc-CS:ISS-Magtr-01:ForwdPwr-R\"][\"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:Pwr-R\"][\"value\"])+\" kV\"",
+						"off_text": "String(datasources[\"POS\"][\"ISrc-CS:ISS-HVPS-01:Pwr-R\"][\"value\"])+\" kV\""
+					}
+				}
+			]
+		},
 		{
 			"title": "Beam Production Table",
 			"width": 1,
@@ -267,56 +317,6 @@
 				}
 			]
 		},
-		{
-			"title": "Ion Source",
-			"width": 1,
-			"row": {
-				"1": 39,
-				"2": 7,
-				"3": 21,
-				"4": 7,
-				"7": 7,
-				"8": 7
-			},
-			"col": {
-				"1": 1,
-				"2": 2,
-				"3": 3,
-				"4": 2,
-				"7": 1,
-				"8": 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": "Average Power",
-						"size": "regular",
-						"value": "String(datasources[\"POS\"][\"ISrc-CS:ISS-Magtr-01:ForwdPwr-R\"][\"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:Pwr-R\"][\"value\"])+\" kV\"",
-						"off_text": "String(datasources[\"POS\"][\"ISrc-CS:ISS-HVPS-01:Pwr-R\"][\"value\"])+\" kV\""
-					}
-				}
-			]
-		},
 		{
 			"title": "Beam Mode",
 			"width": 1,
@@ -325,14 +325,16 @@
 				"2": 63,
 				"3": 25,
 				"4": 21,
-				"7": 21
+				"7": 21,
+				"8": 21
 			},
 			"col": {
 				"1": 1,
 				"2": 1,
 				"3": 1,
 				"4": 3,
-				"7": 3
+				"7": 3,
+				"8": 3
 			},
 			"col_width": 1,
 			"widgets": [
@@ -377,7 +379,7 @@
 						"height": 5,
 						"value": "datasources[\"Clock\"][\"numeric_value\"];\n\nisrcxdata = datasources[\"POS\"][\"ISrc-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:400:-1]\"][\"value\"];\nisrcydata = datasources[\"POS\"][\"ISrc-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:400:-1]\"][\"value\"];\nlebtxdata = datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:400:-1]\"][\"value\"];\nlebtydata = datasources[\"POS\"][\"LEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:400:-1]\"][\"value\"];\nrfqxdata = datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:400:-1]\"][\"value\"];\nrfqydata = datasources[\"POS\"][\"RFQ-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:400:-1]\"][\"value\"];\nmebt1xdata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayTimeUs.[0:400:-1]\"][\"value\"];\nmebt1ydata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-001:PRC-TR1-ArrayData.[0:400:-1]\"][\"value\"];\nmebt2xdata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayTimeUs.[0:400:-1]\"][\"value\"];\nmebt2ydata = datasources[\"POS\"][\"MEBT-010:PBI-BCM-002:PRC-TR1-ArrayData.[0:400:-1]\"][\"value\"];\n\nfclebtydata = datasources[\"POS\"][\"LEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:20:-1]\"][\"value\"];\nfcmebtydata = datasources[\"POS\"][\"MEBT-010:PBI-FC-001:TRC2-ArrayData-Comp.[0:20:-1]\"][\"value\"];\n\nisrcdata = [];\nlebtdata = [];\nrfqdata = [];\nmebt1data = [];\nmebt2data = [];\nfclebtdata = [];\nfcmebtdata = [];\n\nmaxtime = 6400;\n\nfor (i=0; i < isrcxdata.length; i++) {\n    if (isrcxdata[i] > maxtime) {\n        break;\n    }\n\tisrcdata.push([isrcxdata[i], isrcydata[i]]);\n}\nfor (i=0; i < lebtxdata.length; i++) {\n\tif (lebtxdata[i] > maxtime) {\n        break;\n    }\n\tlebtdata.push([lebtxdata[i], lebtydata[i]]);\n}\nfor (i=0; i < rfqxdata.length; i++) {\n\tif (rfqxdata[i] > maxtime) {\n        break;\n    }\n\trfqdata.push([rfqxdata[i], rfqydata[i]]);\n}\nfor (i=0; i < mebt1xdata.length; i++) {\n\tif (mebt1xdata[i] > maxtime) {\n        break;\n    }\n\tmebt1data.push([mebt1xdata[i], mebt1ydata[i]]);\n}\nfor (i=0; i < mebt2xdata.length; i++) {\n\tif (mebt2xdata[i] > maxtime) {\n        break;\n    }\n\tmebt2data.push([mebt2xdata[i], mebt2ydata[i]]);\n}\nfor (i=0; i < fclebtydata.length; i++) {\n\tif (i > maxtime/20) {\n        break;\n    }\n\tfclebtdata.push([i*20, fclebtydata[i]]);\n}\nfor (i=0; i < fcmebtydata.length; i++) {    \n\tif (i > maxtime/20) {\n        break;\n    }\n\tfcmebtdata.push([i*20, fcmebtydata[i]]);\n}\n\ndata = [{label: 'BCM ISrc', data: isrcdata, color: \"lightblue\"},\n        {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;",
 						"xticks": "datasources[\"Clock\"][\"numeric_value\"];\n\nvar cols = document.getElementsByClassName('gs_w')[0].getAttribute('data-sizex');\n\ncurrtimelength = 6400;\n\ncurrxtick = [];\nsize = 10;\nif (cols == 1) {\n    size = 4;\n}\n\nfor (i = 0; i < (size+1); i += 1) {\n\tcurrxtick.push([currtimelength*i/size, (currtimelength*i/size/1000).toFixed(3).toString()]);\n}\n\ncurrxtick[size/2][1] = currxtick[size/2][1]+\"<br>t [ms]\";\nreturn currxtick;",
-						"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\"], \"I [mA]\"]);\nreturn ytick;",
+						"yticks": "datasources[\"Clock\"][\"numeric_value\"];\n\nif (typeof axes === 'undefined') {\n    return;\n}\n\nytick = [];\n\nfor (i=0; i<70; i+=10) {\n    ytick.push([i,String(i)]);\n}\nytick.push([70,\"I [mA]\"]);\n\n/*\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\"], \"I [mA]\"]);\n*/\nreturn ytick;",
 						"zoom": "xy"
 					}
 				}
@@ -410,9 +412,9 @@
 						"plot_type": "line",
 						"legend": true,
 						"height": 4,
-						"value": "datasources[\"Clock\"][\"numeric_value\"];\n\nxbpm = [];\nybpm = [];\n\nmaxdisp = 0;\n\nfor (i=1; i < 8; i++) {\n    xpv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":XP-AvgValue\";\n\typv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":YP-AvgValue\";\n    xvalue = Math.abs(datasources[\"POS\"][xpv][\"value\"]);\n    yvalue = Math.abs(datasources[\"POS\"][ypv][\"value\"]);\n    if (xvalue > maxdisp) {\n        maxdisp = xvalue;\n    }\n    if (yvalue > maxdisp) {\n        maxdisp = yvalue;\n    }\n}\n\nif (maxdisp > 100) {\n    for (i=1; i < 8; i++) {\n        xbpm.push([i, 0.0]);\n        ybpm.push([i, 0.0]);\n    }\n    data = [{label: 'Horizontal', data: xbpm, color: \"lime\"},\n        {label: 'Vertical', data: ybpm, color: \"yellow\"}];\n    return data;\n}\n    \nfor (i=1; i < 8; i++) {\n    xpv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":XP-AvgValue\";\n    xvalue = datasources[\"POS\"][xpv][\"value\"];\n    if (xvalue == null) {\n        xvalue = 0.0;\n    }\n    xbpm.push([i, xvalue]);\n    ypv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":YP-AvgValue\";\n    yvalue = datasources[\"POS\"][ypv][\"value\"];\n    if (yvalue == null) {\n        yvalue = 0.0;\n    }\n    ybpm.push([i, yvalue]);\n}\n\ndata = [{label: 'Horizontal', data: xbpm, color: \"lime\"},\n        {label: 'Vertical', data: ybpm, color: \"yellow\"}];\n\nreturn data;",
+						"value": "datasources[\"Clock\"][\"numeric_value\"];\n\nxbpm = [];\nybpm = [];\n\nmaxdisp = 0;\n\nfor (i=1; i < 8; i++) {\n    xpv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":XP-AvgValue\";\n\typv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":YP-AvgValue\";\n    xvalue = Math.abs(datasources[\"POS\"][xpv][\"value\"]);\n    yvalue = Math.abs(datasources[\"POS\"][ypv][\"value\"]);\n    if (xvalue > maxdisp) {\n        maxdisp = xvalue;\n    }\n    if (yvalue > maxdisp) {\n        maxdisp = yvalue;\n    }\n}\n\nif (maxdisp > 100) {\n    for (i=1; i < 8; i++) {\n        xbpm.push([i, 0.0]);\n        ybpm.push([i, 0.0]);\n    }\n    data = [{label: 'Horizontal', data: xbpm, color: \"lime\"},\n        {label: 'Vertical', data: ybpm, color: \"yellow\"}];\n    return data;\n}\n\nfor (i=1; i < 8; i++) {\n    xpv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":XP-AvgValue\";\n    xvalue = datasources[\"POS\"][xpv][\"value\"];\n    if (xvalue == null) {\n        xvalue = 0.0;\n    }\n    xbpm.push([i, xvalue]);\n    ypv = \"MEBT-010:PBI-BPM-00\"+String(i)+\":YP-AvgValue\";\n    yvalue = datasources[\"POS\"][ypv][\"value\"];\n    if (yvalue == null) {\n        yvalue = 0.0;\n    }\n    ybpm.push([i, 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\ncurrxtick = [];\nfor (i = 1; i < 8; i += 1) {\n\tcurrxtick.push([i, String(i)]);\n}\n\ncurrxtick[3][1] = currxtick[3][1]+\"<br>BPM Number\";\nreturn currxtick;",
-						"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\"], \"∆X,∆Y<br>[mm]\"]);\nreturn ytick;",
+						"yticks": "datasources[\"Clock\"][\"numeric_value\"];\n\nytick = [];\n\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\"], \"∆X,∆Y<br>[mm]\"]);\n\nreturn ytick;",
 						"points": true,
 						"zoom": "xy"
 					}
-- 
GitLab