Image OTF
This commit is contained in:
@@ -86,7 +86,7 @@ public class DataAcquisition extends Panel {
|
||||
SwingUtils.setEnumCombo(comboImgMethod, ImgMethod.class, true);
|
||||
|
||||
Component[] parameterControls = new Component[0];
|
||||
for (JPanel panel : new JPanel[]{panelImgControls, panelSpectrum}) {
|
||||
for (JPanel panel : new JPanel[]{panelImgControls, panelSpectrum, panelParameters}) {
|
||||
for (Class cls : new Class[]{JComboBox.class, JSpinner.class, JToggleButton.class}) {
|
||||
parameterControls = Arr.append(parameterControls, SwingUtils.getComponentsByType(panel, cls));
|
||||
}
|
||||
@@ -188,7 +188,7 @@ public class DataAcquisition extends Panel {
|
||||
spinnerImgEng1.setVisible(comboImgMethod.getSelectedItem() == ImgMethod.Two_Energies.toString());
|
||||
checkSwitchPol.setVisible(comboImgMethod.getSelectedItem() == ImgMethod.Take_Image.toString());
|
||||
spinnerScans.setVisible(comboImgMethod.getSelectedItem() == ImgMethod.Take_Image.toString());
|
||||
labelScans.setVisible(comboImgMethod.getSelectedItem() == ImgMethod.Take_Image.toString());
|
||||
labelScans.setVisible(comboImgMethod.getSelectedItem() == ImgMethod.Take_Image.toString());
|
||||
|
||||
//panelSecondImage.setVisible(comboImgMethod.getSelectedItem() != ImgMethod.Take_Image.toString());
|
||||
|
||||
@@ -198,6 +198,9 @@ public class DataAcquisition extends Panel {
|
||||
buttonSpecStart.setEnabled(getState() == State.Ready);
|
||||
buttonSpecAbort.setEnabled(getState().isProcessing());
|
||||
|
||||
buttonImgOTFStart.setEnabled(getState() == State.Ready);
|
||||
buttonImgOTFAbort.setEnabled(getState().isProcessing());
|
||||
|
||||
try {
|
||||
String id = getSetting("ID");
|
||||
boolean single = !id.equals("ID1_ID2");
|
||||
@@ -338,8 +341,19 @@ public class DataAcquisition extends Panel {
|
||||
return t;
|
||||
});
|
||||
}
|
||||
|
||||
void runAbsSpectrum() throws Context.ContextStateException {
|
||||
|
||||
Map<String, List<Integer>> getRois(){
|
||||
Map<String, List<Integer>> roi = new HashMap<>();
|
||||
for (int i = 0; i < rois.size(); i++) {
|
||||
roi.put("Region" + (i + 1), Arrays.asList(new Integer[]{rois.get(i).getPosition().x,
|
||||
rois.get(i).getPosition().y,
|
||||
rois.get(i).getSize().width,
|
||||
rois.get(i).getSize().height}));
|
||||
}
|
||||
return roi;
|
||||
}
|
||||
|
||||
List getRanges(){
|
||||
List ranges = new ArrayList();
|
||||
for (int i = 0; i < modelRegions.getRowCount(); i++) {
|
||||
List row = new ArrayList();
|
||||
@@ -347,8 +361,11 @@ public class DataAcquisition extends Panel {
|
||||
row.add(modelRegions.getValueAt(i, 1));
|
||||
row.add(modelRegions.getValueAt(i, 2));
|
||||
ranges.add(row);
|
||||
}
|
||||
|
||||
}
|
||||
return ranges;
|
||||
}
|
||||
|
||||
void runAbsSpectrum() throws Context.ContextStateException {
|
||||
HashMap args = new HashMap();
|
||||
args.put("SAVE_SPECTRUM", checkSpecSaveSpectrum.isSelected());
|
||||
args.put("SAVE_IMAGES", checkSpecSaveImages.isSelected());
|
||||
@@ -357,15 +374,8 @@ public class DataAcquisition extends Panel {
|
||||
args.put("EXPOSURE", spinnerSpecExp.getValue());
|
||||
args.put("AVERAGE", spinnerSpecAvg.getValue());
|
||||
args.put("NUMBER_SCANS", spinnerSpecScans.getValue());
|
||||
args.put("RANGES", ranges);
|
||||
Map<String, List<Integer>> roi = new HashMap<>();
|
||||
for (int i = 0; i < rois.size(); i++) {
|
||||
roi.put("Region" + (i + 1), Arrays.asList(new Integer[]{rois.get(i).getPosition().x,
|
||||
rois.get(i).getPosition().y,
|
||||
rois.get(i).getSize().width,
|
||||
rois.get(i).getSize().height}));
|
||||
}
|
||||
args.put("ROI", roi);
|
||||
args.put("RANGES", getRanges());
|
||||
args.put("ROI", getRois());
|
||||
|
||||
runAsync("templates/EigerAbsSpec", args).handle((ret, t) -> {
|
||||
if ((t != null) && (!getContext().isAborted())) {
|
||||
@@ -414,6 +424,39 @@ public class DataAcquisition extends Panel {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void runImageOTF() throws Exception {
|
||||
HashMap args = new HashMap();
|
||||
Double e1 = (Double) spinnerE1.getValue();
|
||||
Double e2 = (Double) spinnerE2.getValue();
|
||||
args.put("E1", e1);
|
||||
args.put("E2", e2);
|
||||
args.put("TIME", (Double) spinnerTime.getValue());
|
||||
args.put("DELAY", (Double) spinnerDelay.getValue());
|
||||
String file = getContext().getSetup().expandPath("ImageOTF");
|
||||
args.put("FILE", file);
|
||||
String folder = getContext().getSetup().expandPath("{year}_{month}/{date}");
|
||||
args.put("FOLDER", folder);
|
||||
args.put("ROI", getRois());
|
||||
args.put("SAVE_IMAGES", checkImgOTFSaveImages.isSelected());
|
||||
|
||||
buttonImgOTFAbort.setEnabled(true);
|
||||
|
||||
runAsync("templates/EnergyScan_img", args).handle((ok, ex) -> {
|
||||
try {
|
||||
buttonImgOTFAbort.setEnabled(false);
|
||||
if (ex != null) {
|
||||
throw ex;
|
||||
} else {
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
getLogger().log(Level.WARNING, null, ex);
|
||||
//showException((Exception)ex);
|
||||
}
|
||||
return ok;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
@@ -528,6 +571,19 @@ public class DataAcquisition extends Panel {
|
||||
dvpOffID1b2 = new ch.psi.pshell.swing.DeviceValuePanel();
|
||||
dvpOffID2b2 = new ch.psi.pshell.swing.DeviceValuePanel();
|
||||
labelOffID2a2 = new javax.swing.JLabel();
|
||||
jPanel7 = new javax.swing.JPanel();
|
||||
panelParameters = new javax.swing.JPanel();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
spinnerE1 = new javax.swing.JSpinner();
|
||||
jLabel2 = new javax.swing.JLabel();
|
||||
spinnerE2 = new javax.swing.JSpinner();
|
||||
jLabel3 = new javax.swing.JLabel();
|
||||
spinnerTime = new javax.swing.JSpinner();
|
||||
jLabel5 = new javax.swing.JLabel();
|
||||
spinnerDelay = new javax.swing.JSpinner();
|
||||
checkImgOTFSaveImages = new javax.swing.JCheckBox();
|
||||
buttonImgOTFStart = new javax.swing.JButton();
|
||||
buttonImgOTFAbort = new javax.swing.JButton();
|
||||
|
||||
panelNorm.setBorder(javax.swing.BorderFactory.createTitledBorder("Normalization"));
|
||||
|
||||
@@ -1493,6 +1549,126 @@ public class DataAcquisition extends Panel {
|
||||
|
||||
jTabbedPane1.addTab("Absorption Spectrum", jPanel3);
|
||||
|
||||
panelParameters.setBorder(javax.swing.BorderFactory.createTitledBorder("Parameters"));
|
||||
|
||||
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
|
||||
jLabel1.setText("E start:");
|
||||
jLabel1.setToolTipText("");
|
||||
|
||||
spinnerE1.setModel(new javax.swing.SpinnerNumberModel(680.0d, 0.0d, 9999.0d, 1.0d));
|
||||
|
||||
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
|
||||
jLabel2.setText("E end:");
|
||||
jLabel2.setToolTipText("");
|
||||
|
||||
spinnerE2.setModel(new javax.swing.SpinnerNumberModel(750.0d, 0.0d, 9999.0d, 1.0d));
|
||||
|
||||
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
|
||||
jLabel3.setText("Time(min):");
|
||||
|
||||
spinnerTime.setModel(new javax.swing.SpinnerNumberModel(1.0d, 0.0d, 60.0d, 1.0d));
|
||||
|
||||
jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
|
||||
jLabel5.setText("Delay(s):");
|
||||
|
||||
spinnerDelay.setModel(new javax.swing.SpinnerNumberModel(0.1d, 0.0d, 600.0d, 1.0d));
|
||||
|
||||
checkImgOTFSaveImages.setText("Save images");
|
||||
|
||||
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.TRAILING)
|
||||
.addComponent(checkImgOTFSaveImages)
|
||||
.addGroup(panelParametersLayout.createSequentialGroup()
|
||||
.addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(jLabel3)
|
||||
.addComponent(jLabel1))
|
||||
.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.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 175, Short.MAX_VALUE)
|
||||
.addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jLabel5, 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))
|
||||
.addContainerGap(151, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerDelay, spinnerE1, spinnerE2, spinnerTime});
|
||||
|
||||
panelParametersLayout.setVerticalGroup(
|
||||
panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(panelParametersLayout.createSequentialGroup()
|
||||
.addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel1)
|
||||
.addComponent(spinnerE1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jLabel2)
|
||||
.addComponent(spinnerE2, 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(spinnerTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jLabel5)
|
||||
.addComponent(spinnerDelay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 119, Short.MAX_VALUE)
|
||||
.addComponent(checkImgOTFSaveImages)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
buttonImgOTFStart.setText("Start");
|
||||
buttonImgOTFStart.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonImgOTFStartActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonImgOTFAbort.setText("Abort");
|
||||
buttonImgOTFAbort.setEnabled(false);
|
||||
buttonImgOTFAbort.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonImgOTFAbortActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
|
||||
jPanel7.setLayout(jPanel7Layout);
|
||||
jPanel7Layout.setHorizontalGroup(
|
||||
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(panelParameters, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addContainerGap())
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonImgOTFStart)
|
||||
.addGap(64, 64, 64)
|
||||
.addComponent(buttonImgOTFAbort)
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
jPanel7Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonImgOTFAbort, buttonImgOTFStart});
|
||||
|
||||
jPanel7Layout.setVerticalGroup(
|
||||
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel7Layout.createSequentialGroup()
|
||||
.addComponent(panelParameters, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 151, Short.MAX_VALUE)
|
||||
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(buttonImgOTFAbort)
|
||||
.addComponent(buttonImgOTFStart))
|
||||
.addGap(40, 40, 40))
|
||||
);
|
||||
|
||||
jTabbedPane1.addTab("Image OTF", jPanel7);
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
@@ -1763,11 +1939,29 @@ public class DataAcquisition extends Panel {
|
||||
}
|
||||
}//GEN-LAST:event_radioAvPshellActionPerformed
|
||||
|
||||
private void buttonImgOTFStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonImgOTFStartActionPerformed
|
||||
try {
|
||||
runImageOTF();
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonImgOTFStartActionPerformed
|
||||
|
||||
private void buttonImgOTFAbortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonImgOTFAbortActionPerformed
|
||||
try {
|
||||
abort();
|
||||
} catch (InterruptedException ex) {
|
||||
getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonImgOTFAbortActionPerformed
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton buttonAdd;
|
||||
private javax.swing.JButton buttonClear;
|
||||
private javax.swing.ButtonGroup buttonGroup1;
|
||||
private javax.swing.JButton buttonImgAbort;
|
||||
private javax.swing.JButton buttonImgOTFAbort;
|
||||
private javax.swing.JButton buttonImgOTFStart;
|
||||
private javax.swing.JButton buttonImgStart;
|
||||
private javax.swing.JButton buttonOpen;
|
||||
private javax.swing.JButton buttonRemove;
|
||||
@@ -1782,6 +1976,7 @@ public class DataAcquisition extends Panel {
|
||||
private javax.swing.JButton buttonSpecAbort;
|
||||
private javax.swing.JButton buttonSpecStart;
|
||||
private javax.swing.JCheckBox checkImgAutosave;
|
||||
private javax.swing.JCheckBox checkImgOTFSaveImages;
|
||||
private javax.swing.JCheckBox checkSpecSaveImages;
|
||||
private javax.swing.JCheckBox checkSpecSaveSpectrum;
|
||||
private javax.swing.JCheckBox checkSpecSwitchPol;
|
||||
@@ -1804,6 +1999,8 @@ public class DataAcquisition extends Panel {
|
||||
private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2b;
|
||||
private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2b1;
|
||||
private ch.psi.pshell.swing.DeviceValuePanel dvpOffID2b2;
|
||||
private javax.swing.JLabel jLabel1;
|
||||
private javax.swing.JLabel jLabel2;
|
||||
private javax.swing.JLabel jLabel20;
|
||||
private javax.swing.JLabel jLabel21;
|
||||
private javax.swing.JLabel jLabel23;
|
||||
@@ -1811,9 +2008,11 @@ public class DataAcquisition extends Panel {
|
||||
private javax.swing.JLabel jLabel25;
|
||||
private javax.swing.JLabel jLabel26;
|
||||
private javax.swing.JLabel jLabel29;
|
||||
private javax.swing.JLabel jLabel3;
|
||||
private javax.swing.JLabel jLabel30;
|
||||
private javax.swing.JLabel jLabel31;
|
||||
private javax.swing.JLabel jLabel4;
|
||||
private javax.swing.JLabel jLabel5;
|
||||
private javax.swing.JLabel jLabel9;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JPanel jPanel2;
|
||||
@@ -1821,6 +2020,7 @@ public class DataAcquisition extends Panel {
|
||||
private javax.swing.JPanel jPanel4;
|
||||
private javax.swing.JPanel jPanel5;
|
||||
private javax.swing.JPanel jPanel6;
|
||||
private javax.swing.JPanel jPanel7;
|
||||
private javax.swing.JPanel jPanel9;
|
||||
private javax.swing.JScrollPane jScrollPane1;
|
||||
private javax.swing.JScrollPane jScrollPane2;
|
||||
@@ -1852,11 +2052,15 @@ public class DataAcquisition extends Panel {
|
||||
private javax.swing.JPanel panelNorm;
|
||||
private javax.swing.JPanel panelNorm1;
|
||||
private javax.swing.JPanel panelNorm2;
|
||||
private javax.swing.JPanel panelParameters;
|
||||
private javax.swing.JPanel panelRoi;
|
||||
private javax.swing.JPanel panelSpectrum;
|
||||
private javax.swing.JRadioButton radioAvDetector;
|
||||
private javax.swing.JRadioButton radioAvPshell;
|
||||
private ch.psi.pshell.imaging.Renderer rendererRoi;
|
||||
private javax.swing.JSpinner spinnerDelay;
|
||||
private javax.swing.JSpinner spinnerE1;
|
||||
private javax.swing.JSpinner spinnerE2;
|
||||
private javax.swing.JSpinner spinnerImgAvg;
|
||||
private javax.swing.JSpinner spinnerImgEng1;
|
||||
private javax.swing.JSpinner spinnerImgEng2;
|
||||
@@ -1867,6 +2071,7 @@ public class DataAcquisition extends Panel {
|
||||
private javax.swing.JSpinner spinnerSpecAvg;
|
||||
private javax.swing.JSpinner spinnerSpecExp;
|
||||
private javax.swing.JSpinner spinnerSpecScans;
|
||||
private javax.swing.JSpinner spinnerTime;
|
||||
private javax.swing.JTable tableRegions;
|
||||
private javax.swing.JTable tableRoi;
|
||||
private javax.swing.JButton textClearOutliersMask;
|
||||
|
||||
Reference in New Issue
Block a user