diff --git a/correlation/scripts/app_editor b/correlation/scripts/app_editor index afc4f3e..c24cb4f 100644 --- a/correlation/scripts/app_editor +++ b/correlation/scripts/app_editor @@ -1,7 +1,7 @@ #!/bin/sh # Run the workbench configured with the package paths, loading the plugin. -exec pshell-workbench -b -l -g -nbcf \$${app_args_var} \ +exec pshell-workbench -b -l -g \$${app_args_var} \ -plgp ${pkg_folder}/plugins \ -scpt ${pkg_folder}/script \ -devp ${pkg_folder}/devices \ diff --git a/correlation/scripts/app_startup b/correlation/scripts/app_startup index b8a24ce..3ae5d0a 100644 --- a/correlation/scripts/app_startup +++ b/correlation/scripts/app_startup @@ -1,5 +1,5 @@ #!/bin/sh # Run the package with application specific arguments, and all command-line passed arguments -exec pshell-workbench -b -d -l -k -g -q -nbcf -statusbar -size=1000x700 -console_log=SEVERE -m ${pkg_folder} \$${app_args_var} "\$@" +exec pshell-workbench -b -d -l -k -g -q -statusbar -size=1000x700 -console_log=SEVERE -m ${pkg_folder} \$${app_args_var} "\$@" diff --git a/psss-panel/assembly/bin/psss_panel b/psss-panel/assembly/bin/psss_panel deleted file mode 100755 index 7cb7643..0000000 --- a/psss-panel/assembly/bin/psss_panel +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -MY_PATH=$(dirname "$0") -export PKG=${MY_PATH}/.. - -#Check if running as e-account -for i in "$@" -do -case $i in - - -pkg=*) - export PKG="${i#*=}" - ;; - - *) # unknown option - ;; -esac -done - -/opt/gfa/pshell/pshell \ - -version=default \ - -py3 \ - -m=${PKG} \ - -z \ - -nbcf=true \ - -laf=dark \ - -d \ - -pini=true \ - -clog=WARNING \ - -sbar \ - $@ diff --git a/psss-panel/assembly/bin/psss_panel_editor b/psss-panel/assembly/bin/psss_panel_editor deleted file mode 100755 index ca5c5d9..0000000 --- a/psss-panel/assembly/bin/psss_panel_editor +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -MY_PATH=$(dirname "$0") -export PKG=${MY_PATH}/.. - -#Check if running as e-account -for i in "$@" -do -case $i in - - -pkg=*) - export PKG="${i#*=}" - ;; - - *) # unknown option - ;; -esac -done - - -/opt/gfa/pshell/pshell \ - -version=default \ - -z \ - -py3 \ - -nbcf=true \ - -laf=dark \ - -pini=true \ - -plgp=${PKG}/plugins \ - -scpt=${PKG}/script \ - -devp=${PKG}/devices \ - -pool=${PKG}/config/devices.properties \ - -p=Correlation.java \ - $@ diff --git a/psss-panel/assembly/config/devices.properties b/psss-panel/assembly/config/devices.properties deleted file mode 100755 index 1a9eafc..0000000 --- a/psss-panel/assembly/config/devices.properties +++ /dev/null @@ -1,16 +0,0 @@ -psss_fwhm_avg=ch.psi.pshell.epics.ChannelDouble|SARFE10-PSSS059:REL-E-SPREAD|||true -dispatcher=ch.psi.pshell.bs.Dispatcher|https://dispatcher-api.psi.ch/sf||| -cam_server=ch.psi.pshell.bs.PipelineServer|sf-daqsync-01:8889||| -energy_machine=ch.psi.pshell.epics.ChannelDouble|SARFE10-PBPG050:ENERGY|||true -psss_energy=ch.psi.pshell.epics.ChannelDouble|SARFE10-PSSS059:ENERGY|||true -psss_spectrum_x=ch.psi.pshell.epics.ChannelDoubleArray|SARFE10-PSSS059:SPECTRUM_X -1 -3|||true -psss_spectrum_y=ch.psi.pshell.epics.ChannelDoubleArray|SARFE10-PSSS059:SPECTRUM_Y -1 -3|||true -psss_center=ch.psi.pshell.epics.ChannelDouble|SARFE10-PSSS059:SPECTRUM_CENTER|||true -psss_fwhm=ch.psi.pshell.epics.ChannelDouble|SARFE10-PSSS059:SPECTRUM_FWHM|||true -psss_roi_min=ch.psi.pshell.epics.ChannelInteger|SARFE10-PSSS059:SPC_ROI_YMIN|||true -psss_roi_max=ch.psi.pshell.epics.ChannelInteger|SARFE10-PSSS059:SPC_ROI_YMAX|||true -histo_center=ch.psi.pshell.device.HistogramGenerator|psss_center|||true -histo_fwhm=ch.psi.pshell.device.HistogramGenerator|psss_fwhm|||true -psss_spectrum_y_average=ch.psi.pshell.device.ArrayAverager|psss_spectrum_y|||true -psss_center_average=ch.psi.pshell.device.Averager|psss_center|||true -psss_fwhm_average=ch.psi.pshell.device.Averager|psss_fwhm|||true diff --git a/psss-panel/assembly/config/jcae.properties b/psss-panel/assembly/config/jcae.properties deleted file mode 100755 index 0e02d88..0000000 --- a/psss-panel/assembly/config/jcae.properties +++ /dev/null @@ -1,12 +0,0 @@ -#Mon Feb 22 20:35:07 CET 2021 -ch.psi.jcae.ContextFactory.addressList= -ch.psi.jcae.ContextFactory.serverPort= -ch.psi.jcae.ContextFactory.maxArrayBytes=50000000 -ch.psi.jcae.ChannelFactory.retries=1 -ch.psi.jcae.ChannelFactory.timeout=1250 -ch.psi.jcae.impl.DefaultChannelService.retries=4 -ch.psi.jcae.impl.DefaultChannelService.timeout=1000 -ch.psi.jcae.ContextFactory.autoAddressList=true -ch.psi.jcae.ContextFactory.useShellVariables=true -ch.psi.jcae.ContextFactory.addLocalBroadcastInterfaces=false -ch.psi.jcae.ContextFactory.maxSendArrayBytes=1000000 diff --git a/psss-panel/assembly/devices/cam_server.properties b/psss-panel/assembly/devices/cam_server.properties deleted file mode 100755 index 7f7cedb..0000000 --- a/psss-panel/assembly/devices/cam_server.properties +++ /dev/null @@ -1,25 +0,0 @@ -#Mon Jan 17 16:00:40 CET 2022 -spatialCalOffsetY=-50.02549719530852 -spatialCalOffsetX=-50.01953888237593 -colormapLogarithmic=false -scale=1.0 -grayscale=false -spatialCalScaleX=-1.0 -spatialCalScaleY=-1.0 -colormapMax=255.0 -rescaleOffset=0.0 -roiWidth=-1 -colormap=Temperature -invert=false -colormapMin=0.0 -rotationCrop=false -rotation=0.0 -rescaleFactor=1.0 -spatialCalUnits=mm -flipVertically=false -roiHeight=-1 -flipHorizontally=false -colormapAutomatic=true -roiY=0 -roiX=0 -transpose=false diff --git a/psss-panel/assembly/devices/dispatcher.properties b/psss-panel/assembly/devices/dispatcher.properties deleted file mode 100755 index 9891517..0000000 --- a/psss-panel/assembly/devices/dispatcher.properties +++ /dev/null @@ -1,13 +0,0 @@ -#Wed Jun 03 18:45:57 CEST 2020 -sendStrategy=complete_all -dropIncomplete=false -keepListeningOnStop=false -disableCompression=false -parallelHandlerProcessing=true -sendBuildChannelConfig=at_startup -sendAwaitFirstMessage=false -socketType=DEFAULT -validationInconsistency=keep_as_is -byteBufferAllocator=false -mappingIncomplete=fill_null -sendSyncTimeout=0 diff --git a/psss-panel/assembly/devices/histo_center.properties b/psss-panel/assembly/devices/histo_center.properties deleted file mode 100755 index dfccc99..0000000 --- a/psss-panel/assembly/devices/histo_center.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Tue Jun 15 11:03:15 CEST 2021 -bins=1000 -min=11400.0 -max=11200.0 -precision=-1 -numberOfSamples=10000 diff --git a/psss-panel/assembly/devices/histo_fwhm.properties b/psss-panel/assembly/devices/histo_fwhm.properties deleted file mode 100755 index da35091..0000000 --- a/psss-panel/assembly/devices/histo_fwhm.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Fri Apr 30 07:45:13 CEST 2021 -bins=1000 -min=0.0 -max=40.0 -precision=-1 -numberOfSamples=10000 diff --git a/psss-panel/assembly/devices/psss_center_average.properties b/psss-panel/assembly/devices/psss_center_average.properties deleted file mode 100755 index 6a20991..0000000 --- a/psss-panel/assembly/devices/psss_center_average.properties +++ /dev/null @@ -1,4 +0,0 @@ -#Mon May 03 09:21:35 CEST 2021 -measures=10 -precision=-1 -interval=-1 diff --git a/psss-panel/assembly/devices/psss_fwhm_average.properties b/psss-panel/assembly/devices/psss_fwhm_average.properties deleted file mode 100755 index 6aeec64..0000000 --- a/psss-panel/assembly/devices/psss_fwhm_average.properties +++ /dev/null @@ -1,4 +0,0 @@ -#Mon May 03 09:21:52 CEST 2021 -measures=10 -precision=-1 -interval=-1 diff --git a/psss-panel/assembly/devices/psss_spectrum_y_average.properties b/psss-panel/assembly/devices/psss_spectrum_y_average.properties deleted file mode 100755 index 2c2e72a..0000000 --- a/psss-panel/assembly/devices/psss_spectrum_y_average.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Mon May 03 09:15:04 CEST 2021 -measures=10 -precision=-1 -interval=-1 -integrate=false diff --git a/psss-panel/assembly/plugins/PSSS.form b/psss-panel/assembly/plugins/PSSS.form deleted file mode 100755 index cab1b86..0000000 --- a/psss-panel/assembly/plugins/PSSS.form +++ /dev/null @@ -1,715 +0,0 @@ - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/psss-panel/assembly/plugins/PSSS.java b/psss-panel/assembly/plugins/PSSS.java deleted file mode 100755 index e652bf2..0000000 --- a/psss-panel/assembly/plugins/PSSS.java +++ /dev/null @@ -1,760 +0,0 @@ -import ch.psi.pshell.bs.PipelineServer; -import ch.psi.pshell.core.Context; -import ch.psi.pshell.epics.ChannelDouble; -import ch.psi.pshell.imaging.RendererMode; -import ch.psi.pshell.plot.Plot; -import ch.psi.pshell.plot.LinePlotJFree; -import ch.psi.pshell.ui.Panel; -import ch.psi.utils.Convert; -import ch.psi.utils.State; -import ch.psi.utils.Str; -import java.awt.CardLayout; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - - - -/** - * - */ -public class PSSS extends Panel { - - final String CAMERA_NAME = "SARFE10-PSSS059"; - PipelineServer pipelineServer; - volatile boolean updatingPlot; - volatile boolean updatingImage; - - public PSSS() { - initComponents(); - plot.getAxis(Plot.AxisId.X).setLabel(null); - plot.getAxis(Plot.AxisId.Y).setLabel(null); - renderer.setMode(RendererMode.Stretch); - } - - //Overridable callbacks - @Override - public void onInitialize(int runCount) { - startTimer(1000); - - try { - setGlobalVar("PSSS_PLOT", plot); - setGlobalVar("HISTORY_PLOT", history); - setGlobalVar("PSSS_RENDERER", renderer); - - pipelineServer = (PipelineServer) getDevice("cam_server"); - ((LinePlotJFree)histogramGeneratorPanelCenter.getPlot()).setLegendVisible(true); - ((LinePlotJFree)histogramGeneratorFwhm.getPlot()).setLegendVisible(true); - histogramGeneratorPanelCenter.getPlot().getAxis(Plot.AxisId.Y).setRange(0, 100); - histogramGeneratorFwhm.getPlot().getAxis(Plot.AxisId.Y).setRange(0, 100); - //setImageEnabled(true); - tabStateChanged(null); - - spinnerAverage.setValue(( (Number) eval("get_psss_averaging()", true)).intValue()); - - try{ - Double energy = (((ChannelDouble)getDevice("energy_machine")).take(-1)); - energy=Convert.roundDouble(energy, 0); - spFromEn.setValue(energy-150); - spToEn.setValue(energy+150); - } catch (Exception ex) { - getLogger().warning("Error reading energy_machine"); - } - - - } catch (Exception ex) { - getLogger().log(Level.WARNING, null, ex); - } - } - - @Override - public void onStateChange(State state, State former) { - this.btStartCr.setEnabled(state == State.Ready); - this.btStartEn.setEnabled(state == State.Ready); - this.btStartCam.setEnabled(state == State.Ready); - radioEnergyScan.setEnabled(state == State.Ready); - radioCrystalScan.setEnabled(state == State.Ready); - radioCameraScan.setEnabled(state == State.Ready); - this.btAbort.setEnabled(state.isRunning()); - } - - @Override - public void onExecutedFile(String fileName, Object result) { - } - - @Override - public void onTimer() { - try { - if (!updatingPlot){ - updatingPlot = true; - //evalAsync("plot_psss(PSSS_PLOT, HISTORY_PLOT, " + spinnerAverage.getValue() + ")", true).handle((ret,ex)->{ - evalAsync("plot_psss(PSSS_PLOT, HISTORY_PLOT)", true).handle((ret,ex)->{ - updatingPlot = false; - return ret; - }); - } - if (isImageEnabled()){ - if (!updatingImage){ - updatingImage = true; - evalAsync("update_psss_image(PSSS_RENDERER)", true).handle((ret,ex)->{ - updatingImage = false; - return ret; - }); - } - } - } catch (Exception ex) { - getLogger().log(Level.WARNING, null, ex); - } - } - - //Callback to perform update - in event thread - @Override - protected void doUpdate() { - } - - void setImageEnabled(boolean enabled){ - try{ - imageEnabled = enabled; - evalAsync("enable_psss_image(" + Str.capitalizeFirst(String.valueOf(enabled)) + ", PSSS_RENDERER)", true); - } catch (Exception ex) { - getLogger().log(Level.WARNING, null, ex); - } - } - volatile boolean imageEnabled; - - boolean isImageEnabled(){ - return imageEnabled; - } - - - void runScan(String name, Map args){ - try { - args.put("PLOT", plotScan); - this.runAsync(name, args).handle((ret,ex)->{ - if (ex!=null){ - if (!getContext().isAborted()){ - showException((Exception)ex); - } - } - return ret; - }); - } catch (Context.ContextStateException ex) { - showException(ex); - } - } - - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - buttonGroup1 = new javax.swing.ButtonGroup(); - tab = new javax.swing.JTabbedPane(); - jPanel1 = new javax.swing.JPanel(); - plot = new ch.psi.pshell.plot.LinePlotJFree(); - history = new ch.psi.pshell.plot.TimePlotJFree(); - jLabel1 = new javax.swing.JLabel(); - spinnerAverage = new javax.swing.JSpinner(); - histogramGeneratorPanelCenter = new ch.psi.pshell.swing.HistogramGeneratorPanel(); - histogramGeneratorFwhm = new ch.psi.pshell.swing.HistogramGeneratorPanel(); - jPanel4 = new javax.swing.JPanel(); - renderer = new ch.psi.pshell.imaging.Renderer(); - jPanel3 = new javax.swing.JPanel(); - jPanel2 = new javax.swing.JPanel(); - btAbort = new javax.swing.JButton(); - radioEnergyScan = new javax.swing.JRadioButton(); - radioCameraScan = new javax.swing.JRadioButton(); - radioCrystalScan = new javax.swing.JRadioButton(); - jPanel5 = new javax.swing.JPanel(); - panelScan = new javax.swing.JPanel(); - panelEnergyScan = new javax.swing.JPanel(); - spFromEn = new javax.swing.JSpinner(); - jLabel6 = new javax.swing.JLabel(); - jLabel7 = new javax.swing.JLabel(); - spToEn = new javax.swing.JSpinner(); - spStepsEn = new javax.swing.JSpinner(); - jLabel8 = new javax.swing.JLabel(); - jLabel9 = new javax.swing.JLabel(); - spShotsEn = new javax.swing.JSpinner(); - btStartEn = new javax.swing.JButton(); - panelCameraScan = new javax.swing.JPanel(); - jLabel10 = new javax.swing.JLabel(); - spFromCam = new javax.swing.JSpinner(); - jLabel11 = new javax.swing.JLabel(); - spToCam = new javax.swing.JSpinner(); - jLabel12 = new javax.swing.JLabel(); - spStepsCam = new javax.swing.JSpinner(); - jLabel13 = new javax.swing.JLabel(); - spShotsCam = new javax.swing.JSpinner(); - btStartCam = new javax.swing.JButton(); - panelCrystalScan = new javax.swing.JPanel(); - jLabel2 = new javax.swing.JLabel(); - spFromCr = new javax.swing.JSpinner(); - jLabel3 = new javax.swing.JLabel(); - spToCr = new javax.swing.JSpinner(); - jLabel4 = new javax.swing.JLabel(); - spStepsCr = new javax.swing.JSpinner(); - jLabel5 = new javax.swing.JLabel(); - spShotsCr = new javax.swing.JSpinner(); - btStartCr = new javax.swing.JButton(); - plotScan = new ch.psi.pshell.plot.LinePlotJFree(); - - tab.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - tabStateChanged(evt); - } - }); - - plot.setTitle(""); - - jLabel1.setText("Average:"); - - spinnerAverage.setModel(new javax.swing.SpinnerNumberModel(1, 1, 100, 1)); - spinnerAverage.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spinnerAverageStateChanged(evt); - } - }); - - histogramGeneratorPanelCenter.setDeviceName("histo_center"); - - histogramGeneratorFwhm.setDeviceName("histo_fwhm"); - - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spinnerAverage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(history, javax.swing.GroupLayout.DEFAULT_SIZE, 453, Short.MAX_VALUE) - .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(histogramGeneratorFwhm, javax.swing.GroupLayout.PREFERRED_SIZE, 372, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(histogramGeneratorPanelCenter, javax.swing.GroupLayout.PREFERRED_SIZE, 372, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(0, 0, 0)) - ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel1) - .addComponent(spinnerAverage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(6, 6, 6) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(histogramGeneratorPanelCenter, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE) - .addComponent(plot, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(history, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE) - .addComponent(histogramGeneratorFwhm, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))) - ); - - tab.addTab("Spectrum", jPanel1); - - javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); - jPanel4.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 843, Short.MAX_VALUE) - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, 843, Short.MAX_VALUE)) - ); - jPanel4Layout.setVerticalGroup( - jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 432, Short.MAX_VALUE) - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, 432, Short.MAX_VALUE)) - ); - - tab.addTab("Camera", jPanel4); - - btAbort.setText("Abort"); - btAbort.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btAbortActionPerformed(evt); - } - }); - - buttonGroup1.add(radioEnergyScan); - radioEnergyScan.setSelected(true); - radioEnergyScan.setText("Energy Scan"); - radioEnergyScan.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioEnergyScanActionPerformed(evt); - } - }); - - buttonGroup1.add(radioCameraScan); - radioCameraScan.setText("Camera Scan"); - radioCameraScan.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioCameraScanActionPerformed(evt); - } - }); - - buttonGroup1.add(radioCrystalScan); - radioCrystalScan.setText("Crystal Height Scan"); - radioCrystalScan.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioCrystalScanActionPerformed(evt); - } - }); - - panelScan.setLayout(new java.awt.CardLayout()); - - spFromEn.setModel(new javax.swing.SpinnerNumberModel(7200.0d, 1.0d, 20000.0d, 10.0d)); - - jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel6.setText("Range From:"); - - jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel7.setText("Range To:"); - - spToEn.setModel(new javax.swing.SpinnerNumberModel(7340.0d, 1.0d, 20000.0d, 10.0d)); - - spStepsEn.setModel(new javax.swing.SpinnerNumberModel(20, 1, 1000, 1)); - - jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel8.setText("Steps:"); - - jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel9.setText("Num Shots:"); - - spShotsEn.setModel(new javax.swing.SpinnerNumberModel(100, 1, 1000, 1)); - - btStartEn.setText("Start Energy Scan"); - btStartEn.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btStartEnActionPerformed(evt); - } - }); - - javax.swing.GroupLayout panelEnergyScanLayout = new javax.swing.GroupLayout(panelEnergyScan); - panelEnergyScan.setLayout(panelEnergyScanLayout); - panelEnergyScanLayout.setHorizontalGroup( - panelEnergyScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelEnergyScanLayout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(panelEnergyScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelEnergyScanLayout.createSequentialGroup() - .addComponent(jLabel7) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spToEn, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelEnergyScanLayout.createSequentialGroup() - .addComponent(jLabel6) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spFromEn, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelEnergyScanLayout.createSequentialGroup() - .addComponent(jLabel8) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spStepsEn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelEnergyScanLayout.createSequentialGroup() - .addComponent(jLabel9) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spShotsEn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap()) - .addComponent(btStartEn, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - ); - - panelEnergyScanLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel6, jLabel7, jLabel8, jLabel9}); - - panelEnergyScanLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spFromEn, spShotsEn, spStepsEn, spToEn}); - - panelEnergyScanLayout.setVerticalGroup( - panelEnergyScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelEnergyScanLayout.createSequentialGroup() - .addContainerGap() - .addGroup(panelEnergyScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel6) - .addComponent(spFromEn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelEnergyScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel7) - .addComponent(spToEn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelEnergyScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel8) - .addComponent(spStepsEn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelEnergyScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel9) - .addComponent(spShotsEn, 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(btStartEn) - .addContainerGap()) - ); - - panelScan.add(panelEnergyScan, "energy"); - - jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel10.setText("Range From:"); - - spFromCam.setModel(new javax.swing.SpinnerNumberModel(-17.0d, -30.0d, 30.0d, 1.0d)); - - jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel11.setText("Range To:"); - - spToCam.setModel(new javax.swing.SpinnerNumberModel(-11.0d, -30.0d, 30.0d, 1.0d)); - - jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel12.setText("Steps:"); - - spStepsCam.setModel(new javax.swing.SpinnerNumberModel(20, 1, 1000, 1)); - - jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel13.setText("Num Shots:"); - - spShotsCam.setModel(new javax.swing.SpinnerNumberModel(100, 1, 1000, 1)); - - btStartCam.setText("Start Camera Scan"); - btStartCam.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btStartCamActionPerformed(evt); - } - }); - - javax.swing.GroupLayout panelCameraScanLayout = new javax.swing.GroupLayout(panelCameraScan); - panelCameraScan.setLayout(panelCameraScanLayout); - panelCameraScanLayout.setHorizontalGroup( - panelCameraScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelCameraScanLayout.createSequentialGroup() - .addContainerGap() - .addGroup(panelCameraScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelCameraScanLayout.createSequentialGroup() - .addComponent(jLabel11) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spToCam, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelCameraScanLayout.createSequentialGroup() - .addComponent(jLabel10) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spFromCam, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelCameraScanLayout.createSequentialGroup() - .addComponent(jLabel12) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spStepsCam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelCameraScanLayout.createSequentialGroup() - .addComponent(jLabel13) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spShotsCam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(btStartCam, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - ); - - panelCameraScanLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel10, jLabel11, jLabel12, jLabel13}); - - panelCameraScanLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spFromCam, spShotsCam, spStepsCam, spToCam}); - - panelCameraScanLayout.setVerticalGroup( - panelCameraScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelCameraScanLayout.createSequentialGroup() - .addContainerGap() - .addGroup(panelCameraScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel10) - .addComponent(spFromCam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelCameraScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel11) - .addComponent(spToCam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelCameraScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel12) - .addComponent(spStepsCam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelCameraScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel13) - .addComponent(spShotsCam, 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(btStartCam) - .addContainerGap()) - ); - - panelScan.add(panelCameraScan, "camera"); - - jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel2.setText("Range From:"); - - spFromCr.setModel(new javax.swing.SpinnerNumberModel(-0.8d, -10.0d, 10.0d, 0.1d)); - - jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel3.setText("Range To:"); - - spToCr.setModel(new javax.swing.SpinnerNumberModel(-1.7d, -10.0d, 10.0d, 0.1d)); - - jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel4.setText("Steps:"); - - spStepsCr.setModel(new javax.swing.SpinnerNumberModel(20, 1, 1000, 1)); - - jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel5.setText("Num Shots:"); - - spShotsCr.setModel(new javax.swing.SpinnerNumberModel(100, 1, 1000, 1)); - - btStartCr.setText("Start Crystal Height Scan"); - btStartCr.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btStartCrActionPerformed(evt); - } - }); - - javax.swing.GroupLayout panelCrystalScanLayout = new javax.swing.GroupLayout(panelCrystalScan); - panelCrystalScan.setLayout(panelCrystalScanLayout); - panelCrystalScanLayout.setHorizontalGroup( - panelCrystalScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelCrystalScanLayout.createSequentialGroup() - .addContainerGap() - .addGroup(panelCrystalScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelCrystalScanLayout.createSequentialGroup() - .addComponent(jLabel3) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spToCr, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelCrystalScanLayout.createSequentialGroup() - .addComponent(jLabel2) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spFromCr, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelCrystalScanLayout.createSequentialGroup() - .addComponent(jLabel4) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spStepsCr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(panelCrystalScanLayout.createSequentialGroup() - .addComponent(jLabel5) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spShotsCr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(btStartCr, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - ); - - panelCrystalScanLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel2, jLabel3, jLabel4, jLabel5}); - - panelCrystalScanLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spFromCr, spShotsCr, spStepsCr, spToCr}); - - panelCrystalScanLayout.setVerticalGroup( - panelCrystalScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelCrystalScanLayout.createSequentialGroup() - .addContainerGap() - .addGroup(panelCrystalScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel2) - .addComponent(spFromCr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelCrystalScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) - .addComponent(spToCr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelCrystalScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel4) - .addComponent(spStepsCr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelCrystalScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel5) - .addComponent(spShotsCr, 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(btStartCr) - .addContainerGap()) - ); - - panelScan.add(panelCrystalScan, "crystal"); - - javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); - jPanel5.setLayout(jPanel5Layout); - jPanel5Layout.setHorizontalGroup( - jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(panelScan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0))) - ); - jPanel5Layout.setVerticalGroup( - jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(panelScan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGap(0, 0, 0))) - ); - - javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup() - .addGap(12, 12, 12) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(radioCrystalScan) - .addComponent(radioCameraScan) - .addComponent(radioEnergyScan) - .addComponent(btAbort, javax.swing.GroupLayout.DEFAULT_SIZE, 213, Short.MAX_VALUE)) - .addContainerGap()) - ); - jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() - .addGap(20, 20, 20) - .addComponent(radioEnergyScan) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(radioCameraScan) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(radioCrystalScan) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btAbort) - .addContainerGap()) - ); - - plotScan.setTitle(""); - - javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); - jPanel3.setLayout(jPanel3Layout); - jPanel3Layout.setHorizontalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel3Layout.createSequentialGroup() - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0) - .addComponent(plotScan, javax.swing.GroupLayout.DEFAULT_SIZE, 614, Short.MAX_VALUE)) - ); - jPanel3Layout.setVerticalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(plotScan, javax.swing.GroupLayout.DEFAULT_SIZE, 432, Short.MAX_VALUE) - ); - - tab.addTab("Alignment", jPanel3); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(tab) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(tab, javax.swing.GroupLayout.Alignment.TRAILING) - ); - }// //GEN-END:initComponents - - private void tabStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_tabStateChanged - setImageEnabled(tab.getSelectedIndex()==1); - }//GEN-LAST:event_tabStateChanged - - private void btAbortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAbortActionPerformed - try { - abort(); - } catch (Exception ex) { - showException(ex); - } - }//GEN-LAST:event_btAbortActionPerformed - - private void btStartCrActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btStartCrActionPerformed - Map args = new HashMap(); - args.put("RANGE_FROM", spFromCr.getValue()); - args.put("RANGE_TO", spToCr.getValue()); - args.put("STEPS", spStepsCr.getValue()); - args.put("NUM_SHOTS", spShotsCr.getValue()); - runScan("psss/CrystalHeightScan",args); - }//GEN-LAST:event_btStartCrActionPerformed - - private void btStartCamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btStartCamActionPerformed - Map args = new HashMap(); - args.put("RANGE_FROM", spFromCam.getValue()); - args.put("RANGE_TO", spToCam.getValue()); - args.put("STEPS", spStepsCam.getValue()); - args.put("NUM_SHOTS", spShotsCam.getValue()); - runScan("psss/CameraScan",args); - }//GEN-LAST:event_btStartCamActionPerformed - - private void btStartEnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btStartEnActionPerformed - Map args = new HashMap(); - args.put("RANGE_OFF", null); - args.put("RANGE_FROM", spFromEn.getValue()); - args.put("RANGE_TO", spToEn.getValue()); - args.put("STEPS", spStepsEn.getValue()); - args.put("NUM_SHOTS", spShotsEn.getValue()); - runScan("psss/EnergyScan",args); - }//GEN-LAST:event_btStartEnActionPerformed - - private void radioEnergyScanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radioEnergyScanActionPerformed - ((CardLayout)panelScan.getLayout()).show(panelScan, "energy"); - }//GEN-LAST:event_radioEnergyScanActionPerformed - - private void radioCameraScanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radioCameraScanActionPerformed - ((CardLayout)panelScan.getLayout()).show(panelScan, "camera"); - }//GEN-LAST:event_radioCameraScanActionPerformed - - private void radioCrystalScanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radioCrystalScanActionPerformed - ((CardLayout)panelScan.getLayout()).show(panelScan, "crystal"); - }//GEN-LAST:event_radioCrystalScanActionPerformed - - private void spinnerAverageStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerAverageStateChanged - try { - eval("set_psss_averaging(" + spinnerAverage.getValue() + ")", true); - } catch (Exception ex) { - showException(ex); - } - }//GEN-LAST:event_spinnerAverageStateChanged - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton btAbort; - private javax.swing.JButton btStartCam; - private javax.swing.JButton btStartCr; - private javax.swing.JButton btStartEn; - private javax.swing.ButtonGroup buttonGroup1; - private ch.psi.pshell.swing.HistogramGeneratorPanel histogramGeneratorFwhm; - private ch.psi.pshell.swing.HistogramGeneratorPanel histogramGeneratorPanelCenter; - private ch.psi.pshell.plot.TimePlotJFree history; - 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 jLabel2; - 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 jPanel5; - private javax.swing.JPanel panelCameraScan; - private javax.swing.JPanel panelCrystalScan; - private javax.swing.JPanel panelEnergyScan; - private javax.swing.JPanel panelScan; - private ch.psi.pshell.plot.LinePlotJFree plot; - private ch.psi.pshell.plot.LinePlotJFree plotScan; - private javax.swing.JRadioButton radioCameraScan; - private javax.swing.JRadioButton radioCrystalScan; - private javax.swing.JRadioButton radioEnergyScan; - private ch.psi.pshell.imaging.Renderer renderer; - private javax.swing.JSpinner spFromCam; - private javax.swing.JSpinner spFromCr; - private javax.swing.JSpinner spFromEn; - private javax.swing.JSpinner spShotsCam; - private javax.swing.JSpinner spShotsCr; - private javax.swing.JSpinner spShotsEn; - private javax.swing.JSpinner spStepsCam; - private javax.swing.JSpinner spStepsCr; - private javax.swing.JSpinner spStepsEn; - private javax.swing.JSpinner spToCam; - private javax.swing.JSpinner spToCr; - private javax.swing.JSpinner spToEn; - private javax.swing.JSpinner spinnerAverage; - private javax.swing.JTabbedPane tab; - // End of variables declaration//GEN-END:variables -} diff --git a/psss-panel/assembly/script/cpython/psss.py b/psss-panel/assembly/script/cpython/psss.py deleted file mode 100755 index e5ce177..0000000 --- a/psss-panel/assembly/script/cpython/psss.py +++ /dev/null @@ -1,45 +0,0 @@ -import numpy as np -from scipy.optimize import curve_fit -import sys - - -def gaus(x, a, x0, sigma, offset): - return offset + a * np.exp(-(x - x0) ** 2 / (2 * sigma ** 2)) - -#Return [amp, mean_val, sigma, offset] -def fit_energy(e_from, e_to, steps, num_shots, data): - energy_range = np.linspace(e_from, e_to, steps) - energy_range_fit = np.linspace(energy_range[0], energy_range[-1], len(energy_range)*10) - centre_line_out = data[:,:,int(data.shape[2]/2)].mean(axis=1) - try: - popt,pcov = curve_fit(gaus,energy_range,centre_line_out,p0=[1,energy_range[np.argmax(centre_line_out)],energy_range.mean()*1e-3,1e3*num_shots]) - except: - raise Exception('Fit failed: spectrum might not be near scan range center \n' + str(sys.exc_info()[1])) - #print('Fit failed: spectrum might not be near scan range center') - #return None - max_ind = np.argmax(centre_line_out) - max_photon_energy=energy_range[max_ind] - print(max_photon_energy) - return popt, centre_line_out - - -#Return [amp, mean_val, sigma, offset] -def fit_crystal_height(xstal_from, xstal_to, steps, data): - xstal_range = np.linspace(xstal_from, xstal_to, steps) - projection = data.mean(axis=1).mean(axis=1) - offset = np.mean(projection[0:100]) - signal_centre = xstal_range[np.argmax(projection)] - xstal_range_fit = np.linspace(xstal_range[0], xstal_range[-1], len(xstal_range)*10) - try: - popt,pcov = curve_fit(gaus,xstal_range,projection,p0=[100,signal_centre,-0.2,offset]) - except: - raise Exception('Fit failed: spectrum might not be near scan range center \n' + str(sys.exc_info()[1])) - #print('Fit failed: spectrum might not be near scan range center') - #return None - return popt, projection - - -def get_signal_centre(data, data_range): - projection = data.mean(axis=1).mean(axis=1) - signal_centre = data_range[np.argmax(projection)] - return signal_centre, projection diff --git a/psss-panel/assembly/script/cpython/psss_plot.py b/psss-panel/assembly/script/cpython/psss_plot.py deleted file mode 100755 index 27080e2..0000000 --- a/psss-panel/assembly/script/cpython/psss_plot.py +++ /dev/null @@ -1,32 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt - - -def gaus(x, a, x0, sigma, offset): - return offset + a * np.exp(-(x - x0) ** 2 / (2 * sigma ** 2)) - -def plot_energy(E_from, E_to, steps, Scan_spec, popt, measured_offset): - Energy_range = np.linspace(E_from, E_to, steps) - centre_line_out = Scan_spec[:,:,int(Scan_spec.shape[2]/2)].mean(axis=1) - Energy_range_fit = np.linspace(Energy_range[0], Energy_range[-1], len(Energy_range)*10) - - - plt.figure(figsize=[10,5]) - plt.subplot(121) - plt.title('PSSS scan of set photon energy') - plt.pcolormesh(np.arange(0,Scan_spec.shape[2]), Energy_range, Scan_spec.mean(axis=1),cmap='CMRmap') - plt.vlines(int(Scan_spec.shape[2]/2), Energy_range[0], Energy_range[-1],linestyles='--', colors='orange') - plt.xlim([0,Scan_spec.shape[2]]) - plt.xlabel('Camera pixel') - plt.ylabel('Set PSSS energy [eV] \n SARFE10-PSSS059:ENERGY') - - plt.subplot(122) - plt.title('At camera centre pixel %1i \nCalibrated energy = %.1f [eV]\n Offset from machine = %.1f [eV]'%(int(Scan_spec.shape[2]/2),popt[1],measured_offset)) - plt.plot(centre_line_out,Energy_range,linewidth = 2, color = 'orange',label ='measured') - try: - plt.plot(gaus(Energy_range_fit,*popt),Energy_range_fit,'r:',label='fit') - except: - pass - plt.xticks([]) - plt.legend() - plt.grid(True) \ No newline at end of file diff --git a/psss-panel/assembly/script/cpython/wrapper.py b/psss-panel/assembly/script/cpython/wrapper.py deleted file mode 100755 index 5aa4031..0000000 --- a/psss-panel/assembly/script/cpython/wrapper.py +++ /dev/null @@ -1,36 +0,0 @@ -from jeputils import * - -RELOAD_CPYTHON = not App.isDetached() - -def fit_energy(e_from, e_to, steps, num_shots, data): - data = to_array(data, 'd') - dims = [len(data), len(data[0]), len(data[0][0])] - data = Convert.flatten(data) - arr = to_npa(data, dims) - popt, centre_line_out = call_jep("cpython/psss", "fit_energy", [e_from, e_to, steps, num_shots, arr], reload=RELOAD_CPYTHON) - return popt.getData(), centre_line_out.getData() - -def fit_crystal_height(xstal_from, xstal_to, steps, data): - data = to_array(data, 'd') - dims = [len(data), len(data[0]), len(data[0][0])] - data = Convert.flatten(data) - arr = to_npa(data, dims) - popt, projection = call_jep("cpython/psss", "fit_crystal_height", [xstal_from, xstal_to, steps, arr], reload=RELOAD_CPYTHON) - return popt.getData(), projection.getData() - -def get_signal_centre(data, data_range): - data = to_array(data, 'd') - dims = [len(data), len(data[0]), len(data[0][0])] - data = Convert.flatten(data) - arr = to_npa(data, dims) - data_range = to_npa(to_array(data_range, 'd')) - signal_centre, projection = call_jep("cpython/psss", "get_signal_centre", [arr, data_range], reload=RELOAD_CPYTHON) - return signal_centre, projection.getData() - -def plot_energy(e_from, e_to, steps, data, popt, measured_offset): - data = to_array(data, 'd') - dims = [len(data), len(data[0]), len(data[0][0])] - data = Convert.flatten(data) - arr = to_npa(data, dims) - ret = call_jep("cpython/psss_plot", "plot_energy", [e_from, e_to, steps, arr, popt, measured_offset], reload=RELOAD_CPYTHON) - return ret diff --git a/psss-panel/assembly/script/local.py b/psss-panel/assembly/script/local.py deleted file mode 100755 index 6ce8712..0000000 --- a/psss-panel/assembly/script/local.py +++ /dev/null @@ -1,184 +0,0 @@ -################################################################################################### -# Deployment specific global definitions - executed after startup.py -################################################################################################### - -from mathutils import estimate_peak_indexes, fit_gaussians, create_fit_point_list -from mathutils import fit_polynomial,fit_gaussian, fit_harmonic, calculate_peaks, fit_gaussian_offset -from mathutils import PolynomialFunction, Gaussian, HarmonicOscillator, GaussianOffset -from plotutils import plot_function, plot_data - -import java.awt.Color as Color -run("psss/psss") - -################################################################################################### -# DRY RUN -################################################################################################### - -def set_dry_run(value): - global dry_run - dry_run = value - -def is_dry_run(): - if "dry_run" in globals(): - return True if dry_run else False - return False - - -################################################################################################### -# Machine utilities -################################################################################################### - -def is_laser_on(): - return (caget ("SIN-TIMAST-TMA:Beam-Las-Delay-Sel",'d') == 0 ) - -def is_timing_ok(): - return caget("SIN-TIMAST-TMA:SOS-COUNT-CHECK") == 0 - -def get_repetition_rate(): - return caget("SIN-TIMAST-TMA:Evt-15-Freq-I") - - -################################################################################################### -# Shortcut to maths utilities -################################################################################################### - -def gfit(ydata, xdata = None): - """ - Gaussian fit - """ - if xdata is None: - xdata = frange(0, len(ydata), 1) - #ydata = to_list(ydata) - #xdata = to_list(xdata) - max_y= max(ydata) - index_max = ydata.index(max_y) - max_x= xdata[index_max] - print "Max index:" + str(index_max), - print " x:" + str(max_x), - print " y:" + str(max_y) - gaussians = fit_gaussians(ydata, xdata, [index_max,]) - (norm, mean, sigma) = gaussians[0] - p = plot([ydata],["data"],[xdata], title="Fit" )[0] - fitted_gaussian_function = Gaussian(norm, mean, sigma) - scale_x = [float(min(xdata)), float(max(xdata)) ] - points = max((len(xdata)+1), 100) - resolution = (scale_x[1]-scale_x[0]) / points - fit_y = [] - fit_x = frange(scale_x[0],scale_x[1],resolution, True) - for x in fit_x: - fit_y.append(fitted_gaussian_function.value(x)) - p.addSeries(LinePlotSeries("fit")) - p.getSeries(1).setData(fit_x, fit_y) - - if abs(mean - xdata[index_max]) < ((scale_x[0] + scale_x[1])/2): - print "Mean -> " + str(mean) - p.addMarker(mean, None, "Mean="+str(round(norm,2)), Color.MAGENTA.darker()) - return (norm, mean, sigma) - else: - p.addMarker(max_x, None, "Max="+str(round(max_x,2)), Color.GRAY) - print "Invalid gaussian fit: " + str(mean) - return (None, None, None) - - -def hfit(ydata, xdata = None): - """ - Harmonic fit - """ - if xdata is None: - xdata = frange(0, len(ydata), 1) - - max_y= max(ydata) - index_max = ydata.index(max_y) - max_x= xdata[index_max] - - start,end = min(xdata), max(xdata) - (amplitude, angular_frequency, phase) = fit_harmonic(ydata, xdata) - fitted_harmonic_function = HarmonicOscillator(amplitude, angular_frequency, phase) - - print "amplitude = ", amplitude - print "angular frequency = ", angular_frequency - print "phase = ", phase - - f = angular_frequency/ (2* math.pi) - print "frequency = ", f - - resolution = 4.00 # 1.00 - fit_y = [] - for x in frange(start,end,resolution, True): - fit_y.append(fitted_harmonic_function.value(x)) - fit_x = frange(start, end+resolution, resolution) - - p = plot(ydata,"data", xdata, title="HFit")[0] - p.addSeries(LinePlotSeries("fit")) - p.getSeries(1).setData(fit_x, fit_y) - - #m = (phase + math.pi)/ angular_frequency - m = -phase / angular_frequency - if (m{ if (ex!=null){ - if (!getContext().isAborted()){ + if (!Context.isAborted()){ showException((Exception)ex); } } return ret; }); - } catch (Context.ContextStateException ex) { + } catch (Exception ex) { showException(ex); } }