diff --git a/config/devices.properties b/config/devices.properties
index 0a269f7..219787f 100644
--- a/config/devices.properties
+++ b/config/devices.properties
@@ -2,4 +2,4 @@ energy=ch.psi.pshell.epics.ChannelDouble|X11MA-PGM:rbkenergy|Read||true
keithley_1a=ch.psi.pshell.epics.ChannelDouble|X11MA-ES1:CADC1|Read||true
keithley_2a=ch.psi.pshell.epics.ChannelDouble|X11MA-ES1:CADC2|Read||true
keithley_3a=ch.psi.pshell.epics.ChannelDouble|X11MA-ES1:CADC3|Read||true
-otf_start=ch.psi.pshell.epics.ChannelInteger|X11MA-OTF:GO|Read||true
+otf_start=ch.psi.pshell.epics.ChannelInteger|X11MA-OTF:GO|Read|1000|true
diff --git a/plugins/EnergyScan.form b/plugins/EnergyScan.form
index 2e119e4..8d2274b 100644
--- a/plugins/EnergyScan.form
+++ b/plugins/EnergyScan.form
@@ -59,7 +59,7 @@
-
+
@@ -90,21 +90,18 @@
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
@@ -131,15 +128,14 @@
-
-
-
-
-
-
+
+
+
+
+
@@ -241,13 +237,18 @@
-
+
-
+
-
+
+
+
+
+
+
diff --git a/plugins/EnergyScan.java b/plugins/EnergyScan.java
index d9d4aa0..c40974e 100644
--- a/plugins/EnergyScan.java
+++ b/plugins/EnergyScan.java
@@ -15,16 +15,13 @@ import ch.psi.pshell.data.PlotDescriptor;
import ch.psi.pshell.device.Device;
import ch.psi.pshell.device.DeviceAdapter;
import ch.psi.pshell.epics.ChannelDouble;
-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.io.IOException;
import java.util.logging.Logger;
-import javax.swing.SwingUtilities;
/**
*
@@ -167,8 +164,8 @@ public class EnergyScan extends Panel {
args.put("DELAY", (Double) spinnerDelay.getValue());
args.put("OFFSET1", (Double) spinnerOffset1.getValue());
args.put("OFFSET2", (Double) spinnerOffset2.getValue());
- args.put("PREFIX", textPrefix.getText());
args.put("RUNTYPE", comboRunType.getSelectedItem().toString());
+ args.put("ROUNDS", (Integer) spinnerRounds.getValue());
buttonAbort.setEnabled(true);
@@ -218,8 +215,8 @@ public class EnergyScan extends Panel {
spinnerOffset2 = new javax.swing.JSpinner();
jLabel11 = new javax.swing.JLabel();
comboRunType = new javax.swing.JComboBox();
- jLabel9 = new javax.swing.JLabel();
- textPrefix = new javax.swing.JTextField();
+ jLabel5 = new javax.swing.JLabel();
+ spinnerRounds = new javax.swing.JSpinner();
jPanel2 = new javax.swing.JPanel();
radioK1 = new javax.swing.JRadioButton();
radioK3 = new javax.swing.JRadioButton();
@@ -264,8 +261,10 @@ public class EnergyScan extends Panel {
comboRunType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "+/-", "+", "-" }));
- jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
- jLabel9.setText("Prefix:");
+ jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel5.setText("Rounds:");
+
+ spinnerRounds.setModel(new javax.swing.SpinnerNumberModel(1, 1, 10, 1));
javax.swing.GroupLayout panelParametersLayout = new javax.swing.GroupLayout(panelParameters);
panelParameters.setLayout(panelParametersLayout);
@@ -297,26 +296,23 @@ public class EnergyScan extends Panel {
.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(spinnerOffset2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(43, Short.MAX_VALUE))
+ .addComponent(spinnerOffset2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(panelParametersLayout.createSequentialGroup()
- .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jLabel9)
- .addComponent(jLabel11))
+ .addComponent(jLabel11)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(comboRunType, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(textPrefix, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addComponent(comboRunType, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel5)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spinnerRounds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addContainerGap(43, Short.MAX_VALUE))
);
panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerE1, spinnerTime});
panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel2, jLabel4, jLabel8});
- panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerDelay, spinnerE2, spinnerOffset1, spinnerOffset2});
-
- panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboRunType, textPrefix});
+ panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerDelay, spinnerE2, spinnerOffset1, spinnerOffset2, spinnerRounds});
panelParametersLayout.setVerticalGroup(
panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -338,14 +334,13 @@ public class EnergyScan extends Panel {
.addComponent(spinnerOffset1)
.addComponent(jLabel13)
.addComponent(spinnerOffset2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(18, 18, 18)
- .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel9)
- .addComponent(textPrefix))
- .addGap(18, 18, 18)
+ .addGap(55, 55, 55)
.addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(comboRunType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel11))
+ .addComponent(jLabel11)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel5)
+ .addComponent(spinnerRounds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
@@ -507,8 +502,8 @@ public class EnergyScan extends Panel {
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel8;
- private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel panelParameters;
@@ -519,7 +514,7 @@ public class EnergyScan extends Panel {
private javax.swing.JSpinner spinnerE2;
private javax.swing.JSpinner spinnerOffset1;
private javax.swing.JSpinner spinnerOffset2;
+ private javax.swing.JSpinner spinnerRounds;
private javax.swing.JSpinner spinnerTime;
- private javax.swing.JTextField textPrefix;
// End of variables declaration//GEN-END:variables
}
diff --git a/script/EnergyScan.py b/script/EnergyScan.py
index 9fbe339..7512841 100644
--- a/script/EnergyScan.py
+++ b/script/EnergyScan.py
@@ -1,6 +1,10 @@
import os
import traceback
+input_path = "/sls/X11MA/Data1/public/X11MA/temp/"
+output_path = input_path
+file_prefix = time.strftime("%y%m%d")
+
#Parameters
"""
@@ -12,6 +16,7 @@ OFFSET1 = 1.0 #eV
OFFSET2 = -1.0 #eV
PREFIX = 'Data'
RUNTYPE = "+/-"
+ROUNDS = 1
"""
print "\nStarting energy scan - Parameters: ",
print E1,E2,TIME,DELAY,OFFSET1,OFFSET2,PREFIX,RUNTYPE #,ALPHA
@@ -35,11 +40,6 @@ def switchpol(activeID):
pol_str = None
polswitch = 1
-
-input_path = "/sls/X11MA/Data1/public/X11MA/temp/"
-output_path = input_path
-file_prefix = time.strftime("%y%m%d")
-
fid = get_next_fid(input_path, "o" + file_prefix)
suffix = ("%03d" % fid)
@@ -48,21 +48,30 @@ input_file = input_path + "o" + file_prefix + "_" + suffix + ".dat"
#Prepare scan
-if RUNTYPE == "+/-":
+number_of_scans = 1
+if RUNTYPE in ["+/-", "+" , "-"]:
caput(OTF_MODE1,1) # circ + in ID1
caput(OTF_MODE2,2) # circ - in ID2
wait_channel(OTF_DONE, 1, type = 'i')
+ if RUNTYPE == "+/-":
+ number_of_scans = 2 * ROUNDS
+ else:
+ number_of_scans = ROUNDS
else:
raise Exception("Invalid run type: " + RUNTYPE)
-switchpol(1) # tune ID1 --> polarization: C+
+if RUNTYPE == "-":
+ switchpol(2) # tune ID1 --> polarization: C+
+else:
+ switchpol(1) # tune ID1 --> polarization: C+
time.sleep(1.0)
wait_channel(OTF_DONE, 1, type = 'i')
open_vg10()
+open_vg13()
-for rounds in [1,2]:
+for scan_no in range(number_of_scans):
caput(OTF_E1, E1)
caput(OTF_E2, E2)
caput(OTF_TIME, TIME)
@@ -87,7 +96,7 @@ for rounds in [1,2]:
print("Converting data file: " + output_file);
convert_file(input_file, output_file, pol_str)
- plot_file(output_file, "Scan " + str(rounds))
+ plot_file(output_file, "Scan " + str(scan_no+1))
if polswitch == 1:
switchpol(2) # tune ID2 --> polarization:C-
@@ -97,7 +106,7 @@ for rounds in [1,2]:
time.sleep(3.0)
-close_vg10()
+close_vg13()
print "Finished Energy scan"