From ee11be53c44eb691fcebc5ef26785b0ab314e0ed Mon Sep 17 00:00:00 2001 From: x07maop Date: Fri, 1 Apr 2016 16:52:22 +0200 Subject: [PATCH] Closedown --- plugins/EnergyScan.form | 213 +++++++-------------------- plugins/EnergyScan.java | 319 +++++++--------------------------------- script/EnergyScan.py | 64 +++++++- 3 files changed, 164 insertions(+), 432 deletions(-) diff --git a/plugins/EnergyScan.form b/plugins/EnergyScan.form index 7e172d0..d3bd992 100644 --- a/plugins/EnergyScan.form +++ b/plugins/EnergyScan.form @@ -29,11 +29,7 @@ - - - - - + @@ -43,10 +39,7 @@ - - - - + @@ -74,30 +67,42 @@ - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -124,15 +129,16 @@ - - - - - + + + + + + @@ -221,6 +227,7 @@ + @@ -236,6 +243,14 @@ + + + + + + + + @@ -251,7 +266,7 @@ - + @@ -265,7 +280,7 @@ - + @@ -339,126 +354,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -527,12 +422,12 @@ - + - + diff --git a/plugins/EnergyScan.java b/plugins/EnergyScan.java index 87e9db9..3e71dc0 100644 --- a/plugins/EnergyScan.java +++ b/plugins/EnergyScan.java @@ -15,14 +15,6 @@ import ch.psi.utils.State; import ch.psi.utils.swing.DsvEditor; import ch.psi.utils.swing.Editor.EditorDialog; import ch.psi.pshell.data.PlotDescriptor; -import ch.psi.pshell.device.Device; -import ch.psi.pshell.device.DeviceAdapter; -import ch.psi.pshell.epics.ChannelDoubleArray; -import ch.psi.pshell.epics.ChannelInteger; -import ch.psi.pshell.plot.LinePlot; -import ch.psi.pshell.plot.LinePlotBase; -import ch.psi.pshell.plot.LinePlotSeries; -import ch.psi.pshell.plot.Plot; import ch.psi.pshell.ui.Panel; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -38,44 +30,13 @@ public class EnergyScan extends Panel { buttonDefaultsActionPerformed(null); setBackgroundUpdate(true); } - - ChannelDoubleArray data; - ChannelDoubleArray edata; - ChannelDoubleArray idata; - ChannelDoubleArray fdata; - ChannelInteger count; - double[] offsets = new double[4]; - /* - //Overridable callbacks - @Override - public void onStart() { - super.onStart(); - loadConfig(); - } - */ @Override public void onInitialize(int runCount) { super.onInitialize(runCount); loadConfig(); - - count = (ChannelInteger) getController().getDevicePool().getByName("count"); - data = (ChannelDoubleArray) getController().getDevicePool().getByName("data"); - edata = (ChannelDoubleArray) getController().getDevicePool().getByName("edata"); - idata = (ChannelDoubleArray) getController().getDevicePool().getByName("idata"); - fdata = (ChannelDoubleArray) getController().getDevicePool().getByName("fdata"); - - - count.addListener(new DeviceAdapter() { - @Override - public void onValueChanged(Device device, Object value, Object former) { - update(); - } - }); - update(); - //loadConfig(); } @Override @@ -87,11 +48,6 @@ public class EnergyScan extends Panel { public void onExecutedFile(String fileName, Object result) { } - @Override - protected void doUpdate() { - plot(); - } - void stopScan() { try{ getLogger().info("Stopping scan"); @@ -116,9 +72,6 @@ public class EnergyScan extends Panel { Mode[] batch; int batchIndex; - LinePlotBase scanPlot; - LinePlotSeries scanSeries; - @Override public void setEnabled(boolean value) { super.setEnabled(value); @@ -127,8 +80,7 @@ public class EnergyScan extends Panel { comboRunType.setEnabled(value); buttonConfigure.setEnabled(value); textFile.setEnabled(value); - buttonDefaults.setEnabled(value); - buttonPlot.setEnabled(value); + buttonDefaults.setEnabled(value); checkParameterControls(); } @@ -140,58 +92,10 @@ public class EnergyScan extends Panel { } } spinnerAlpha.setEnabled(enabled && comboMode.getSelectedItem().equals("LINEAR")); + spinnerOffset.setEnabled(checkSetOffset.isSelected() && enabled); } - void plot() { - try { - if ((scanPlot != null) && (scanSeries != null) && scanPlot.isShowing() && (count != null)) { - //buttonGroupPlot.getSelection(). - Integer c = count.take(); - if (c == null) { - scanSeries.clear(); - } else { - double[] ydata = null; - if (radioE.isSelected()) { - data.setSize(c); - ydata = data.read(); - } else if (radioF.isSelected()) { - fdata.setSize(c); - ydata = fdata.read(); - } else if (radioI0.isSelected()) { - idata.setSize(c); - ydata = idata.read(); - } else if (radioTEY.isSelected()) { - data.setSize(c); - idata.setSize(c); - ydata = data.read(); - double[] i0 = idata.read(); - for (int i = 0; i < c; i++) { - ydata[i] = (i0[i] == 0.0) ? Double.NaN : ydata[i] / i0[i]; - } - } else if (radioTFY.isSelected()) { - fdata.setSize(c); - idata.setSize(c); - ydata = fdata.read(); - double[] i0 = idata.read(); - for (int i = 0; i < c; i++) { - ydata[i] = (i0[i] == 0.0) ? Double.NaN : ydata[i] / i0[i]; - } - } - if (ydata == null) { - scanSeries.clear(); - } else { - edata.setSize(c); - double[] xdata = edata.read(); - scanSeries.setData(xdata, ydata); - } - } - } - } catch (Exception ex) { - showException(ex); - ex.printStackTrace(); - } - } - + void loadConfig() { DefaultComboBoxModel model = (DefaultComboBoxModel) comboSetup.getModel(); model.removeAllElements(); @@ -320,7 +224,7 @@ public class EnergyScan extends Panel { args.put("TIME", (Double) spinnerTime.getValue()); args.put("DELAY", (Double) spinnerDelay.getValue()); args.put("MODE", comboMode.getSelectedItem().toString()); - args.put("OFFSET", (Double) spinnerOffset.getValue()); + args.put("OFFSET", checkSetOffset.isSelected() ? (Double) spinnerOffset.getValue() : null); args.put("ALPHA", (Double) spinnerAlpha.getValue()); String file = expandPath(textFile.getText()); @@ -353,17 +257,6 @@ public class EnergyScan extends Panel { } return ok; }); - - if (scanPlot != null) { - scanPlot.getAxis(Plot.AxisId.X).setRange(Math.min(e1, e2), Math.max(e1, e2)); - } - } - - void startPlot() throws Exception { - PlotDescriptor descriptors = new PlotDescriptor("Energy Scan"); - ArrayList plots = getController().plot(new PlotDescriptor[]{descriptors}, null); - scanPlot = (LinePlotBase) plots.get(0); - scanSeries = scanPlot.getSeries(0); } @SuppressWarnings("unchecked") @@ -386,19 +279,13 @@ public class EnergyScan extends Panel { spinnerOffset = new javax.swing.JSpinner(); jLabel9 = new javax.swing.JLabel(); spinnerAlpha = new javax.swing.JSpinner(); + checkSetOffset = new javax.swing.JCheckBox(); jPanel1 = new javax.swing.JPanel(); comboSetup = new javax.swing.JComboBox(); buttonConfigure = new javax.swing.JButton(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); comboRunType = new javax.swing.JComboBox(); - jPanel2 = new javax.swing.JPanel(); - radioTEY = new javax.swing.JRadioButton(); - radioTFY = new javax.swing.JRadioButton(); - radioE = new javax.swing.JRadioButton(); - radioF = new javax.swing.JRadioButton(); - radioI0 = new javax.swing.JRadioButton(); - buttonPlot = new javax.swing.JButton(); panelData = new javax.swing.JPanel(); buttonDefaults = new javax.swing.JButton(); jLabel6 = new javax.swing.JLabel(); @@ -443,39 +330,54 @@ public class EnergyScan extends Panel { jLabel8.setText("Offset:"); spinnerOffset.setModel(new javax.swing.SpinnerNumberModel(0.0d, -20.0d, 20.0d, 1.0d)); + spinnerOffset.setEnabled(false); jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel9.setText("Alpha:"); spinnerAlpha.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 90.0d, 1.0d)); + checkSetOffset.setText("Set Offset"); + checkSetOffset.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + checkSetOffsetActionPerformed(evt); + } + }); + 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.LEADING) - .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING)) - .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.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(comboMode, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(panelParametersLayout.createSequentialGroup() + .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING)) + .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.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(comboMode, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(checkSetOffset)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel4, 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) - .addComponent(spinnerOffset, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spinnerAlpha, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelParametersLayout.createSequentialGroup() + .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel4, 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) + .addComponent(spinnerAlpha, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelParametersLayout.createSequentialGroup() + .addComponent(jLabel8) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spinnerOffset, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); @@ -504,12 +406,13 @@ public class EnergyScan extends Panel { .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5) .addComponent(comboMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel8) - .addComponent(spinnerOffset, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(5, 5, 5) - .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(spinnerAlpha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel9)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel8) + .addComponent(spinnerOffset, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(checkSetOffset)) .addContainerGap()) ); @@ -544,7 +447,7 @@ public class EnergyScan extends Panel { jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap(22, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel10, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING)) @@ -555,7 +458,7 @@ public class EnergyScan extends Panel { .addComponent(comboSetup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonConfigure))) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(22, Short.MAX_VALUE)) ); jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboRunType, comboSetup}); @@ -575,96 +478,6 @@ public class EnergyScan extends Panel { .addContainerGap()) ); - jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Plot Options")); - - buttonGroupPlot.add(radioTEY); - radioTEY.setSelected(true); - radioTEY.setText("TEY"); - radioTEY.setMinimumSize(new java.awt.Dimension(100, 22)); - radioTEY.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioPlotActionPerformed(evt); - } - }); - - buttonGroupPlot.add(radioTFY); - radioTFY.setText("TFY"); - radioTFY.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioPlotActionPerformed(evt); - } - }); - - buttonGroupPlot.add(radioE); - radioE.setText("TEYraw"); - radioE.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioPlotActionPerformed(evt); - } - }); - - buttonGroupPlot.add(radioF); - radioF.setText("TFYraw"); - radioF.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioPlotActionPerformed(evt); - } - }); - - buttonGroupPlot.add(radioI0); - radioI0.setText("I0"); - radioI0.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - radioPlotActionPerformed(evt); - } - }); - - buttonPlot.setText("Plot"); - buttonPlot.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonPlotActionPerformed(evt); - } - }); - - 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) - .addComponent(radioTEY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(radioTFY) - .addComponent(radioE) - .addComponent(radioF) - .addComponent(radioI0)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonPlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {radioE, radioF, radioI0, radioTEY, radioTFY}); - - jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup() - .addContainerGap() - .addComponent(radioTEY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(radioTFY) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(radioE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(radioF) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(radioI0) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(buttonPlot) - .addContainerGap()) - ); - panelData.setBorder(javax.swing.BorderFactory.createTitledBorder("File")); buttonDefaults.setText("Default"); @@ -722,11 +535,11 @@ public class EnergyScan extends Panel { 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) + .addContainerGap(22, Short.MAX_VALUE) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(buttonAbort, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonExecute, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(22, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -750,19 +563,14 @@ public class EnergyScan extends Panel { .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(panelParameters, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(panelParameters, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(0, 0, 0)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(16, 16, 16) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(panelParameters, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(panelParameters, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(panelData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -774,13 +582,10 @@ public class EnergyScan extends Panel { layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel1, jPanel3}); - layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel2, panelParameters}); - }// //GEN-END:initComponents private void buttonExecuteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExecuteActionPerformed try { - startPlot(); batchIndex = 0; switch (comboRunType.getSelectedIndex()) { case 5: @@ -853,10 +658,6 @@ public class EnergyScan extends Panel { checkParameterControls(); }//GEN-LAST:event_comboModeActionPerformed - private void radioPlotActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radioPlotActionPerformed - plot(); - }//GEN-LAST:event_radioPlotActionPerformed - private void comboRunTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboRunTypeActionPerformed try { if (!isManualRun()) { @@ -872,15 +673,9 @@ public class EnergyScan extends Panel { textFile.setText("{el}_{mode}"); }//GEN-LAST:event_buttonDefaultsActionPerformed - private void buttonPlotActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPlotActionPerformed - try { - startPlot(); - plot(); - } catch (Exception ex) { - showException(ex); - } - - }//GEN-LAST:event_buttonPlotActionPerformed + private void checkSetOffsetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkSetOffsetActionPerformed + spinnerOffset.setEnabled(checkSetOffset.isSelected()); + }//GEN-LAST:event_checkSetOffsetActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonAbort; @@ -888,7 +683,7 @@ public class EnergyScan extends Panel { private javax.swing.JButton buttonDefaults; private javax.swing.JButton buttonExecute; private javax.swing.ButtonGroup buttonGroupPlot; - private javax.swing.JButton buttonPlot; + private javax.swing.JCheckBox checkSetOffset; private javax.swing.JComboBox comboMode; private javax.swing.JComboBox comboRunType; private javax.swing.JComboBox comboSetup; @@ -903,15 +698,9 @@ public class EnergyScan extends Panel { 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 panelData; private javax.swing.JPanel panelParameters; - private javax.swing.JRadioButton radioE; - private javax.swing.JRadioButton radioF; - private javax.swing.JRadioButton radioI0; - private javax.swing.JRadioButton radioTEY; - private javax.swing.JRadioButton radioTFY; private javax.swing.JSpinner spinnerAlpha; private javax.swing.JSpinner spinnerDelay; private javax.swing.JSpinner spinnerE1; diff --git a/script/EnergyScan.py b/script/EnergyScan.py index 45d3f09..8bd4ed8 100644 --- a/script/EnergyScan.py +++ b/script/EnergyScan.py @@ -13,6 +13,37 @@ FILE = 'Fe_plus' ALPHA=0 """ +p=None +def start_plot(): + global p + p = plot([None, None, None,None, None], ["TEY", "TFY", "TEYraw", "TFYraw", "I0"]) + +def update_plot(): + global p + c = count.take() + if c is None: + for i in range(len(p)): + p[i].getSeries(0).clear() + else: + data.setSize(c) + fdata.setSize(c) + idata.setSize(c) + edata.setSize(c) + teyr= data.read() + tfyr= fdata.read() + i0 = idata.read() + x = edata.read() + #from operator import truediv + l = lambda x,y: (None if (y==0.0) else x/y) #truediv + tey=map(l, teyr, i0) + tfy=map(l, tfyr, i0) + p[0].getSeries(0).setData(x, tey) + p[1].getSeries(0).setData(x, tfy) + p[2].getSeries(0).setData(x, teyr) + p[3].getSeries(0).setData(x, tfyr) + p[4].getSeries(0).setData(x, i0) + + print "\nStarting energy scan - Parameters: ", print E1,E2,TIME,DELAY,str(MODE) ,str(OFFSET) ,str(FOLDER) ,str(FILE) ,str(ALPHA) @@ -39,7 +70,7 @@ if MODE is not None: pol_angle.write(ALPHA) #TODO: CAPUT wait_device(pol_done, "DONE") #TODO: NEEDED? if OFFSET is not None: - pol_offset.write(OFFSET) #TODO: CAPUT + #pol_offset.write(OFFSET) #TODO: CAPUT wait_device(pol_done, "DONE") caput('E1', E1) @@ -50,31 +81,48 @@ set_energy (E1) caput('FILE', FILE) time.sleep(0.1) -open_valve() -open_valve(0.0) #TODO: WHY WRITING AGAIN??? +#open_valve() +#open_valve(0.0) #TODO: WHY WRITING AGAIN??? time.sleep(DELAY) caput('START', '1') -#Post-actions -wait_channel('START', 'STOP', type = 's') -time.sleep(2.0) -print "Finished Energy scan" +waiting = True +def plot_task(): + global waiting + pos=count.take() + start_plot() + while waiting: + if count.take() != pos: + update_plot() + pos = count.take() + time.sleep(0.1) +ret = fork(plot_task) +try: + #Post-actions + wait_channel('START', 'STOP', type = 's') + time.sleep(2.0) + print "Finished Energy scan" +finally: + waiting = False +join(ret) #File convertion newName = folder + time.strftime("%Y%m%d_%H%M_", start) + FILE + "_0000.txt"; name = getNewestFile() -if name == newest: +if name == newest:#TODO: WHY WRITING AGAIN??? + raise Exception("Data file not created") if not os.path.isfile(name): raise Exception("Data file not found: " + name) convert_file(name, newName) +#plot_file(newName) print("Success")