Tilt homing
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import ch.psi.pshell.core.Context;
|
||||
import ch.psi.pshell.imaging.Overlay;
|
||||
import ch.psi.pshell.imaging.Overlays.Rect;
|
||||
import ch.psi.pshell.imaging.Renderer;
|
||||
@@ -115,6 +116,16 @@ public class Imaging extends Panel {
|
||||
}
|
||||
};
|
||||
|
||||
void showArrows(boolean show) throws Exception{
|
||||
if (show){
|
||||
setGlobalVar("IMAGING_RENDERER", renderer);
|
||||
evalAsync("start_arrows(renderer=IMAGING_RENDERER)");
|
||||
} else {
|
||||
setGlobalVar("IMAGING_RENDERER", renderer);
|
||||
evalAsync("stop_arrows(renderer=IMAGING_RENDERER)");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
@@ -125,6 +136,8 @@ public class Imaging extends Panel {
|
||||
jPanel4 = new javax.swing.JPanel();
|
||||
jPanel2 = new javax.swing.JPanel();
|
||||
buttonStartAutoIntensity = new javax.swing.JButton();
|
||||
jLabel12 = new javax.swing.JLabel();
|
||||
spinnerExpositionIntensity = new javax.swing.JSpinner();
|
||||
buttonAbort = new javax.swing.JButton();
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
buttonRoiSet = new javax.swing.JButton();
|
||||
@@ -155,6 +168,12 @@ public class Imaging extends Panel {
|
||||
spinnerStepStig = new javax.swing.JSpinner();
|
||||
jLabel9 = new javax.swing.JLabel();
|
||||
spinnerExposition = new javax.swing.JSpinner();
|
||||
deviceValuePanel1 = new ch.psi.pshell.swing.DeviceValuePanel();
|
||||
jLabel10 = new javax.swing.JLabel();
|
||||
checkArrows = new javax.swing.JCheckBox();
|
||||
jLabel11 = new javax.swing.JLabel();
|
||||
jLabel13 = new javax.swing.JLabel();
|
||||
deviceValuePanel2 = new ch.psi.pshell.swing.DeviceValuePanel();
|
||||
|
||||
renderer.setMode(ch.psi.pshell.imaging.RendererMode.Fit);
|
||||
|
||||
@@ -167,10 +186,25 @@ public class Imaging extends Panel {
|
||||
}
|
||||
});
|
||||
|
||||
jLabel12.setText("Exposure:");
|
||||
|
||||
spinnerExpositionIntensity.setModel(new javax.swing.SpinnerNumberModel(NaNd, 0.01d, NaNd, 1.0d));
|
||||
spinnerExpositionIntensity.addChangeListener(new javax.swing.event.ChangeListener() {
|
||||
public void stateChanged(javax.swing.event.ChangeEvent evt) {
|
||||
spinnerExpositionIntensityStateChanged(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(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(jLabel12)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(spinnerExpositionIntensity, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap())
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonStartAutoIntensity)
|
||||
@@ -179,7 +213,10 @@ public class Imaging extends Panel {
|
||||
jPanel2Layout.setVerticalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel12)
|
||||
.addComponent(spinnerExpositionIntensity, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonStartAutoIntensity)
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
@@ -447,7 +484,7 @@ public class Imaging extends Panel {
|
||||
.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel8)
|
||||
.addComponent(spinnerStepStig, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addContainerGap())
|
||||
.addGap(0, 0, 0))
|
||||
);
|
||||
|
||||
jLabel9.setText("Exposure:");
|
||||
@@ -476,7 +513,7 @@ public class Imaging extends Panel {
|
||||
.addComponent(spinnerRuns, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(spinnerExposition, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addGap(97, 97, 97)
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonStartAutoFocus)
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
|
||||
@@ -508,11 +545,30 @@ public class Imaging extends Panel {
|
||||
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonStartAutoFocus)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
deviceValuePanel1.setDeviceName("temp_readout");
|
||||
|
||||
jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
|
||||
jLabel10.setText("Temperature (K):");
|
||||
|
||||
checkArrows.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
|
||||
checkArrows.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
checkArrowsActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jLabel11.setText("Reference arrows:");
|
||||
|
||||
jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
|
||||
jLabel13.setText("FOV:");
|
||||
|
||||
deviceValuePanel2.setDeviceName("fov");
|
||||
|
||||
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
|
||||
jPanel4.setLayout(jPanel4Layout);
|
||||
jPanel4Layout.setHorizontalGroup(
|
||||
@@ -528,6 +584,18 @@ public class Imaging extends Panel {
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonAbort)
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jLabel10, javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(jLabel13, javax.swing.GroupLayout.Alignment.TRAILING))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(checkArrows)
|
||||
.addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(15, 15, 15))
|
||||
);
|
||||
jPanel4Layout.setVerticalGroup(
|
||||
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
@@ -538,9 +606,21 @@ public class Imaging extends Panel {
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(jLabel10)
|
||||
.addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(jLabel13)
|
||||
.addComponent(deviceValuePanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(checkArrows)
|
||||
.addComponent(jLabel11))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonAbort)
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
@@ -636,7 +716,8 @@ public class Imaging extends Panel {
|
||||
", runs=" + runs +
|
||||
", renderer=IMAGING_RENDERER"+
|
||||
", roi=IMAGING_ROI"+
|
||||
", exposure=" + (Double.isNaN(exposure) ? "None" : exposure) + ")";
|
||||
", exposure=" + (Double.isNaN(exposure) ? "None" : exposure) +
|
||||
")";
|
||||
this.evalAsync(cmd).handle((ret, t) -> {
|
||||
if ((t != null) && (!getContext().isAborted())) {
|
||||
showException((Exception) t);
|
||||
@@ -650,8 +731,11 @@ public class Imaging extends Panel {
|
||||
|
||||
private void buttonStartAutoIntensityActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStartAutoIntensityActionPerformed
|
||||
try {
|
||||
//String cmd = "scan_contrast(girder_x, 0.05, 0.005, average=3)";
|
||||
String cmd = "auto_intensity(roi=IMAGING_ROI)";
|
||||
//String cmd = "scan_contrast(girder_x, 0.05, 0.005, average=3)";
|
||||
Double exposure = (Double) spinnerExpositionIntensity.getValue();
|
||||
String cmd = "auto_intensity(roi=IMAGING_ROI" +
|
||||
", exposure=" + (Double.isNaN(exposure) ? "None" : exposure) +
|
||||
")";
|
||||
this.evalAsync(cmd).handle((ret, t) -> {
|
||||
if ((t != null) && (!getContext().isAborted())) {
|
||||
showException((Exception) t);
|
||||
@@ -707,6 +791,18 @@ public class Imaging extends Panel {
|
||||
// TODO add your handling code here:
|
||||
}//GEN-LAST:event_spinnerExpositionStateChanged
|
||||
|
||||
private void checkArrowsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkArrowsActionPerformed
|
||||
try{
|
||||
showArrows(checkArrows.isSelected());
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_checkArrowsActionPerformed
|
||||
|
||||
private void spinnerExpositionIntensityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerExpositionIntensityStateChanged
|
||||
// TODO add your handling code here:
|
||||
}//GEN-LAST:event_spinnerExpositionIntensityStateChanged
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton buttonAbort;
|
||||
private javax.swing.ButtonGroup buttonGroup1;
|
||||
@@ -714,7 +810,14 @@ public class Imaging extends Panel {
|
||||
private javax.swing.JButton buttonRoiSet;
|
||||
private javax.swing.JButton buttonStartAutoFocus;
|
||||
private javax.swing.JButton buttonStartAutoIntensity;
|
||||
private javax.swing.JCheckBox checkArrows;
|
||||
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel1;
|
||||
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel2;
|
||||
private javax.swing.JLabel jLabel1;
|
||||
private javax.swing.JLabel jLabel10;
|
||||
private javax.swing.JLabel jLabel11;
|
||||
private javax.swing.JLabel jLabel12;
|
||||
private javax.swing.JLabel jLabel13;
|
||||
private javax.swing.JLabel jLabel2;
|
||||
private javax.swing.JLabel jLabel3;
|
||||
private javax.swing.JLabel jLabel4;
|
||||
@@ -736,6 +839,7 @@ public class Imaging extends Panel {
|
||||
private ch.psi.pshell.imaging.Renderer renderer;
|
||||
private javax.swing.JSpinner spinnerAverage;
|
||||
private javax.swing.JSpinner spinnerExposition;
|
||||
private javax.swing.JSpinner spinnerExpositionIntensity;
|
||||
private javax.swing.JSpinner spinnerHeight;
|
||||
private javax.swing.JSpinner spinnerRangeObj;
|
||||
private javax.swing.JSpinner spinnerRangeStig;
|
||||
|
||||
Reference in New Issue
Block a user