4 Commits

Author SHA1 Message Date
22fe41d4c2 310725 device file updated 2025-07-31 10:54:47 +02:00
7f52cccb22 fe gui draft 2025-07-25 11:00:27 +02:00
40feb0c7ed 240725 device file updated 2025-07-24 16:36:58 +02:00
gac-x10sa
6f3f0de4d8 Copy scan_history ui file from old deployment 2025-06-30 12:51:35 +02:00
7 changed files with 841 additions and 767 deletions

View File

@@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1801</width>
<height>1459</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>1801</width>
<height>1459</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Control Panel</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<widget class="QTabWidget" name="tabWidget_2">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>History</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="ScanHistory" name="scan_history"/>
</item>
<item>
<widget class="Waveform" name="waveform"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_5">
<attribute name="title">
<string>Heatmap</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QSplitter" name="splitter_2">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<widget class="QWidget" name="">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="Heatmap" name="heatmap_00"/>
</item>
<item row="0" column="1">
<widget class="Heatmap" name="heatmap_01"/>
</item>
<item row="1" column="0">
<widget class="Heatmap" name="heatmap_10"/>
</item>
<item row="1" column="1">
<widget class="Heatmap" name="heatmap_11"/>
</item>
</layout>
</widget>
<widget class="Heatmap" name="heatmap_bottom"/>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QWidget" name="">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="ScanControl" name="scan_control"/>
</item>
<item>
<widget class="BECQueue" name="bec_queue"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Logbook</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>24</pointsize>
</font>
</property>
<property name="text">
<string>Coming soon...</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Take a break</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="Minesweeper" name="minesweeper"/>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1073</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ScanControl</class>
<extends>QWidget</extends>
<header>scan_control</header>
</customwidget>
<customwidget>
<class>Heatmap</class>
<extends>QWidget</extends>
<header>heatmap</header>
</customwidget>
<customwidget>
<class>Waveform</class>
<extends>QWidget</extends>
<header>waveform</header>
</customwidget>
<customwidget>
<class>BECQueue</class>
<extends>QWidget</extends>
<header>bec_queue</header>
</customwidget>
<customwidget>
<class>Minesweeper</class>
<extends>QWidget</extends>
<header>minesweeper</header>
</customwidget>
<customwidget>
<class>ScanHistory</class>
<extends>QWidget</extends>
<header>scan_history</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@@ -65,7 +65,7 @@ class ScanHistory(BECWidget, QWidget):
icon_options = {"size": (16, 16), "convert_to_pixmap": False}
self.components["monitor_combobox"].apply_filter = False
self.components["monitor_combobox"].devices = ["lu_bpmsum", "ss_bpmsum"]
self.components["monitor_combobox"].devices = ["lu_bpmsum", "ss_bpmsum", "bcu_bpm", "i1","fe_bpmsum"]
self.components["history_spin_box"].setMinimum(-10000)
self.components["history_spin_box"].setMaximum(-1)

View File

@@ -1,8 +1,115 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ScanHistory</class>
<widget class="QWidget" name="ScanHistory">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>955</width>
<height>796</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="9,3">
<item>
<widget class="Waveform" name="waveform">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
<resources />
<connections />
</ui>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="monitor_label">
<property name="font">
<font/>
</property>
<property name="text">
<string>BPM Monitor</string>
</property>
</widget>
</item>
<item>
<widget class="DeviceComboBox" name="monitor_combobox"/>
</item>
<item>
<widget class="QLabel" name="history_label">
<property name="text">
<string>Scan History</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="history_spin_box"/>
</item>
<item>
<widget class="QPushButton" name="history_add">
<property name="text">
<string>Add scan</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="history_clear">
<property name="text">
<string>clear all</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="TextBox" name="metadata_text_box">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>795</width>
<height>191</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>TextBox</class>
<extends>QWidget</extends>
<header>text_box</header>
</customwidget>
<customwidget>
<class>DeviceComboBox</class>
<extends>QComboBox</extends>
<header>device_combobox</header>
</customwidget>
<customwidget>
<class>Waveform</class>
<extends>QWidget</extends>
<header>waveform</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ScanHistory</class>
<widget class="QWidget" name="ScanHistory">
</widget>
<resources />
<connections />
</ui>

View File

@@ -1,543 +0,0 @@
sls_current:
description: SLS current
deviceClass: ophyd.EpicsSignalRO
deviceConfig: {read_pv: 'ARS07-DPCT-0100:CURR', auto_monitor: true}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- SLS
readOnly: true
softwareTrigger: false
gap:
description: 'U19 gap'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-UIND:GAP'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- SLS
readOnly: false
softwareTrigger: false
ps1_press:
description: Pumpstand1 pressure
deviceClass: ophyd.EpicsSignalRO
deviceConfig: {read_pv: 'X10SA-FE-PUM1-VPIG-1020:PRESSURE', auto_monitor: true}
onFailure: buffer
enabled: true
readoutPriority: monitored
deviceTags:
- fe
readOnly: true
softwareTrigger: false
#xbpm1_temp:
# description: XBPM1 temp
# deviceClass: ophyd.EpicsSignalRO
# deviceConfig: {read_pv: 'X10SA-FE-XBPM1-ETTC-0010:TEMP', auto_monitor: true}
# onFailure: buffer
# enabled: true
# readoutPriority: monitored
# deviceTags:
# - fe
# readOnly: true
# softwareTrigger: false
s1_xw:
description: 'BSF slit outboard'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-SLH:TRXW'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
s1_xr:
description: 'BSF slit inboard'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-SLH:TRXR'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
s1_yt:
description: 'BSF slit top'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-SLV:TRYT'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
s1_yb:
description: 'BSF slit bottom'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-SLV:TRYB'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
s1_xcen:
description: 'BSF X centre'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-SLH:CENTER'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
s1_xsize:
description: 'BSF X size'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-SLH:SIZE'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
s1_ycen:
description: 'BSF Y centre'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-SLV:CENTER'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
opf1_y:
description: 'BSF Filter 1 Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-FI1:TRY'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
opf2_y:
description: 'BSF Filter 2 Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-OP-FI2:TRY'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- bsf
readOnly: false
softwareTrigger: false
ssbpm_x:
description: 'SS BPM X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSBPM1:TRX1'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
ssbpm_y:
description: 'SS BPM Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSBPM1:TRY1'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_xw:
description: 'SS slit wall'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSH1:TRXW'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_xr:
description: 'SS slit ring'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSH1:TRXR'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_xcen:
description: 'SS slit X centre'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSH1:CENTER'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_xsize:
description: 'SS slit X size'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSH1:CENTER'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_yt:
description: 'SS slit top'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSV1:TRYT'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_yb:
description: 'SS slit bottom'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSV1:TRYB'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_ycen:
description: 'SS slit Y centre'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSV1:CENTER'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
s2_ysize:
description: 'SS slit Y size'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSSV1:SIZE'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
xeye_x:
description: 'SS X-ray eye X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSXI1:TRX1'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
xeye_y:
description: 'SS X-ray eye Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-SSXI1:TRY1'}
onFailure: buffer
enabled: True
readoutPriority: monitored
deviceTags:
- ss
readOnly: false
softwareTrigger: false
vfm_xu:
description: 'VFM Upstream X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:TRXU'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_xd:
description: 'VFM Downstream X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:TRXD'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_yur:
description: 'VFM Upstream Ring Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:TRYUR'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_yw:
description: 'VFM Wall Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:TRYW'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_ydr:
description: 'VFM Downstream Ring Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:TRYDR'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_bu:
description: 'VFM Upstream Bender'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:BNDU'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_bd:
description: 'VFM Downstream Bender'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:BNDD'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_yaw:
description: 'VFM Virtual Yaw'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:YAW'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_roll:
description: 'VFM Virtual Roll'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:ROLL'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_pitch:
description: 'VFM Virtual Pitch'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:PITCH'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_lat:
description: 'VFM Virtual X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:TRX'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
vfm_vert:
description: 'VFM Virtual Y '
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-VFM:TRY'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- vfm
readOnly: false
softwareTrigger: false
hfm_xu:
description: 'HFM Upstream X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:TRXU'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_xd:
description: 'HFM Downstream X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:TRXD'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_yuw:
description: 'HFM Upstream Wall Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:TRYUW'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_yr:
description: 'HFM Ring Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:TRYR'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_ydw:
description: 'HFM Downstream Wall Y'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:TRYDW'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_bu:
description: 'HFM Upstream Bender'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:BNDU'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_bd:
description: 'HFM Downstream Bender'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:BNDD'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_yaw:
description: 'HFM Virtual Yaw'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:YAW'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_roll:
description: 'HFM Virtual Roll'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:ROLL'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_pitch:
description: 'HFM Virtual Pitch'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:PITCH'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_lat:
description: 'HFM Virtual X'
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:TRX'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false
hfm_vert:
description: 'HFM Virtual Y '
deviceClass: ophyd.EpicsMotor
deviceConfig: {prefix: 'X10SA-ES-HFM:TRY'}
onFailure: buffer
enabled: False
readoutPriority: monitored
deviceTags:
- hfm
readOnly: false
softwareTrigger: false

View File

@@ -1,5 +1,5 @@
base_config:
- !include ./device_config.yaml
- !include ./pxii-autogenerated.yaml
id_gap:
readoutPriority: baseline