Beispiel #1
0
 def __init__(self,
              parent=None,
              section=None,
              is_main=True,
              main_secs=('TB', 'BO', 'TS', 'SI')):
     """Constructor."""
     super().__init__(parent)
     self._section = section
     self._is_main = is_main
     self._main_secs = main_secs
     self.setWindowTitle(section.upper() + ' Pulsed Magnets Control Window')
     if section in {'InjBO', 'EjeBO'}:
         color = get_appropriate_color('BO')
         self.setObjectName('BOApp')
     elif section in {'InjSI', 'Ping'}:
         color = get_appropriate_color('SI')
         self.setObjectName('SIApp')
     else:
         color = get_appropriate_color(section)
         self.setObjectName(section + 'App')
     self.setWindowIcon(qta.icon('mdi.current-ac', color=color))
     self.pu_widgets_dict = dict()
     self._setup_ui()
     self.setCentralWidget(self.main_widget)
     self.setFocusPolicy(Qt.StrongFocus)
     self._create_actions()
Beispiel #2
0
 def __init__(self, parent=None, prefix=_VACA_PREFIX):
     """Init."""
     super().__init__(parent=parent)
     self.prefix = prefix
     self.setObjectName('SIApp')
     self.dcct_list = get_dcct_list('SI')
     self.setWindowTitle('Select a DCCT')
     self.setWindowIcon(
         qta.icon('mdi.current-dc', color=util.get_appropriate_color('SI')))
     self._setupUi()
Beispiel #3
0
 def __init__(self, parent=None, prefix=VACA_PREFIX, section=''):
     super().__init__(parent)
     self.prefix = prefix
     self.section = section.upper()
     self.setObjectName(self.section+'App')
     self.setWindowTitle(self.section+' Tune')
     self.setWindowIcon(
         qta.icon('mdi.pulse',
                  color=util.get_appropriate_color(self.section)))
     self._setupUi()
     self.setFocusPolicy(Qt.StrongFocus)
Beispiel #4
0
 def __init__(self, parent=None, prefix=VACA_PREFIX, is_it=False):
     """Init."""
     super().__init__(parent)
     self.prefix = prefix + ('-' if prefix else '')
     self.dev_pref = 'IT-EGH' if is_it else 'LI-01'
     self.dev_desc = 'Injector Test' if is_it else 'Linac'
     self.setWindowTitle(self.dev_desc + ' E-gun Control Window')
     self.sec = self.dev_pref[0:2]
     color = get_appropriate_color(self.sec)
     self.setWindowIcon(qta.icon('mdi.spotlight-beam', color=color))
     self.setObjectName(self.sec + 'App')
     self._setupUi()
Beispiel #5
0
 def __init__(self, devname, parent=None):
     """Constructor."""
     super().__init__(parent)
     self._devname = _PVName(devname)
     self._section = self._devname.sec
     self._devtype = self._devname.dis
     self.setObjectName(self._section + 'App')
     self.setWindowTitle(self._devname)
     self.setWindowIcon(
         qta.icon('mdi.current-ac',
                  color=util.get_appropriate_color(self._section)))
     self._setup_ui()
Beispiel #6
0
    def get_selection_lists_widget(self, parent):
        """."""
        sel_wid = QWidget(parent)
        sel_lay = QHBoxLayout(sel_wid)

        icon = qta.icon('fa5s.hammer', color=get_appropriate_color(self.acc))
        Window = create_window_from_widget(
            SelectionMatrix, title='Corrs and BPMs selection', icon=icon)
        btn = QPushButton('', sel_wid)
        btn.setObjectName('btn')
        btn.setIcon(qta.icon('fa5s.tasks'))
        btn.setToolTip('Open window to select BPMs and correctors')
        btn.setStyleSheet(
            '#btn{min-width:3.8em; max-width:3.8em;\
            min-height:2em; max-height:2em; icon-size:25px;}')
        connect_window(
            btn, Window, None, device=self.device,
            prefix=self.prefix, acc=self.acc)
        sel_lay.addWidget(btn)

        lay = QVBoxLayout()
        sel_lay.addStretch()
        sel_lay.addLayout(lay)

        hlay = QHBoxLayout()
        lay.addLayout(hlay)
        hlay.addWidget(SiriusEnumComboBox(
            sel_wid, self.devpref.substitute(propty='RespMatMode-Sel')))
        hlay.addWidget(SiriusLabel(
            sel_wid, self.devpref.substitute(propty='RespMatMode-Sts')))

        if self.acc in {'SI', 'BO'}:
            hlay = QHBoxLayout()
            lay.addLayout(hlay)
            pdm_chbx = PyDMCheckbox(
                sel_wid, self.devpref.substitute(propty='RFEnbl-Sel'))
            pdm_chbx.setText('use RF')
            pdm_led = SiriusLedState(
                sel_wid, self.devpref.substitute(propty='RFEnbl-Sts'))
            hlay.addWidget(pdm_chbx)
            hlay.addWidget(pdm_led)

        btn = QPushButton('', sel_wid)
        btn.setToolTip('Visualize RespMat')
        btn.setIcon(qta.icon('mdi.chart-line'))
        btn.setObjectName('btn')
        btn.setStyleSheet('#btn{max-width:40px; icon-size:40px;}')
        connect_newprocess(
            btn, [f'sirius-hla-{self.acc.lower():s}-ap-sofb.py', '--matrix'])
        sel_lay.addWidget(btn)

        return sel_wid
Beispiel #7
0
 def __init__(self, section, parent=None):
     """Setups widget interface."""
     super().__init__(parent)
     self._section = section
     self.dips, self.mags = init_section(section.upper())
     self._items_fail = []
     self._items_success = []
     self._setup_ui()
     color = QColor(get_appropriate_color(section.upper()))
     pal = self.palette()
     pal.setColor(QPalette.Background, color)
     self.setAutoFillBackground(True)
     self.setPalette(pal)
Beispiel #8
0
 def __init__(self, parent=None, prefix='', device=''):
     """Initialize."""
     super().__init__(parent)
     self.prefix = prefix
     self.device = SiriusPVName(device)
     self.section = self.device.sec
     self.setObjectName(self.section + 'App')
     self.setWindowTitle(device)
     self.setWindowIcon(
         qta.icon('mdi.current-dc',
                  color=util.get_appropriate_color(self.section)))
     self._setupUi()
     self.setFocusPolicy(Qt.StrongFocus)
Beispiel #9
0
def get_id_icon():
    color = get_appropriate_color('ID')
    icon = qta.icon('mdi.current-ac',
                    'mdi.current-ac',
                    'mdi.equal',
                    options=[
                        dict(scale_factor=0.48,
                             color=color,
                             offset=(-0.16, -0.01)),
                        dict(scale_factor=0.48,
                             color=color,
                             offset=(0.16, -0.01)),
                        dict(scale_factor=2.4, color=color, offset=(0.0, 0.0))
                    ])
    return icon
Beispiel #10
0
 def __init__(self,
              parent=None,
              prefix=VACA_PREFIX,
              device_analysis='',
              device_cam=''):
     """."""
     super().__init__(parent)
     self._prefix = prefix
     self._device_analysis = _PVName(
         device_analysis[:-1]).substitute(prefix=prefix)
     self._device_cam = prefix + ('-' if prefix else '') + device_cam[:-1]
     self._color = get_appropriate_color('ID')
     self._title = self._device_analysis.dev + ' MVS2 Analysis Window'
     self.setWindowTitle(self._title)
     self.setWindowIcon(qta.icon('mdi.camera-control', color=self._color))
     self.setObjectName('IDApp')
     self._setupUi()
Beispiel #11
0
    def __init__(self, parent=None, prefix=''):
        """Initialize object."""
        super().__init__(parent)
        self.setWindowTitle('Booster Energy Ramping')
        self.setObjectName('BOApp')
        cor = get_appropriate_color(section='BO')
        self.setWindowIcon(qta.icon(
            'mdi.escalator', scale_factor=1.5, color=cor))

        self.prefix = prefix
        self.ramp_config = None
        self._undo_stack = QUndoStack(self)

        self._tunecorr_configname = 'BO.V05.04.M0'
        self._chromcorr_configname = 'BO.V05.04.M0'

        self._setupUi()
        self._connSignals()
        self._addActions()

        self.setFocusPolicy(Qt.StrongFocus)
Beispiel #12
0
    def __init__(self, devname, parent=None):
        """Receive a parent and a pulsed mangnet name."""
        super().__init__(parent)
        self._devname = _PVName(devname)
        self._section = self._devname.sec
        self._prefix = _VACA_PREFIX
        self._pdev = self._devname.substitute(prefix=self._prefix)
        self.setObjectName(self._section + 'App')
        self.setWindowIcon(
            qta.icon('mdi.current-ac',
                     color=util.get_appropriate_color(self._section)))

        self._create_pvs()
        self._setup_ui()
        self.setStyleSheet("""
            #pulses_box,
            #pwrstate_box {
                max-width: 8em;
            }
        """)
        self.setFocusPolicy(Qt.StrongFocus)
Beispiel #13
0
 def __init__(self, parent=None, prefix=VACA_PREFIX):
     super().__init__(parent)
     self.setObjectName('ASApp')
     self.setWindowTitle('Efficiency Monitor')
     color = get_appropriate_color('AS')
     self.setWindowIcon(qta.icon('mdi.percent-outline', color=color))
     self._prefix = prefix
     self._eff_list = (
         # ('LI-SI Inj', 'AS-Glob:AP-CurrInfo:InjEff-Mon', 'magenta'),
         ('BO-SI Inj', 'SI-Glob:AP-CurrInfo:InjEff-Mon', 'blue'),
         ('TS', 'TS-Glob:AP-CurrInfo:TranspEff-Mon', 'black'),
         ('BO Ramp', 'BO-Glob:AP-CurrInfo:RampEff-Mon', 'green'),
         # ('LI-BO Inj', 'BO-Glob:AP-CurrInfo:InjEff-Mon', 'darkRed'),
         ('TB', 'TB-Glob:AP-CurrInfo:TranspEff-Mon', 'darkCyan'),
         ('LI', 'LI-Glob:AP-CurrInfo:TranspEff-Mon', 'red'),
     )
     self._app = QApplication.instance()
     font = self._app.font()
     font.setPointSize(32)
     self._app.setFont(font)
     self._setupUi()
Beispiel #14
0
    def __init__(self, section, device, subsection=None, parent=None):
        """Class constructor."""
        super(PSControlWindow, self).__init__(parent)
        self.setObjectName(section + 'App')
        self._section = section
        self._device = device
        self._subsection = subsection
        icon = qta.icon('mdi.car-battery',
                        color=get_appropriate_color(section))
        self.setWindowIcon(icon)

        self._setup_ui()

        sec2label = {
            'LI': 'Linac ',
            'TB': 'Linac to Booster ',
            'BO': 'Booster ',
            'TS': 'Booster to Storage Ring ',
            'SI': 'Storage Ring ',
            'IT': 'Injector Test '
        }
        dev2label = {
            "dipole": "Dipoles",
            "spectrometer": "Spectrometer",
            "quadrupole": "Quadrupoles",
            "sextupole": "Sextupoles",
            "solenoid": "Solenoids",
            "corrector-slow": "Slow Correctors",
            "corrector-fast": "Fast Correctors",
            "skew-quadrupole": "Quadrupoles Skew",
            "trim-quadrupole": "Trims",
            "lens": "Lens",
        }
        self.setWindowTitle(sec2label[section] +
                            (dev2label[device] if device else '') +
                            ' Power Supplies ' +
                            ('- Subsection ' +
                             subsection if subsection else ''))
Beispiel #15
0
 def __init__(self, psname, parent=None):
     """Init UI."""
     super(PSDetailWindow, self).__init__(parent)
     if isinstance(psname, str):
         self._psname = [
             _PVName(psname),
         ]
     else:
         self._psname = [_PVName(psn) for psn in psname]
     name = self._psname[0]
     self._is_dclink = 'dclink' in PSSearch.conv_psname_2_pstype(name)
     secs = {'AS', 'LI', 'TB', 'BO', 'TS', 'SI', 'IT'}
     if name.sub.endswith(('SA', 'SB', 'SP', 'ID')):
         sec = 'ID'
     elif name.sec in secs:
         sec = name.sec
     elif name.idx[:2] in secs:
         sec = name.idx[:2]
     else:
         sec = 'AS'
     self.setObjectName(sec + 'App')
     icon = qta.icon('mdi.car-battery', color=get_appropriate_color(sec))
     self.setWindowIcon(icon)
     self._setup_ui()
Beispiel #16
0
from siriuspy.envars import VACA_PREFIX

parser = _argparse.ArgumentParser(description="Run SOFB HLA Interface.")
parser.add_argument('-p',
                    "--prefix",
                    type=str,
                    default=VACA_PREFIX,
                    help="Define the prefix for the PVs in the window.")
parser.add_argument('-m',
                    '--matrix',
                    action='store_true',
                    default=False,
                    help="Choose whether to show matrix widget")
args = parser.parse_args()

app = SiriusApplication()
if args.matrix:
    window = create_window_from_widget(
        ShowMatrixWidget,
        'Response Matrix',
        icon=qta.icon('fa5s.hammer', color=util.get_appropriate_color('TB')),
        is_main=True)
    app.open_window(window,
                    parent=None,
                    device='TB-Glob:AP-SOFB',
                    prefix=args.prefix,
                    acc='TB')
else:
    app.open_window(MainWindow, parent=None, prefix=args.prefix, acc='TB')
sys.exit(app.exec_())
Beispiel #17
0
"""Open Window of energy measurement in LI."""

import os
import sys
import argparse as _argparse
import qtawesome as qta
from siriuspy.envars import VACA_PREFIX
import siriushla.util as _util
from siriushla.sirius_application import SiriusApplication
from siriushla.as_ap_measure import EnergyMeasure
from siriushla.widgets.windows import create_window_from_widget


# Linac image is very large! (2448 X 2050)
os.environ['EPICS_CA_MAX_ARRAY_BYTES'] = '21000000'

parser = _argparse.ArgumentParser(
    description="Run Interface of energy measurement in LI.")
parser.add_argument(
    '-p', "--prefix", type=str, default=VACA_PREFIX,
    help="Define the prefix for the PVs in the window.")
args = parser.parse_args()

app = SiriusApplication()
icon = qta.icon(
        'mdi.gauge', color=_util.get_appropriate_color('LI'))
MyWindow = create_window_from_widget(
    EnergyMeasure, title='Linac Energy Measure', is_main=True, icon=icon)
app.open_window(MyWindow)
sys.exit(app.exec_())
Beispiel #18
0
                    type=str,
                    default='Positions',
                    help="Show Antennas or Positions  (default= 'Positions').",
                    choices=('Positions', 'Antennas'))
parser.add_argument('-p',
                    "--prefix",
                    type=str,
                    default=VACA_PREFIX,
                    help="Define the prefix for the PVs in the window.")
args = parser.parse_args()

app = SiriusApplication()
pv = _PVName(args.bpm_sel)
kwargs = dict()
if pv.dev in ('BPM', 'PBPM'):
    icon = qta.icon('mdi.currency-sign', color=get_appropriate_color(pv.sec))
    window = create_window_from_widget(BPMMain,
                                       title=args.bpm_sel,
                                       is_main=True,
                                       icon=icon)
    kwargs.update(dict(prefix=args.prefix, bpm=pv))
else:
    sec = args.bpm_sel.upper()
    bpms_names = BPMSearch.get_names(filters={'sec': sec, 'dev': 'BPM'})
    icon = qta.icon('mdi.currency-sign', color=get_appropriate_color(sec))
    if args.window == 'Monitor':
        clas = SelectBPMs
        icon = get_monitor_icon('mdi.currency-sign',
                                color=get_appropriate_color(sec))
    elif args.window == 'SPass':
        clas = SinglePassSummary
Beispiel #19
0
#!/usr/bin/env python-sirius
"""RAD Monitor."""

import sys as sys
import argparse as argparse
import qtawesome as qta
from siriushla.util import get_appropriate_color
from siriuspy.envars import VACA_PREFIX
from siriushla.sirius_application import SiriusApplication
from siriushla.as_ap_radmon import RadTotDoseMonitor
from siriushla.widgets.windows import create_window_from_widget

parser = argparse.ArgumentParser(description="Run RAD Monitor.")
parser.add_argument('-p',
                    "--prefix",
                    type=str,
                    default=VACA_PREFIX,
                    help="Define the prefix for the PVs in the window.")
args = parser.parse_args()

app = SiriusApplication()
icon = qta.icon('fa5s.radiation', color=get_appropriate_color('AS'))
window = create_window_from_widget(RadTotDoseMonitor,
                                   'RAD: Total Dose Monitor',
                                   is_main=True,
                                   withscroll=True,
                                   icon=icon)
app.open_window(window, parent=None, prefix=args.prefix)
sys.exit(app.exec_())
Beispiel #20
0
import sys
import argparse as _argparse

import qtawesome as qta

from siriuspy.envars import VACA_PREFIX
from siriushla.util import get_appropriate_color
from siriushla.sirius_application import SiriusApplication
from siriushla.as_ap_monitor import SiriusMonitor
from siriushla.widgets.windows import create_window_from_widget

parser = _argparse.ArgumentParser(description="Run Sirius Monitor Interface.")
parser.add_argument('-p',
                    "--prefix",
                    type=str,
                    default=VACA_PREFIX,
                    help="Define the prefix for the PVs in the window.")
args = parser.parse_args()

app = SiriusApplication()
color = get_appropriate_color(section='AS')
icon = qta.icon('mdi.monitor-dashboard', color=color)
window = create_window_from_widget(SiriusMonitor,
                                   title='Sirius Monitor',
                                   icon=icon,
                                   is_main=True,
                                   withscroll=True,
                                   min_width=96)
app.open_window(window, parent=None, prefix=args.prefix)
sys.exit(app.exec_())
from siriushla.as_ti_control import TimingMain, MonitorWindow
from siriushla.util import get_appropriate_color, get_monitor_icon

parser = _argparse.ArgumentParser(description="Run Timing HLA Interface.")
parser.add_argument('-p',
                    "--prefix",
                    type=str,
                    default=VACA_PREFIX,
                    help="Define the prefix for the PVs in the window.")
parser.add_argument('-t',
                    "--type",
                    type=str,
                    default='main',
                    choices=('main', 'monitor'),
                    help="Whether to open monitor window.")
args = parser.parse_args()

app = SiriusApplication(None, sys.argv)
if args.type.lower() == 'main':
    app.open_window(TimingMain, parent=None, prefix=args.prefix)
else:
    icon = get_monitor_icon('mdi.timer', color=get_appropriate_color('AS'))
    window = create_window_from_widget(MonitorWindow,
                                       title='Timing Monitor',
                                       icon=icon,
                                       is_main=True,
                                       withscroll=True,
                                       min_width=25)
    app.open_window(window, parent=None, prefix=args.prefix)
sys.exit(app.exec_())