560 lines
29 KiB
Java
560 lines
29 KiB
Java
|
|
import ch.psi.pshell.bs.Stream;
|
|
import ch.psi.pshell.bs.StreamValue;
|
|
import ch.psi.pshell.imaging.RendererMode;
|
|
import ch.psi.pshell.plot.Plot;
|
|
import ch.psi.pshell.plot.TimePlotSeries;
|
|
import ch.psi.pshell.ui.CamServerViewer;
|
|
import ch.psi.pshell.ui.Panel;
|
|
import ch.psi.utils.State;
|
|
import ch.psi.utils.Str;
|
|
import java.io.IOException;
|
|
import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public class Pointing extends Panel {
|
|
|
|
TimePlotSeries offx = new TimePlotSeries("offx",1);
|
|
TimePlotSeries offy = new TimePlotSeries("offy",2);
|
|
TimePlotSeries slopex = new TimePlotSeries("slopex",1);
|
|
TimePlotSeries slopey = new TimePlotSeries("slopey",2);
|
|
|
|
public Pointing() {
|
|
initComponents();
|
|
try {
|
|
viewer.initialize(CamServerViewer.SourceSelecionMode.Single);
|
|
viewer.setCameraServerUrl("sf-daqsync-01:8888");
|
|
viewer.setPipelineServerUrl("sf-daqsync-01:8889");
|
|
viewer.setStartupStream(TOOL_TIP_TEXT_KEY);
|
|
viewer.setToolbarVisible(false);
|
|
//viewer.setZoom(2.0);
|
|
viewer.getRenderer().setMode(RendererMode.Fit);
|
|
timePlotOffset.setDurationMillis(1000*60);
|
|
timePlotOffset.addSeries(offx);
|
|
timePlotOffset.addSeries(offy);
|
|
timePlotOffset.setLegendVisible(true);
|
|
timePlotOffset.getAxis(Plot.AxisId.X).setLabel(null);
|
|
timePlotOffset.getAxis(Plot.AxisId.Y).setLabel("Offset x [mm]");
|
|
timePlotOffset.getAxis(Plot.AxisId.Y2).setLabel("Offset y [mm]");
|
|
|
|
timePlotSlope.setDurationMillis(1000*60);
|
|
timePlotSlope.addSeries(slopex);
|
|
timePlotSlope.addSeries(slopey);
|
|
timePlotSlope.setLegendVisible(true);
|
|
timePlotSlope.getAxis(Plot.AxisId.X).setLabel(null);
|
|
timePlotSlope.getAxis(Plot.AxisId.Y).setLabel("Slope x [mm]");
|
|
timePlotSlope.getAxis(Plot.AxisId.Y2).setLabel("Slope y [mm]");
|
|
|
|
} catch (Exception ex) {
|
|
showException(ex);
|
|
}
|
|
|
|
}
|
|
|
|
//Overridable callbacks
|
|
@Override
|
|
public void onInitialize(int runCount) {
|
|
try {
|
|
viewer.setStream("SAROP21-PPRM094_pointing");
|
|
} catch (Exception ex) {
|
|
showException(ex);
|
|
}
|
|
try {
|
|
offx.clear();
|
|
offy.clear();
|
|
slopex.clear();
|
|
slopey.clear();
|
|
} catch (Exception ex) {
|
|
showException(ex);
|
|
}
|
|
this.startTimer(1000, 1000);
|
|
}
|
|
|
|
@Override
|
|
public void onStateChange(State state, State former) {
|
|
buttonStart.setEnabled(state.isReady());
|
|
}
|
|
|
|
@Override
|
|
public void onExecutedFile(String fileName, Object result) {
|
|
}
|
|
|
|
@Override
|
|
protected void onTimer() {
|
|
try{
|
|
StreamValue value = viewer.getStreamDevice().take();
|
|
if (value==null){
|
|
textSaturated.setText("");
|
|
} else {
|
|
Object img = value.getValue("image");
|
|
//Setting a global to be used as a paramemeter in the followinf funciton call
|
|
this.setGlobalVar("plugin_img", img);
|
|
//Running a function in the interpreter IN THE BACKGROUND
|
|
//It is synchronous - should not block!
|
|
Object ret = eval("get_saturated_pixels(plugin_img)", true);
|
|
textSaturated.setText((ret==null) ? "" : ret.toString());
|
|
|
|
//Example reading any variable from the interpreter
|
|
//Object obj = this.getGlobalVar("xxx");
|
|
//System.out.println(Str.toString(obj));
|
|
}
|
|
} catch (Exception ex){
|
|
textSaturated.setText("");
|
|
this.getLogger().severe(ex.getMessage());
|
|
}
|
|
|
|
if (ckOffsetCheck.isSelected()){
|
|
try{
|
|
Object ret = this.run("pointing/check_offset", null, true);
|
|
List offset = (List) ret;
|
|
Double offX = (Double) offset.get(0);
|
|
Double offY = (Double) offset.get(1);
|
|
Double slopeX = (Double) offset.get(2);
|
|
Double slopeY = (Double) offset.get(3);
|
|
textOffX.setText(String.format("%1.3f",offX));
|
|
textOffY.setText(String.format("%1.3f",offY));
|
|
textSlopeX.setText(String.format("%1.3f",slopeX));
|
|
textSlopeY.setText(String.format("%1.3f",slopeY));
|
|
|
|
offx.appendData(offX);
|
|
offy.appendData(offY);
|
|
slopex.appendData(slopeX);
|
|
slopey.appendData(slopeY);
|
|
} catch (Exception ex){
|
|
textOffX.setText("");
|
|
textOffY.setText("");
|
|
textSlopeX.setText("");
|
|
textSlopeY.setText("");
|
|
//showException(ex);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
protected void onLoaded() {
|
|
|
|
}
|
|
|
|
@Override
|
|
protected void onUnloaded() {
|
|
|
|
}
|
|
|
|
//Invoked by 'update()' to update components in the event thread
|
|
@Override
|
|
protected void doUpdate() {
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
|
private void initComponents() {
|
|
|
|
viewer = new ch.psi.pshell.ui.CamServerViewer();
|
|
processVariablePanel1 = new ch.psi.pshell.swing.ProcessVariablePanel();
|
|
jLabel1 = new javax.swing.JLabel();
|
|
textSaturated = new javax.swing.JTextField();
|
|
buttonStart = new javax.swing.JButton();
|
|
buttonRefOffAp = new javax.swing.JButton();
|
|
buttonEnd = new javax.swing.JButton();
|
|
jLabel2 = new javax.swing.JLabel();
|
|
textOffX = new javax.swing.JTextField();
|
|
jLabel3 = new javax.swing.JLabel();
|
|
textOffY = new javax.swing.JTextField();
|
|
ckOffsetCheck = new javax.swing.JCheckBox();
|
|
jLabel4 = new javax.swing.JLabel();
|
|
jLabel5 = new javax.swing.JLabel();
|
|
jLabel6 = new javax.swing.JLabel();
|
|
jLabel7 = new javax.swing.JLabel();
|
|
jLabel8 = new javax.swing.JLabel();
|
|
jLabel9 = new javax.swing.JLabel();
|
|
jLabel10 = new javax.swing.JLabel();
|
|
jLabel11 = new javax.swing.JLabel();
|
|
jLabel12 = new javax.swing.JLabel();
|
|
jLabel13 = new javax.swing.JLabel();
|
|
buttonRefSlopeAp = new javax.swing.JButton();
|
|
jLabel14 = new javax.swing.JLabel();
|
|
timePlotOffset = new ch.psi.pshell.plot.TimePlotJFree();
|
|
jLabel15 = new javax.swing.JLabel();
|
|
textSlopeX = new javax.swing.JTextField();
|
|
jLabel16 = new javax.swing.JLabel();
|
|
textSlopeY = new javax.swing.JTextField();
|
|
timePlotSlope = new ch.psi.pshell.plot.TimePlotJFree();
|
|
jLabel17 = new javax.swing.JLabel();
|
|
jLabel18 = new javax.swing.JLabel();
|
|
jLabel19 = new javax.swing.JLabel();
|
|
jLabel20 = new javax.swing.JLabel();
|
|
|
|
processVariablePanel1.setDeviceName("attenuator");
|
|
processVariablePanel1.setShowLimitButtons(false);
|
|
processVariablePanel1.setShowSlider(false);
|
|
processVariablePanel1.setShowStop(false);
|
|
processVariablePanel1.setStepIncrement(0.01);
|
|
processVariablePanel1.setStepSize(0.01);
|
|
|
|
jLabel1.setText("1.");
|
|
|
|
textSaturated.setEditable(false);
|
|
textSaturated.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
|
|
|
buttonStart.setText("Start");
|
|
buttonStart.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
buttonStartActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
buttonRefOffAp.setText("Reference Offset Aperture");
|
|
buttonRefOffAp.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
buttonRefOffApActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
buttonEnd.setText("End");
|
|
buttonEnd.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
buttonEndActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
jLabel2.setText("Off X:");
|
|
|
|
textOffX.setEditable(false);
|
|
textOffX.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
|
|
|
jLabel3.setText("Off Y:");
|
|
|
|
textOffY.setEditable(false);
|
|
textOffY.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
|
|
|
ckOffsetCheck.setText("Enable Offset Check");
|
|
ckOffsetCheck.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
ckOffsetCheckActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
jLabel4.setText("Saturated Pixels:");
|
|
|
|
jLabel5.setText("2.");
|
|
|
|
jLabel6.setText("3.");
|
|
|
|
jLabel7.setText("5.");
|
|
|
|
jLabel8.setText("7.");
|
|
|
|
jLabel9.setText("Reference the position of the offset apeature (takes around 10 seconds):");
|
|
|
|
jLabel10.setFont(new java.awt.Font("Cantarell", 1, 18)); // NOI18N
|
|
jLabel10.setText("To check the pointing of Aramis, follow the steps:");
|
|
|
|
jLabel11.setText("Measure beam position relative to target position of aperature:");
|
|
|
|
jLabel12.setText("If pixels are saturated, tweak attenuation:");
|
|
|
|
jLabel13.setText("Reference the position of the slope aperture (takes around 10 seconds):");
|
|
|
|
buttonRefSlopeAp.setText("Reference Slope Aperture");
|
|
buttonRefSlopeAp.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
buttonRefSlopeApActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
jLabel14.setText("4.");
|
|
|
|
jLabel15.setText("Slope X:");
|
|
|
|
textSlopeX.setEditable(false);
|
|
textSlopeX.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
|
|
|
jLabel16.setText("Slope Y:");
|
|
|
|
textSlopeY.setEditable(false);
|
|
textSlopeY.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
|
|
|
jLabel17.setText("Current beam position from slope reference (mm):");
|
|
|
|
jLabel18.setText("Current beam position from offset reference (mm):");
|
|
|
|
jLabel19.setText("6.");
|
|
|
|
jLabel20.setText("Align undulators - iterate steps 3 and 4 as beam is aligned - this may take several rounds");
|
|
|
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
|
this.setLayout(layout);
|
|
layout.setHorizontalGroup(
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(viewer, javax.swing.GroupLayout.PREFERRED_SIZE, 471, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGap(99, 99, 99)
|
|
.addComponent(jLabel10))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGap(18, 18, 18)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGap(9, 9, 9)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
|
.addComponent(jLabel5)
|
|
.addComponent(jLabel1))
|
|
.addGap(18, 18, 18)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel4)
|
|
.addGap(35, 35, 35)
|
|
.addComponent(textSaturated, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addComponent(buttonStart)))
|
|
.addComponent(jLabel12)))
|
|
.addComponent(jLabel9)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(jLabel11)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel6)
|
|
.addGap(18, 18, 18)
|
|
.addComponent(buttonRefOffAp, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel14)
|
|
.addGap(18, 18, 18)
|
|
.addComponent(buttonRefSlopeAp))))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(processVariablePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 330, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addComponent(jLabel13)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel7)
|
|
.addGap(18, 18, 18)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(ckOffsetCheck)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel3)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(textOffY))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel2)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(textOffX, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
|
.addGap(18, 18, 18)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel16)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(textSlopeY))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addComponent(jLabel15)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(textSlopeX, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE))))))
|
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING)
|
|
.addComponent(jLabel19))
|
|
.addGap(23, 23, 23)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(jLabel20)
|
|
.addComponent(buttonEnd, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))))))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGap(57, 57, 57)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(timePlotOffset, javax.swing.GroupLayout.PREFERRED_SIZE, 989, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(timePlotSlope, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 989, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addComponent(jLabel17)
|
|
.addComponent(jLabel18))))
|
|
.addContainerGap(19, Short.MAX_VALUE))
|
|
);
|
|
|
|
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonEnd, buttonRefOffAp, buttonStart});
|
|
|
|
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {textOffX, textOffY, textSaturated});
|
|
|
|
layout.setVerticalGroup(
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addComponent(viewer, javax.swing.GroupLayout.PREFERRED_SIZE, 441, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGap(150, 150, 150)
|
|
.addComponent(jLabel17))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGap(17, 17, 17)
|
|
.addComponent(jLabel10)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(buttonStart)
|
|
.addComponent(jLabel1))
|
|
.addGap(18, 18, 18)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(textSaturated, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(jLabel5)
|
|
.addComponent(jLabel4))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addComponent(jLabel12)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(processVariablePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addComponent(jLabel9)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel6)
|
|
.addComponent(buttonRefOffAp))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addComponent(jLabel13)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel14)
|
|
.addComponent(buttonRefSlopeAp))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addComponent(jLabel11)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(jLabel7)
|
|
.addComponent(ckOffsetCheck))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel2)
|
|
.addComponent(textOffX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addGap(3, 3, 3)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel3)
|
|
.addComponent(textOffY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
|
.addGroup(layout.createSequentialGroup()
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel15)
|
|
.addComponent(textSlopeX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addGap(3, 3, 3)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel16)
|
|
.addComponent(textSlopeY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel19)
|
|
.addComponent(jLabel20))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(jLabel8)
|
|
.addComponent(buttonEnd))))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(timePlotSlope, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addComponent(jLabel18)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(timePlotOffset, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addContainerGap(20, Short.MAX_VALUE))
|
|
);
|
|
}// </editor-fold>//GEN-END:initComponents
|
|
|
|
private void buttonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStartActionPerformed
|
|
try{
|
|
runAsync("pointing/start").handle((ret,ex)->{
|
|
return ret;
|
|
});
|
|
} catch (Exception ex){
|
|
showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonStartActionPerformed
|
|
|
|
private void buttonRefOffApActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRefOffApActionPerformed
|
|
try{
|
|
runAsync("pointing/reference_offset").handle((ret,ex)->{
|
|
if (ex!=null){
|
|
showException((Exception)ex);
|
|
} else {
|
|
showMessage("Reference offset aperture", Str.toString(ret));
|
|
}
|
|
return ret;
|
|
});
|
|
} catch (Exception ex){
|
|
showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonRefOffApActionPerformed
|
|
|
|
private void buttonEndActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonEndActionPerformed
|
|
try{
|
|
runAsync("pointing/end").handle((ret,ex)->{
|
|
return ret;
|
|
});
|
|
} catch (Exception ex){
|
|
showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonEndActionPerformed
|
|
|
|
private void buttonRefSlopeApActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRefSlopeApActionPerformed
|
|
try{
|
|
runAsync("pointing/reference_slope").handle((ret,ex)->{
|
|
if (ex!=null){
|
|
showException((Exception)ex);
|
|
} else {
|
|
showMessage("Reference slope aperture", Str.toString(ret));
|
|
}
|
|
return ret;
|
|
});
|
|
} catch (Exception ex){
|
|
showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonRefSlopeApActionPerformed
|
|
|
|
private void ckOffsetCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ckOffsetCheckActionPerformed
|
|
// TODO add your handling code here:
|
|
}//GEN-LAST:event_ckOffsetCheckActionPerformed
|
|
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
private javax.swing.JButton buttonEnd;
|
|
private javax.swing.JButton buttonRefOffAp;
|
|
private javax.swing.JButton buttonRefSlopeAp;
|
|
private javax.swing.JButton buttonStart;
|
|
private javax.swing.JCheckBox ckOffsetCheck;
|
|
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 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 jLabel19;
|
|
private javax.swing.JLabel jLabel2;
|
|
private javax.swing.JLabel jLabel20;
|
|
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 ch.psi.pshell.swing.ProcessVariablePanel processVariablePanel1;
|
|
private javax.swing.JTextField textOffX;
|
|
private javax.swing.JTextField textOffY;
|
|
private javax.swing.JTextField textSaturated;
|
|
private javax.swing.JTextField textSlopeX;
|
|
private javax.swing.JTextField textSlopeY;
|
|
private ch.psi.pshell.plot.TimePlotJFree timePlotOffset;
|
|
private ch.psi.pshell.plot.TimePlotJFree timePlotSlope;
|
|
private ch.psi.pshell.ui.CamServerViewer viewer;
|
|
// End of variables declaration//GEN-END:variables
|
|
}
|