From f12e2e3adcd385a6cdf6cf9152315ff105669e28 Mon Sep 17 00:00:00 2001 From: Ole Artz Date: Thu, 10 Aug 2017 14:32:53 +0200 Subject: [PATCH] DASH: visualize alarm modes, integrate Low Voltage --- python_suite/dashboard/dashboard.py | 2 + python_suite/dashboard/example.config.json | 35 ++++++++++++- python_suite/dashboard/static/css/style.css | 46 +++++++++++++++++- .../dashboard/static/images/ikf_logo.png | Bin 0 -> 24413 bytes .../dashboard/views/pv_overview.jinja2 | 8 +-- 5 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 python_suite/dashboard/static/images/ikf_logo.png diff --git a/python_suite/dashboard/dashboard.py b/python_suite/dashboard/dashboard.py index fbab302..1af4276 100755 --- a/python_suite/dashboard/dashboard.py +++ b/python_suite/dashboard/dashboard.py @@ -19,12 +19,14 @@ def update_values(): epics.MINOR_ALARM : "minor_alarm", epics.MAJOR_ALARM : "major_alarm", epics.INVALID_ALARM : "invalid_alarm", + None : "disconnected", } pv['classes'] = class_map[p.severity] if 'enum' in p.type: pv['value'] = p.get(as_string=True) else: pv['value'] = p.get() + if pv['value'] is None: pv['value'] = '- disconnected -' pv['unit'] = p.units or '' @route('/') diff --git a/python_suite/dashboard/example.config.json b/python_suite/dashboard/example.config.json index 6a66a6d..d5355cf 100644 --- a/python_suite/dashboard/example.config.json +++ b/python_suite/dashboard/example.config.json @@ -26,6 +26,39 @@ {"name": "CBM:MVD:VACUUM:RECIPIENT:3:Pressure"}, {"name": "CBM:MVD:VACUUM:RECIPIENT:3:Status"} ] + }, + { + "name": "Low Voltage", + "PVs": [ + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:GetGeneralOutput"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:GetOutput"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:GetOutput"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:GetOutput"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:GetVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:GetVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:GetVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:GetCurrent"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:GetCurrent"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:GetCurrent"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:MeasuredVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:MeasuredVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:MeasuredVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:MeasuredCurrent"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:MeasuredCurrent"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:MeasuredCurrent"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:GetOVPVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:GetOVPVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:GetOVPVoltage"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:GetOVPVoltageMin"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:GetOVPVoltageMin"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:GetOVPVoltageMin"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:GetOVPVoltageMax"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:GetOVPVoltageMax"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:GetOVPVoltageMax"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN1:GetOVPMode"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN2:GetOVPMode"}, + {"name": "CBM:MVD:POWER:PRESTO_RECIPIENT:CHAN3:GetOVPMode"} + ] } - ] + ] } diff --git a/python_suite/dashboard/static/css/style.css b/python_suite/dashboard/static/css/style.css index 521017b..4503e0f 100644 --- a/python_suite/dashboard/static/css/style.css +++ b/python_suite/dashboard/static/css/style.css @@ -4,23 +4,65 @@ margin-left: auto; margin-right: auto; } -.header img { +.header .cbm { + position: relative; + bottom: -5px; float: left; width: 93px; height: 120px; } +.header .ikf { + position: relative; + bottom: -5px; + float: right; + width: 264px; + height: 120px; +} + .header h1 { position: center; left: 30px; background-color: #0509fc; color: white; + height: 130px; + text-align: center; } + .Cooling table, th, td { border: 1px solid black; } + .Cooling table, th { text-align: left; } + +.invalid_alarm:after { + content: "invalid"; + position: relative; + float: right; + color: #0091FF; +} .invalid_alarm { - background-color: red; + border-color: #0091FF; +} + +.minor_alarm:after { + content: "MINOR"; + position: relative; + float: right; + color: #FF6F00; +} +.minor_alarm { + border-color: #FF6F00; + +} +.major_alarm:after { + content: "MAJOR"; + position: relative; + float: right; + color: #FF0000; +} +.major_alarm { + border-color: #FF0000; } + diff --git a/python_suite/dashboard/static/images/ikf_logo.png b/python_suite/dashboard/static/images/ikf_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..996cfeda8348f3e601a825a5e8646fe2142bff79 GIT binary patch literal 24413 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
$O2<_QZiy$6cCYS?bziK^D6yeTd_- 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 literal 0 HcmV?d00001 diff --git a/python_suite/dashboard/views/pv_overview.jinja2 b/python_suite/dashboard/views/pv_overview.jinja2 index e91946e..261e665 100644 --- a/python_suite/dashboard/views/pv_overview.jinja2 +++ b/python_suite/dashboard/views/pv_overview.jinja2 @@ -1,16 +1,16 @@ PRESTO - OVERVIEW - +
- logo -

PRESTO - Overview
Prototype of the Second Station of the Micro Vertex Detector -
of the Compressed Baryonic Matter

+ logo + logo +

PRESTO - Overview
Prototype of the Second Station of the Micro Vertex Detector of the Compressed Baryonic Matter

{% for group in groups %} -- 2.51.0