diff --git a/config/devices.properties b/config/devices.properties
index de6e409..9ca083a 100644
--- a/config/devices.properties
+++ b/config/devices.properties
@@ -1,3 +1,4 @@
+#BucketSize=ch.psi.pshell.epics.ChannelDouble||Read||true
FillingPattern=ch.psi.pshell.epics.ChannelDoubleArray|ACORF-FILL:UnsortComp|Read||true
MCPArray1=ch.psi.pshell.epics.ChannelIntegerArray|X11MA-ES4:PHC-CTRWF1|Read||true
SamplingTime=ch.psi.pshell.epics.ChannelDouble|X11MA-ES4:SAMPLE-TIME|Read||true
diff --git a/config/plugins.properties b/config/plugins.properties
index eb3bea4..1150c86 100644
--- a/config/plugins.properties
+++ b/config/plugins.properties
@@ -1,2 +1,3 @@
+DelayScan.java=enabled
EnergyScan.java=enabled
Test.java=disabled
diff --git a/plugins/DelayScan.form b/plugins/DelayScan.form
new file mode 100644
index 0000000..93eb95d
--- /dev/null
+++ b/plugins/DelayScan.form
@@ -0,0 +1,544 @@
+
+
+
diff --git a/plugins/DelayScan.java b/plugins/DelayScan.java
new file mode 100644
index 0000000..700844f
--- /dev/null
+++ b/plugins/DelayScan.java
@@ -0,0 +1,550 @@
+/*
+ * Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
+ */
+
+import java.awt.Component;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.logging.Level;
+import javax.swing.JLabel;
+import ch.psi.utils.State;
+import ch.psi.utils.swing.Editor.EditorDialog;
+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 ch.psi.utils.swing.DsvEditor;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import java.nio.file.Files;
+import javax.swing.DefaultComboBoxModel;
+
+/**
+ *
+ */
+public class DelayScan extends Panel {
+
+ public DelayScan() {
+ initComponents();
+ }
+
+ double energyCache = 0;
+ boolean restart;
+
+ @Override
+ public void onStateChange(State state, State former) {
+ setEnabled(state == State.Ready);
+ }
+
+ @Override
+ public void onExecutedFile(String fileName, Object result) {
+ }
+
+ boolean otf;
+
+ void stopScan() {
+ try {
+ getLogger().info("Stopping scan");
+ evalAsync("caput('START', 'STOP')");
+ } catch (Exception ex) {
+ getLogger().log(Level.WARNING, null, ex);
+ }
+ }
+
+ Path getConfigFile() {
+ return Paths.get(getController().getSetup().getConfigPath(), "energy_scan.properties");
+ }
+
+ LinePlotBase scanPlot;
+ LinePlotSeries scanSeries;
+
+ @Override
+ public void setEnabled(boolean value) {
+ super.setEnabled(value);
+ buttonExecute.setEnabled(value);
+ //buttonPlot.setEnabled(value);
+ checkParameterControls();
+ }
+
+ void checkParameterControls() {
+ boolean enabled;
+ enabled = isEnabled();
+ for (Component c : panelParameters.getComponents()) {
+ if (!(c instanceof JLabel)) {
+ c.setEnabled(enabled);
+ }
+ }
+
+ //spinnerAlpha.setEnabled(enabled && comboMode.getSelectedItem().equals("LINEAR"));
+ }
+
+ double last = 0;
+
+ void run() throws Exception {
+ HashMap args = new HashMap();
+ args.put("START",(Double) spinnerStart.getValue());
+ args.put("DELAY", (Double) spinnerDelay.getValue());
+ args.put("END", (Double) spinnerEnd.getValue());
+ args.put("FINEDELAY", (Double) spinnerFineDelay.getValue());
+ args.put("SIZE", (Double) spinnerSize.getValue());
+ args.put("OFFSET1", (Double) spinnerOffset1.getValue());
+ args.put("OFFSET2", (Double) spinnerOffset2.getValue());
+ args.put("ACQTIME", (Double) spinnerAcqTime.getValue());
+ args.put("ENERGIES", jTextField1.getText());
+ args.put("RUNTYPE", comboRunType.getSelectedItem().toString());
+ args.put("ROUNDS", (Integer) spinnerRounds.getValue());
+ args.put("SET_OFFSETS", jCheckBox1.isSelected() ? 1 : 2);
+ args.put("ID1", jRadioButton1.isSelected() ? 1 : 2);
+ args.put("ID2", jRadioButton2.isSelected() ? 1 : 2);
+ args.put("MCP_1", jCheckBox2.isSelected() ? 1 : 2);
+ args.put("MCP_2", jCheckBox3.isSelected() ? 1 : 2);
+ args.put("Cam_start", jSpinner1.getValue());
+ args.put("Cam_end", jSpinner2.getValue());
+ args.put("Save_array_data", jCheckBox4.isSelected() ? 1 : 2);
+
+ buttonAbort.setEnabled(true);
+
+ runAsync("DelayScan", args).handle((ok, ex) -> {
+ try {
+ buttonAbort.setEnabled(false);
+ if (ex != null) {
+ throw ex;
+ } else {
+ }
+ } catch (Throwable t) {
+ getLogger().log(Level.WARNING, null, ex);
+ //showException((Exception)ex);
+ }
+ return ok;
+ });
+ }
+
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ buttonGroupPlot = new javax.swing.ButtonGroup();
+ buttonGroup1 = new javax.swing.ButtonGroup();
+ panelParameters = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ spinnerStart = new javax.swing.JSpinner();
+ jLabel2 = new javax.swing.JLabel();
+ spinnerDelay = new javax.swing.JSpinner();
+ jLabel3 = new javax.swing.JLabel();
+ spinnerEnd = new javax.swing.JSpinner();
+ jLabel4 = new javax.swing.JLabel();
+ spinnerFineDelay = new javax.swing.JSpinner();
+ jLabel8 = new javax.swing.JLabel();
+ spinnerSize = new javax.swing.JSpinner();
+ jLabel13 = new javax.swing.JLabel();
+ spinnerOffset2 = new javax.swing.JSpinner();
+ jTextField1 = new javax.swing.JTextField();
+ jLabel16 = new javax.swing.JLabel();
+ jLabel17 = new javax.swing.JLabel();
+ jLabel11 = new javax.swing.JLabel();
+ comboRunType = new javax.swing.JComboBox();
+ spinnerRounds = new javax.swing.JSpinner();
+ jLabel5 = new javax.swing.JLabel();
+ spinnerOffset1 = new javax.swing.JSpinner();
+ spinnerAcqTime = new javax.swing.JSpinner();
+ jLabel18 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ buttonExecute = new javax.swing.JButton();
+ buttonAbort = new javax.swing.JButton();
+ jCheckBox1 = new javax.swing.JCheckBox();
+ jRadioButton2 = new javax.swing.JRadioButton();
+ jRadioButton1 = new javax.swing.JRadioButton();
+ jRadioButton3 = new javax.swing.JRadioButton();
+ jCheckBox2 = new javax.swing.JCheckBox();
+ jCheckBox3 = new javax.swing.JCheckBox();
+ jLabel6 = new javax.swing.JLabel();
+ jLabel7 = new javax.swing.JLabel();
+ jSpinner1 = new javax.swing.JSpinner();
+ jSpinner2 = new javax.swing.JSpinner();
+ jLabel9 = new javax.swing.JLabel();
+ jLabel14 = new javax.swing.JLabel();
+ jLabel15 = new javax.swing.JLabel();
+ jCheckBox4 = new javax.swing.JCheckBox();
+
+ panelParameters.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameters"));
+
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel1.setText("Delay start (ns):");
+
+ spinnerStart.setModel(new javax.swing.SpinnerNumberModel(680.0d, 0.0d, 9999.0d, 1.0d));
+
+ jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel2.setText("LPP delay at t=0");
+
+ spinnerDelay.setModel(new javax.swing.SpinnerNumberModel(750.0d, 0.0d, 9999.0d, 1.0d));
+
+ jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel3.setText("Delay end (ns):");
+
+ spinnerEnd.setModel(new javax.swing.SpinnerNumberModel(2.0d, 0.0d, 60.0d, 1.0d));
+
+ jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel4.setText("LPP fine delay at t=0");
+
+ spinnerFineDelay.setModel(new javax.swing.SpinnerNumberModel(10.0d, 0.0d, 600.0d, 1.0d));
+
+ jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel8.setText("Step size (ns):");
+
+ spinnerSize.setModel(new javax.swing.SpinnerNumberModel(0.0d, -20.0d, 20.0d, 1.0d));
+
+ jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel13.setText("Offset2:");
+
+ spinnerOffset2.setModel(new javax.swing.SpinnerNumberModel(0.0d, -20.0d, 20.0d, 1.0d));
+
+ jTextField1.setText("800, 780");
+ jTextField1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jTextField1ActionPerformed(evt);
+ }
+ });
+
+ jLabel16.setText("Energies:");
+
+ jLabel17.setText("Offset1:");
+
+ jLabel11.setText("Run Type:");
+
+ comboRunType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "+/-", "+", "-", "LH/LV", "LH", "LV" }));
+
+ spinnerRounds.setModel(new javax.swing.SpinnerNumberModel(1, 1, 10, 1));
+
+ jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel5.setText("Rounds:");
+
+ spinnerOffset1.setModel(new javax.swing.SpinnerNumberModel(0.0d, -20.0d, 20.0d, 1.0d));
+
+ spinnerAcqTime.setModel(new javax.swing.SpinnerNumberModel(0.0d, -20.0d, 20.0d, 1.0d));
+
+ jLabel18.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel18.setText("Acquisition time (s):");
+
+ 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)
+ .addGroup(panelParametersLayout.createSequentialGroup()
+ .addComponent(jLabel16)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(panelParametersLayout.createSequentialGroup()
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelParametersLayout.createSequentialGroup()
+ .addComponent(jLabel17)
+ .addGap(6, 6, 6)
+ .addComponent(spinnerOffset1, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(22, 22, 22)
+ .addComponent(jLabel13)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spinnerOffset2, 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.LEADING)
+ .addComponent(jLabel1)
+ .addComponent(jLabel3)
+ .addComponent(jLabel8))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(spinnerSize, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(spinnerEnd, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(spinnerStart, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addComponent(jLabel11)
+ .addGroup(panelParametersLayout.createSequentialGroup()
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 6, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(56, 56, 56)
+ .addComponent(comboRunType, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel4)
+ .addComponent(jLabel2)
+ .addComponent(jLabel18)
+ .addComponent(jLabel5))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(spinnerRounds, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(spinnerAcqTime, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(spinnerFineDelay, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(spinnerDelay, javax.swing.GroupLayout.Alignment.TRAILING))))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel2, jLabel4});
+
+ panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerOffset2, spinnerRounds});
+
+ panelParametersLayout.setVerticalGroup(
+ panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelParametersLayout.createSequentialGroup()
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel1)
+ .addComponent(spinnerStart, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel2)
+ .addComponent(spinnerDelay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel3)
+ .addComponent(spinnerEnd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel4)
+ .addComponent(spinnerFineDelay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel8)
+ .addComponent(spinnerSize)
+ .addComponent(jLabel18)
+ .addComponent(spinnerAcqTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(30, 30, 30)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel16)
+ .addComponent(jTextField1, 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(jLabel17)
+ .addComponent(spinnerOffset1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel13)
+ .addComponent(spinnerOffset2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(15, 15, 15)
+ .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel11)
+ .addComponent(comboRunType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(spinnerRounds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel5)))
+ );
+
+ jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Scan Control"));
+
+ buttonExecute.setText("Start");
+ buttonExecute.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonExecuteActionPerformed(evt);
+ }
+ });
+
+ buttonAbort.setText("Abort");
+ buttonAbort.setEnabled(false);
+ buttonAbort.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonAbortActionPerformed(evt);
+ }
+ });
+
+ jCheckBox1.setText("set offsets");
+ jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jCheckBox1ActionPerformed(evt);
+ }
+ });
+
+ buttonGroup1.add(jRadioButton2);
+ jRadioButton2.setText("ID2");
+
+ buttonGroup1.add(jRadioButton1);
+ jRadioButton1.setText("ID1");
+
+ buttonGroup1.add(jRadioButton3);
+ jRadioButton3.setSelected(true);
+ jRadioButton3.setText("ID1+ID2");
+
+ jCheckBox2.setText("MCP signal");
+ jCheckBox2.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jCheckBox2ActionPerformed(evt);
+ }
+ });
+
+ jCheckBox3.setText("MCP I_0");
+
+ jLabel6.setText("ID mode");
+
+ jLabel7.setText("Save MCP data");
+
+ jSpinner1.setModel(new javax.swing.SpinnerNumberModel(0, 0, 1000, 1));
+
+ jSpinner2.setModel(new javax.swing.SpinnerNumberModel(0, 0, 1000, 1));
+
+ jLabel9.setText("start");
+
+ jLabel14.setText("end");
+
+ jLabel15.setText("Camshaft position");
+
+ jCheckBox4.setText("Save array data");
+
+ javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
+ jPanel3.setLayout(jPanel3Layout);
+ jPanel3Layout.setHorizontalGroup(
+ jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jRadioButton1)
+ .addComponent(jRadioButton2))
+ .addGap(80, 80, 80)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jCheckBox3)
+ .addComponent(jCheckBox2)))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addComponent(jLabel6)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel7)))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addComponent(jRadioButton3)
+ .addGap(48, 48, 48)
+ .addComponent(jCheckBox4)))
+ .addGap(31, 31, 31)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel9)
+ .addComponent(jLabel14))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(jSpinner1)
+ .addComponent(jSpinner2))
+ .addGap(18, 18, 18)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(buttonExecute, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(buttonAbort, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(18, 18, 18)
+ .addComponent(jCheckBox1))
+ .addComponent(jLabel15))
+ .addContainerGap())
+ );
+ jPanel3Layout.setVerticalGroup(
+ jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel6)
+ .addComponent(jLabel7)
+ .addComponent(jLabel15))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(buttonExecute)
+ .addComponent(jCheckBox1)
+ .addComponent(jRadioButton1)
+ .addComponent(jCheckBox2))
+ .addGap(16, 16, 16)
+ .addComponent(buttonAbort))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel9))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel14)))))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addGap(60, 60, 60)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jRadioButton2)
+ .addComponent(jCheckBox3))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jRadioButton3)
+ .addComponent(jCheckBox4))))
+ .addContainerGap(13, Short.MAX_VALUE))
+ );
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jPanel3, 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)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(panelParameters, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 111, Short.MAX_VALUE)
+ .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ );
+ }// //GEN-END:initComponents
+
+ private void buttonExecuteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExecuteActionPerformed
+ try {
+ run();
+ } catch (Exception ex) {
+ showException(ex);
+ }
+ }//GEN-LAST:event_buttonExecuteActionPerformed
+
+ private void buttonAbortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAbortActionPerformed
+ abort();
+ }//GEN-LAST:event_buttonAbortActionPerformed
+
+ private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_jCheckBox1ActionPerformed
+
+ private void jCheckBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox2ActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_jCheckBox2ActionPerformed
+
+ private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_jTextField1ActionPerformed
+
+ EditorDialog dlgConfig;
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton buttonAbort;
+ private javax.swing.JButton buttonExecute;
+ private javax.swing.ButtonGroup buttonGroup1;
+ private javax.swing.ButtonGroup buttonGroupPlot;
+ private javax.swing.JComboBox comboRunType;
+ private javax.swing.JCheckBox jCheckBox1;
+ private javax.swing.JCheckBox jCheckBox2;
+ private javax.swing.JCheckBox jCheckBox3;
+ private javax.swing.JCheckBox jCheckBox4;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel11;
+ private javax.swing.JLabel jLabel13;
+ private javax.swing.JLabel jLabel14;
+ private javax.swing.JLabel jLabel15;
+ private javax.swing.JLabel jLabel16;
+ private javax.swing.JLabel jLabel17;
+ private javax.swing.JLabel jLabel18;
+ private javax.swing.JLabel 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 jPanel3;
+ private javax.swing.JRadioButton jRadioButton1;
+ private javax.swing.JRadioButton jRadioButton2;
+ private javax.swing.JRadioButton jRadioButton3;
+ private javax.swing.JSpinner jSpinner1;
+ private javax.swing.JSpinner jSpinner2;
+ private javax.swing.JTextField jTextField1;
+ private javax.swing.JPanel panelParameters;
+ private javax.swing.JSpinner spinnerAcqTime;
+ private javax.swing.JSpinner spinnerDelay;
+ private javax.swing.JSpinner spinnerEnd;
+ private javax.swing.JSpinner spinnerFineDelay;
+ private javax.swing.JSpinner spinnerOffset1;
+ private javax.swing.JSpinner spinnerOffset2;
+ private javax.swing.JSpinner spinnerRounds;
+ private javax.swing.JSpinner spinnerSize;
+ private javax.swing.JSpinner spinnerStart;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/script/local.py b/script/local.py
index fe9a918..accf11e 100644
--- a/script/local.py
+++ b/script/local.py
@@ -28,8 +28,10 @@ VG12_SET = "X11MA-EPS-VG12:SET"
VG12_GET = "X11MA-OP-VG12:OPEN"
VG13_SET = "X11MA-EPS-VG13:SET"
VG13_GET = "X11MA-OP-VG13:OPEN"
-
-
+LPP_DELAY = "X11MA-ES2-4CHT:SET2-DELAY"
+LPP_FINE_DELAY = "X11MA-ES2-4CHT:SET2-FINE"
+TIME_DELAY_SET = "X11MA-ES2:Theta-New.A"
+TIME_DELAY_START = "X11MA-ES2:SCAN-START"
FST = time.strftime("%y%m%d")