Image Measurements

This commit is contained in:
gac-x11ma
2020-09-29 10:37:10 +02:00
parent 076b810bf1
commit 1507333ad4
14 changed files with 912 additions and 337 deletions

View File

@@ -4,7 +4,18 @@ pol_mode=ch.psi.pshell.epics.DiscretePositioner|X11MA-ID2:MODE|||true
pol_angle=ch.psi.pshell.epics.ChannelDouble|X11MA-ID2:ALPHA|||true
pol_offset=ch.psi.pshell.epics.ChannelDouble|X11MA-ID2:ENERGY-OFFS|||true
pol_done=ch.psi.pshell.epics.ChannelString|X11MA-ID2:DONE|Read||true
energy=ch.psi.pshell.epics.ChannelDouble|X11PHS-E:GO.A|||
id1_mode=ch.psi.pshell.epics.DiscretePositioner|X11MA-ID1:MODE|||true
id1_alpha=ch.psi.pshell.epics.ChannelDouble|X11MA-ID1:ALPHA|||true
id1_offset=ch.psi.pshell.epics.ChannelDouble|X11MA-ID1:ENERGY-OFFS|||true
id1_harmonic=ch.psi.pshell.epics.ChannelDouble|X11MA-ID1:HARMONIC|||true
id1_done=ch.psi.pshell.epics.ChannelString|X11MA-ID1:DONE|Read||true
id2_mode=ch.psi.pshell.epics.DiscretePositioner|X11MA-ID2:MODE|||true
id2_alpha=ch.psi.pshell.epics.ChannelDouble|X11MA-ID2:ALPHA|||true
id2_offset=ch.psi.pshell.epics.ChannelDouble|X11MA-ID2:ENERGY-OFFS|||true
id2_harmonic=ch.psi.pshell.epics.ChannelDouble|X11MA-ID2:HARMONIC|||true
id2_done=ch.psi.pshell.epics.ChannelString|X11MA-ID2:DONE|Read||true
energy=ch.psi.pshell.epics.ChannelDouble|X11PHS-E:GO.A|||true
energy_opt=ch.psi.pshell.epics.ChannelString|X11PHS-E:OPT|||true
id_error=ch.psi.pshell.epics.ChannelInteger|X11MA-ID2-PLC:ERROR|||true
beam_status=ch.psi.pshell.epics.DiscretePositioner|ACOAU-ACCU:OP-MODE|Read||true
edata=ch.psi.pshell.epics.ChannelDoubleArray|EDATA 3|Read||

View File

@@ -1,16 +1,16 @@
#Tue Sep 22 10:55:47 CEST 2020
#Tue Sep 29 10:36:31 CEST 2020
HARMONIC_ID_1=1
ENERGY=720.3
ENERGY=639.2
OUTLIERS_THRESHOLD=1000000000
POL_ID_1=Lin_Ver
POL_ID_1=Circ_Plus
NORM_FILE=/sls/X11MA/data/X11MA/Data1/public/PEEM/2020_09/i1904_1_0.tif
AUTO_SWITCH_VALVE=true
DRY_RUN=false
ALPHA_ID_2=0.0
ALPHA_ID_1=0.0
POL_ID_2=Lin_Hor
OFFSET_ID_1=-0.2
ID=ID1_ID2
OFFSET_ID_2=-1.3
ALPHA_ID_2=45.0
ALPHA_ID_1=15.0
POL_ID_2=Lin_Ver
OFFSET_ID_1=-1.5
ID=ID2
OFFSET_ID_2=-1.5
HARMONIC_ID_2=1
FdaBrowser=true

View File

@@ -1,2 +1,2 @@
#Tue Sep 22 11:22:50 CEST 2020
FileSequentialNumber=2124
#Tue Sep 29 04:32:04 CEST 2020
FileSequentialNumber=2333

View File

@@ -1,4 +1,4 @@
#Tue Sep 22 11:17:20 CEST 2020
#Fri Sep 25 21:06:12 CEST 2020
spatialCalOffsetY=NaN
spatialCalOffsetX=NaN
colormapLogarithmic=false
@@ -6,7 +6,7 @@ scale=1.0
grayscale=false
spatialCalScaleX=NaN
spatialCalScaleY=NaN
colormapMax=300.0
colormapMax=0.5
rescaleOffset=0.0
roiWidth=-1
colormap=Grayscale

View File

@@ -22,7 +22,7 @@
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="jTabbedPane1" max="32767" attributes="0"/>
<Component id="jTabbedPane1" pref="560" max="32767" attributes="0"/>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
</Group>
</Group>
@@ -229,60 +229,69 @@
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="checkAutoValve" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="jLabel3" linkSize="15" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="comboID" linkSize="16" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="jLabel27" linkSize="15" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="spinnerImgEng" linkSize="16" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="checkAutoValve" min="-2" max="-2" attributes="0"/>
<Component id="jLabel27" linkSize="15" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="deviceValuePanel1" pref="0" max="32767" attributes="0"/>
<Component id="spinnerImgEng" linkSize="16" max="32767" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Component id="jPanel7" max="32767" attributes="0"/>
<EmptySpace type="separate" min="-2" max="-2" attributes="0"/>
<Component id="jPanel9" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
<Component id="buttonApply" min="-2" pref="166" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
<Component id="jLabel3" linkSize="15" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="comboID" linkSize="16" max="32767" attributes="0"/>
<Component id="deviceValuePanel10" min="-2" pref="80" max="-2" attributes="0"/>
</Group>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jPanel7" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="jPanel9" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonApply" min="-2" pref="166" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="jPanel9" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jPanel7" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel9" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jPanel7" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="30" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="comboID" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="comboID" linkSize="29" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel10" linkSize="29" min="-2" pref="17" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel27" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgEng" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgEng" linkSize="28" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel1" linkSize="28" min="-2" pref="17" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="checkAutoValve" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonApply" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -305,6 +314,9 @@
</StringArray>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="comboIDActionPerformed"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
@@ -331,10 +343,26 @@
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="spinnerOff1" linkSize="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerHar1" linkSize="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerAlp1" linkSize="3" min="-2" max="-2" attributes="0"/>
<Component id="comboPol1" linkSize="3" min="-2" max="-2" attributes="0"/>
<Group type="102" attributes="0">
<Component id="spinnerAlp1" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel2" linkSize="18" min="-2" pref="62" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="spinnerHar1" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel4" linkSize="18" min="-2" pref="62" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="comboPol1" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel3" linkSize="18" min="-2" pref="62" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="spinnerOff1" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel5" linkSize="18" min="-2" pref="62" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
@@ -344,24 +372,28 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel5" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="comboPol1" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="deviceValuePanel3" linkSize="24" alignment="2" min="-2" pref="17" max="-2" attributes="0"/>
<Component id="comboPol1" linkSize="24" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="jLabel5" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel6" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerAlp1" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="jLabel6" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="spinnerAlp1" linkSize="25" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel2" linkSize="25" alignment="2" min="-2" pref="17" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel7" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerHar1" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="jLabel7" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="spinnerHar1" linkSize="26" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel4" linkSize="26" alignment="2" min="-2" pref="17" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel8" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerOff1" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="jLabel8" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="spinnerOff1" linkSize="27" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel5" linkSize="27" alignment="2" min="-2" pref="17" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
@@ -371,7 +403,7 @@
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel5">
<Properties>
<Property name="text" type="java.lang.String" value="Polarization:"/>
<Property name="text" type="java.lang.String" value="Mode:"/>
</Properties>
</Component>
<Component class="javax.swing.JComboBox" name="comboPol1">
@@ -385,6 +417,9 @@
</StringArray>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="comboPol1ActionPerformed"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
@@ -428,6 +463,26 @@
</Property>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel2">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id1_alpha"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel3">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id1_pol"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel4">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id1_harmonic"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel5">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id1_offset"/>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel9">
@@ -457,32 +512,43 @@
<Component id="spinnerAlp2" linkSize="5" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="comboPol2" linkSize="5" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="deviceValuePanel6" pref="60" max="32767" attributes="0"/>
<Component id="deviceValuePanel7" alignment="0" pref="0" max="32767" attributes="0"/>
<Component id="deviceValuePanel8" alignment="0" pref="0" max="32767" attributes="0"/>
<Component id="deviceValuePanel9" alignment="0" pref="0" max="32767" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel13" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="comboPol2" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="deviceValuePanel6" linkSize="19" alignment="2" min="-2" pref="7" max="-2" attributes="0"/>
<Component id="comboPol2" linkSize="19" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="jLabel13" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel14" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerAlp2" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="deviceValuePanel7" linkSize="20" alignment="2" min="-2" pref="7" max="-2" attributes="0"/>
<Component id="spinnerAlp2" linkSize="20" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="jLabel14" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel15" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerHar2" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="jLabel15" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="spinnerHar2" linkSize="21" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel8" linkSize="21" alignment="2" min="-2" pref="7" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel16" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerOff2" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="jLabel16" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="spinnerOff2" linkSize="22" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel9" linkSize="22" alignment="2" min="-2" pref="6" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
@@ -492,7 +558,7 @@
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel13">
<Properties>
<Property name="text" type="java.lang.String" value="Polarization:"/>
<Property name="text" type="java.lang.String" value="Mode:"/>
</Properties>
</Component>
<Component class="javax.swing.JComboBox" name="comboPol2">
@@ -506,6 +572,9 @@
</StringArray>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="comboPol2ActionPerformed"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
@@ -549,6 +618,26 @@
</Property>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel6">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id2_pol"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel7">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id2_alpha"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel8">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id2_harmonic"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel9">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id2_offset"/>
</Properties>
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JButton" name="buttonApply">
@@ -562,7 +651,7 @@
<Component class="javax.swing.JLabel" name="jLabel27">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Energy"/>
<Property name="text" type="java.lang.String" value="Energy:"/>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="spinnerImgEng">
@@ -580,6 +669,16 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="checkAutoValveActionPerformed"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel1">
<Properties>
<Property name="deviceName" type="java.lang.String" value="energy"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel10">
<Properties>
<Property name="deviceName" type="java.lang.String" value="energy_opt_desc"/>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="panelNorm">
@@ -777,22 +876,22 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
<Component id="rendererRoi" pref="0" max="32767" attributes="0"/>
<Component id="rendererRoi" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel26" min="-2" max="-2" attributes="0"/>
<Component id="buttonRoiAdd" linkSize="14" alignment="0" min="-2" pref="200" max="-2" attributes="0"/>
<Component id="buttonRoiRemove" linkSize="14" min="-2" pref="200" max="-2" attributes="0"/>
<Component id="jScrollPane1" linkSize="14" min="-2" pref="200" max="-2" attributes="0"/>
<Component id="buttonTriggerDetector" linkSize="14" min="-2" pref="200" max="-2" attributes="0"/>
</Group>
<EmptySpace min="1" pref="1" max="-2" attributes="0"/>
</Group>
<Component id="buttonShowDetectorPanel" linkSize="14" alignment="1" min="-2" pref="201" max="-2" attributes="0"/>
<Component id="buttonTriggerDetector" linkSize="14" alignment="1" min="-2" pref="200" max="-2" attributes="0"/>
<Component id="buttonShowDetectorPanel" linkSize="14" alignment="1" pref="201" max="32767" attributes="0"/>
<Component id="buttonMeasurements" linkSize="14" alignment="1" max="32767" attributes="0"/>
<Component id="jScrollPane1" linkSize="14" alignment="1" min="-2" pref="200" max="-2" attributes="0"/>
<Component id="buttonRoiRemove" linkSize="14" alignment="1" min="-2" pref="200" max="-2" attributes="0"/>
<Component id="buttonRoiAdd" linkSize="14" alignment="1" min="-2" pref="200" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<EmptySpace min="472" pref="472" max="-2" attributes="0"/>
<Component id="jLabel26" min="-2" max="-2" attributes="0"/>
<EmptySpace min="182" pref="182" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -808,9 +907,11 @@
<Component id="buttonRoiRemove" min="-2" pref="25" max="-2" attributes="0"/>
<EmptySpace type="separate" min="-2" max="-2" attributes="0"/>
<Component id="jLabel26" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="jScrollPane1" pref="338" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jScrollPane1" pref="297" max="32767" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="buttonMeasurements" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonShowDetectorPanel" min="-2" pref="25" max="-2" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="buttonTriggerDetector" min="-2" max="-2" attributes="0"/>
@@ -894,6 +995,14 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonShowDetectorPanelActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JToggleButton" name="buttonMeasurements">
<Properties>
<Property name="text" type="java.lang.String" value="Image Measurements"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonMeasurementsActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel2">
@@ -929,7 +1038,7 @@
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="18" max="-2" attributes="0"/>
<Component id="panelImgControls" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="304" max="32767" attributes="0"/>
<EmptySpace pref="250" max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="buttonImgStart" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="buttonImgAbort" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -961,12 +1070,23 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="1" attributes="0">
<Component id="labelSwitching" min="-2" max="-2" attributes="0"/>
<Component id="jLabel21" min="-2" max="-2" attributes="0"/>
<Component id="jLabel20" min="-2" max="-2" attributes="0"/>
<Component id="jLabel28" pref="99" max="32767" attributes="0"/>
<Group type="103" groupAlignment="1" max="-2" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="labelSwitching" min="-2" max="-2" attributes="0"/>
<Component id="jLabel21" min="-2" max="-2" attributes="0"/>
<Component id="jLabel20" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" alignment="1" attributes="0">
<EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
<Component id="jLabel22" pref="77" max="32767" attributes="0"/>
</Group>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
@@ -974,10 +1094,12 @@
<Component id="comboImgMethod" linkSize="10" max="32767" attributes="0"/>
<Component id="checkImgAutosave" linkSize="10" max="32767" attributes="0"/>
<Component id="comboSwitch" linkSize="10" alignment="0" max="32767" attributes="0"/>
<Component id="deviceValuePanel11" alignment="0" pref="0" max="32767" attributes="0"/>
<Component id="deviceValuePanel12" pref="0" max="32767" attributes="0"/>
</Group>
<EmptySpace type="separate" max="32767" attributes="0"/>
<EmptySpace type="separate" pref="20" max="32767" attributes="0"/>
<Component id="jPanel8" max="32767" attributes="0"/>
<EmptySpace type="separate" max="32767" attributes="0"/>
<EmptySpace type="separate" pref="21" max="32767" attributes="0"/>
<Component id="jPanel10" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
@@ -987,9 +1109,7 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel8" min="-2" max="-2" attributes="0"/>
<Component id="jPanel10" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="3" attributes="0">
<Component id="comboImgMethod" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -1008,8 +1128,20 @@
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="checkImgAutosave" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="jPanel8" alignment="0" max="32767" attributes="0"/>
<Component id="jPanel10" alignment="0" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="24" max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="jLabel22" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel11" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="jLabel28" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel12" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="34" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -1028,9 +1160,8 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel10" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel11" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel9" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel4" alignment="1" min="-2" max="-2" attributes="0"/>
@@ -1039,7 +1170,6 @@
<Group type="103" groupAlignment="0" attributes="0">
<Component id="spinnerImgExp1" linkSize="6" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgAvg1" linkSize="6" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="comboImgPol1" linkSize="6" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgEng1" linkSize="6" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
@@ -1064,11 +1194,6 @@
<Component id="jLabel11" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgEng1" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel10" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="comboImgPol1" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
@@ -1101,26 +1226,6 @@
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel10">
<Properties>
<Property name="text" type="java.lang.String" value="Polarization:"/>
</Properties>
</Component>
<Component class="javax.swing.JComboBox" name="comboImgPol1">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="4">
<StringItem index="0" value="Item 1"/>
<StringItem index="1" value="Item 2"/>
<StringItem index="2" value="Item 3"/>
<StringItem index="3" value="Item 4"/>
</StringArray>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="jLabel11">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
@@ -1149,10 +1254,9 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel19" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel18" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel17" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel12" alignment="1" min="-2" max="-2" attributes="0"/>
</Group>
@@ -1160,7 +1264,6 @@
<Group type="103" groupAlignment="0" attributes="0">
<Component id="spinnerImgExp2" linkSize="8" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgAvg2" linkSize="8" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="comboImgPol2" linkSize="8" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgEng2" linkSize="8" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
@@ -1185,11 +1288,6 @@
<Component id="jLabel19" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerImgEng2" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel18" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="comboImgPol2" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
@@ -1222,26 +1320,6 @@
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel18">
<Properties>
<Property name="text" type="java.lang.String" value="Polarization:"/>
</Properties>
</Component>
<Component class="javax.swing.JComboBox" name="comboImgPol2">
<Properties>
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="4">
<StringItem index="0" value="Item 1"/>
<StringItem index="1" value="Item 2"/>
<StringItem index="2" value="Item 3"/>
<StringItem index="3" value="Item 4"/>
</StringArray>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="jLabel19">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
@@ -1320,6 +1398,28 @@
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
</AuxValues>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel11">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id1_pol"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel22">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Mode ID1:"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel28">
<Properties>
<Property name="horizontalAlignment" type="int" value="11"/>
<Property name="text" type="java.lang.String" value="Mode ID2:"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.DeviceValuePanel" name="deviceValuePanel12">
<Properties>
<Property name="deviceName" type="java.lang.String" value="id2_pol"/>
</Properties>
</Component>
</SubComponents>
</Container>
</SubComponents>
@@ -1422,9 +1522,9 @@
<Component id="jLabel25" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spinnerSpecScans" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="unrelated" pref="126" max="32767" attributes="0"/>
<EmptySpace type="unrelated" pref="127" max="32767" attributes="0"/>
<Component id="checkSpecSwitchPol" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="121" max="32767" attributes="0"/>
<EmptySpace min="0" pref="122" max="32767" attributes="0"/>
</Group>
<Component id="jPanel4" max="32767" attributes="0"/>
</Group>

View File

@@ -5,6 +5,7 @@ import ch.psi.pshell.imaging.Overlays.Rect;
import ch.psi.pshell.imaging.Pen;
import ch.psi.pshell.imaging.Renderer;
import ch.psi.pshell.imaging.RendererListener;
import ch.psi.pshell.swing.DeviceValuePanel;
import ch.psi.pshell.ui.App;
import ch.psi.pshell.ui.Panel;
import ch.psi.utils.Arr;
@@ -12,6 +13,7 @@ import ch.psi.utils.State;
import ch.psi.utils.swing.SwingUtils;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Point;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
@@ -29,6 +31,7 @@ import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JToggleButton;
import javax.swing.SwingConstants;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.filechooser.FileNameExtensionFilter;
@@ -54,7 +57,8 @@ public class Eiger extends Panel {
Circ_Plus,
Circ_Minus,
Lin_Hor,
Lin_Ver
Lin_Ver,
Lin
}
public enum ImgMethod {
@@ -78,8 +82,6 @@ public class Eiger extends Panel {
comboSwitch.setSelectedIndex(1);
SwingUtils.setEnumCombo(comboPol1, Polarization.class, true);
SwingUtils.setEnumCombo(comboPol2, Polarization.class, true);
SwingUtils.setEnumCombo(comboImgPol1, Polarization.class, true);
SwingUtils.setEnumCombo(comboImgPol2, Polarization.class, true);
SwingUtils.setEnumCombo(comboImgMethod, ImgMethod.class, true);
Component[] parameterControls = new Component[0];
@@ -88,6 +90,16 @@ public class Eiger extends Panel {
parameterControls = Arr.append(parameterControls, SwingUtils.getComponentsByType(panel, cls));
}
}
Font devValueFont = deviceValuePanel1.getFont().deriveFont(8.0f);
for (Component panel : SwingUtils.getComponentsByType(panelBeamline, DeviceValuePanel.class)){
((DeviceValuePanel)panel).getLabel().setFont(devValueFont);
((DeviceValuePanel)panel).getLabel().setVerticalAlignment(SwingConstants.TOP);
((DeviceValuePanel)panel).getLabel().setVerticalTextPosition(SwingConstants.TOP);
}
deviceValuePanel1.getLabel().setVerticalAlignment(SwingConstants.TOP);
deviceValuePanel1.getLabel().setFont(deviceValuePanel1.getFont().deriveFont(8.0f));
parameterControls = Arr.append(parameterControls, SwingUtils.getComponentsByType(panelRoi, JButton.class));
this.parameterControls = parameterControls;
setPersistedComponents(parameterControls);
@@ -192,6 +204,8 @@ public class Eiger extends Panel {
void updateControls() {
boolean editable = getState().isInitialized() && !getState().isProcessing();
boolean is_id1 = comboID.getSelectedIndex() != 1;
boolean is_id2 = comboID.getSelectedIndex() != 0;
textDataPath.setEnabled(editable);
spinnerSeq.setEnabled(editable);
buttonDefaultPath.setEnabled(editable && !textDataPath.getText().equals(DEFAULT_PATH));
@@ -199,17 +213,24 @@ public class Eiger extends Panel {
buttonUndoPath.setEnabled(editable && !textDataPath.getText().equals(getContext().getConfig().dataPath));
buttonSetSeq.setEnabled(editable && !spinnerSeq.getValue().equals(getContext().getFileSequentialNumber()));
buttonUndoSeq.setEnabled(editable && !spinnerSeq.getValue().equals(getContext().getFileSequentialNumber()));
buttonApply.setEnabled(editable);
for (Component c : parameterControls) {
c.setEnabled(editable);
}
if (editable) {
comboSwitch.setEnabled(comboImgMethod.getSelectedItem() == ImgMethod.Two_Pol.toString());
comboImgPol1.setEnabled(comboImgMethod.getSelectedItem() == ImgMethod.Two_Pol.toString());
comboImgPol2.setEnabled(comboImgMethod.getSelectedItem() == ImgMethod.Two_Pol.toString());
spinnerImgEng1.setEnabled(comboImgMethod.getSelectedItem() == ImgMethod.Two_Energies.toString());
spinnerImgEng2.setEnabled(comboImgMethod.getSelectedItem() == ImgMethod.Two_Energies.toString());
spinnerImgEng2.setEnabled(comboImgMethod.getSelectedItem() == ImgMethod.Two_Energies.toString());
spinnerAlp1.setEnabled(is_id1 && (comboPol1.getSelectedItem() == Polarization.Lin.toString()));
spinnerAlp2.setEnabled(is_id2 & (comboPol2.getSelectedItem() == Polarization.Lin.toString()));
spinnerHar1.setEnabled(is_id1 );
spinnerHar2.setEnabled(is_id2 );
spinnerOff1.setEnabled(is_id1 );
spinnerOff2.setEnabled(is_id2 );
comboPol1.setEnabled(is_id1 );
comboPol2.setEnabled(is_id2 );
}
buttonImgStart.setEnabled(getState() == State.Ready);
@@ -298,11 +319,9 @@ public class Eiger extends Panel {
args.put("EXPOSURE_1", spinnerImgExp1.getValue());
args.put("AVERAGE_1", spinnerImgAvg1.getValue());
args.put("ENERGY_1", spinnerImgEng1.getValue());
args.put("POLARIZATION_1", comboImgPol1.getSelectedItem());
args.put("EXPOSURE_2", spinnerImgExp2.getValue());
args.put("AVERAGE_2", spinnerImgAvg2.getValue());
args.put("ENERGY_2", spinnerImgEng2.getValue());
args.put("POLARIZATION_2", comboImgPol2.getSelectedItem());
runAsync("templates/Eiger2Img", args).handle((ret, t) -> {
if ((t != null) && (!getContext().isAborted())) {
@@ -432,6 +451,10 @@ public class Eiger extends Panel {
spinnerHar1 = new javax.swing.JSpinner();
jLabel8 = new javax.swing.JLabel();
spinnerOff1 = new javax.swing.JSpinner();
deviceValuePanel2 = new ch.psi.pshell.swing.DeviceValuePanel();
deviceValuePanel3 = new ch.psi.pshell.swing.DeviceValuePanel();
deviceValuePanel4 = new ch.psi.pshell.swing.DeviceValuePanel();
deviceValuePanel5 = new ch.psi.pshell.swing.DeviceValuePanel();
jPanel9 = new javax.swing.JPanel();
jLabel13 = new javax.swing.JLabel();
comboPol2 = new javax.swing.JComboBox<>();
@@ -441,10 +464,16 @@ public class Eiger extends Panel {
spinnerHar2 = new javax.swing.JSpinner();
jLabel16 = new javax.swing.JLabel();
spinnerOff2 = new javax.swing.JSpinner();
deviceValuePanel6 = new ch.psi.pshell.swing.DeviceValuePanel();
deviceValuePanel7 = new ch.psi.pshell.swing.DeviceValuePanel();
deviceValuePanel8 = new ch.psi.pshell.swing.DeviceValuePanel();
deviceValuePanel9 = new ch.psi.pshell.swing.DeviceValuePanel();
buttonApply = new javax.swing.JButton();
jLabel27 = new javax.swing.JLabel();
spinnerImgEng = new javax.swing.JSpinner();
checkAutoValve = new javax.swing.JCheckBox();
deviceValuePanel1 = new ch.psi.pshell.swing.DeviceValuePanel();
deviceValuePanel10 = new ch.psi.pshell.swing.DeviceValuePanel();
panelNorm = new javax.swing.JPanel();
buttonSetNorm = new javax.swing.JButton();
textNorm = new javax.swing.JTextField();
@@ -466,6 +495,7 @@ public class Eiger extends Panel {
tableRoi = new javax.swing.JTable();
buttonTriggerDetector = new javax.swing.JButton();
buttonShowDetectorPanel = new javax.swing.JButton();
buttonMeasurements = new javax.swing.JToggleButton();
jPanel2 = new javax.swing.JPanel();
buttonImgStart = new javax.swing.JButton();
buttonImgAbort = new javax.swing.JButton();
@@ -475,8 +505,6 @@ public class Eiger extends Panel {
spinnerImgExp1 = new javax.swing.JSpinner();
jLabel9 = new javax.swing.JLabel();
spinnerImgAvg1 = new javax.swing.JSpinner();
jLabel10 = new javax.swing.JLabel();
comboImgPol1 = new javax.swing.JComboBox<>();
jLabel11 = new javax.swing.JLabel();
spinnerImgEng1 = new javax.swing.JSpinner();
jPanel10 = new javax.swing.JPanel();
@@ -484,8 +512,6 @@ public class Eiger extends Panel {
spinnerImgExp2 = new javax.swing.JSpinner();
jLabel17 = new javax.swing.JLabel();
spinnerImgAvg2 = new javax.swing.JSpinner();
jLabel18 = new javax.swing.JLabel();
comboImgPol2 = new javax.swing.JComboBox<>();
jLabel19 = new javax.swing.JLabel();
spinnerImgEng2 = new javax.swing.JSpinner();
jLabel21 = new javax.swing.JLabel();
@@ -495,6 +521,10 @@ public class Eiger extends Panel {
checkImgAutosave = new javax.swing.JCheckBox();
labelSwitching = new javax.swing.JLabel();
comboSwitch = new javax.swing.JComboBox<>();
deviceValuePanel11 = new ch.psi.pshell.swing.DeviceValuePanel();
jLabel22 = new javax.swing.JLabel();
jLabel28 = new javax.swing.JLabel();
deviceValuePanel12 = new ch.psi.pshell.swing.DeviceValuePanel();
jPanel3 = new javax.swing.JPanel();
panelSpectrum = new javax.swing.JPanel();
jLabel23 = new javax.swing.JLabel();
@@ -636,12 +666,22 @@ public class Eiger extends Panel {
jLabel3.setText("ID:");
comboID.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
comboID.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboIDActionPerformed(evt);
}
});
jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("ID1"));
jLabel5.setText("Polarization:");
jLabel5.setText("Mode:");
comboPol1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
comboPol1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboPol1ActionPerformed(evt);
}
});
jLabel6.setText("Alpha:");
@@ -655,6 +695,14 @@ public class Eiger extends Panel {
spinnerOff1.setModel(new javax.swing.SpinnerNumberModel(0.0d, -10.0d, 10.0d, 1.0d));
deviceValuePanel2.setDeviceName("id1_alpha");
deviceValuePanel3.setDeviceName("id1_pol");
deviceValuePanel4.setDeviceName("id1_harmonic");
deviceValuePanel5.setDeviceName("id1_offset");
javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
jPanel7.setLayout(jPanel7Layout);
jPanel7Layout.setHorizontalGroup(
@@ -668,42 +716,73 @@ public class Eiger extends Panel {
.addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(spinnerOff1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerHar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerAlp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboPol1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(spinnerAlp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(spinnerHar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deviceValuePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(comboPol1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deviceValuePanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(spinnerOff1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deviceValuePanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel7Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboPol1, spinnerAlp1, spinnerHar1, spinnerOff1});
jPanel7Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {deviceValuePanel2, deviceValuePanel3, deviceValuePanel4, deviceValuePanel5});
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(comboPol1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(deviceValuePanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboPol1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel6)
.addComponent(spinnerAlp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(spinnerAlp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel7)
.addComponent(spinnerHar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(spinnerHar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(deviceValuePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel8)
.addComponent(spinnerOff1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(spinnerOff1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(deviceValuePanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel7Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboPol1, deviceValuePanel3});
jPanel7Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel2, spinnerAlp1});
jPanel7Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel4, spinnerHar1});
jPanel7Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel5, spinnerOff1});
jPanel9.setBorder(javax.swing.BorderFactory.createTitledBorder("ID2"));
jLabel13.setText("Polarization:");
jLabel13.setText("Mode:");
comboPol2.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
comboPol2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboPol2ActionPerformed(evt);
}
});
jLabel14.setText("Alpha:");
@@ -717,6 +796,14 @@ public class Eiger extends Panel {
spinnerOff2.setModel(new javax.swing.SpinnerNumberModel(0.0d, -10.0d, 10.0d, 1.0d));
deviceValuePanel6.setDeviceName("id2_pol");
deviceValuePanel7.setDeviceName("id2_alpha");
deviceValuePanel8.setDeviceName("id2_harmonic");
deviceValuePanel9.setDeviceName("id2_offset");
javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
jPanel9.setLayout(jPanel9Layout);
jPanel9Layout.setHorizontalGroup(
@@ -734,6 +821,12 @@ public class Eiger extends Panel {
.addComponent(spinnerHar2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerAlp2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboPol2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(deviceValuePanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
.addComponent(deviceValuePanel7, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addComponent(deviceValuePanel8, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addComponent(deviceValuePanel9, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
@@ -743,24 +836,36 @@ public class Eiger extends Panel {
jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel9Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel13)
.addComponent(comboPol2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(deviceValuePanel6, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboPol2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel13))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel14)
.addComponent(spinnerAlp2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(deviceValuePanel7, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerAlp2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel14))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel15)
.addComponent(spinnerHar2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(spinnerHar2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(deviceValuePanel8, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel16)
.addComponent(spinnerOff2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(spinnerOff2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(deviceValuePanel9, javax.swing.GroupLayout.PREFERRED_SIZE, 6, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel9Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboPol2, deviceValuePanel6});
jPanel9Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel7, spinnerAlp2});
jPanel9Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel8, spinnerHar2});
jPanel9Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel9, spinnerOff2});
buttonApply.setText("Apply");
buttonApply.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -769,7 +874,7 @@ public class Eiger extends Panel {
});
jLabel27.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel27.setText("Energy");
jLabel27.setText("Energy:");
spinnerImgEng.setModel(new javax.swing.SpinnerNumberModel(1000.0d, 90.0d, 2520.0d, 1.0d));
@@ -780,6 +885,10 @@ public class Eiger extends Panel {
}
});
deviceValuePanel1.setDeviceName("energy");
deviceValuePanel10.setDeviceName("energy_opt_desc");
javax.swing.GroupLayout panelBeamlineLayout = new javax.swing.GroupLayout(panelBeamline);
panelBeamline.setLayout(panelBeamlineLayout);
panelBeamlineLayout.setHorizontalGroup(
@@ -787,26 +896,27 @@ public class Eiger extends Panel {
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(checkAutoValve)
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(comboID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addComponent(jLabel27)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(spinnerImgEng, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(checkAutoValve))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jLabel27)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addComponent(spinnerImgEng)))
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(buttonApply, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(comboID, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(deviceValuePanel10, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonApply, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
panelBeamlineLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel27, jLabel3});
@@ -815,27 +925,37 @@ public class Eiger extends Panel {
panelBeamlineLayout.setVerticalGroup(
panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelBeamlineLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(panelBeamlineLayout.createSequentialGroup()
.addGap(30, 30, 30)
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(comboID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deviceValuePanel10, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel27)
.addComponent(spinnerImgEng, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(checkAutoValve)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonApply)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
panelBeamlineLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel1, spinnerImgEng});
panelBeamlineLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboID, deviceValuePanel10});
panelNorm.setBorder(javax.swing.BorderFactory.createTitledBorder("Normalization"));
buttonSetNorm.setText("Select");
@@ -1061,28 +1181,36 @@ public class Eiger extends Panel {
}
});
buttonMeasurements.setText("Image Measurements");
buttonMeasurements.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonMeasurementsActionPerformed(evt);
}
});
javax.swing.GroupLayout panelRoiLayout = new javax.swing.GroupLayout(panelRoi);
panelRoi.setLayout(panelRoiLayout);
panelRoiLayout.setHorizontalGroup(
panelRoiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelRoiLayout.createSequentialGroup()
.addGap(17, 17, 17)
.addComponent(rendererRoi, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addComponent(rendererRoi, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelRoiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelRoiLayout.createSequentialGroup()
.addGroup(panelRoiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel26)
.addComponent(buttonRoiAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonRoiRemove, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonTriggerDetector, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(1, 1, 1))
.addComponent(buttonShowDetectorPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 201, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
.addComponent(buttonTriggerDetector, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonShowDetectorPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE)
.addComponent(buttonMeasurements, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonRoiRemove, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonRoiAdd, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(13, 13, 13))
.addGroup(panelRoiLayout.createSequentialGroup()
.addGap(472, 472, 472)
.addComponent(jLabel26)
.addGap(182, 182, 182))
);
panelRoiLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonRoiAdd, buttonRoiRemove, buttonShowDetectorPanel, buttonTriggerDetector, jScrollPane1});
panelRoiLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonMeasurements, buttonRoiAdd, buttonRoiRemove, buttonShowDetectorPanel, buttonTriggerDetector, jScrollPane1});
panelRoiLayout.setVerticalGroup(
panelRoiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -1097,7 +1225,9 @@ public class Eiger extends Panel {
.addGap(18, 18, 18)
.addComponent(jLabel26)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 338, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 297, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(buttonMeasurements)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonShowDetectorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
@@ -1133,10 +1263,6 @@ public class Eiger extends Panel {
spinnerImgAvg1.setModel(new javax.swing.SpinnerNumberModel(1, 1, 1000, 1));
jLabel10.setText("Polarization:");
comboImgPol1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel11.setText("Energy:");
@@ -1147,9 +1273,8 @@ public class Eiger extends Panel {
jPanel8Layout.setHorizontalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGap(14, 14, 14)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel10, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING))
@@ -1157,12 +1282,11 @@ public class Eiger extends Panel {
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(spinnerImgExp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerImgAvg1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboImgPol1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerImgEng1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel8Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboImgPol1, spinnerImgAvg1, spinnerImgEng1, spinnerImgExp1});
jPanel8Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerImgAvg1, spinnerImgEng1, spinnerImgExp1});
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -1179,10 +1303,6 @@ public class Eiger extends Panel {
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel11)
.addComponent(spinnerImgEng1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel10)
.addComponent(comboImgPol1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
@@ -1198,10 +1318,6 @@ public class Eiger extends Panel {
spinnerImgAvg2.setModel(new javax.swing.SpinnerNumberModel(1, 1, 1000, 1));
jLabel18.setText("Polarization:");
comboImgPol2.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jLabel19.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel19.setText("Energy:");
@@ -1212,22 +1328,20 @@ public class Eiger extends Panel {
jPanel10Layout.setHorizontalGroup(
jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel10Layout.createSequentialGroup()
.addContainerGap()
.addGap(14, 14, 14)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel19, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel18, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel17, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel12, javax.swing.GroupLayout.Alignment.TRAILING))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(spinnerImgExp2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerImgAvg2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboImgPol2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerImgEng2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel10Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboImgPol2, spinnerImgAvg2, spinnerImgEng2, spinnerImgExp2});
jPanel10Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerImgAvg2, spinnerImgEng2, spinnerImgExp2});
jPanel10Layout.setVerticalGroup(
jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -1244,10 +1358,6 @@ public class Eiger extends Panel {
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel19)
.addComponent(spinnerImgEng2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel18)
.addComponent(comboImgPol2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
@@ -1273,25 +1383,44 @@ public class Eiger extends Panel {
comboSwitch.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
deviceValuePanel11.setDeviceName("id1_pol");
jLabel22.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel22.setText("Mode ID1:");
jLabel28.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel28.setText("Mode ID2:");
deviceValuePanel12.setDeviceName("id2_pol");
javax.swing.GroupLayout panelImgControlsLayout = new javax.swing.GroupLayout(panelImgControls);
panelImgControls.setLayout(panelImgControlsLayout);
panelImgControlsLayout.setHorizontalGroup(
panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelImgControlsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(labelSwitching)
.addComponent(jLabel21)
.addComponent(jLabel20))
.addComponent(jLabel28, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE)
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(panelImgControlsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(labelSwitching)
.addComponent(jLabel21)
.addComponent(jLabel20)))
.addGroup(panelImgControlsLayout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(jLabel22, javax.swing.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(spinnerImgMeasurements)
.addComponent(comboImgMethod, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(checkImgAutosave, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(comboSwitch, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, Short.MAX_VALUE)
.addComponent(comboSwitch, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(deviceValuePanel11, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addComponent(deviceValuePanel12, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addGap(18, 20, Short.MAX_VALUE)
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(18, 18, Short.MAX_VALUE)
.addGap(18, 21, Short.MAX_VALUE)
.addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
@@ -1302,9 +1431,7 @@ public class Eiger extends Panel {
panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelImgControlsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(panelImgControlsLayout.createSequentialGroup()
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(comboImgMethod, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -1318,8 +1445,18 @@ public class Eiger extends Panel {
.addComponent(labelSwitching)
.addComponent(comboSwitch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(checkImgAutosave)))
.addContainerGap())
.addComponent(checkImgAutosave))
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(24, 24, 24)
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel22)
.addComponent(deviceValuePanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelImgControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel28)
.addComponent(deviceValuePanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(34, Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
@@ -1346,7 +1483,7 @@ public class Eiger extends Panel {
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(panelImgControls, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 304, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 250, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonImgStart)
.addComponent(buttonImgAbort))
@@ -1493,9 +1630,9 @@ public class Eiger extends Panel {
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel25)
.addComponent(spinnerSpecScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, 126, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, 127, Short.MAX_VALUE)
.addComponent(checkSpecSwitchPol)
.addGap(0, 121, Short.MAX_VALUE))
.addGap(0, 122, Short.MAX_VALUE))
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
@@ -1556,7 +1693,7 @@ public class Eiger extends Panel {
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jTabbedPane1)
.addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 560, Short.MAX_VALUE)
.addGap(0, 0, 0))
);
}// </editor-fold>//GEN-END:initComponents
@@ -1786,12 +1923,33 @@ public class Eiger extends Panel {
}
}//GEN-LAST:event_spinnerOutliersThresholdStateChanged
private void comboPol1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboPol1ActionPerformed
updateControls();
}//GEN-LAST:event_comboPol1ActionPerformed
private void comboPol2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboPol2ActionPerformed
updateControls();
}//GEN-LAST:event_comboPol2ActionPerformed
private void comboIDActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboIDActionPerformed
updateControls();
}//GEN-LAST:event_comboIDActionPerformed
private void buttonMeasurementsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMeasurementsActionPerformed
try{
evalAsync(buttonMeasurements.isSelected() ? "start_measurements()" : "stop_measurements()");
} catch (Exception ex){
showException (ex);
}
}//GEN-LAST:event_buttonMeasurementsActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonAdd;
private javax.swing.JButton buttonApply;
private javax.swing.JButton buttonDefaultPath;
private javax.swing.JButton buttonImgAbort;
private javax.swing.JButton buttonImgStart;
private javax.swing.JToggleButton buttonMeasurements;
private javax.swing.JButton buttonRemove;
private javax.swing.JButton buttonRoiAdd;
private javax.swing.JButton buttonRoiRemove;
@@ -1813,13 +1971,22 @@ public class Eiger extends Panel {
private javax.swing.JCheckBox checkSpecWithI0;
private javax.swing.JComboBox<String> comboID;
private javax.swing.JComboBox<String> comboImgMethod;
private javax.swing.JComboBox<String> comboImgPol1;
private javax.swing.JComboBox<String> comboImgPol2;
private javax.swing.JComboBox<String> comboPol1;
private javax.swing.JComboBox<String> comboPol2;
private javax.swing.JComboBox<String> comboSwitch;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel1;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel10;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel11;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel12;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel2;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel3;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel4;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel5;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel6;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel7;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel8;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel9;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
@@ -1827,16 +1994,17 @@ public class Eiger extends Panel {
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel22;
private javax.swing.JLabel jLabel23;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel25;
private javax.swing.JLabel jLabel26;
private javax.swing.JLabel jLabel27;
private javax.swing.JLabel jLabel28;
private javax.swing.JLabel jLabel29;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel30;

86
script/devices/diag.py Normal file
View File

@@ -0,0 +1,86 @@
from collections import OrderedDict
diag_channels = { \
#"photon energy": "X11MA-PGM:rbkenergy", \
#"grating number": "X11MA-PGM:grating", \
#"cff value": "X11MA-PGM:rbkcff", \
"diffraction order": "X11MA-PGM:difforder0", \
#"exit slit size":"X11MA-OP2-SL:TRY.VAL", \
"front end size":"X11MA-FE-DSAPER", \
"status fast shutter":"X11MA-VME-ES1:FAST-SHTR", \
"girder x": "X11MA-HG:X1", \
"girder y": "X11MA-HG:Y1", \
"girder z": "X11MA-HG:Z1", \
"girder pitch": "X11MA-HG:PITCH1", \
"girder yaw": "X11MA-HG:YAW1", \
"girder roll set": "X11MA-HG:ROLL_SET", \
"CMU ox": "X11MA-OP-CM:ox", \
"CMU oy": "X11MA-OP-CM:oy", \
"CMU oz": "X11MA-OP-CM:oz", \
"CMU oRx": "X11MA-OP-CM:oRx", \
"CMU oRy": "X11MA-OP-CM:oRy", \
"CMU oRz": "X11MA-OP-CM:oRz", \
"CMU TRB": "X11MA-OP2-CM:TRB.RBV", \
#"mode": "X11PHS-E:OPT", \
#"id1 mode": "X11MA-ID1:MODE", \
#"id1 offset": "X11MA-ID1:ENERGY-OFFS", \
#"id1 alpha": "X11MA-ID1:ALPHA", \
#"id1 harmonic": "X11MA-ID1:HARMONIC", \
"id1 gap": "X11MA-ID1-GAP:READ", \
"id1 shift": "X11MA-ID1-SHIFT:READ", \
#"id2 mode": "X11MA-ID2:MODE", \
#"id2 offset": "X11MA-ID2:ENERGY-OFFS", \
#"id2 alpha": "X11MA-ID2:ALPHA", \
#"id2 harmonic": "X11MA-ID2:HARMONIC", \
"id2 gap": "X11MA-ID2-GAP:READ", \
"id2 shift": "X11MA-ID2-SHIFT:READ", \
"keithley 10 IO": "X11Keithley1-read", \
#"ring current": "ARIDI-PCT:CURRENT", \
"PEEM high voltage": "X11MA-ES1-PEEM:UMON", \
"PEEM leakage current": "X11MA-ES1-PEEM:IMON", \
"Pressure in PEEM": "X11MA-ES1-MAIN:PRESSURE", \
"Pressure in Column": "X11MA-ES1-COLU:PRESSURE", \
"Sample temperature": "X11MA-ES1-SW:Pt100-T", \
"Pt100 resistance": "X11MA-ES1-SW:Pt100-R", \
"high voltage": "X11MA-ES1-SD1:cam1:HighVoltage_RBV", \
}
diag_devices = {
"photon energy": energy_rbk, \
"grating number": Grating, \
"cff value": cff, \
"exit slit size": ES, \
"mode": energy_opt, \
"id1 mode": id1_mode, \
"id1 offset": id1_offset, \
"id1 alpha": id1_alpha, \
"id1 harmonic": id1_harmonic, \
"id2 mode": id2_mode, \
"id2 offset": id2_offset, \
"id2 alpha": id2_alpha, \
"id2 harmonic": id2_harmonic, \
"ring current": machine_cur, \
}
def get_diags():
ret = {}
for k,v in diag_devices.items():
try:
ret[k]=str(v.read())
except:
ret[k]="Error: " + sys.exc_info()[1]
for k,v in diag_channels.items():
try:
ret[k]=caget(v,'s')
except:
ret[k]="Error: " + sys.exc_info()[1]
ret["exposure time"] = str(eiger.getExposure())
return OrderedDict(sorted(ret.items(), key=lambda i: i[0].lower()))
def print_diags():
diags = get_diags()
for k in diags.keys():
print k + ": " + diags[k]

View File

@@ -145,22 +145,29 @@ def _save_as_tiff(data, filename, check=False, show = False, metadata={}):
ip = load_array(data.matrix)
else:
ip = data
info = "Timestamp: " + _timestamp(3)
for key,val in metadata.items():
info = info + "\n" + str(key) + ": " + str(val)
ip.setProperty("Info", info)
data = get_ip_array(ip)
#info = "Timestamp: " + _timestamp(3)
#for key,val in metadata.items():
# info = info + "\n" + str(key) + ": " + str(val)
#print "Info:" ,info
#ip.setProperty("Info", info)
metadata["Timestamp"] = time.strftime("%y/%m/%d %H:%M:%S",time.localtime())
if not os.path.exists(os.path.dirname(filename)):
os.makedirs(os.path.dirname(filename))
save_image(ip, filename,"tiff")
save_image(ip, filename,"tiff", metadata)
#finfo = open(filename + ".info", "w")
#for k, v in metadata.items():
# finfo.write(str(k) + ': '+ str(v) + '\n')
#info.close()
if check:
if check:
data = get_ip_array(ip)
import java.util.Arrays as Arrays
ip=open_image(filename)
read = get_ip_array(ip)
print (" ------> Error reading array: " + str(filename))
#print (" ------> Error reading array: " + str(filename))
#TODO: Original checkcode was deleted!
def save_as_tiff(data, filename, check=False, show = False, parallel=True, metadata={}):
if parallel:

View File

@@ -32,8 +32,8 @@ def get_id_pol(id, as_string=False):
# 5: LIn
if id<1 or id>2: raise Exception("Invalid id")
#ret = caget ("X11MA-ID1:MODE" if id==1 else "X11MA-ID2:MODE", 's' if as_string else 'i')
ret = caget ("X11MA-ID1:MODE" if id==1 else "X11MA-ID2:MODE", 'i')
if ret==0:
mode = id1_mode.read() if (id==1) else id2_mode.read()
if mode=="LINEAR":
#linear mode
alpha = get_alpha_id(id)
if alpha==0 :
@@ -42,6 +42,12 @@ def get_id_pol(id, as_string=False):
ret = 4
else:
ret = 5
elif mode == "CIRC +":
ret = 1
elif mode == "CIRC -":
ret = 2
else:
ret = -1
if as_string:
for (k,v) in POL_IDS.items():
if v==ret:
@@ -51,18 +57,21 @@ def get_id_pol(id, as_string=False):
def get_alpha_id(id):
if id<1 or id>2: raise Exception("Invalid id")
return caget ("X11MA-ID1:ALPHA" if id==1 else "X11MA-ID2:ALPHA")
return id1_alpha.read() if (id==1) else id2_alpha.read()
def put_id_offset(id, v):
if id<1 or id>2:
if id == 1:
id1_offset.write(v)
elif id == 2:
id2_offset.write(v)
else:
raise Exception("Invalid id")
caput("X11MA-ID1:ENERGY-OFFS" if (id==1) else "X11MA-ID2:ENERGY-OFFS",v)
def get_id_offset(id):
if id<1 or id>2:
raise Exception("Invalid id")
return caget("X11MA-ID1:ENERGY-OFFS" if (id==1) else "X11MA-ID2:ENERGY-OFFS")
return id1_offset.read() if (id==1) else id2_offset.read()
def put_id_pol(id, pol, alpha=None):
@@ -71,31 +80,35 @@ def put_id_pol(id, pol, alpha=None):
#pol = 3 : Mode =0, alpha = 0 lin hor
#pol = 4 : Mode =0, alpha = 90 lin vert
#pol = 5 : Mode =0, alpha = ? lin rot
print "Set id" + str(id) + " Pol=" + str(pol) + " Alpha=" + str(alpha)
if id<1 or id>2:
raise Exception("Invalid id")
pv1="X11MA-ID1:MODE" if (id==1) else "X11MA-ID2:MODE"
pv2="X11MA-ID1:ALPHA" if (id==1) else "X11MA-ID2:ALPHA"
mode_dev = id1_mode if (id==1) else id2_mode
alpha_dev = id1_alpha if (id==1) else id2_alpha
if is_string(pol):
pol=POL_IDS[pol]
if pol == 1:
caput(pv1,1)
mode_dev.write("CIRC +")
elif pol == 2:
caput(pv1,2)
mode_dev.write("CIRC -")
elif pol == 3:
caput(pv1,0)
caput(pv2,0)
mode_dev.write("LINEAR")
time.sleep(0.5)
alpha_dev.write(0)
elif pol == 4:
caput(pv1,0)
caput(pv2,90)
mode_dev.write("LINEAR")
time.sleep(0.5)
alpha_dev.write(90)
elif pol == 5:
caput(pv1,0)
mode_dev.write("LINEAR")
if alpha is not None:
time.sleep(1.0)
caput(pv2,alpha)
time.sleep(0.5)
alpha_dev.write(alpha)
def tune_detune(active_id):
offset_1 = float(get_setting("OFFSET_ID_1"))
@@ -109,3 +122,34 @@ def tune_detune(active_id):
print "Tune ID2"
put_id_offset(1, offset_1-40) #detuneID1
put_id_offset(2, offset_2) #tuneID2
class IdPol(ReadonlyRegisterBase):
def __init__(self, id):
self.id = id
def doRead(self):
return get_id_pol(self.id, True)
def getName(self):
return "id" + str(self.id) + "_pol"
add_device(IdPol(1), True)
add_device(IdPol(2), True)
id1_pol.update()
id2_pol.update()
id1_pol.setPolling(2000)
id2_pol.setPolling(2000)
class EnOptDesc(ReadonlyRegisterBase):
def doRead(self):
opt = energy_opt.read()
if opt == "PGM": return "PGM"
if opt == "PGM+ID1": return "ID1"
if opt == "PGM+ID2": return "ID2"
if opt == "PGM+ID1+ID2": return "ID1_ID2"
return ""
def getName(self):
return "energy_opt_desc"
add_device(EnOptDesc(), True)
energy_opt_desc.setPolling(2000)

View File

@@ -235,7 +235,7 @@ def otf(start, end, time, delay = 0.0, mode = None, offset = None, alpha = None,
#Devices
###################################################################################################
for dev in ["eiger", "id", "chopper"]:
for dev in ["eiger", "id", "chopper", "diag"]:
try:
run("devices/" + dev)
except:
@@ -428,6 +428,65 @@ def put_energy(v):
wait_channel(ALL_DONE, 1, type = 'i')
###################################################################################################
#Image measurements
###################################################################################################
from ijutils import get_measurement, load_array
import ch.psi.pshell.imaging.Filter as Filter
from ch.psi.pshell.imaging.Overlays import Text
import ch.psi.pshell.imaging.Pen as Pen
class MeasurementsFilter(Filter):
def __init__(self, measurements):
self.overlay = Text(Pen(java.awt.Color.GREEN.darker()), "", \
java.awt.Font("Verdana", java.awt.Font.PLAIN, 12), java.awt.Point(20,20))
self.measurements = measurements
self.source = None
self.renderer = None
def process(self, image, data):
try:
ip = load_array(data.array, data.width, data.height)
msg = ""
if self.measurements is not None:
for measurement in self.measurements:
val = get_measurement(ip,measurement)
msg = msg + "%s = %1.4f\n" % (measurement,val)
self.overlay.update(msg)
except:
self.overlay.update(str(sys.exc_info()[1]))
return image
def start(self, source, renderer=None):
self.stop()
self.source = source
self.renderer = renderer if (renderer is not None) else show_panel(source)
self.source.setFilter(self)
self.renderer.addOverlay(self.overlay)
def stop(self):
if self.renderer is not None:
self.renderer.removeOverlay(self.overlay)
if self.source is not None:
self.source.setFilter(None)
self.source = None
self.renderer = None
filter_measurements = None
def start_measurements(measurements=["StdDev"], source = image, renderer=None):
global filter_measurements
stop_measurements()
filter_measurements = MeasurementsFilter(measurements)
filter_measurements.start(string_to_obj(source), string_to_obj(renderer))
def stop_measurements():
global filter_measurements
if filter_measurements is not None:
filter_measurements.stop()
filter_measurements = None
###################################################################################################
#Settings
###################################################################################################

View File

@@ -8,22 +8,23 @@ if get_exec_pars().source == CommandSource.ui:
EXPOSURE_1 = 1.0
AVERAGE_1 = 2.0
ENERGY_1 = 850.0
POLARIZATION_1 = "Circ_Plus"
#POLARIZATION_1 = "Circ_Plus"
EXPOSURE_2 = 1.0
AVERAGE_2 = 2.0
ENERGY_2= 900.0
POLARIZATION_2 = "Circ_Minus"
#POLARIZATION_2 = "Circ_Minus"
DRY_RUN = get_dry_run()
SHOW_IMAGES = True
SAVE_DIAGS = True
ID = get_setting("ID")
EXPOSURE = [EXPOSURE_1, EXPOSURE_2]
AVERAGE = [int(AVERAGE_1), int(AVERAGE_2)]
ENERGY = [ENERGY_1, ENERGY_2]
ENERGY = [ENERGY_1, ENERGY_2]
#POLARIZATION = [POLARIZATION_1, POLARIZATION_2]
if METHOD == "Two_Energies":
@@ -92,19 +93,18 @@ pol_id2=POL_IDS[get_setting("POL_ID_2")]
#rbkEnergy=energy_rbk.read()
if METHOD == "Two_Pol":
if ID == "ID1":
if METHOD == "Two_Pol":
if ID == "ID1":
current_pol = pol_id1
elif ID == "ID2":
elif ID == "ID2":
current_pol = pol_id2
elif ID == "ID1_ID2":
put_id_pol(1,pol_id1)
put_id_pol(2,pol_id2)
elif ID == "ID1_ID2":
current_pol=pol_id1
if SWITCHING == "Tune_Detune":
tune_detune(1) #Tune ID1, Detune ID2
tune_detune(1) #Tune ID1, Detune ID2
else:
if ID == "ID1_ID2":
put_id_pol(2, current_pol) #Force both IDs to same polarization
wait_channel("X11PHS:alldone", 1)
def imageinfo(info):
@@ -161,7 +161,7 @@ def save_image_file(frame, cycle=-1, frame_index=0):
if SHOW_IMAGES:
plot(frame.matrix if (type(frame) == Data) else get_ip_array(frame), name = get_image_file_name(cycle, frame_index, True))
if AUTO_SAVE and (frame is not None):
filename = get_image_file_name(cycle, frame_index)
filename = get_image_file_name(cycle, frame_index)
threads.append(save_as_tiff(frame, filename, check=False, parallel=True, metadata=(get_diags() if SAVE_DIAGS else {})))
log(filename)
@@ -180,10 +180,7 @@ try:
log("")
log("nround = " + str(cycle) + " / " + str(MEASUREMENTS))
if METHOD == "Two_Energies":
change_energy(ENERGY_1)
###??? SETAR POLARIZATION?
if METHOD == "Two_Energies":
change_energy(ENERGY_1)
for i in range(2):
@@ -228,6 +225,7 @@ try:
join(t)
if (MEASUREMENTS > 1) and (AUTO_SAVE == 1):
print "--- Averaging..."
for i in range(len(frames)):
"""
measures = []
for cycle in range(1, MEASUREMENTS + 1):
@@ -235,7 +233,18 @@ try:
ip = open_image(filename)
#measures.append(Data(get_ip_array(ip)))
measures.append(ip)
#av = average_frames(measures) #Result is transposed???
#av = average_frames(measures) #Result is transposed???
av=average_ips (measures, roi=None, as_float=True)
"""
integration = None
for cycle in range(1, MEASUREMENTS + 1):
filename = get_image_file_name(cycle, i)
print "Open " , filename
ip = open_image(filename)
if integration is None:
integration = ip
else:
integration =integrate_ips ([integration, ip], as_float=True)
av=op_const(integration, "divide", float(MEASUREMENTS), in_place=True)
save_image_file(av, -1, i)
finally:

View File

@@ -11,6 +11,8 @@ if get_exec_pars().source == CommandSource.ui:
RANGES = [[500.0, 1000.0, 100.0]]
DRY_RUN = get_dry_run()
SAVE_DIAGS = True
log("ROIs: " + str(ROI))
if len(RANGES) == 0:
@@ -63,8 +65,8 @@ def grab_image(position, scan):
#filename = get_exec_pars().path + "/" + ("%02d" % Scan_Nr) + "/s" + "{seq}%03d" + "_" + ("%03d.tif" % scan.recordIndex)
filename = get_exec_pars().path + "/" + str(scan.currentPass) + "/s" + "{seq}%03d" + "_" + ("%03d.tif" % scan.recordIndex)
filename = get_context().setup.expandPath(filename)
print filename
save_as_tiff(av, filename)
print filename
save_as_tiff(av, filename, metadata=(get_diags() if SAVE_DIAGS else {}))
class Average(ReadableMatrix):
def read(self):

View File

@@ -38,26 +38,26 @@ elif ID =='ID1_ID2':
if ID == "ID1":
#current_pol=POL_IDS[POL_ID_1] #get_id_pol(1)
put_id_pol(1,POL_ID_1)
put_id_pol(1,POL_ID_1, ALPHA_ID_1 if (POL_ID_1=="Lin") else None )
caput('X11MA-ID2-GAP:SET',100) #open Gap ID2
caput('X11MA-ID1:HARMONIC', int(HARMONIC_ID_1))
id1_harmonic.write(int(HARMONIC_ID_1))
put_id_offset(1, float(OFFSET_ID_1)) #offset on ID1
elif ID == "ID2":
#current_pol=POL_IDS[POL_ID_2]#get_id_pol(2)
put_id_pol(2,POL_ID_2)
put_id_pol(2,POL_ID_2, ALPHA_ID_2 if (POL_ID_2=="Lin") else None )
caput('X11MA-ID1-GAP:SET',100) #open Gap ID1
caput('X11MA-ID2:HARMONIC', int(HARMONIC_ID_2))
id2_harmonic.write(int(HARMONIC_ID_2))
put_id_offset(2, float(OFFSET_ID_2)) #offset on ID2
elif ID == "ID1_ID2":
#polID1=POL_IDS[POL_ID_1]
#polID2=POL_IDS[POL_ID_2]
put_id_pol(1,POL_ID_1)
put_id_pol(2,POL_ID_2)
put_id_pol(1,POL_ID_1, ALPHA_ID_1 if (POL_ID_1=="Lin") else None )
put_id_pol(2,POL_ID_2, ALPHA_ID_2 if (POL_ID_2=="Lin") else None )
#current_pol=polID1
caput('X11MA-ID1:HARMONIC', int(HARMONIC_ID_1))
caput('X11MA-ID2:HARMONIC', int(HARMONIC_ID_2))
id1_harmonic.write(int(HARMONIC_ID_1))
id2_harmonic.write(int(HARMONIC_ID_2))
put_id_offset(1, float(OFFSET_ID_1)) #offset on ID1
put_id_offset(2, float(OFFSET_ID_2)) #offset on ID2

View File

@@ -0,0 +1,89 @@
from collections import OrderedDict
diag_channels = { \
#"photon energy": "X11MA-PGM:rbkenergy", \
#"grating number": "X11MA-PGM:grating", \
#"cff value": "X11MA-PGM:rbkcff", \
"diffraction order": "X11MA-PGM:difforder0", \
#"exit slit size":"X11MA-OP2-SL:TRY.VAL", \
"front end size":"X11MA-FE-DSAPER", \
"status fast shutter":"X11MA-VME-ES1:FAST-SHTR", \
"girder x": "X11MA-HG:X1", \
"girder y": "X11MA-HG:Y1", \
"girder z": "X11MA-HG:Z1", \
"girder pitch": "X11MA-HG:PITCH1", \
"girder yaw": "X11MA-HG:YAW1", \
"girder roll set": "X11MA-HG:ROLL_SET", \
"CMU ox": "X11MA-OP-CM:ox", \
"CMU oy": "X11MA-OP-CM:oy", \
"CMU oz": "X11MA-OP-CM:oz", \
"CMU oRx": "X11MA-OP-CM:oRx", \
"CMU oRy": "X11MA-OP-CM:oRy", \
"CMU oRz": "X11MA-OP-CM:oRz", \
"CMU TRB": "X11MA-OP2-CM:TRB.RBV", \
#"mode": "X11PHS-E:OPT", \
#"id1 mode": "X11MA-ID1:MODE", \
#"id1 offset": "X11MA-ID1:ENERGY-OFFS", \
#"id1 alpha": "X11MA-ID1:ALPHA", \
#"id1 harmonic": "X11MA-ID1:HARMONIC", \
"id1 gap": "X11MA-ID1-GAP:READ", \
"id1 shift": "X11MA-ID1-SHIFT:READ", \
#"id2 mode": "X11MA-ID2:MODE", \
#"id2 offset": "X11MA-ID2:ENERGY-OFFS", \
#"id2 alpha": "X11MA-ID2:ALPHA", \
#"id2 harmonic": "X11MA-ID2:HARMONIC", \
"id2 gap": "X11MA-ID2-GAP:READ", \
"id2 shift": "X11MA-ID2-SHIFT:READ", \
"keithley 10 IO": "X11Keithley1-read", \
#"ring current": "ARIDI-PCT:CURRENT", \
"PEEM high voltage": "X11MA-ES1-PEEM:UMON", \
"PEEM leakage current": "X11MA-ES1-PEEM:IMON", \
"Pressure in PEEM": "X11MA-ES1-MAIN:PRESSURE", \
"Pressure in Column": "X11MA-ES1-COLU:PRESSURE", \
"Sample temperature": "X11MA-ES1-SW:Pt100-T", \
"Pt100 resistance": "X11MA-ES1-SW:Pt100-R", \
"high voltage": "X11MA-ES1-SD1:cam1:HighVoltage_RBV", \
}
diag_devices = {
"photon energy": energy_rbk, \
"grating number": Grating, \
"cff value": cff, \
"exit slit size": ES, \
"mode": energy_opt, \
"id1 mode": id1_mode, \
"id1 offset": id1_offset, \
"id1 alpha": id1_alpha, \
"id1 harmonic": id1_harmonic, \
"id2 mode": id2_mode, \
"id2 offset": id2_offset, \
"id2 alpha": id2_alpha, \
"id2 harmonic": id2_harmonic, \
"ring current": machine_cur, \
}
def get_diags():
ret = {}
for k,v in diag_devices.items():
try:
ret[k]=str(v.read())
except:
ret[k]="Error: " + sys.exc_info()[1]
for k,v in diag_channels.items():
try:
ret[k]=caget(v,'s')
except:
ret[k]="Error: " + sys.exc_info()[1]
ret["exposure time"] = str(eiger.getExposure())
return OrderedDict(sorted(ret.items(), key=lambda i: i[0].lower()))
def print_diags():
diags = get_diags()
for k in diags.keys():
print k + ": " + diags[k]
#- exposure time
#- mode: normal or tune/detune