diff --git a/config/variables.properties b/config/variables.properties
index 603162d7..7f566fe5 100644
--- a/config/variables.properties
+++ b/config/variables.properties
@@ -1,4 +1,4 @@
-#Mon Nov 15 15:51:17 CET 2021
-LastRunDate=211115
-FileSequentialNumber=10022
-DaySequentialNumber=21
+#Tue Nov 16 11:05:36 CET 2021
+LastRunDate=211116
+FileSequentialNumber=10032
+DaySequentialNumber=10
diff --git a/plugins/OTF.form b/plugins/OTF.form
index a03682f8..4bb36862 100644
--- a/plugins/OTF.form
+++ b/plugins/OTF.form
@@ -54,15 +54,46 @@
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -82,7 +113,7 @@
-
+
@@ -99,26 +130,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -127,11 +138,7 @@
-
-
-
-
-
+
@@ -142,36 +149,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -212,7 +199,7 @@
-
+
@@ -225,81 +212,10 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/OTF.java b/plugins/OTF.java
index 24880dd7..bf8df1e6 100644
--- a/plugins/OTF.java
+++ b/plugins/OTF.java
@@ -29,16 +29,10 @@ public class OTF extends Panel {
for (Component c : SwingUtils.getComponentsByType(panelPositioner, JSpinner.class)) {
c.setEnabled(enabled);
}
- boolean energy = spinnerMode.getValue().equals("ENERGY");
- spinnerMode.setEnabled(enabled);
spinnerTime.setEnabled(enabled);
spinnerModulo.setEnabled(enabled);
- spinnerE1.setEnabled(enabled && energy);
- spinnerE2.setEnabled(enabled && energy);
- spinnerBeta1.setEnabled(enabled && !energy);
- spinnerBeta2.setEnabled(enabled && !energy);
- spinnerTheta1.setEnabled(enabled && !energy);
- spinnerTheta2.setEnabled(enabled && !energy);
+ spinnerE1.setEnabled(enabled);
+ spinnerE2.setEnabled(enabled);
}
@Override
@@ -75,13 +69,9 @@ public class OTF extends Panel {
}
args.put("SENSORS", sensors);
*/
- args.put("MODE", spinnerMode.getValue());
+ args.put("MODE", "ENERGY");
args.put("E1", spinnerE1.getValue());
- args.put("E2", spinnerE2.getValue());
- args.put("BETA1", spinnerBeta1.getValue());
- args.put("BETA2", spinnerBeta2.getValue());
- args.put("THETA1", spinnerTheta1.getValue());
- args.put("THETA2", spinnerTheta2.getValue());
+ args.put("E2", spinnerE2.getValue());
args.put("TIME", spinnerTime.getValue());
args.put("MODULO", spinnerModulo.getValue());
args.put("ENDSCAN", checkEndScan.isSelected());
@@ -93,6 +83,8 @@ public class OTF extends Panel {
private void initComponents() {
panelSensors = new javax.swing.JPanel();
+ checkCur1 = new javax.swing.JCheckBox();
+ checkCur2 = new javax.swing.JCheckBox();
panelPositioner = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
spinnerE1 = new javax.swing.JSpinner();
@@ -102,16 +94,6 @@ public class OTF extends Panel {
spinnerTime = new javax.swing.JSpinner();
jLabel7 = new javax.swing.JLabel();
spinnerModulo = new javax.swing.JSpinner();
- jLabel8 = new javax.swing.JLabel();
- spinnerMode = new javax.swing.JSpinner();
- jLabel9 = new javax.swing.JLabel();
- spinnerBeta1 = new javax.swing.JSpinner();
- jLabel10 = new javax.swing.JLabel();
- spinnerBeta2 = new javax.swing.JSpinner();
- jLabel11 = new javax.swing.JLabel();
- spinnerTheta1 = new javax.swing.JSpinner();
- spinnerTheta2 = new javax.swing.JSpinner();
- jLabel12 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
buttonStart = new javax.swing.JButton();
buttonAbort = new javax.swing.JButton();
@@ -119,15 +101,35 @@ public class OTF extends Panel {
panelSensors.setBorder(javax.swing.BorderFactory.createTitledBorder("Sensors"));
+ checkCur1.setSelected(true);
+ checkCur1.setText("Sample Current");
+ checkCur1.setEnabled(false);
+ checkCur1.setName("SampleCurrent"); // NOI18N
+
+ checkCur2.setSelected(true);
+ checkCur2.setText("Ref Current");
+ checkCur2.setEnabled(false);
+ checkCur2.setName("RefCurrent"); // NOI18N
+
javax.swing.GroupLayout panelSensorsLayout = new javax.swing.GroupLayout(panelSensors);
panelSensors.setLayout(panelSensorsLayout);
panelSensorsLayout.setHorizontalGroup(
panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 228, Short.MAX_VALUE)
+ .addGroup(panelSensorsLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(checkCur1)
+ .addComponent(checkCur2))
+ .addContainerGap(103, Short.MAX_VALUE))
);
panelSensorsLayout.setVerticalGroup(
panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 530, Short.MAX_VALUE)
+ .addGroup(panelSensorsLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(checkCur1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(checkCur2)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelPositioner.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameters"));
@@ -145,42 +147,12 @@ public class OTF extends Panel {
jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel6.setText("Time(min):");
- spinnerTime.setModel(new javax.swing.SpinnerNumberModel(1, 1, 1440, 1));
+ spinnerTime.setModel(new javax.swing.SpinnerNumberModel(1.0d, 1.0d, 1440.0d, 1.0d));
jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
jLabel7.setText("Modulo:");
- spinnerModulo.setModel(new javax.swing.SpinnerNumberModel(4, 1, 10, 1));
-
- jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
- jLabel8.setText("Mode:");
-
- spinnerMode.setModel(new javax.swing.SpinnerListModel(new String[] {"ENERGY", "ANGLE"}));
- spinnerMode.addChangeListener(new javax.swing.event.ChangeListener() {
- public void stateChanged(javax.swing.event.ChangeEvent evt) {
- spinnerModeStateChanged(evt);
- }
- });
-
- jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
- jLabel9.setText("Beta1(deg):");
-
- spinnerBeta1.setModel(new javax.swing.SpinnerNumberModel(-86.325d, -360.0d, 360.0d, 1.0d));
-
- jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
- jLabel10.setText("Beta2(deg):");
-
- spinnerBeta2.setModel(new javax.swing.SpinnerNumberModel(-86.365d, -360.0d, 360.0d, 1.0d));
-
- jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
- jLabel11.setText("Theta1(deg):");
-
- spinnerTheta1.setModel(new javax.swing.SpinnerNumberModel(87.345d, -360.0d, 360.0d, 1.0d));
-
- spinnerTheta2.setModel(new javax.swing.SpinnerNumberModel(87.37d, -360.0d, 360.0d, 1.0d));
-
- jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
- jLabel12.setText("Theta2(deg):");
+ spinnerModulo.setModel(new javax.swing.SpinnerNumberModel(1, 1, 10, 1));
javax.swing.GroupLayout panelPositionerLayout = new javax.swing.GroupLayout(panelPositioner);
panelPositioner.setLayout(panelPositionerLayout);
@@ -192,7 +164,7 @@ public class OTF extends Panel {
.addGroup(panelPositionerLayout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spinnerE1))
+ .addComponent(spinnerE1, javax.swing.GroupLayout.DEFAULT_SIZE, 110, Short.MAX_VALUE))
.addGroup(panelPositionerLayout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -204,35 +176,16 @@ public class OTF extends Panel {
.addGroup(panelPositionerLayout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spinnerModulo))
- .addGroup(panelPositionerLayout.createSequentialGroup()
- .addComponent(jLabel8)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spinnerMode))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPositionerLayout.createSequentialGroup()
- .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jLabel9)
- .addComponent(jLabel10)
- .addComponent(jLabel11)
- .addComponent(jLabel12))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(spinnerBeta1)
- .addComponent(spinnerBeta2, javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(spinnerTheta1)
- .addComponent(spinnerTheta2, javax.swing.GroupLayout.Alignment.TRAILING))))
+ .addComponent(spinnerModulo)))
.addContainerGap())
);
- panelPositionerLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel10, jLabel11, jLabel12, jLabel4, jLabel5, jLabel6, jLabel7, jLabel8, jLabel9});
+ panelPositionerLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel4, jLabel5, jLabel6, jLabel7});
panelPositionerLayout.setVerticalGroup(
panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelPositionerLayout.createSequentialGroup()
- .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(spinnerMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel8))
- .addGap(50, 50, 50)
+ .addContainerGap()
.addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(spinnerE1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
@@ -241,30 +194,14 @@ public class OTF extends Panel {
.addComponent(spinnerE2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(18, 18, 18)
- .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(spinnerBeta1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel9))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel10)
- .addComponent(spinnerBeta2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(18, 18, 18)
- .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(spinnerTheta1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel11))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel12)
- .addComponent(spinnerTheta2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(50, 50, 50)
.addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(spinnerTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGap(18, 18, 18)
.addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(spinnerModulo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
- .addContainerGap(136, Short.MAX_VALUE))
+ .addContainerGap(378, Short.MAX_VALUE))
);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Scan Control"));
@@ -355,34 +292,22 @@ public class OTF extends Panel {
}
}//GEN-LAST:event_buttonAbortActionPerformed
- private void spinnerModeStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerModeStateChanged
- onStateChange(getState(), getState());
- }//GEN-LAST:event_spinnerModeStateChanged
-
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonAbort;
private javax.swing.JButton buttonStart;
+ private javax.swing.JCheckBox checkCur1;
+ private javax.swing.JCheckBox checkCur2;
private javax.swing.JCheckBox checkEndScan;
- private javax.swing.JLabel jLabel10;
- private javax.swing.JLabel jLabel11;
- private javax.swing.JLabel jLabel12;
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 jPanel3;
private javax.swing.JPanel panelPositioner;
private javax.swing.JPanel panelSensors;
- private javax.swing.JSpinner spinnerBeta1;
- private javax.swing.JSpinner spinnerBeta2;
private javax.swing.JSpinner spinnerE1;
private javax.swing.JSpinner spinnerE2;
- private javax.swing.JSpinner spinnerMode;
private javax.swing.JSpinner spinnerModulo;
- private javax.swing.JSpinner spinnerTheta1;
- private javax.swing.JSpinner spinnerTheta2;
private javax.swing.JSpinner spinnerTime;
// End of variables declaration//GEN-END:variables
}
diff --git a/script/ManipulatorScan.py b/script/ManipulatorScan.py
index 7fa8c1fb..f87f8dcd 100644
--- a/script/ManipulatorScan.py
+++ b/script/ManipulatorScan.py
@@ -8,6 +8,7 @@ STEPS (int or tuple)
LATENCY (double)
RELATIVE (BOOLEAN)
FLY_SCAN (BOOLEAN)
+ENDSCAN (BOOLEAN)
"""
#set_preference(Preference.PLOT_TYPES,{'ImageIntegrator':1})
diff --git a/script/local.py b/script/local.py
index f1593464..d59381c2 100644
--- a/script/local.py
+++ b/script/local.py
@@ -159,6 +159,24 @@ def release_keithleys():
KeiSample.release()
KeiReference.release()
+def otf(mode="ENERGY", e1=None, e2=None, beta1=None, beta2=None, theta1=None, theta2=None, \
+ time=1.0, modulo=1, turn_off_beam=False):
+ """
+ mode: "ENERGY" or "AMNGLE"
+ """
+ run("otf", {
+ "MODE":mode, \
+ "E1":float(e1) if e1 is not None else None, \
+ "E2":float(e2) if e2 is not None else None, \
+ "BETA1":float(beta1) if beta1 is not None else None, \
+ "BETA2":float(beta2) if beta2 is not None else None, \
+ "THETA1":float(theta1) if theta1 is not None else None, \
+ "THETA2":float(theta2) if theta2 is not None else None, \
+ "TIME":float(time), \
+ "MODULO":int(modulo), \
+ "ENDSCAN":turn_off_beam, \
+ })
+
diag_channels = []
diag_channels.append(Scienta.channelBegin) #diag_channels.append(ChannelDouble("ChannelBegin", "X03DA-SCIENTA:cam1:CHANNEL_BEGIN_RBV"))
diag_channels.append(Scienta.channelEnd) #diag_channels.append(ChannelDouble("ChannelEnd", "X03DA-SCIENTA:cam1:CHANNEL_END_RBV"))
diff --git a/script/otf.py b/script/otf.py
index 04cfbf62..9708fea2 100644
--- a/script/otf.py
+++ b/script/otf.py
@@ -1,4 +1,6 @@
-if get_exec_pars().source==CommandSource.ui:
+#Debugging parameters
+if not get_exec_pars().getCommand(False).args:
+ 1/0
MODE = "ANGLE"
E1 = 450.0
E2 = 460.0
@@ -6,18 +8,20 @@ if get_exec_pars().source==CommandSource.ui:
BETA2 = -86.365
THETA1 = 87.345
THETA2 = 87.370
- TIME = 1 #min
- MODULO=4
+ TIME = 1.0 #min
+ MODULO=1
ENDSCAN=False
if MODE=="ANGLE":
- raise Exception("Angle mode not supported")
print "\nStart OTF scan... Beta", BETA1,"->",BETA2," Theta", THETA1,"->",THETA2, TIME,"- min modulo=",MODULO
+ if None in [BETA1, BETA2, THETA1, THETA2]:
+ raise Exception("Invalid angle")
else:
print "\nStart OTF scan...", E1,"eV ->",E2,"eV,",TIME,"- min modulo=",MODULO
-
+ if None in [E1, E2]:
+ raise Exception("Invalid energy")
wait_beam()
sensors = SampleCurrent, RefCurrent, MonoBeta, MonoTheta, MonoEnergy
@@ -97,10 +101,7 @@ def after_read(rec):
try:
print "Scanning...",
try:
- if MODE=="ANGLE":
- mscan(SampleCurrent, sensors, -1, None, range="auto", take_initial=False, after_read=after_read, monitors=[MonoEnergy, SampleCurrent, MachineCurrent])
- else:
- mscan(SampleCurrent, sensors, -1, None, range="auto", take_initial=False, after_read=after_read, domain_axis="MonoEnergy", monitors=[MonoEnergy, SampleCurrent, MachineCurrent])
+ mscan(SampleCurrent, sensors, -1, None, range="auto", take_initial=False, after_read=after_read, domain_axis="MonoEnergy", snaps=diag_channels)
finally:
ret[0].cancel(True)
@@ -108,8 +109,8 @@ except:
if not scan_completed:
print sys.exc_info()
print("Aborting...")
- caput('X03DA-OTF:RUN', 'STOP')
raise
finally:
+ caput('X03DA-OTF:RUN', 'STOP')
if ENDSCAN:
after_scan()
\ No newline at end of file