diff --git a/config/AbsortionSpectrum/Ni_L23_fine_AFR.abs b/config/AbsortionSpectrum/Ni_L23_fine_AFR.abs new file mode 100644 index 0000000..8133ace Binary files /dev/null and b/config/AbsortionSpectrum/Ni_L23_fine_AFR.abs differ diff --git a/config/AbsortionSpectrum/Ni_L23_jgpark_fine_mod2.abs b/config/AbsortionSpectrum/Ni_L23_jgpark_fine_mod2.abs new file mode 100644 index 0000000..5da6ab8 Binary files /dev/null and b/config/AbsortionSpectrum/Ni_L23_jgpark_fine_mod2.abs differ diff --git a/config/AbsortionSpectrum/Ni_L2_fine_AFR.abs b/config/AbsortionSpectrum/Ni_L2_fine_AFR.abs new file mode 100644 index 0000000..d39f837 Binary files /dev/null and b/config/AbsortionSpectrum/Ni_L2_fine_AFR.abs differ diff --git a/config/AbsortionSpectrum/XPS_Sr3d_Ti3d_Mn3d.abs b/config/AbsortionSpectrum/XPS_Sr3d_Ti3d_Mn3d.abs new file mode 100644 index 0000000..f21fc4f Binary files /dev/null and b/config/AbsortionSpectrum/XPS_Sr3d_Ti3d_Mn3d.abs differ diff --git a/config/config.properties b/config/config.properties index 79dcd90..8120a34 100755 --- a/config/config.properties +++ b/config/config.properties @@ -1,55 +1,56 @@ -#Wed Oct 27 10:03:30 CEST 2021 +#Mon Aug 08 11:50:49 CEST 2022 +imageSourcesFile={config}/imaging.properties autoSaveScanData=true simulation=false +commandExecutionEvents=true +logDaysToLive=7 dataScanSaveOutput=false userAuthenticator= +logLevelConsole=Off +filePermissionsConfig=Public +scanStreamerPort=-1 dataScanSaveScript=false +dataScanSaveSetpoints=false notifiedTasks=EigerAbsSpec|Eiger2Img parallelInitialization=true +fdaSerialization=true dataTransferPath=~/Data1 scanStreamingPort=-1 saveConsoleSessionFiles=false devicePoolFile={config}/devices.properties +versionTrackingManual=true +dataTransferMode=Off hostName=null +userManagement=true disableEmbeddedAttributes=false +instanceName=SIM +dataServerPort=-1 serverPort=8080 +hideServerMessages=false versionTrackingEnabled=true dataPath={data}/{year}_{month}/{date}/{date}_{seq}%04d_{name} serverEnabled=false depthDimension=0 +dataScanReleaseRecords=false +dataScanPreserveTypes=false logLevel=Info +dataScanFlushRecords=true +logPath={logs}/{date}_{time} +filePermissionsLogs=Public dataLayout=table disableDataFileLogs=false sessionHandling=On deviceUpdateStrategyFile={config}/update.properties terminalEnabled=false notificationLevel=Completion +filePermissionsScripts=Public terminalPort=3579 +tasksFile={config}/tasks.properties dataTransferUser= +filePermissionsData=Default +createSessionFiles=false versionTrackingLogin={context}/svcusr-hlapp_robot noBytecodeFiles=false versionTrackingRemote=git@git.psi.ch\:pshell_config/x11ma.git -imageSourcesFile={config}/imaging.properties -commandExecutionEvents=true -logDaysToLive=7 -logLevelConsole=Off -filePermissionsConfig=Public -scanStreamerPort=-1 -dataScanSaveSetpoints=false -versionTrackingManual=true -dataTransferMode=Off -userManagement=true -instanceName=SIM -dataServerPort=-1 -hideServerMessages=false -dataScanReleaseRecords=false -dataScanPreserveTypes=false -dataScanFlushRecords=true -logPath={logs}/{date}_{time} -filePermissionsLogs=Public -filePermissionsScripts=Public -tasksFile={config}/tasks.properties -filePermissionsData=Default -createSessionFiles=false dataProvider=txt saveCommandStatistics=false diff --git a/config/devices.properties b/config/devices.properties index 6584937..c3927c8 100644 --- a/config/devices.properties +++ b/config/devices.properties @@ -1,3 +1,4 @@ +DiffOrd=ch.psi.pshell.epics.ChannelString|X11MA-PGM:difforder0|||true voltage=ch.psi.pshell.epics.ChannelDouble|X11MA-KEI13:SETVOLTAGE|||true eiger=ch.psi.pshell.epics.AreaDetector|X11MA-ES1-SD1|||true fe_slit_V_ctr=ch.psi.pshell.epics.Motor|X11MA-FE-SV:center|||true @@ -51,8 +52,8 @@ TRZ=ch.psi.pshell.epics.ChannelDouble|X11MA-VME-ES4:TRZ|||true Temp=ch.psi.pshell.epics.ChannelDouble|X11MA-ES3-LSCI:TEMP_RBV|Read||true #FE=ch.psi.pshell.epics.Slit|X11MA-FE:DSAPER|Read||true ES=ch.psi.pshell.epics.ChannelDouble|X11MA-OP2-SL:TRY.RBV|Read||true -cff=ch.psi.pshell.epics.ChannelDouble|X11MA-PGM:rbkcff|Read||true -Grating=ch.psi.pshell.epics.ChannelString|X11MA-PGM:grating|Read||true +cff=ch.psi.pshell.epics.ChannelDouble|X11MA-PGM:rbkcff 3|Read||true +Grating=ch.psi.pshell.epics.ChannelString|X11MA-PGM:grating|||true ID1_En=ch.psi.pshell.epics.ChannelDouble|X11MA-ID1:ENERGY-READ|Read||true ID2_En=ch.psi.pshell.epics.ChannelDouble|X11MA-ID2:ENERGY-READ|Read||true SLS_freq=ch.psi.pshell.epics.ChannelDouble|AGARF-TIM:BO-FREQ-GET|Read||true diff --git a/config/preferences.json b/config/preferences.json new file mode 100644 index 0000000..83d3e97 --- /dev/null +++ b/config/preferences.json @@ -0,0 +1,117 @@ +{ + "fontShellPanel" : { + "name" : "Monospaced", + "style" : 0, + "size" : 13 + }, + "fontShellCommand" : { + "name" : "SansSerif", + "style" : 0, + "size" : 13 + }, + "fontOutput" : { + "name" : "Monospaced", + "style" : 0, + "size" : 13 + }, + "fontEditor" : { + "name" : "Monospaced", + "style" : 0, + "size" : 13 + }, + "fontPlotLabel" : { + "name" : "SansSerif", + "style" : 0, + "size" : 11 + }, + "fontPlotTick" : { + "name" : "SansSerif", + "style" : 0, + "size" : 10 + }, + "fontPlotTitle" : { + "name" : "SansSerif", + "style" : 1, + "size" : 13 + }, + "fontTerminal" : { + "name" : "Monospaced", + "style" : 0, + "size" : 14 + }, + "tabSize" : 4, + "contentWidth" : 0, + "editorBackground" : null, + "editorForeground" : null, + "simpleEditor" : false, + "hideEditorLineNumbers" : false, + "hideEditorContextMenu" : false, + "consoleLocation" : "Left", + "dataPanelLocation" : null, + "openDataFilesInDocTab" : false, + "noVariableEvaluationPropagation" : false, + "processingScripts" : [ ], + "asyncViewersUpdate" : false, + "scanPlotDisabled" : false, + "scanTableDisabled" : false, + "cachedDataPanel" : false, + "dataExtensions" : "", + "dataSubFiles" : "", + "hideFileName" : false, + "showEmergencyStop" : false, + "showHomingButtons" : false, + "showJogButtons" : false, + "hideScanPanel" : false, + "hideOutputPanel" : false, + "showXScanFileBrowser" : true, + "showQueueBrowser" : false, + "backgroundRendering" : false, + "showImageStatusBar" : true, + "persistRendererWindows" : true, + "defaultRendererColormap" : "Grayscale", + "linePlot" : "ch.psi.pshell.plot.LinePlotJFree", + "matrixPlot" : "ch.psi.pshell.plot.MatrixPlotJFree", + "surfacePlot" : "ch.psi.pshell.plot.SurfacePlotJzy3d", + "timePlot" : "ch.psi.pshell.plot.TimePlotJFree", + "plotsDetached" : false, + "plotLayout" : "Vertical", + "quality" : "High", + "defaultPlotColormap" : "Grayscale", + "markerSize" : 2, + "plotBackground" : null, + "gridColor" : null, + "outlineColor" : null, + "disableOffscreenBuffer" : false, + "defaultPanels" : [ { + "deviceClassName" : "ch.psi.pshell.epics.Scaler", + "panelClassName" : "ch.psi.pshell.swing.ScalerPanel" + }, { + "deviceClassName" : "ch.psi.pshell.epics.Scienta", + "panelClassName" : "ch.psi.pshell.swing.ScientaPanel" + }, { + "deviceClassName" : "ch.psi.pshell.device.Motor", + "panelClassName" : "ch.psi.pshell.swing.MotorPanel" + }, { + "deviceClassName" : "ch.psi.pshell.device.ProcessVariable", + "panelClassName" : "ch.psi.pshell.swing.ProcessVariablePanel" + }, { + "deviceClassName" : "ch.psi.pshell.device.MotorGroup", + "panelClassName" : "ch.psi.pshell.swing.MotorGroupPanel" + }, { + "deviceClassName" : "ch.psi.pshell.device.DiscretePositioner", + "panelClassName" : "ch.psi.pshell.swing.DiscretePositionerPanel" + }, { + "deviceClassName" : "ch.psi.pshell.device.Camera", + "panelClassName" : "ch.psi.pshell.swing.CameraPanel" + }, { + "deviceClassName" : "ch.psi.pshell.device.Slit", + "panelClassName" : "ch.psi.pshell.swing.SlitPanel" + }, { + "deviceClassName" : "ch.psi.pshell.device.ReadonlyRegister$ReadonlyRegisterArray", + "panelClassName" : "ch.psi.pshell.swing.DeviceValueChart" + }, { + "deviceClassName" : "ch.psi.pshell.device.ReadonlyRegister$ReadonlyRegisterMatrix", + "panelClassName" : "ch.psi.pshell.swing.DeviceValueChart" + } ], + "scriptPopupDialog" : "None" +} \ No newline at end of file diff --git a/config/session_metadata.properties b/config/session_metadata.properties index d6ae05f..3c3e8ac 100755 --- a/config/session_metadata.properties +++ b/config/session_metadata.properties @@ -1,5 +1,5 @@ -#Sat Apr 30 16:57:19 CEST 2022 -keywords=List;[]ASI -ownerEmail=String;alan_farhan@baylor.edu +#Fri Sep 16 10:47:58 CEST 2022 +keywords=List;[] +ownerEmail=String;arantxa.fraile@ub.edu contactEmail=String;armin.kleibert@psi.ch -owner=String;Alan Farhan +owner=String;arantxa fraile diff --git a/config/sessions.properties b/config/sessions.properties index 9b06a6d..eb18068 100644 --- a/config/sessions.properties +++ b/config/sessions.properties @@ -1,2 +1,3 @@ -#Tue May 24 11:00:40 CEST 2022 -SessionCounter=73 +#Fri Sep 16 10:48:13 CEST 2022 +SessionCounter=78 +CurrentSession=78 diff --git a/config/settings.properties b/config/settings.properties index edcb234..4e70178 100644 --- a/config/settings.properties +++ b/config/settings.properties @@ -1,26 +1,31 @@ -#Fri Jun 10 15:30:15 CEST 2022 +#Wed Oct 05 09:33:02 CEST 2022 HARMONIC_ID_1=1 RSYNC_USER= +CFF=2.250 OUTLIERS_THRESHOLD=1000000000 NORM_FILE=/sls/X11MA/data/e19357/Data1/2021_10 -AUTO_SWITCH_VALVE=true -DRY_RUN=true +AUTO_SWITCH_VALVE=false +DRY_RUN=false POL_ID_2=Circ_Minus -OFFSET_ID_1=-1.4 -ID=ID1_ID2 -OFFSET_ID_2=-1.2 +OFFSET_ID_1=0.0 +ID=PGM_ID1_ID2 +OFFSET_ID_2=0.0 proposal=proposal ENERGY=642.0 proposer=proposer +GRATING=G2_1200 POL_ID_1=Circ_Plus RSYNC_HOST= sample=sample RSYNC_PATH= pgroup=pgroup -ALPHA_ID_2=45.0 +AUTO_SWITCH_BEAMLINE=false +AUTO_SWITCH_SHUTTER=true +ALPHA_ID_2=0.0 ALPHA_ID_1=0.0 RSYNC_DEL=true -AVERAGING_DETECTOR=true +DIFF_ORD=1 +AVERAGING_DETECTOR=false FdaBrowser=false authors=author1|author2 HARMONIC_ID_2=1 diff --git a/config/setup.properties b/config/setup.properties index ee64ff0..bc5b5a6 100755 --- a/config/setup.properties +++ b/config/setup.properties @@ -1,25 +1,27 @@ -#Mon Sep 30 16:07:34 CEST 2019 +#Mon Aug 08 11:48:04 CEST 2022 scriptPath={home}/script sessionsPath={home}/sessions -configFileSessions={config}/sessions.properties -userSessionsPath={sessions}/user -consoleSessionsPath={sessions}/console -configFileImageSources={config}/imaging.properties -pluginsPath={home}/plugins configFileDevices={config}/devices.properties -libraryPath={script}; {script}/Lib -configFilePlugins={config}/plugins.properties -contextPath={home}/context +xscanPath={script} +queuePath={script} extensionsPath={home}/extensions configFileUpdateStrategy={config}/update.properties configPath={home}/config +configFileSessions={config}/sessions.properties +userSessionsPath={sessions}/user dataPath=/sls/X11MA/data/X11MA/Data1/public/PEEM -devicesPath={home}/devices configFileVariables={config}/variables.properties -configFileSettings={config}/settings.properties logPath={home}/log wwwPath={home}/www configFile={config}/config.properties +configFileTasks={config}/tasks.properties +configFileImageSources={config}/imaging.properties +pluginsPath={home}/plugins +consoleSessionsPath={sessions}/console +libraryPath={script}; {script}/Lib +configFilePlugins={config}/plugins.properties +contextPath={home}/context +devicesPath={home}/devices +configFileSettings={config}/settings.properties imagesPath={outp}/images scriptType=py -configFileTasks={config}/tasks.properties diff --git a/config/variables.properties b/config/variables.properties index 5c9b343..d0343f2 100644 --- a/config/variables.properties +++ b/config/variables.properties @@ -1,4 +1,4 @@ -#Thu Jun 02 11:33:14 CEST 2022 -LastRunDate=220602 -FileSequentialNumber=14154 -DaySequentialNumber=9 +#Thu Sep 22 15:59:51 CEST 2022 +LastRunDate=220922 +FileSequentialNumber=15766 +DaySequentialNumber=86 diff --git a/devices/exit_slit.properties b/devices/exit_slit.properties index 849e4e7..915ec24 100644 --- a/devices/exit_slit.properties +++ b/devices/exit_slit.properties @@ -1,18 +1,19 @@ -#Tue Jun 22 16:58:14 CEST 2021 -precision=5 -scale=1.0 -estbilizationDelay=0 -resolution=1.0 -minValue=-3000.0 -defaultSpeed=200.0 -sign_bit=0 -monitorByPosition=false -minSpeed=10.0 +#Mon Aug 08 11:48:07 CEST 2022 offset=0.0 maxValue=3000.0 +precision=5 rotation=false +scale=1.0 +description=null +estbilizationDelay=0 maxSpeed=200.0 +resolution=1.0 homingType=None startRetries=1 +minValue=-3000.0 unit=micron +defaultSpeed=200.0 +sign_bit=0 hasEnable=false +monitorByPosition=false +minSpeed=10.0 diff --git a/devices/fe_slit_H_ctr.properties b/devices/fe_slit_H_ctr.properties index 18c8050..7e847c4 100644 --- a/devices/fe_slit_H_ctr.properties +++ b/devices/fe_slit_H_ctr.properties @@ -1,18 +1,19 @@ -#Thu Mar 24 11:38:37 CET 2022 -precision=5 -scale=1.0 -estbilizationDelay=0 -resolution=0.1 -minValue=-100.0 -defaultSpeed=1.0 -sign_bit=0 -monitorByPosition=false -minSpeed=0.1 +#Mon Aug 08 11:48:07 CEST 2022 offset=0.0 maxValue=100.0 +precision=5 rotation=false +scale=1.0 +description=null +estbilizationDelay=0 maxSpeed=NaN +resolution=0.1 homingType=None startRetries=1 +minValue=-100.0 unit=mm +defaultSpeed=1.0 +sign_bit=0 hasEnable=false +monitorByPosition=false +minSpeed=0.1 diff --git a/devices/fe_slit_H_size.properties b/devices/fe_slit_H_size.properties index d15004b..615e03c 100644 --- a/devices/fe_slit_H_size.properties +++ b/devices/fe_slit_H_size.properties @@ -1,18 +1,19 @@ -#Tue Jul 06 10:50:06 CEST 2021 -precision=3 -scale=1.0 -estbilizationDelay=0 -resolution=0.005 -minValue=-200.0 -defaultSpeed=1.0 -sign_bit=0 -monitorByPosition=false -minSpeed=0.1 +#Mon Aug 08 11:48:07 CEST 2022 offset=0.0 maxValue=200.0 +precision=3 rotation=false +scale=1.0 +description=null +estbilizationDelay=0 maxSpeed=NaN +resolution=0.005 homingType=null startRetries=1 +minValue=-200.0 unit=mm +defaultSpeed=1.0 +sign_bit=0 hasEnable=false +monitorByPosition=false +minSpeed=0.1 diff --git a/devices/fe_slit_V_ctr.properties b/devices/fe_slit_V_ctr.properties index 5c9222b..7e847c4 100644 --- a/devices/fe_slit_V_ctr.properties +++ b/devices/fe_slit_V_ctr.properties @@ -1,18 +1,19 @@ -#Thu Mar 24 11:38:38 CET 2022 -precision=5 -scale=1.0 -estbilizationDelay=0 -resolution=0.1 -minValue=-100.0 -defaultSpeed=1.0 -sign_bit=0 -monitorByPosition=false -minSpeed=0.1 +#Mon Aug 08 11:48:07 CEST 2022 offset=0.0 maxValue=100.0 +precision=5 rotation=false +scale=1.0 +description=null +estbilizationDelay=0 maxSpeed=NaN +resolution=0.1 homingType=None startRetries=1 +minValue=-100.0 unit=mm +defaultSpeed=1.0 +sign_bit=0 hasEnable=false +monitorByPosition=false +minSpeed=0.1 diff --git a/devices/fe_slit_V_size.properties b/devices/fe_slit_V_size.properties index be02adf..a1bc588 100644 --- a/devices/fe_slit_V_size.properties +++ b/devices/fe_slit_V_size.properties @@ -1,18 +1,19 @@ -#Tue Jul 06 10:51:28 CEST 2021 -precision=3 -scale=1.0 -estbilizationDelay=0 -resolution=0.005 -minValue=-200.0 -defaultSpeed=1.0 -sign_bit=0 -monitorByPosition=false -minSpeed=0.01 +#Mon Aug 08 11:48:07 CEST 2022 offset=0.0 maxValue=200.0 +precision=3 rotation=false +scale=1.0 +description=null +estbilizationDelay=0 maxSpeed=NaN +resolution=0.005 homingType=null startRetries=1 +minValue=-200.0 unit=mm +defaultSpeed=1.0 +sign_bit=0 hasEnable=false +monitorByPosition=false +minSpeed=0.01 diff --git a/devices/girder_x.properties b/devices/girder_x.properties index ac9164d..a65a4f6 100644 --- a/devices/girder_x.properties +++ b/devices/girder_x.properties @@ -1,10 +1,11 @@ -#Tue Nov 02 11:19:09 CET 2021 +#Mon Aug 08 11:48:07 CEST 2022 +minValue=-2.0 +unit=mm offset=0.0 maxValue=3.0 rotation=false precision=3 -scale=1.0 -resolution=0.005 -minValue=-2.0 -unit=mm sign_bit=0 +scale=1.0 +description=null +resolution=0.005 diff --git a/devices/manip_x.properties b/devices/manip_x.properties index 8f3f487..a919ff0 100644 --- a/devices/manip_x.properties +++ b/devices/manip_x.properties @@ -1,10 +1,11 @@ -#Tue Jun 14 16:22:43 CEST 2022 +#Mon Aug 08 11:48:21 CEST 2022 +minValue=-4000.0 +unit=um offset=0.0 maxValue=4000.0 rotation=false precision=1 -scale=1.0 -resolution=NaN -minValue=-4000.0 -unit=um sign_bit=0 +scale=1.0 +description=null +resolution=NaN diff --git a/devices/manip_y.properties b/devices/manip_y.properties index 5ae4b63..a919ff0 100644 --- a/devices/manip_y.properties +++ b/devices/manip_y.properties @@ -1,10 +1,11 @@ -#Tue Jun 14 16:27:30 CEST 2022 +#Mon Aug 08 11:48:21 CEST 2022 +minValue=-4000.0 +unit=um offset=0.0 maxValue=4000.0 rotation=false precision=1 -scale=1.0 -resolution=NaN -minValue=-4000.0 -unit=um sign_bit=0 +scale=1.0 +description=null +resolution=NaN diff --git a/devices/raw.properties b/devices/raw.properties index f2fa40e..d6dfbc8 100644 --- a/devices/raw.properties +++ b/devices/raw.properties @@ -1,4 +1,4 @@ -#Fri Nov 26 15:39:45 CET 2021 +#Tue Oct 04 10:43:41 CEST 2022 spatialCalOffsetY=NaN spatialCalOffsetX=NaN colormapLogarithmic=false @@ -9,7 +9,7 @@ spatialCalScaleY=NaN colormapMax=NaN rescaleOffset=0.0 roiWidth=-1 -colormap=Grayscale +colormap=Viridis invert=false colormapMin=NaN rotation=0.0 diff --git a/devices/temp_readout.properties b/devices/temp_readout.properties index 887e4ce..f9b86d0 100644 --- a/devices/temp_readout.properties +++ b/devices/temp_readout.properties @@ -1,6 +1,7 @@ -#Wed Dec 15 09:36:20 CET 2021 +#Mon Aug 08 11:48:07 CEST 2022 unit=K offset=0.0 precision=3 sign_bit=0 scale=1.0 +description=null diff --git a/plugins/Beamline.form b/plugins/Beamline.form index b5fb998..a4d5abf 100755 --- a/plugins/Beamline.form +++ b/plugins/Beamline.form @@ -16,27 +16,39 @@ - - + - - - - + + + + + + + + + + + + + + + - - - + + + + + - + @@ -54,7 +66,7 @@ - + @@ -74,18 +86,24 @@ + + + + + + + + + + + + + + + + + - - - - - - - - - - - @@ -93,13 +111,6 @@ - - - - - - - @@ -118,13 +129,29 @@ + + + + + + + - + + + + + + + + + + - + @@ -133,7 +160,7 @@ - + @@ -167,7 +194,7 @@ - + @@ -176,28 +203,11 @@ - - - - - - - - - - - - - - - - - - - - + + + + - @@ -206,7 +216,6 @@ - @@ -214,19 +223,16 @@ - - - @@ -236,7 +242,7 @@ - + @@ -296,26 +302,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -345,13 +331,6 @@ - - - - - - - @@ -361,13 +340,11 @@ - - @@ -375,13 +352,11 @@ - - @@ -391,7 +366,7 @@ - + @@ -451,26 +426,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -484,7 +439,7 @@ - + @@ -520,6 +475,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -535,5 +601,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/Beamline.java b/plugins/Beamline.java index 3360a99..73c6226 100755 --- a/plugins/Beamline.java +++ b/plugins/Beamline.java @@ -22,9 +22,9 @@ public class Beamline extends Panel { boolean updatingControls; public enum ID { - ID1, - ID2, - ID1_ID2 + PGM_ID1, + PGM_ID2, + PGM_ID1_ID2 } public enum Polarization { @@ -35,6 +35,13 @@ public class Beamline extends Panel { Lin } + public enum Grating { + G1_300, + G2_1200, + G3_600 + + } + final Component[] parameterControls; public Beamline() { @@ -45,6 +52,7 @@ public class Beamline extends Panel { SwingUtils.setEnumCombo(comboID, Beamline.ID.class, true); SwingUtils.setEnumCombo(comboPol1, Beamline.Polarization.class, true); SwingUtils.setEnumCombo(comboPol2, Beamline.Polarization.class, true); + SwingUtils.setEnumCombo(comboGrating, Beamline.Grating.class, true); Component[] parameterControls = new Component[]{}; for (JPanel panel : new JPanel[]{panelBeamline}) { @@ -53,10 +61,10 @@ public class Beamline extends Panel { } } - Font devValueFont = deviceValuePanel1.getFont().deriveFont(8.0f); + Font devValueFont = deviceValuePanel1.getFont().deriveFont(9.0f); for (Component panel : SwingUtils.getComponentsByType(panelBeamline, DeviceValuePanel.class)){ ((DeviceValuePanel)panel).getLabel().setFont(devValueFont); - ((DeviceValuePanel)panel).getLabel().setVerticalAlignment(SwingConstants.TOP); + //((DeviceValuePanel)panel).getLabel().setVerticalAlignment(SwingConstants.CENTER); ((DeviceValuePanel)panel).getLabel().setVerticalTextPosition(SwingConstants.TOP); } @@ -115,6 +123,9 @@ public class Beamline extends Panel { Double alp2 = Double.valueOf(getSetting("ALPHA_ID_2")); String har2 = getSetting("HARMONIC_ID_2"); Double off2 = Double.valueOf(getSetting("OFFSET_ID_2")); + String grat = getSetting("GRATING"); + Double order= Double.valueOf(getSetting("DIFF_ORD")); + Double cff = Double.valueOf(getSetting("CFF")); comboID.setSelectedItem(id); spinnerImgEng.setValue(en); comboPol1.setSelectedItem(pol1); @@ -124,8 +135,12 @@ public class Beamline extends Panel { comboPol2.setSelectedItem(pol2); spinnerAlp2.setValue(alp2); spinnerHar2.setValue(har2); - spinnerOff2.setValue(off2); - checkAutoValve.setSelected(String.valueOf(getSetting("AUTO_SWITCH_VALVE")).equalsIgnoreCase("true")); + spinnerOff2.setValue(off2); + comboGrating.setSelectedItem(grat); + comboDiffOrder.setSelectedItem(order); + spinnerCff.setValue(cff); + checkAutoValve.setSelected(String.valueOf(getSetting("AUTO_SWITCH_VALVE")).equalsIgnoreCase("true")); + checkAutoShutter.setSelected(String.valueOf(getSetting("AUTO_SWITCH_SHUTTER")).equalsIgnoreCase("true")); } void updateControls() { @@ -166,7 +181,10 @@ public class Beamline extends Panel { args.put("POL_ID_2", comboPol2.getSelectedItem()); args.put("ALPHA_ID_2", spinnerAlp2.getValue()); args.put("HARMONIC_ID_2", spinnerHar2.getValue()); - args.put("OFFSET_ID_2", spinnerOff2.getValue()); + args.put("OFFSET_ID_2", spinnerOff2.getValue()); + args.put("GRATING", comboGrating.getSelectedItem()); + args.put("DIFF_ORD", comboDiffOrder.getSelectedItem()); + args.put("CFF", spinnerCff.getValue()); } void applyBeamline() throws Context.ContextStateException { @@ -198,10 +216,6 @@ public class Beamline 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<>(); @@ -211,10 +225,6 @@ public class Beamline 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(); @@ -222,13 +232,52 @@ public class Beamline extends Panel { deviceValuePanel1 = new ch.psi.pshell.swing.DeviceValuePanel(); deviceValuePanel10 = new ch.psi.pshell.swing.DeviceValuePanel(); buttonUndo = new javax.swing.JButton(); + checkAutoShutter = new javax.swing.JCheckBox(); + jPanel1 = new javax.swing.JPanel(); + comboGrating = new javax.swing.JComboBox<>(); + jLabel2 = new javax.swing.JLabel(); + comboDiffOrder = new javax.swing.JComboBox<>(); + spinnerCff = new javax.swing.JSpinner(); + jLabel4 = new javax.swing.JLabel(); + jLabel9 = new javax.swing.JLabel(); + checkAutoBeamline = new javax.swing.JCheckBox(); checkDryMode = new javax.swing.JCheckBox(); jLabel1 = new javax.swing.JLabel(); + jPanel2 = new javax.swing.JPanel(); + jPanel3 = new javax.swing.JPanel(); + jLabel10 = new javax.swing.JLabel(); + jLabel11 = new javax.swing.JLabel(); + jLabel12 = new javax.swing.JLabel(); + jLabel17 = new javax.swing.JLabel(); + deviceValuePanel3 = new ch.psi.pshell.swing.DeviceValuePanel(); + deviceValuePanel2 = new ch.psi.pshell.swing.DeviceValuePanel(); + deviceValuePanel4 = new ch.psi.pshell.swing.DeviceValuePanel(); + deviceValuePanel5 = new ch.psi.pshell.swing.DeviceValuePanel(); + labelOffID1a2 = new javax.swing.JLabel(); + dvpOffID1b2 = new ch.psi.pshell.swing.DeviceValuePanel(); + jPanel4 = new javax.swing.JPanel(); + jLabel18 = new javax.swing.JLabel(); + jLabel19 = new javax.swing.JLabel(); + jLabel20 = new javax.swing.JLabel(); + jLabel21 = new javax.swing.JLabel(); + labelOffID2a2 = new javax.swing.JLabel(); + dvpOffID2b2 = new ch.psi.pshell.swing.DeviceValuePanel(); + 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(); + jPanel6 = new javax.swing.JPanel(); + jLabel22 = new javax.swing.JLabel(); + jLabel23 = new javax.swing.JLabel(); + jLabel24 = new javax.swing.JLabel(); + deviceValuePanel11 = new ch.psi.pshell.swing.DeviceValuePanel(); + deviceValuePanel12 = new ch.psi.pshell.swing.DeviceValuePanel(); + deviceValuePanel13 = new ch.psi.pshell.swing.DeviceValuePanel(); panelBeamline.setBorder(javax.swing.BorderFactory.createTitledBorder("Setup")); jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel3.setText("ID:"); + jLabel3.setText("Mode:"); comboID.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); comboID.addActionListener(new java.awt.event.ActionListener() { @@ -239,7 +288,7 @@ public class Beamline extends Panel { jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("ID1")); - jLabel5.setText("Mode:"); + jLabel5.setText("Polarization:"); comboPol1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); comboPol1.addActionListener(new java.awt.event.ActionListener() { @@ -260,20 +309,12 @@ public class Beamline 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( jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap(12, Short.MAX_VALUE) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING) @@ -281,23 +322,10 @@ public class Beamline extends Panel { .addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .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)) + .addComponent(spinnerAlp1, 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(comboPol1, 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))) ); jPanel7Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel5, jLabel6, jLabel7, jLabel8}); @@ -309,32 +337,28 @@ public class Beamline extends Panel { .addGroup(jPanel7Layout.createSequentialGroup() .addContainerGap() .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.CENTER) .addComponent(jLabel6) - .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)) + .addComponent(spinnerAlp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .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(deviceValuePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spinnerHar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .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(deviceValuePanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spinnerOff1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - jPanel7Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel2, deviceValuePanel3, deviceValuePanel4, deviceValuePanel5, spinnerAlp1, spinnerHar1, spinnerOff1}); + jPanel7Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {spinnerAlp1, spinnerHar1, spinnerOff1}); jPanel9.setBorder(javax.swing.BorderFactory.createTitledBorder("ID2")); - jLabel13.setText("Mode:"); + jLabel13.setText("Polarization:"); comboPol2.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); comboPol2.addActionListener(new java.awt.event.ActionListener() { @@ -355,14 +379,6 @@ public class Beamline 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( @@ -380,12 +396,6 @@ public class Beamline 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)) ); @@ -398,28 +408,24 @@ public class Beamline extends Panel { .addGroup(jPanel9Layout.createSequentialGroup() .addContainerGap() .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.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.CENTER) .addComponent(jLabel15) - .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)) + .addComponent(spinnerHar2, 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.CENTER) .addComponent(jLabel16) - .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)) + .addComponent(spinnerOff2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - jPanel9Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {deviceValuePanel6, deviceValuePanel7, deviceValuePanel8, deviceValuePanel9, spinnerAlp2, spinnerHar2, spinnerOff2}); + jPanel9Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {spinnerAlp2, spinnerHar2, spinnerOff2}); buttonApply.setText("Apply"); buttonApply.addActionListener(new java.awt.event.ActionListener() { @@ -429,7 +435,7 @@ public class Beamline extends Panel { }); jLabel27.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel27.setText("Energy:"); + jLabel27.setText("Photon Energy:"); spinnerImgEng.setModel(new javax.swing.SpinnerNumberModel(1000.0d, 90.0d, 2520.0d, 1.0d)); @@ -451,6 +457,65 @@ public class Beamline extends Panel { } }); + checkAutoShutter.setText("Auto Fast Shutter"); + checkAutoShutter.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + checkAutoShutterActionPerformed(evt); + } + }); + + jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Mono")); + + comboGrating.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); + + jLabel2.setText("Grating:"); + + comboDiffOrder.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "1", "2", "3" })); + + jLabel4.setText("cff:"); + + jLabel9.setText("Diff. order:"); + + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel2) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(comboGrating, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(21, 21, 21) + .addComponent(jLabel4) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(spinnerCff, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel9) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(comboDiffOrder, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(14, 14, 14)) + ); + jPanel1Layout.setVerticalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel2) + .addComponent(comboGrating, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel4) + .addComponent(spinnerCff, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel9) + .addComponent(comboDiffOrder, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + checkAutoBeamline.setText("Auto Beamline"); + checkAutoBeamline.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + checkAutoBeamlineActionPerformed(evt); + } + }); + javax.swing.GroupLayout panelBeamlineLayout = new javax.swing.GroupLayout(panelBeamline); panelBeamline.setLayout(panelBeamlineLayout); panelBeamlineLayout.setHorizontalGroup( @@ -470,17 +535,21 @@ public class Beamline extends Panel { .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)))) - .addGap(18, 18, Short.MAX_VALUE) - .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .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(buttonUndo, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(buttonApply, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(deviceValuePanel10, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(checkAutoShutter) + .addComponent(checkAutoBeamline)) + .addGap(24, 24, 24) + .addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelBeamlineLayout.createSequentialGroup() + .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(panelBeamlineLayout.createSequentialGroup() + .addComponent(buttonUndo, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(buttonApply, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) ); panelBeamlineLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel27, jLabel3}); @@ -491,11 +560,6 @@ public class Beamline extends Panel { panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .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) @@ -510,12 +574,24 @@ public class Beamline extends Panel { .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))) - .addGap(18, 18, 18) + .addComponent(checkAutoValve)) + .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)))) + .addGap(6, 6, 6) + .addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelBeamlineLayout.createSequentialGroup() + .addComponent(checkAutoShutter) + .addGap(4, 4, 4) + .addComponent(checkAutoBeamline)) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(panelBeamlineLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonApply) .addComponent(buttonUndo)) - .addContainerGap()) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelBeamlineLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboID, deviceValuePanel1, deviceValuePanel10, spinnerImgEng}); @@ -529,28 +605,252 @@ public class Beamline extends Panel { jLabel1.setText("Dry Run"); + jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Status")); + + jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("ID1")); + + jLabel10.setText("Polarization:"); + + jLabel11.setText("Alpha:"); + + jLabel12.setText("Harmonic:"); + + jLabel17.setText("Offset:"); + + deviceValuePanel3.setDeviceName("id1_pol"); + + deviceValuePanel2.setDeviceName("id1_alpha"); + + deviceValuePanel4.setDeviceName("id1_harmonic"); + + deviceValuePanel5.setDeviceName("id1_offset"); + + labelOffID1a2.setText("Gap:"); + + dvpOffID1b2.setDeviceName("id1_gap"); + + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel17) + .addComponent(jLabel12) + .addComponent(labelOffID1a2) + .addComponent(jLabel11) + .addComponent(jLabel10)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(deviceValuePanel3, javax.swing.GroupLayout.DEFAULT_SIZE, 72, Short.MAX_VALUE) + .addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addComponent(deviceValuePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(dvpOffID1b2, javax.swing.GroupLayout.DEFAULT_SIZE, 72, Short.MAX_VALUE) + .addComponent(deviceValuePanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))) + .addContainerGap(14, Short.MAX_VALUE)) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel10) + .addComponent(deviceValuePanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel11) + .addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel12) + .addComponent(deviceValuePanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel17) + .addComponent(deviceValuePanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(labelOffID1a2) + .addComponent(dvpOffID1b2, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0)) + ); + + jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("ID2")); + + jLabel18.setText("Polarization:"); + + jLabel19.setText("Alpha:"); + + jLabel20.setText("Harmonic:"); + + jLabel21.setText("Offset:"); + + labelOffID2a2.setText("Gap:"); + + dvpOffID2b2.setDeviceName("id2_gap"); + + deviceValuePanel6.setDeviceName("id2_pol"); + + deviceValuePanel7.setDeviceName("id2_alpha"); + + deviceValuePanel8.setDeviceName("id2_harmonic"); + + deviceValuePanel9.setDeviceName("id2_offset"); + + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addComponent(labelOffID2a2) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(jPanel4Layout.createSequentialGroup() + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel18) + .addComponent(jLabel21) + .addComponent(jLabel20) + .addComponent(jLabel19)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(deviceValuePanel6, javax.swing.GroupLayout.PREFERRED_SIZE, 0, 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, 72, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(dvpOffID2b2, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(15, 15, 15)))) + ); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel18) + .addComponent(deviceValuePanel6, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel19) + .addComponent(deviceValuePanel7, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel20) + .addComponent(deviceValuePanel8, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel21) + .addComponent(deviceValuePanel9, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(labelOffID2a2) + .addComponent(dvpOffID2b2, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))) + ); + + jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Mono")); + + jLabel22.setText("Grating:"); + + jLabel23.setText("cff:"); + + jLabel24.setText("Diff. order:"); + + deviceValuePanel11.setDeviceName("Grating"); + + deviceValuePanel12.setDeviceName("cff"); + + deviceValuePanel13.setDeviceName("DiffOrd"); + + javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout.setHorizontalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel6Layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel22) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(deviceValuePanel11, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(26, 26, 26) + .addComponent(jLabel23) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(deviceValuePanel12, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel24) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(deviceValuePanel13, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + jPanel6Layout.setVerticalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel22) + .addComponent(deviceValuePanel11, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel23) + .addComponent(deviceValuePanel12, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel24) + .addComponent(deviceValuePanel13, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) + ); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanel2Layout.createSequentialGroup() + .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(41, 41, 41) + .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(18, 18, 18) + .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(49, 49, 49)) + ); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(panelBeamline, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(checkDryMode) - .addGap(2, 2, 2) - .addComponent(jLabel1) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(checkDryMode) + .addGap(2, 2, 2) + .addComponent(jLabel1) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(panelBeamline, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(0, 12, Short.MAX_VALUE)))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(0, 0, 0) - .addComponent(panelBeamline, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 23, Short.MAX_VALUE) + .addGap(21, 21, 21) + .addComponent(panelBeamline, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 326, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(checkDryMode) .addComponent(jLabel1)) - .addContainerGap()) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// //GEN-END:initComponents @@ -602,16 +902,43 @@ public class Beamline extends Panel { } }//GEN-LAST:event_buttonUndoActionPerformed + private void checkAutoShutterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkAutoShutterActionPerformed + if (!updatingControls){ + try{ + setSetting("AUTO_SWITCH_SHUTTER", checkAutoShutter.isSelected()); + } catch (Exception ex){ + showException (ex); + } + } + }//GEN-LAST:event_checkAutoShutterActionPerformed + + private void checkAutoBeamlineActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkAutoBeamlineActionPerformed + if (!updatingControls){ + try{ + this.eval("beamline_auto("+ (checkAutoBeamline.isSelected() ? "On" : "Off") + ")",true); + } catch (Exception ex){ + showException (ex); + } + } + }//GEN-LAST:event_checkAutoBeamlineActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonApply; private javax.swing.JButton buttonUndo; + private javax.swing.JCheckBox checkAutoBeamline; + private javax.swing.JCheckBox checkAutoShutter; private javax.swing.JCheckBox checkAutoValve; private javax.swing.JCheckBox checkDryMode; + private javax.swing.JComboBox comboDiffOrder; + private javax.swing.JComboBox comboGrating; private javax.swing.JComboBox comboID; private javax.swing.JComboBox comboPol1; private javax.swing.JComboBox comboPol2; 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 deviceValuePanel13; private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel2; private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel3; private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel4; @@ -620,22 +947,46 @@ public class Beamline extends Panel { private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel7; private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel8; private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel9; + private ch.psi.pshell.swing.DeviceValuePanel dvpOffID1b2; + private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2b2; 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; private javax.swing.JLabel jLabel14; 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 jLabel27; private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; + private javax.swing.JLabel jLabel9; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel9; + private javax.swing.JLabel labelOffID1a2; + private javax.swing.JLabel labelOffID2a2; private javax.swing.JPanel panelBeamline; private javax.swing.JSpinner spinnerAlp1; private javax.swing.JSpinner spinnerAlp2; + private javax.swing.JSpinner spinnerCff; private javax.swing.JSpinner spinnerHar1; private javax.swing.JSpinner spinnerHar2; private javax.swing.JSpinner spinnerImgEng; diff --git a/plugins/DataAcquisition.form b/plugins/DataAcquisition.form index f6204cb..d0a4e74 100755 --- a/plugins/DataAcquisition.form +++ b/plugins/DataAcquisition.form @@ -69,7 +69,7 @@ - + @@ -93,7 +93,7 @@ - + @@ -177,7 +177,7 @@ - + @@ -330,7 +330,7 @@ - + @@ -370,7 +370,7 @@ - + @@ -533,7 +533,6 @@ - @@ -541,14 +540,12 @@ - - - + - + @@ -619,7 +616,7 @@ - + @@ -635,7 +632,7 @@ - + @@ -648,7 +645,7 @@ - + @@ -853,179 +850,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1041,29 +865,29 @@ - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + - + @@ -1082,22 +906,32 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + @@ -1115,8 +949,11 @@ - - + + + + + @@ -1139,6 +976,12 @@ + + + + + + @@ -1324,247 +1167,44 @@ + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -1572,43 +1212,52 @@ - + - + - + - + - + - + + + + + - - + + - - + + - + - - - - - - - + + + + + + + + + + + + - + @@ -1616,32 +1265,36 @@ - + - + - + - + - + - - - + + + + + + + - + @@ -1655,7 +1308,7 @@ - + @@ -1669,7 +1322,7 @@ - + @@ -1682,7 +1335,7 @@ - + @@ -1700,7 +1353,7 @@ - + @@ -1713,25 +1366,25 @@ + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - diff --git a/plugins/DataAcquisition.java b/plugins/DataAcquisition.java index b0c1dda..05e4d35 100755 --- a/plugins/DataAcquisition.java +++ b/plugins/DataAcquisition.java @@ -89,7 +89,7 @@ public class DataAcquisition extends Panel { SwingUtils.setEnumCombo(comboImgMethod, ImgMethod.class, true); Component[] parameterControls = new Component[0]; - for (JPanel panel : new JPanel[]{panelImgControls, panelSpectrum, panelParameters}) { + for (JPanel panel : new JPanel[]{panelImgControls, panelSpectrum, panelParameters1}) { for (Class cls : new Class[]{JComboBox.class, JSpinner.class, JToggleButton.class}) { parameterControls = Arr.append(parameterControls, SwingUtils.getComponentsByType(panel, cls)); } @@ -219,7 +219,7 @@ public class DataAcquisition extends Panel { buttonImgOTFStart.setEnabled(getState() == State.Ready); buttonImgOTFAbort.setEnabled(getState().isProcessing()); - + /* try { String id = getSetting("ID"); boolean single = !id.equals("ID1_ID2"); @@ -234,7 +234,7 @@ public class DataAcquisition extends Panel { } labelID.setText(id); labelID1.setText(id); - /* + boolean id1 = !id.equals("ID2"); boolean id2 = !id.equals("ID1"); dvpModeID1a.setVisible(id1); @@ -253,12 +253,12 @@ public class DataAcquisition extends Panel { labelOffID2a.setVisible(id2); dvpOffID2b.setVisible(id2); labelOffID2b.setVisible(id2); - */ + } catch (Exception ex) { getLogger().log(Level.WARNING, null, ex); } - + */ try { String setting = getSetting("AVERAGING_DETECTOR"); boolean det = setting.equalsIgnoreCase("true"); @@ -539,23 +539,6 @@ public class DataAcquisition extends Panel { checkSwitchPol = new javax.swing.JCheckBox(); labelScans = new javax.swing.JLabel(); spinnerScans = new javax.swing.JSpinner(); - jPanel9 = new javax.swing.JPanel(); - dvpEnergya3 = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpOffID1b = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpModeID2b = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpOffID2b = new ch.psi.pshell.swing.DeviceValuePanel(); - labelEnergya3 = new javax.swing.JLabel(); - labelOffID2a = new javax.swing.JLabel(); - labelOffID1a = new javax.swing.JLabel(); - dvpModeID1b = new ch.psi.pshell.swing.DeviceValuePanel(); - labelModeID1b = new javax.swing.JLabel(); - labelModeID2b = new javax.swing.JLabel(); - labelEnergya4 = new javax.swing.JLabel(); - labelID = new javax.swing.JLabel(); - labelOffID1a1 = new javax.swing.JLabel(); - dvpOffID1b1 = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpOffID2b1 = new ch.psi.pshell.swing.DeviceValuePanel(); - labelOffID2a1 = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); panelSpectrum = new javax.swing.JPanel(); jLabel23 = new javax.swing.JLabel(); @@ -579,34 +562,17 @@ public class DataAcquisition extends Panel { buttonSpecStart = new javax.swing.JButton(); buttonSpecAbort = new javax.swing.JButton(); jPanel6 = new javax.swing.JPanel(); - dvpEnergya = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpOffID1a = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpModeID2a = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpOffID2a = new ch.psi.pshell.swing.DeviceValuePanel(); - labelEnergya = new javax.swing.JLabel(); - labelOffID2b = new javax.swing.JLabel(); - labelOffID1b = new javax.swing.JLabel(); - dvpModeID1a = new ch.psi.pshell.swing.DeviceValuePanel(); - labelModeID1a = new javax.swing.JLabel(); - labelModeID2a = new javax.swing.JLabel(); - labelEnergya5 = new javax.swing.JLabel(); - labelID1 = new javax.swing.JLabel(); - labelOffID1a2 = new javax.swing.JLabel(); - dvpOffID1b2 = new ch.psi.pshell.swing.DeviceValuePanel(); - dvpOffID2b2 = new ch.psi.pshell.swing.DeviceValuePanel(); - labelOffID2a2 = new javax.swing.JLabel(); - jPanel7 = new javax.swing.JPanel(); - panelParameters = new javax.swing.JPanel(); - jLabel1 = new javax.swing.JLabel(); + panelParameters1 = new javax.swing.JPanel(); + jLabel6 = new javax.swing.JLabel(); spinnerE1 = new javax.swing.JSpinner(); - jLabel2 = new javax.swing.JLabel(); + jLabel8 = new javax.swing.JLabel(); spinnerE2 = new javax.swing.JSpinner(); - jLabel3 = new javax.swing.JLabel(); + jLabel10 = new javax.swing.JLabel(); spinnerTime = new javax.swing.JSpinner(); - jLabel5 = new javax.swing.JLabel(); + jLabel11 = new javax.swing.JLabel(); spinnerDelay = new javax.swing.JSpinner(); checkImgOTFSaveImages = new javax.swing.JCheckBox(); - jLabel27 = new javax.swing.JLabel(); + jLabel28 = new javax.swing.JLabel(); spinnerImgOTFExp = new javax.swing.JSpinner(); buttonImgOTFStart = new javax.swing.JButton(); buttonImgOTFAbort = new javax.swing.JButton(); @@ -650,7 +616,7 @@ public class DataAcquisition extends Panel { .addGap(18, 18, 18) .addComponent(jLabel29) .addGap(0, 0, 0) - .addComponent(textNorm, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE) + .addComponent(textNorm, javax.swing.GroupLayout.DEFAULT_SIZE, 554, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonSetNorm) .addContainerGap()) @@ -725,7 +691,7 @@ public class DataAcquisition extends Panel { .addComponent(jLabel31) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinnerOutliersThreshold, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 330, Short.MAX_VALUE))) + .addGap(0, 444, Short.MAX_VALUE))) .addContainerGap()) ); @@ -808,7 +774,7 @@ public class DataAcquisition extends Panel { .addComponent(panelNorm2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(panelNorm1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(123, Short.MAX_VALUE)) + .addContainerGap(300, Short.MAX_VALUE)) ); jTabbedPane1.addTab("Detector", jPanel1); @@ -893,7 +859,7 @@ public class DataAcquisition extends Panel { panelRoiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRoiLayout.createSequentialGroup() .addGap(17, 17, 17) - .addComponent(rendererRoi, javax.swing.GroupLayout.DEFAULT_SIZE, 439, Short.MAX_VALUE) + .addComponent(rendererRoi, javax.swing.GroupLayout.DEFAULT_SIZE, 539, Short.MAX_VALUE) .addGap(18, 18, 18) .addGroup(panelRoiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRoiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) @@ -927,7 +893,7 @@ public class DataAcquisition extends Panel { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel26) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 372, Short.MAX_VALUE) .addGap(18, 18, 18) .addComponent(buttonRoiClear, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -1024,7 +990,7 @@ public class DataAcquisition extends Panel { .addComponent(comboSwitch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(comboSeq, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(checkImgAutosave, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, Short.MAX_VALUE) + .addGap(18, 73, Short.MAX_VALUE) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel20, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING) @@ -1038,7 +1004,7 @@ public class DataAcquisition extends Panel { .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(spinnerImgExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spinnerImgMeasurements, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, Short.MAX_VALUE) + .addGap(18, 73, Short.MAX_VALUE) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(labelImgEng1, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(labelImgEng2, javax.swing.GroupLayout.Alignment.TRAILING)) @@ -1047,7 +1013,7 @@ public class DataAcquisition extends Panel { .addComponent(spinnerImgEng1, 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))) .addComponent(spinnerScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(63, Short.MAX_VALUE)) ); jPanel5Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerImgAvg, spinnerImgEng1, spinnerImgEng2, spinnerImgExp, spinnerImgMeasurements, spinnerScans}); @@ -1111,115 +1077,6 @@ public class DataAcquisition extends Panel { .addContainerGap(19, Short.MAX_VALUE)) ); - dvpEnergya3.setDeviceName("energy"); - - dvpOffID1b.setDeviceName("id1_offset"); - - dvpModeID2b.setDeviceName("id2_pol"); - - dvpOffID2b.setDeviceName("id2_offset"); - - labelEnergya3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelEnergya3.setText("Energy:"); - - labelOffID2a.setText("Offset ID2:"); - - labelOffID1a.setText("Offset ID1:"); - - dvpModeID1b.setDeviceName("id1_pol"); - - labelModeID1b.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelModeID1b.setText("Mode ID1:"); - - labelModeID2b.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelModeID2b.setText("Mode ID2:"); - - labelEnergya4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelEnergya4.setText("ID:"); - - labelID.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - labelID.setBorder(javax.swing.BorderFactory.createTitledBorder("")); - - labelOffID1a1.setText("Gap ID1:"); - - dvpOffID1b1.setDeviceName("id1_gap"); - - dvpOffID2b1.setDeviceName("id2_gap"); - - labelOffID2a1.setText("Gap ID2:"); - - javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9); - jPanel9.setLayout(jPanel9Layout); - jPanel9Layout.setHorizontalGroup( - jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel9Layout.createSequentialGroup() - .addGap(24, 24, 24) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(labelModeID2b, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(labelModeID1b, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelEnergya4, javax.swing.GroupLayout.Alignment.TRAILING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(labelID, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(dvpModeID1b, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) - .addComponent(dvpModeID2b, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) - .addGap(18, 18, 18) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(labelOffID2a, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelEnergya3, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelOffID1a, javax.swing.GroupLayout.Alignment.TRAILING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(dvpEnergya3, javax.swing.GroupLayout.DEFAULT_SIZE, 92, Short.MAX_VALUE) - .addGroup(jPanel9Layout.createSequentialGroup() - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(dvpOffID2b, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(dvpOffID1b, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(labelOffID2a1, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelOffID1a1, javax.swing.GroupLayout.Alignment.TRAILING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(dvpOffID2b1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(dvpOffID1b1, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - jPanel9Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {dvpEnergya3, dvpModeID1b, dvpModeID2b, dvpOffID1b, dvpOffID1b1, dvpOffID2b, dvpOffID2b1, labelID}); - - jPanel9Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {labelEnergya3, labelModeID1b, labelModeID2b, labelOffID1a, labelOffID2a}); - - jPanel9Layout.setVerticalGroup( - jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel9Layout.createSequentialGroup() - .addContainerGap() - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(labelEnergya4) - .addComponent(labelID) - .addComponent(labelEnergya3) - .addComponent(dvpEnergya3, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(labelModeID1b) - .addComponent(dvpModeID1b, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID1a) - .addComponent(dvpOffID1b, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID1a1) - .addComponent(dvpOffID1b1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(labelModeID2b) - .addComponent(dvpModeID2b, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID2a) - .addComponent(dvpOffID2b, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID2a1) - .addComponent(dvpOffID2b1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) - ); - - jPanel9Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {dvpEnergya3, dvpModeID1b, dvpModeID2b, dvpOffID1b, dvpOffID1b1, dvpOffID2b, dvpOffID2b1, labelID}); - javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( @@ -1231,7 +1088,6 @@ public class DataAcquisition extends Panel { .addComponent(buttonImgAbort) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(panelImgControls, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel9, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonImgAbort, buttonImgStart}); @@ -1241,13 +1097,11 @@ public class DataAcquisition extends Panel { .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(panelImgControls, 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) - .addComponent(jPanel9, 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, 269, Short.MAX_VALUE) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonImgStart) .addComponent(buttonImgAbort)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(73, Short.MAX_VALUE)) ); jTabbedPane1.addTab("2-Images", jPanel2); @@ -1375,25 +1229,46 @@ public class DataAcquisition extends Panel { .addGap(21, 21, 21)))) ); + buttonSpecStart.setText("Start"); + buttonSpecStart.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonSpecStartActionPerformed(evt); + } + }); + + buttonSpecAbort.setText("Abort"); + buttonSpecAbort.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonSpecAbortActionPerformed(evt); + } + }); + javax.swing.GroupLayout panelSpectrumLayout = new javax.swing.GroupLayout(panelSpectrum); panelSpectrum.setLayout(panelSpectrumLayout); panelSpectrumLayout.setHorizontalGroup( panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSpectrumLayout.createSequentialGroup() .addContainerGap() - .addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel24) - .addComponent(jLabel23) - .addComponent(jLabel25)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(checkSpecSwitchPol) - .addComponent(spinnerSpecScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spinnerSpecAvg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spinnerSpecExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(panelSpectrumLayout.createSequentialGroup() + .addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel24) + .addComponent(jLabel23) + .addComponent(jLabel25)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(checkSpecSwitchPol) + .addComponent(spinnerSpecScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spinnerSpecAvg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spinnerSpecExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(panelSpectrumLayout.createSequentialGroup() + .addGap(24, 24, 24) + .addComponent(buttonSpecStart) + .addGap(18, 18, 18) + .addComponent(buttonSpecAbort))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(91, Short.MAX_VALUE)) .addGroup(panelSpectrumLayout.createSequentialGroup() .addGap(99, 99, 99) .addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1405,12 +1280,16 @@ public class DataAcquisition extends Panel { panelSpectrumLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerSpecAvg, spinnerSpecExp, spinnerSpecScans}); + panelSpectrumLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonSpecAbort, buttonSpecStart}); + panelSpectrumLayout.setVerticalGroup( panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSpectrumLayout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(panelSpectrumLayout.createSequentialGroup() + .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(panelSpectrumLayout.createSequentialGroup() .addComponent(checkSpecSaveSpectrum) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -1430,256 +1309,56 @@ public class DataAcquisition extends Panel { .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) - .addComponent(checkSpecSwitchPol)))) + .addComponent(checkSpecSwitchPol) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 40, Short.MAX_VALUE) + .addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(buttonSpecStart) + .addComponent(buttonSpecAbort)) + .addGap(19, 19, 19)))) ); - buttonSpecStart.setText("Start"); - buttonSpecStart.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonSpecStartActionPerformed(evt); - } - }); - - buttonSpecAbort.setText("Abort"); - buttonSpecAbort.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonSpecAbortActionPerformed(evt); - } - }); - - dvpEnergya.setDeviceName("energy"); - - dvpOffID1a.setDeviceName("id1_offset"); - - dvpModeID2a.setDeviceName("id2_pol"); - - dvpOffID2a.setDeviceName("id2_offset"); - - labelEnergya.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelEnergya.setText("Energy:"); - - labelOffID2b.setText("Offset ID2:"); - - labelOffID1b.setText("Offset ID1:"); - - dvpModeID1a.setDeviceName("id1_pol"); - - labelModeID1a.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelModeID1a.setText("Mode ID1:"); - - labelModeID2a.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelModeID2a.setText("Mode ID2:"); - - labelEnergya5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelEnergya5.setText("ID:"); - - labelID1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - labelID1.setBorder(javax.swing.BorderFactory.createTitledBorder("")); - - labelOffID1a2.setText("Gap ID1:"); - - dvpOffID1b2.setDeviceName("id1_gap"); - - dvpOffID2b2.setDeviceName("id2_gap"); - - labelOffID2a2.setText("Gap ID2:"); - javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); jPanel6.setLayout(jPanel6Layout); jPanel6Layout.setHorizontalGroup( jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel6Layout.createSequentialGroup() - .addGap(24, 24, 24) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(labelEnergya5, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelModeID1a, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelModeID2a, javax.swing.GroupLayout.Alignment.TRAILING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(labelID1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(dvpModeID1a, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) - .addComponent(dvpModeID2a, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) - .addGap(18, 18, 18) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(labelOffID2b, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelOffID1b, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelEnergya, javax.swing.GroupLayout.Alignment.TRAILING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(dvpEnergya, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(jPanel6Layout.createSequentialGroup() - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(dvpOffID2a, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(dvpOffID1a, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(labelOffID2a2, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(labelOffID1a2, javax.swing.GroupLayout.Alignment.TRAILING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(dvpOffID2b2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(dvpOffID1b2, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(114, Short.MAX_VALUE)) + .addGap(0, 0, Short.MAX_VALUE) ); - - jPanel6Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {dvpEnergya, dvpModeID1a, dvpModeID2a, dvpOffID1a, dvpOffID1b2, dvpOffID2a, dvpOffID2b2, labelID1}); - - jPanel6Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {labelEnergya, labelModeID1a, labelModeID2a, labelOffID1b, labelOffID2b}); - jPanel6Layout.setVerticalGroup( jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel6Layout.createSequentialGroup() - .addContainerGap() - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(labelEnergya5) - .addComponent(labelID1) - .addComponent(labelEnergya) - .addComponent(dvpEnergya, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(dvpOffID1b2, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID1a2) - .addComponent(dvpOffID1a, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID1b) - .addComponent(dvpModeID1a, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelModeID1a)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(labelModeID2a) - .addComponent(dvpModeID2a, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID2b) - .addComponent(dvpOffID2a, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelOffID2a2) - .addComponent(dvpOffID2b2, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) + .addGap(0, 84, Short.MAX_VALUE) ); - jPanel6Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {dvpEnergya, dvpModeID1a, dvpModeID2a, dvpOffID1a, dvpOffID1b2, dvpOffID2a, dvpOffID2b2, labelID1}); + panelParameters1.setBorder(javax.swing.BorderFactory.createTitledBorder("OTF")); - jPanel6Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {labelEnergya, labelModeID1a, labelModeID2a, labelOffID1b, labelOffID2b}); - - javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); - jPanel3.setLayout(jPanel3Layout); - jPanel3Layout.setHorizontalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonSpecStart) - .addGap(76, 76, 76) - .addComponent(buttonSpecAbort) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(panelSpectrum, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - ); - - jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonSpecAbort, buttonSpecStart}); - - jPanel3Layout.setVerticalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel3Layout.createSequentialGroup() - .addContainerGap() - .addComponent(panelSpectrum, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel6, 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) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(buttonSpecStart) - .addComponent(buttonSpecAbort)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - jTabbedPane1.addTab("Absorption Spectrum", jPanel3); - - panelParameters.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameters")); - - jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel1.setText("E start:"); - jLabel1.setToolTipText(""); + jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel6.setText("E start:"); + jLabel6.setToolTipText(""); spinnerE1.setModel(new javax.swing.SpinnerNumberModel(680.0d, 0.0d, 9999.0d, 1.0d)); - jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel2.setText("E end:"); - jLabel2.setToolTipText(""); + jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel8.setText("E end:"); + jLabel8.setToolTipText(""); spinnerE2.setModel(new javax.swing.SpinnerNumberModel(750.0d, 0.0d, 9999.0d, 1.0d)); - jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel3.setText("Time(min):"); + jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel10.setText("Time(min):"); spinnerTime.setModel(new javax.swing.SpinnerNumberModel(1.0d, 0.0d, 60.0d, 1.0d)); - jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel5.setText("Delay(s):"); + jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel11.setText("Delay(s):"); spinnerDelay.setModel(new javax.swing.SpinnerNumberModel(0.1d, 0.0d, 600.0d, 1.0d)); checkImgOTFSaveImages.setText("Save images"); - jLabel27.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel27.setText("Exposure(s):"); + jLabel28.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel28.setText("Exposure(s):"); spinnerImgOTFExp.setModel(new javax.swing.SpinnerNumberModel(0.2d, 0.0d, 3600.0d, 1.0d)); - javax.swing.GroupLayout panelParametersLayout = new javax.swing.GroupLayout(panelParameters); - panelParameters.setLayout(panelParametersLayout); - panelParametersLayout.setHorizontalGroup( - panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelParametersLayout.createSequentialGroup() - .addContainerGap() - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(panelParametersLayout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(jLabel27) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spinnerImgOTFExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelParametersLayout.createSequentialGroup() - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(checkImgOTFSaveImages) - .addGroup(panelParametersLayout.createSequentialGroup() - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel3) - .addComponent(jLabel1)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(spinnerE1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spinnerTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 175, Short.MAX_VALUE) - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(spinnerE2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spinnerDelay, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addContainerGap(151, Short.MAX_VALUE)) - ); - - panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerDelay, spinnerE1, spinnerE2, spinnerImgOTFExp, spinnerTime}); - - panelParametersLayout.setVerticalGroup( - panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelParametersLayout.createSequentialGroup() - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel1) - .addComponent(spinnerE1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel2) - .addComponent(spinnerE2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) - .addComponent(spinnerTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel5) - .addComponent(spinnerDelay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel27) - .addComponent(spinnerImgOTFExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 87, Short.MAX_VALUE) - .addComponent(checkImgOTFSaveImages) - .addContainerGap()) - ); - buttonImgOTFStart.setText("Start"); buttonImgOTFStart.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -1695,37 +1374,100 @@ public class DataAcquisition extends Panel { } }); - javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); - jPanel7.setLayout(jPanel7Layout); - jPanel7Layout.setHorizontalGroup( - jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() + javax.swing.GroupLayout panelParameters1Layout = new javax.swing.GroupLayout(panelParameters1); + panelParameters1.setLayout(panelParameters1Layout); + panelParameters1Layout.setHorizontalGroup( + panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelParameters1Layout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(panelParameters, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup() + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(panelParameters1Layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) - .addComponent(buttonImgOTFStart) - .addGap(64, 64, 64) - .addComponent(buttonImgOTFAbort) - .addGap(0, 0, Short.MAX_VALUE))) - .addContainerGap()) + .addComponent(jLabel28) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spinnerImgOTFExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelParameters1Layout.createSequentialGroup() + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(panelParameters1Layout.createSequentialGroup() + .addComponent(buttonImgOTFStart) + .addGap(18, 18, 18) + .addComponent(buttonImgOTFAbort)) + .addGroup(panelParameters1Layout.createSequentialGroup() + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel10) + .addComponent(jLabel6)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(spinnerE1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spinnerTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 217, Short.MAX_VALUE) + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelParameters1Layout.createSequentialGroup() + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(spinnerE2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spinnerDelay, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(checkImgOTFSaveImages, javax.swing.GroupLayout.Alignment.TRAILING)))) + .addContainerGap(218, Short.MAX_VALUE)) ); - jPanel7Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonImgOTFAbort, buttonImgOTFStart}); + panelParameters1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonImgOTFAbort, buttonImgOTFStart}); - jPanel7Layout.setVerticalGroup( - jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() - .addComponent(panelParameters, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 151, Short.MAX_VALUE) - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + panelParameters1Layout.setVerticalGroup( + panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelParameters1Layout.createSequentialGroup() + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel6) + .addComponent(spinnerE1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel8) + .addComponent(spinnerE2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel10) + .addComponent(spinnerTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel11) + .addComponent(spinnerDelay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel28) + .addComponent(spinnerImgOTFExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(7, 7, 7) + .addGroup(panelParameters1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(buttonImgOTFStart) .addComponent(buttonImgOTFAbort) - .addComponent(buttonImgOTFStart)) - .addGap(40, 40, 40)) + .addComponent(checkImgOTFSaveImages)) + .addContainerGap(12, Short.MAX_VALUE)) ); - jTabbedPane1.addTab("Image OTF", jPanel7); + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(panelSpectrum, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .addComponent(panelParameters1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .addComponent(panelSpectrum, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(57, 57, 57) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(panelParameters1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 40, Short.MAX_VALUE)) + ); + + jTabbedPane1.addTab("Absorption Spectrum", jPanel3); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); @@ -2043,36 +1785,22 @@ public class DataAcquisition extends Panel { private javax.swing.JComboBox comboImgMethod; private javax.swing.JComboBox comboSeq; private javax.swing.JComboBox comboSwitch; - private ch.psi.pshell.swing.DeviceValuePanel dvpEnergya; - private ch.psi.pshell.swing.DeviceValuePanel dvpEnergya3; - private ch.psi.pshell.swing.DeviceValuePanel dvpModeID1a; - private ch.psi.pshell.swing.DeviceValuePanel dvpModeID1b; - private ch.psi.pshell.swing.DeviceValuePanel dvpModeID2a; - private ch.psi.pshell.swing.DeviceValuePanel dvpModeID2b; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID1a; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID1b; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID1b1; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID1b2; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2a; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2b; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2b1; - private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2b2; - private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel10; + private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; 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; private javax.swing.JLabel jLabel31; private javax.swing.JLabel jLabel4; - private javax.swing.JLabel jLabel5; + private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; + private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; @@ -2080,31 +1808,11 @@ public class DataAcquisition extends Panel { private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; - private javax.swing.JPanel jPanel7; - private javax.swing.JPanel jPanel9; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTabbedPane jTabbedPane1; - private javax.swing.JLabel labelEnergya; - private javax.swing.JLabel labelEnergya3; - private javax.swing.JLabel labelEnergya4; - private javax.swing.JLabel labelEnergya5; - private javax.swing.JLabel labelID; - private javax.swing.JLabel labelID1; private javax.swing.JLabel labelImgEng1; private javax.swing.JLabel labelImgEng2; - private javax.swing.JLabel labelModeID1a; - private javax.swing.JLabel labelModeID1b; - private javax.swing.JLabel labelModeID2a; - private javax.swing.JLabel labelModeID2b; - private javax.swing.JLabel labelOffID1a; - private javax.swing.JLabel labelOffID1a1; - private javax.swing.JLabel labelOffID1a2; - private javax.swing.JLabel labelOffID1b; - private javax.swing.JLabel labelOffID2a; - private javax.swing.JLabel labelOffID2a1; - private javax.swing.JLabel labelOffID2a2; - private javax.swing.JLabel labelOffID2b; private javax.swing.JLabel labelScans; private javax.swing.JLabel labelSwitching; private javax.swing.JLabel labelSwitching1; @@ -2112,7 +1820,7 @@ public class DataAcquisition extends Panel { private javax.swing.JPanel panelNorm; private javax.swing.JPanel panelNorm1; private javax.swing.JPanel panelNorm2; - private javax.swing.JPanel panelParameters; + private javax.swing.JPanel panelParameters1; private javax.swing.JPanel panelRoi; private javax.swing.JPanel panelSpectrum; private javax.swing.JRadioButton radioAvDetector; diff --git a/script/Users/Je-Geun/VoltageCycle.py b/script/Users/Je-Geun/VoltageCycle.py new file mode 100644 index 0000000..af54771 --- /dev/null +++ b/script/Users/Je-Geun/VoltageCycle.py @@ -0,0 +1,22 @@ +I_TARGET_mA=0 +V_TARGET_V=600 +T_WAIT_ms=5000 + +EPSILON=0.1 +if abs(fil.read()) > EPSILON: + raise Exception("Filament not at 0.0 - Set it to zero using: fil.write(0.)") +if abs(bv.read()) > EPSILON: + raise Exception("Bombardment voltage not at 0.0 - Set it to zero using: bv.write(0.)") + +fil.write(I_TARGET_mA) +time.sleep(float(3500)/1000) +bv.write(V_TARGET_V) + +time.sleep(float(T_WAIT_ms)/1000) + +bv.write(0.0) +time.sleep(float(500)/1000) +fil.write(0.0) + + + diff --git a/script/devices/LEEM2000.py b/script/devices/LEEM2000.py index 526947c..8a73fe9 100644 --- a/script/devices/LEEM2000.py +++ b/script/devices/LEEM2000.py @@ -93,7 +93,7 @@ class LEEM2000(TcpDevice): ret = [] for i in range(self.NUMBER_MNEMONICS): mne = self.get_name(i, timeout, retries) - if mne not in [None, '', 'disabled', 'invalid']: + if mne not in [None, '', 'disabled', 'invalid', 'Manip. X', 'Manip. Y']: ret.append(mne) return ret @@ -280,14 +280,16 @@ add_device (microscope.get_manip_motor(11, 0, "manip_x"), True) add_device (microscope.get_manip_motor(10, 1, "manip_y"), True) add_device (microscope.get_tilt('L','R', "tilt_h"), True) add_device (microscope.get_tilt('D','U', "tilt_v"), True) -#add_device (microscope.get_positioner("MOBJ","objective"), True) -#add_device (microscope.get_positioner("OSTIGA","obj_stig_a"), True) -#add_device (microscope.get_positioner("OSTIGB","obj_stig_b"), True) add_device (microscope.get_child("MOBJ","objective"), True) add_device (microscope.get_child("OSTIGA","obj_stig_a"), True) add_device (microscope.get_child("OSTIGB","obj_stig_b"), True) add_device (microscope.get_child("MDRIVE","azimuth_rot"), True) add_device (microscope.get_child("BOMBV","bv"), True) +add_device (microscope.get_child("FIL","fil"), True) +add_device (microscope.get_child("STV","start_voltage"), True) +add_device (microscope.get_child("OBJDX","obj_align_x"), True) +add_device (microscope.get_child("OBJDY","obj_align_y"), True) +add_device (microscope.get_child("HMOTSLIT","slitttt"), True) microscope.setPolling(5000) @@ -335,6 +337,8 @@ tilt_horizontal.polling=500 manip_x.polling=500 manip_y.polling=500 fov.polling=5000 +bv.polling=1000 +fil.polling=1000 diff --git a/script/devices/diag.py b/script/devices/diag.py old mode 100755 new mode 100644 index 389df66..ed1138b --- a/script/devices/diag.py +++ b/script/devices/diag.py @@ -13,7 +13,7 @@ diag_channels_names = { \ "girder z": "X11MA-HG:Z1", \ "girder pitch": "X11MA-HG:PITCH1", \ "girder yaw": "X11MA-HG:YAW1", \ - "girder roll set": "X11MA-HG:ROLL_SET", \ + "girder roll": "X11MA-HG:ROLL1", \ "CMU ox": "X11MA-OP-CM:ox", \ "CMU oy": "X11MA-OP-CM:oy", \ "CMU oz": "X11MA-OP-CM:oz", \ @@ -21,6 +21,12 @@ diag_channels_names = { \ "CMU oRy": "X11MA-OP-CM:oRy", \ "CMU oRz": "X11MA-OP-CM:oRz", \ "CMU TRB": "X11MA-OP2-CM:TRB.RBV", \ + "RMU ox": "X11MA-OP-RMU:ox", \ + "RMU oy": "X11MA-OP-RMU:oy", \ + "RMU oz": "X11MA-OP-RMU:oz", \ + "RMU oRx": "X11MA-OP-RMU:oRx", \ + "RMU oRy": "X11MA-OP-RMU:oRy", \ + "RMU oRz": "X11MA-OP-RMU:oRz", \ #"mode": "X11PHS-E:OPT", \ #"id1 mode": "X11MA-ID1:MODE", \ #"id1 offset": "X11MA-ID1:ENERGY-OFFS", \ @@ -40,8 +46,16 @@ diag_channels_names = { \ "PEEM leakage current": "X11MA-ES1-PEEM:IMON", \ "Pressure in PEEM": "X11MA-ES1-MAIN:PRESSURE", \ "Pressure in Column": "X11MA-ES1-COLU:PRESSURE", \ - "Sample temperature": "X11MA-PC-SW:Pt100-K", \ - "Pt100 resistance": "X11MA-PC-SW:Pt100-R", \ + "SW Pt100 sample temperature": "X11MA-PC-SW:Pt100-K", \ + "SW Pt100 resistance": "X11MA-PC-SW:Pt100-R", \ + "SW E-field value voltage": "X11MA-PC-SW:E-Field-V", \ + "SW E-field value current": "X11MA-PC-SW:E-Field-I", \ + "SW Resistence value resistence": "X11MA-PC-SW:Resistance", \ + "Cooling He flow meas": "X11MA-PC-BRONKHORST:PEEM-GET-MEASURE", \ + "Cooling He flow set": "X11MA-PC-BRONKHORST:PEEM-SET-SETPOINT", \ + "Cooling Needle Valve": "X11MA-ES1-AO4:V", \ + "FMU Ry": "X11MA-OP2-FM:TRY1.RBV", \ + "FMU TrZ": "X11MA-OP2-FM:TRY4.RBV", \ } eiger_diag_channels_names = { \ @@ -134,6 +148,14 @@ def get_diags(): if microscope.initialized and microscope.client.isConnected(): for k,v in get_microscope_diags().items(): ret["Microscope " + k] = str(v) + try: + ret["Microscope Manip. X"] = str(manip_x.readback.read()) + except: + ret["Microscope Manip. X"] = "Error: " + str(sys.exc_info()[1]) + try: + ret["Microscope Manip. Y"] = str(manip_y.readback.read()) + except: + ret["Microscope Manip. Y"] = "Error: " + str(sys.exc_info()[1]) return OrderedDict(sorted(ret.items(), key=lambda i: i[0].lower())) diff --git a/script/devices/id.py b/script/devices/id.py old mode 100755 new mode 100644 index 215799b..e6f85e9 --- a/script/devices/id.py +++ b/script/devices/id.py @@ -180,9 +180,9 @@ 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" + if opt == "PGM+ID1": return "PGM_ID1" + if opt == "PGM+ID2": return "PGM_ID2" + if opt == "PGM+ID1+ID2": return "PGM_ID1_ID2" return "" def getName(self): diff --git a/script/local.py b/script/local.py index 104b53e..c67b0b5 100644 --- a/script/local.py +++ b/script/local.py @@ -37,6 +37,7 @@ VG12_SET = "X11MA-EPS-VG12:SET" VG12_GET = "X11MA-OP-VG12:OPEN" VG13_SET = "X11MA-EPS-VG13:SET" VG13_GET = "X11MA-OP-VG13:OPEN" +FAST_SHTR= "X11MA-VME-ES1:FAST-SHTR" """ @@ -383,7 +384,8 @@ def write_metadata(): setting = get_setting("authors") set_attribute("/", "authors", setting.split("|") if setting is not None else [""]) - +def beamline_auto(value): + caput("X11MA:AUTO-ONOFF",value) ################################################################################################### @@ -697,19 +699,20 @@ def play_sound(name): #Beamline setup ################################################################################################### -def apply_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2=None,alp2=None,har2=None,off2=None): - print "Seting Beamline: ", en,pol1,alp1,har1,off1,pol2,alp2,har2,off2 +def apply_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2=None,alp2=None,har2=None,off2=None,grat=None,order=None,Cff=None): + print "Setting Beamline: ", en,pol1,alp1,har1,off1,pol2,alp2,har2,off2,grat,order,Cff + if get_dry_run(): return - if id=='ID1': + if id=='PGM_ID1': caput('X11PHS-E:OPT',1) - elif id=='ID2': + elif id=='PGM_ID2': caput('X11PHS-E:OPT',2) - elif id =='ID1_ID2': + elif id =='PGM_ID1_ID2': caput('X11PHS-E:OPT',3) - if id == "ID1": + if id == "PGM_ID1": #current_pol=POL_IDS[pol1] #get_id_pol(1) if pol1 is not None: put_id_pol(1,pol1, alp1 if (pol1=="Lin") else None ) @@ -719,7 +722,7 @@ def apply_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2 if off1 is not None: put_id_offset(1, float(off1)) #offset on ID1 - elif id == "ID2": + elif id == "PGM_ID2": #current_pol=POL_IDS[pol2]#get_id_pol(2) if pol2 is not None: put_id_pol(2,pol2, alp2 if (pol2=="Lin") else None ) @@ -729,7 +732,7 @@ def apply_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2 if off2 is not None: put_id_offset(2, float(off2)) #offset on ID2 - elif id == "ID1_ID2": + elif id == "PGM_ID1_ID2": #polID1=POL_IDS[pol1] #polID2=POL_IDS[pol2] if pol1 is not None: @@ -745,6 +748,19 @@ def apply_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2 put_id_offset(1, float(off1)) #offset on ID1 if off2 is not None: put_id_offset(2, float(off2)) #offset on ID2 + +# Monochromator part + if grat is not None: + if grat=='G1_300': + Grating.write(0) + elif grat=='G2_1200': + Grating.write(1) + elif grat =='G3_600': + Grating.write(2) + if order is not None: + DiffOrd.write(order) + if Cff is not None: + caput("X11MA-PGM:cff.A",Cff) #wait_channel("X11PHS:alldone", 1) if en is not None: @@ -770,7 +786,7 @@ def change_offset(id, offset): wait_channel("X11PHS:alldone", 1) -def set_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2=None,alp2=None,har2=None,off2=None): +def set_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2=None,alp2=None,har2=None,off2=None,grat=None,order=None,Cff=None): set_setting("ID", id) set_setting("ENERGY", en) set_setting("POL_ID_1", pol1) @@ -781,7 +797,10 @@ def set_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2=N set_setting("ALPHA_ID_2", alp2) set_setting("HARMONIC_ID_2", har2) set_setting("OFFSET_ID_2", off2) - apply_beamline_setup(id,en,pol1,alp1,har1,off1,pol2,alp2,har2,off2) + set_setting("GRATING", grat) + set_setting("DIFF_ORD", order) + set_setting("CFF", Cff) + apply_beamline_setup(id,en,pol1,alp1,har1,off1,pol2,alp2,har2,off2,grat,order,Cff) #Restore beamline initial config def restore_beamline_setup(): @@ -794,31 +813,52 @@ def restore_beamline_setup(): POL_ID_2 = get_setting("POL_ID_2") ALPHA_ID_2 = float(get_setting("ALPHA_ID_2")) HARMONIC_ID_2 = get_setting("HARMONIC_ID_2") - OFFSET_ID_2 = float(get_setting("OFFSET_ID_2")) - apply_beamline_setup(ID,ENERGY,POL_ID_1,ALPHA_ID_1,HARMONIC_ID_1,OFFSET_ID_1,POL_ID_2,ALPHA_ID_2,HARMONIC_ID_2,OFFSET_ID_2) + OFFSET_ID_2 = float(get_setting("OFFSET_ID_2")) + GRATING = get_setting("GRATING") + DIFF_ORD = float(get_setting("DIFF_ORD")) + CFF =float(get_setting("CFF")) + apply_beamline_setup(ID,ENERGY,POL_ID_1,ALPHA_ID_1,HARMONIC_ID_1,OFFSET_ID_1,POL_ID_2,ALPHA_ID_2,HARMONIC_ID_2,OFFSET_ID_2,GRATING,DIFF_ORD,CFF) # peem default setups def peem_optics_default_15kV(): +# read and save the values objective.write(1475) obj_stig_a.write(0) obj_stig_b.write(0) + obj_align_x.write(0) + obj_align_y.write(0) + start_voltage.write(0) +# fov.write(100) def peem_optics_default_10kV(): objective.write(1220) obj_stig_a.write(0) obj_stig_b.write(0) + obj_align_x.write(0) + obj_align_y.write(0) + start_voltage.write(0) # x-rays default setup def xrays_default(): - exit_slit.write(0) - caput ('X11MA-FE-DSAPER', 0) # close FE-slits + exit_slit.write(300.0) + caput ('X11MA-FE-DSAPER', 0) # close FE-slits + set_beamline_setup(id ="ID2", en=800, pol2="Lin_Hor", grat="G3_600", order=1, Cff=2.25) -def neutralize_position(): - manip_x.write(0) - manip_y.write(0) - time.sleep(1) +def neutralize_position(retries = 3): + for i in range(retries): + try: + if abs(manip_x.readback.read()) > 50: + manip_x.write(0.0) + if abs(manip_y.readback.read()) > 50: + manip_y.write(0.0) + break + except: + if i>=(retries-1): + raise + log("neutralize_position error - retrying: " + sys.exc_info()[1]) + time.sleep(1) microscope.home_tilt('H') - microscope.home_tilt('V') + microscope.home_tilt('V') ################################################################################################### #Maths ################################################################################################### diff --git a/script/tasks/FilamentBombVoltage.py b/script/tasks/FilamentBombVoltage.py new file mode 100644 index 0000000..f939615 --- /dev/null +++ b/script/tasks/FilamentBombVoltage.py @@ -0,0 +1,5 @@ +fil.write(I) +bv.write(V) +time.sleep(0.1) +bv.write(0.0) +fil.write(0.0) \ No newline at end of file diff --git a/script/templates/AutoFocus.py b/script/templates/AutoFocus.py index 706b81c..f4c7516 100644 --- a/script/templates/AutoFocus.py +++ b/script/templates/AutoFocus.py @@ -20,6 +20,8 @@ set_focus_scan_roi(ROI, RENDERER) if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') former_exposure = None try: @@ -48,7 +50,9 @@ finally: # if (former_exposure is not None) and (former_exposure!=EXPOSURE): # set_exposure_time(former_exposure) if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') restore_eiger() final_state = objective.read(),obj_stig_a.read(),obj_stig_b.read() diff --git a/script/templates/Eiger2Img.py b/script/templates/Eiger2Img.py index 61c1a66..18050d2 100644 --- a/script/templates/Eiger2Img.py +++ b/script/templates/Eiger2Img.py @@ -76,6 +76,9 @@ def getLEEM(): if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') + #rbkEnergy=energy_rbk.read() if METHOD == "Two_Pol" or (SWITCH_POL and (METHOD == "Take_Image")): init_pol_switch(SWITCHING) @@ -237,6 +240,8 @@ finally: for i in range(max_index): get_context().incrementDaySequentialNumber() if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') restore_eiger() print "Running time: " + str(time.time() - start) \ No newline at end of file diff --git a/script/templates/Eiger2Img_Hannes_valve_close.py b/script/templates/Eiger2Img_Hannes_valve_close.py index d118fea..f940e3c 100644 --- a/script/templates/Eiger2Img_Hannes_valve_close.py +++ b/script/templates/Eiger2Img_Hannes_valve_close.py @@ -76,6 +76,9 @@ def getLEEM(): if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') + #rbkEnergy=energy_rbk.read() if METHOD == "Two_Pol" or (SWITCH_POL and (METHOD == "Take_Image")): init_pol_switch(SWITCHING) @@ -233,6 +236,8 @@ finally: for i in range(max_index): get_context().incrementDaySequentialNumber() if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') restore_eiger() print "Running time: " + str(time.time() - start) \ No newline at end of file diff --git a/script/templates/Eiger2Img_Original.py b/script/templates/Eiger2Img_Original.py index 10fef2a..dd97912 100644 --- a/script/templates/Eiger2Img_Original.py +++ b/script/templates/Eiger2Img_Original.py @@ -76,6 +76,9 @@ def getLEEM(): if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') + #rbkEnergy=energy_rbk.read() if METHOD == "Two_Pol" or (SWITCH_POL and (METHOD == "Take_Image")): init_pol_switch(SWITCHING) @@ -227,6 +230,8 @@ finally: for i in range(max_index): get_context().incrementDaySequentialNumber() if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') restore_eiger() print "Running time: " + str(time.time() - start) \ No newline at end of file diff --git a/script/templates/EigerAbsSpec.py b/script/templates/EigerAbsSpec.py old mode 100755 new mode 100644 index d4c1119..0e27342 --- a/script/templates/EigerAbsSpec.py +++ b/script/templates/EigerAbsSpec.py @@ -85,6 +85,8 @@ sensors.append(averager) #sensors.append(eiger.getDataMatrix()) #Initialize vartiables if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') #put_id_offset(1, OFFSET_ID_1) #offset on ID1 #put_id_offset(2, OFFSET_ID_2) #offset on ID2 @@ -122,6 +124,8 @@ finally: for i in range(len(rois)): rois[i].parent.monitored = False # Remove listeners on the image if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') restore_eiger() print "Running time: " + str(time.time() - start) \ No newline at end of file diff --git a/script/templates/EnergyScan_img.py b/script/templates/EnergyScan_img.py index 0ad13d0..30537ef 100644 --- a/script/templates/EnergyScan_img.py +++ b/script/templates/EnergyScan_img.py @@ -79,6 +79,8 @@ scan_completed = False if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') try: if EXPOSURE != eiger.getExposure(): @@ -125,7 +127,9 @@ except: raise finally: if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') restore_eiger() after_sample() #To call check_id_error() \ No newline at end of file diff --git a/script/templates/ObjectiveScan.py b/script/templates/ObjectiveScan.py old mode 100755 new mode 100644 index 718a1d3..73379f5 --- a/script/templates/ObjectiveScan.py +++ b/script/templates/ObjectiveScan.py @@ -27,12 +27,16 @@ sensors = [variation] if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') init_eiger(EXPOSURE_TIME) try: lscan(objective, sensors, SCAN_RANGE[0], SCAN_RANGE[1], float(STEP_SIZE), latency=SETTLING_TIME, before_read=trigger_eiger, keep=False) finally: if not get_dry_run() and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') restore_eiger() print "Running time: " + str(time.time() - start) \ No newline at end of file diff --git a/script/templates/SetupBeamline.py b/script/templates/SetupBeamline.py old mode 100755 new mode 100644 index 2943c4e..db2a4e7 --- a/script/templates/SetupBeamline.py +++ b/script/templates/SetupBeamline.py @@ -1,6 +1,6 @@ #If running from editor if get_exec_pars().source == CommandSource.ui: - ID = "ID2" #"ID1_ID2" + ID = "PGM_ID2" #"PGM_ID1_ID2" ENERGY = 805 POL_ID_1 = "Circ_Plus" ALPHA_ID_1 = 0.0 @@ -9,6 +9,9 @@ if get_exec_pars().source == CommandSource.ui: POL_ID_2 = "Circ_Minus" ALPHA_ID_2 = 0.0 HARMONIC_ID_2 = 1 - OFFSET_ID_2 = 0.0 + OFFSET_ID_2 = 0.0 + GRATING = "G2 1200" + DIFF_ORDER = 1 + CFF = 2.250 -set_beamline_setup(ID,ENERGY,POL_ID_1,ALPHA_ID_1,HARMONIC_ID_1,OFFSET_ID_1,POL_ID_2,ALPHA_ID_2,HARMONIC_ID_2,OFFSET_ID_2) +set_beamline_setup(ID,ENERGY,POL_ID_1,ALPHA_ID_1,HARMONIC_ID_1,OFFSET_ID_1,POL_ID_2,ALPHA_ID_2,HARMONIC_ID_2,OFFSET_ID_2, GRATING, DIFF_ORDER, CFF) diff --git a/script/test/Diagnostics.py b/script/test/Diagnostics.py index 3bb8659..86a3a46 100755 --- a/script/test/Diagnostics.py +++ b/script/test/Diagnostics.py @@ -13,7 +13,7 @@ diag_channels = { \ "girder z": "X11MA-HG:Z1", \ "girder pitch": "X11MA-HG:PITCH1", \ "girder yaw": "X11MA-HG:YAW1", \ - "girder roll set": "X11MA-HG:ROLL_SET", \ + "girder roll": "X11MA-HG:ROLL1", \ "CMU ox": "X11MA-OP-CM:ox", \ "CMU oy": "X11MA-OP-CM:oy", \ "CMU oz": "X11MA-OP-CM:oz", \ @@ -69,12 +69,12 @@ def get_diags(): try: ret[k]=str(v.read()) except: - ret[k]="Error: " + sys.exc_info()[1] + ret[k]="Error: " + str(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[k]="Error: " + str(sys.exc_info()[1]) ret["exposure time"] = str(eiger.getExposure()) return OrderedDict(sorted(ret.items(), key=lambda i: i[0].lower())) diff --git a/script/test/Simu2Img.py b/script/test/Simu2Img.py old mode 100755 new mode 100644 index f7a341e..583bab5 --- a/script/test/Simu2Img.py +++ b/script/test/Simu2Img.py @@ -85,7 +85,8 @@ def assert_status_ok(): #Initialize vartiables if not DRY_RUN and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() - +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') active_id = 1 current_pol=None @@ -259,6 +260,8 @@ try: save_image_file(av, -1, i) finally: if not DRY_RUN and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') #restore_eiger() print "Running time: " + str(time.time() - start) \ No newline at end of file diff --git a/script/test/SimuAbsSpec.py b/script/test/SimuAbsSpec.py old mode 100755 new mode 100644 index c6a140b..2adc41f --- a/script/test/SimuAbsSpec.py +++ b/script/test/SimuAbsSpec.py @@ -85,6 +85,8 @@ sensors.append(averager) #sensors.append(eiger.getDataMatrix()) #Initialize vartiables if not DRY_RUN and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": open_vg10() +if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Open') #put_id_offset(1, OFFSET_ID_1) #offset on ID1 #put_id_offset(2, OFFSET_ID_2) #offset on ID2 @@ -117,6 +119,8 @@ finally: for i in range(len(rois)): rois[i].parent.monitored = False # Remove listeners on the image if not DRY_RUN and str(get_setting("AUTO_SWITCH_VALVE")).lower() == "true": - close_vg10() + close_vg10() + if not get_dry_run() and str(get_setting("AUTO_SWITCH_SHUTTER")).lower() == "true": + caput(FAST_SHTR, 'Close') #restore_eiger() print "Running time: " + str(time.time() - start) \ No newline at end of file diff --git a/script/test/TestEiger.py b/script/test/TestEiger.py new file mode 100644 index 0000000..637bcb4 --- /dev/null +++ b/script/test/TestEiger.py @@ -0,0 +1,12 @@ +EXPOSURE = 1.0 +AVERAGE = 2 + +counter = 0 +while(True): + print "-> Averaging %d..." % (counter,) + init_eiger(exposure=EXPOSURE) + av = average_eiger_frames(AVERAGE, roi=None, wait_next=True) + plot(av.matrix) + print "-> Restoring %d..." % (counter,) + restore_eiger() + counter = counter+1 \ No newline at end of file diff --git a/script/test/Test_AK.py b/script/test/Test_AK.py new file mode 100644 index 0000000..049e839 --- /dev/null +++ b/script/test/Test_AK.py @@ -0,0 +1,14 @@ +def neutralize_position(retries = 3): + for i in range(retries): + try: + if abs(manip_x.readback.read()) > 50: + manip_x.write(0.0) + if abs(manip_y.readback.read()) > 50: + manip_y.write(0.0) + + time.sleep(1) + break + except: + if i>=(retries-1): + raise + log("neutralize_position error - retrying: " + sys.exc_info()[1]) \ No newline at end of file