diff --git a/config/devices.properties b/config/devices.properties index 9dfca2a..7e60bec 100755 --- a/config/devices.properties +++ b/config/devices.properties @@ -33,12 +33,12 @@ fampltms=ch.psi.pshell.imaging.RegisterMatrixSource|fampltm||-100| #rf_phase=ch.psi.pshell.epics.ChannelDouble|MINSB03-RSYS:SET-VSUM-PHASE|||true #rf_phase_rb=ch.psi.pshell.epics.ChannelDouble|MINSB03-RSYS:GET-VSUM-PHASE|Read||true #rf_ampl_rb=ch.psi.pshell.epics.ChannelDouble|MINSB03-RSYS:GET-VSUM-AMPLT|Read||true -image=ch.psi.pshell.imaging.FileSource|/afs/psi.ch/intranet/SF/Applications/config/pshell_op/context/beam.jpg||| +#image=ch.psi.pshell.imaging.FileSource|/afs/psi.ch/intranet/SF/Applications/config/pshell_op/context/beam.jpg||| #cam=ch.psi.pshell.epics.ArraySource|SINEG01-DSCR350:FPICTURE Int16 5529600||-200| #matrix=ch.psi.pshell.epics.GenericMatrix|SINEG01-DSCR350:FPICTURE 2560 2160||| -cam1=ch.psi.pshell.epics.PsiCamera|SINEG01-DSCR350||-200|false -cam2=ch.psi.pshell.epics.PsiCamera|SLG-LCAM-C041||-200| -cam3=SfCamera|SLG-LCAM-C041||-200| +#cam1=ch.psi.pshell.epics.PsiCamera|SINEG01-DSCR350||-200|false +#cam2=ch.psi.pshell.epics.PsiCamera|SLG-LCAM-C041||-200| +#cam3=SfCamera|SLG-LCAM-C041||-200| gsx=ch.psi.pshell.epics.Positioner|SINEG01-MSOL130:X_SP SINEG01-MSOL130:X|||true gsy=ch.psi.pshell.epics.Positioner|SINEG01-MSOL130:Y_SP SINEG01-MSOL130:Y|||true gsrx=ch.psi.pshell.epics.Positioner|SINEG01-MSOL130:ROT_X_SP SINEG01-MSOL130:ROT_X|||true diff --git a/devices/Beam phase.properties b/devices/Beam phase.properties index 018d7e0..ed270b2 100644 --- a/devices/Beam phase.properties +++ b/devices/Beam phase.properties @@ -1,9 +1,9 @@ -#Mon Nov 27 08:47:47 CET 2017 +#Mon Dec 04 09:50:29 CET 2017 maxValue=360.0 minValue=-360.0 offset=0.0 precision=3 resolution=0.1 -rotation=true +rotation=false scale=1.0 unit=deg diff --git a/devices/CurrentCamera.properties b/devices/CurrentCamera.properties index f6e71dc..cf1503b 100644 --- a/devices/CurrentCamera.properties +++ b/devices/CurrentCamera.properties @@ -1,19 +1,19 @@ -#Mon Nov 27 10:35:37 CET 2017 +#Mon Dec 04 19:58:20 CET 2017 \u0000\u0000\u0000\u0000= \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000= \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000= colormap=Flame -colormapAutomatic=true -colormapMax=14000.0 +colormapAutomatic=false +colormapMax=3909.451 colormapMin=0.0 flipHorizontally=false flipVertically=false grayscale=false -imageHeight=1024 -imageWidth=1280 +imageHeight=494 +imageWidth=659 invert=false -regionStartX=1 -regionStartY=1 +regionStartX=0 +regionStartY=0 rescaleFactor=1.0 rescaleOffset=0.0 roiHeight=-1 @@ -24,9 +24,9 @@ rotation=0.0 rotationCrop=false scale=1.0 serverURL=localhost\:10000 -spatialCalOffsetX=-50.03909304143862 -spatialCalOffsetY=-50.048875855327466 -spatialCalScaleX=-1.0 -spatialCalScaleY=-1.0 +spatialCalOffsetX=-385.58509787098683 +spatialCalOffsetY=-249.50507086514602 +spatialCalScaleX=-14.362775530133929 +spatialCalScaleY=-11.5606939536321 spatialCalUnits= transpose=false diff --git a/devices/cam_server.properties b/devices/cam_server.properties index 34a9b02..7760ea4 100644 --- a/devices/cam_server.properties +++ b/devices/cam_server.properties @@ -1,4 +1,4 @@ -#Thu Nov 23 17:13:12 CET 2017 +#Mon Dec 04 09:40:04 CET 2017 colormap=Flame colormapAutomatic=true colormapMax=NaN diff --git a/devices/pipeline_server.properties b/devices/pipeline_server.properties index 6c78e50..542921f 100644 --- a/devices/pipeline_server.properties +++ b/devices/pipeline_server.properties @@ -1,4 +1,4 @@ -#Fri Nov 24 16:13:49 CET 2017 +#Mon Dec 04 09:46:10 CET 2017 colormap=Flame colormapAutomatic=true colormapMax=NaN @@ -16,9 +16,9 @@ roiY=0 rotation=0.0 rotationCrop=false scale=1.0 -spatialCalOffsetX=-677.5082585941401 -spatialCalOffsetY=-627.4707187276099 -spatialCalScaleX=-8.737659534534535 -spatialCalScaleY=-8.834897886167417 +spatialCalOffsetX=-391.48331413428485 +spatialCalOffsetY=-387.5330483081544 +spatialCalScaleX=-26.714159311263906 +spatialCalScaleY=-27.10027117768595 spatialCalUnits=mm transpose=false diff --git a/plugins/GunEnergyScan.form b/plugins/GunEnergyScan.form index 02ad08d..b0e8849 100644 --- a/plugins/GunEnergyScan.form +++ b/plugins/GunEnergyScan.form @@ -24,21 +24,22 @@ - - - - - - - + + + + + + + + - + @@ -48,12 +49,14 @@ - + - + + + @@ -241,7 +244,7 @@ - + @@ -327,5 +330,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/GunEnergyScan.java b/plugins/GunEnergyScan.java index 3a72208..541c072 100644 --- a/plugins/GunEnergyScan.java +++ b/plugins/GunEnergyScan.java @@ -28,14 +28,16 @@ public class GunEnergyScan extends Panel { @Override public void onStateChange(State state, State former) { buttonAbort.setEnabled(state.isProcessing()); - buttonStart.setEnabled(state == State.Ready); - spinnerStart.setEnabled(buttonStart.isEnabled()); - spinnerStop.setEnabled(buttonStart.isEnabled()); - spinnerStep.setEnabled(buttonStart.isEnabled()); - spinnerSamples.setEnabled(buttonStart.isEnabled()); - spinnerLatency.setEnabled(buttonStart.isEnabled()); - spinnerDispersion.setEnabled(buttonStart.isEnabled()); - spinnerEnergy.setEnabled(buttonStart.isEnabled()); + boolean enabled = (state == State.Ready); + buttonStart.setEnabled(enabled); + spinnerStart.setEnabled(enabled); + spinnerStop.setEnabled(enabled); + spinnerStep.setEnabled(enabled); + spinnerSamples.setEnabled(enabled); + spinnerLatency.setEnabled(enabled); + spinnerDispersion.setEnabled(enabled); + spinnerEnergy.setEnabled(enabled); + buttonPhaseSet.setEnabled(enabled && !buttonPhaseSet.getText().isEmpty()); } @Override @@ -70,6 +72,10 @@ public class GunEnergyScan extends Panel { plot = new ch.psi.pshell.plot.LinePlotJFree(); buttonStart = new javax.swing.JButton(); buttonAbort = new javax.swing.JButton(); + jPanel1 = new javax.swing.JPanel(); + jLabel1 = new javax.swing.JLabel(); + buttonPhaseSet = new javax.swing.JButton(); + textRefPhase = new javax.swing.JTextField(); setPreferredSize(new java.awt.Dimension(737, 445)); @@ -173,7 +179,7 @@ public class GunEnergyScan extends Panel { panelBeamParsLayout.setHorizontalGroup( panelBeamParsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelBeamParsLayout.createSequentialGroup() - .addContainerGap(19, Short.MAX_VALUE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(panelBeamParsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(labelDispersion, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(labelEnergy)) @@ -213,6 +219,47 @@ public class GunEnergyScan extends Panel { } }); + jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Set Phase")); + + jLabel1.setText("Ref phase:"); + + buttonPhaseSet.setText("Set"); + buttonPhaseSet.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonPhaseSetActionPerformed(evt); + } + }); + + textRefPhase.setEditable(false); + textRefPhase.setHorizontalAlignment(javax.swing.JTextField.CENTER); + + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonPhaseSet) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(textRefPhase, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + jPanel1Layout.setVerticalGroup( + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel1) + .addComponent(textRefPhase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(buttonPhaseSet) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -220,17 +267,18 @@ public class GunEnergyScan extends Panel { .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(panelScanPars, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(panelBeamPars, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(buttonStart) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonAbort) - .addGap(15, 15, 15))) - .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, 527, Short.MAX_VALUE) + .addGap(15, 15, 15)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(panelScanPars, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(panelBeamPars, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))) + .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, 528, Short.MAX_VALUE) .addContainerGap()) ); layout.setVerticalGroup( @@ -238,12 +286,14 @@ public class GunEnergyScan extends Panel { .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE) + .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addComponent(panelScanPars, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(panelBeamPars, 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) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonStart) .addComponent(buttonAbort)))) @@ -254,6 +304,7 @@ public class GunEnergyScan extends Panel { }// //GEN-END:initComponents private void buttonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStartActionPerformed + textRefPhase.setText(""); ArrayList parameters = new ArrayList(); parameters.add(spinnerStart.getValue()); parameters.add(spinnerStop.getValue()); @@ -262,13 +313,19 @@ public class GunEnergyScan extends Panel { parameters.add(spinnerLatency.getValue()); parameters.add((Double) spinnerDispersion.getValue()); parameters.add((Double) spinnerEnergy.getValue()); - parameters.add(plot); + parameters.add(plot); try { runAsync("RFscan/GunEnergyScan", parameters).handle((ret, ex) -> { if (ex != null) { getLogger().info("Exception executing scan: " + ex); showException((Exception) ex); } else { + try{ + double phase = ((Number)ret).doubleValue(); + textRefPhase.setText(String.format("%1.2f",phase)); + } catch (Exception e) { + showException(e); + } } return ret; }); @@ -285,9 +342,38 @@ public class GunEnergyScan extends Panel { } }//GEN-LAST:event_buttonAbortActionPerformed + private void buttonPhaseSetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPhaseSetActionPerformed + try { + if (!textRefPhase.getText().isEmpty()){ + Double phase = Double.parseDouble(textRefPhase.getText()); + + ArrayList parameters = new ArrayList(); + parameters.add(phase); + parameters.add(plot); + try { + //How to get a callback on the end of execution + runAsync("RFscan/GunEnergyScanSet", parameters).handle((ret, ex) -> { + if (ex != null) { + getLogger().info("Exception executing scan: " + ex); + showException((Exception) ex); + } + return ret; + }); + } catch (Exception ex) { + showException(ex); + } + } + } catch (Exception ex) { + showException(ex); + } + }//GEN-LAST:event_buttonPhaseSetActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonAbort; + private javax.swing.JButton buttonPhaseSet; private javax.swing.JButton buttonStart; + private javax.swing.JLabel jLabel1; + private javax.swing.JPanel jPanel1; private javax.swing.JLabel labelDispersion; private javax.swing.JLabel labelEnergy; private javax.swing.JLabel labelLatency; @@ -305,5 +391,6 @@ public class GunEnergyScan extends Panel { private javax.swing.JSpinner spinnerStart; private javax.swing.JSpinner spinnerStep; private javax.swing.JSpinner spinnerStop; + private javax.swing.JTextField textRefPhase; // End of variables declaration//GEN-END:variables } diff --git a/plugins/ScreenPanel.java b/plugins/ScreenPanel.java index 82c1048..ad6330e 100644 --- a/plugins/ScreenPanel.java +++ b/plugins/ScreenPanel.java @@ -1768,7 +1768,15 @@ public class ScreenPanel extends Panel { dm.setAttribute(pathImage, key + " " + k, (v == null) ? "" : v); } } else { - dm.setAttribute(pathImage, key, (pars.get(key) == null) ? "" : pars.get(key)); + Object value = pars.get(key); + if (value == null){ + value = ""; + } else if (value instanceof List){ + Class cls = (((List) value).size()>0) ? ((List) value).get(0).getClass() : double.class; + value = Convert.toPrimitiveArray(value, cls); + //value = Convert.toDouble(value); + } + dm.setAttribute(pathImage, key, value); } } } else if (val.getClass().isArray()) { diff --git a/plugins/WireScan.form b/plugins/WireScan.form index f9e1d78..fe232cb 100644 --- a/plugins/WireScan.form +++ b/plugins/WireScan.form @@ -16,120 +16,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -138,118 +30,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -258,304 +39,591 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/WireScan.java b/plugins/WireScan.java index f6ac679..7f64c04 100644 --- a/plugins/WireScan.java +++ b/plugins/WireScan.java @@ -7,6 +7,8 @@ import ch.psi.pshell.device.DeviceAdapter; import ch.psi.pshell.epics.ChannelDouble; import ch.psi.pshell.epics.ChannelInteger; import ch.psi.pshell.epics.Epics; +import ch.psi.pshell.swing.DevicePanel; +import ch.psi.pshell.swing.DeviceValueChart; import ch.psi.pshell.ui.App; import ch.psi.pshell.ui.Panel; import ch.psi.pshell.ui.Plugin; @@ -14,12 +16,18 @@ import ch.psi.utils.Convert; import ch.psi.utils.State; import ch.psi.utils.swing.SwingUtils; import java.awt.Color; +import java.awt.Dimension; +import java.awt.Window; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; +import javax.swing.JDialog; +import javax.swing.JFrame; /** * @@ -141,6 +149,7 @@ public class WireScan extends Panel { buttonPark.setEnabled((state==State.Ready) && validWireScan && homed); buttonParkAll.setEnabled(state==State.Ready); buttonScan.setEnabled((state==State.Ready) && validWireScan && homed); + checkSaveRaw.setEnabled(state==State.Ready); buttonAbort.setEnabled(state==State.Busy); comboScanType.setEnabled(validWireScan); for (JComboBox cb : bpmCombos){ @@ -158,8 +167,19 @@ public class WireScan extends Panel { spinnerEndX.setEnabled(spinnerStartX.isEnabled()); spinnerStartY.setEnabled(validWireScan && isY()); spinnerEndY.setEnabled(spinnerStartY.isEnabled()); + updateRawButtons(); } + void updateRawButtons(){ + boolean validWireScan = isValidScanner(); + Object sel = comboBlm1.getSelectedItem(); + buttonRaw1.setEnabled(validWireScan && (sel!=null) && (!sel.toString().isEmpty())); + sel = comboBlm2.getSelectedItem(); + buttonRaw2.setEnabled(validWireScan && (sel!=null) && (!sel.toString().isEmpty())); + sel = comboBlm3.getSelectedItem(); + buttonRaw3.setEnabled(validWireScan && (sel!=null) && (!sel.toString().isEmpty())); + } + @Override public void onExecutedFile(String fileName, Object result) { } @@ -270,101 +290,115 @@ public class WireScan extends Panel { labelPosY.setText(""); } + + void showBlmRawData(String blm){ + try { + if ((blm==null) || (blm.isEmpty())){ + return; + } + String channel = blm + ":LOSS_SIGNAL_RAW"; + Device dev = Epics.newChannelDevice(channel, channel, null); + //dev.setPolling(1000); + dev.setMonitored(true); + dev.initialize(); + DeviceValueChart chart = new DeviceValueChart(); + JDialog dlg = SwingUtils.showDialog((Window)this.getTopLevel(), blm, new Dimension(600,400), chart); + chart = null; + chart.setDevice(dev); + dlg.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + try { + dev.close(); + } catch (Exception ex) { + Logger.getLogger(WireScan.class.getName()).log(Level.WARNING, null, ex); + } + } + }); + } catch (Exception ex) { + showException(ex); + } + } + @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { - comboWireScanner = new javax.swing.JComboBox(); - jLabel2 = new javax.swing.JLabel(); - comboScanType = new javax.swing.JComboBox(); - jLabel3 = new javax.swing.JLabel(); - jLabel4 = new javax.swing.JLabel(); - jLabel5 = new javax.swing.JLabel(); - comboBpm3 = new javax.swing.JComboBox(); - 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(); - buttonScan = new javax.swing.JButton(); - buttonAbort = new javax.swing.JButton(); - buttonMoveStart = new javax.swing.JButton(); - spinnerStartX = new javax.swing.JSpinner(); - spinnerEndX = new javax.swing.JSpinner(); - spinnerVel = new javax.swing.JSpinner(); - spinnerCycles = new javax.swing.JSpinner(); - panelStatus = new ch.psi.pshell.swing.DeviceValuePanel(); plot = new ch.psi.pshell.plot.LinePlotJFree(); - comboBpm1 = new javax.swing.JComboBox(); - comboBpm2 = new javax.swing.JComboBox(); - buttonPark = new javax.swing.JButton(); - jLabel11 = new javax.swing.JLabel(); - panelPosition = new ch.psi.pshell.swing.DeviceValuePanel(); - buttonMotorPanel = new javax.swing.JButton(); - buttonScannerPanel = new javax.swing.JButton(); - jLabel12 = new javax.swing.JLabel(); - ledHomed = new ch.psi.pshell.swing.Led(); - buttonHoming = new javax.swing.JButton(); - jLabel13 = new javax.swing.JLabel(); - jLabel14 = new javax.swing.JLabel(); - labelPosX = new javax.swing.JLabel(); + panelLeft = new javax.swing.JPanel(); + buttonRaw1 = new javax.swing.JButton(); labelPosY = new javax.swing.JLabel(); - labelStartY = new javax.swing.JLabel(); - spinnerStartY = new javax.swing.JSpinner(); - labelEndY = new javax.swing.JLabel(); - spinnerEndY = new javax.swing.JSpinner(); - jLabel15 = new javax.swing.JLabel(); + jLabel14 = new javax.swing.JLabel(); + jLabel8 = new javax.swing.JLabel(); + buttonScan = new javax.swing.JButton(); + ledHomed = new ch.psi.pshell.swing.Led(); + comboScanType = new javax.swing.JComboBox(); + spinnerCycles = new javax.swing.JSpinner(); panelPosition1 = new ch.psi.pshell.swing.DeviceValuePanel(); - jLabel16 = new javax.swing.JLabel(); - comboBlm3 = new javax.swing.JComboBox(); - jLabel17 = new javax.swing.JLabel(); - comboBlm2 = new javax.swing.JComboBox(); + labelEndY = new javax.swing.JLabel(); comboBlm1 = new javax.swing.JComboBox(); - jLabel18 = new javax.swing.JLabel(); - jLabel19 = new javax.swing.JLabel(); - spinnerBackground = new javax.swing.JSpinner(); - jLabel20 = new javax.swing.JLabel(); + jLabel7 = new javax.swing.JLabel(); + jLabel9 = new javax.swing.JLabel(); + buttonMoveStart = new javax.swing.JButton(); + jLabel4 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); + spinnerStartY = new javax.swing.JSpinner(); buttonParkAll = new javax.swing.JButton(); + panelStatus = new ch.psi.pshell.swing.DeviceValuePanel(); + buttonPark = new javax.swing.JButton(); + panelPosition = new ch.psi.pshell.swing.DeviceValuePanel(); + comboBlm2 = new javax.swing.JComboBox(); + comboBpm3 = new javax.swing.JComboBox(); + spinnerVel = new javax.swing.JSpinner(); + buttonRaw2 = new javax.swing.JButton(); + comboBlm3 = new javax.swing.JComboBox(); + comboWireScanner = new javax.swing.JComboBox(); + jLabel15 = new javax.swing.JLabel(); + jLabel19 = new javax.swing.JLabel(); + checkSaveRaw = new javax.swing.JCheckBox(); + jLabel20 = new javax.swing.JLabel(); + jLabel12 = new javax.swing.JLabel(); + jLabel5 = new javax.swing.JLabel(); + spinnerEndY = new javax.swing.JSpinner(); + jLabel16 = new javax.swing.JLabel(); + jLabel17 = new javax.swing.JLabel(); + spinnerStartX = new javax.swing.JSpinner(); + jLabel13 = new javax.swing.JLabel(); + jLabel11 = new javax.swing.JLabel(); + buttonMotorPanel = new javax.swing.JButton(); + labelPosX = new javax.swing.JLabel(); + spinnerBackground = new javax.swing.JSpinner(); + buttonHoming = new javax.swing.JButton(); + jLabel10 = new javax.swing.JLabel(); + comboBpm1 = new javax.swing.JComboBox(); + jLabel3 = new javax.swing.JLabel(); + comboBpm2 = new javax.swing.JComboBox(); + buttonAbort = new javax.swing.JButton(); + jLabel6 = new javax.swing.JLabel(); + labelStartY = new javax.swing.JLabel(); + spinnerEndX = new javax.swing.JSpinner(); + buttonRaw3 = new javax.swing.JButton(); + jLabel18 = new javax.swing.JLabel(); + buttonScannerPanel = new javax.swing.JButton(); - comboWireScanner.addActionListener(new java.awt.event.ActionListener() { + plot.setTitle(""); + + buttonRaw1.setText("Raw Signal"); + buttonRaw1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - comboWireScannerActionPerformed(evt); + buttonRaw1ActionPerformed(evt); } }); - jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel2.setText("Scan Type:"); + labelPosY.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + labelPosY.setBorder(javax.swing.BorderFactory.createTitledBorder("")); - comboScanType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - comboScanTypeActionPerformed(evt); - } - }); - - jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel3.setText("BPM 1:"); - - jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel4.setText("BPM 2:"); - - jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel5.setText("BPM 3:"); - - jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel6.setText("Start X (µm):"); - - jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel7.setText("End X (µm):"); + jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel14.setText("Pos y (µm):"); jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel8.setText("Vel (µm/s):"); - jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel9.setText("Cycles:"); - - jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel10.setText("Scan status:"); - buttonScan.setText("Scan"); buttonScan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -372,13 +406,32 @@ public class WireScan extends Panel { } }); - buttonAbort.setText("Abort"); - buttonAbort.addActionListener(new java.awt.event.ActionListener() { + ledHomed.setForeground(java.awt.Color.darkGray); + ledHomed.setLedSize(18); + + comboScanType.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonAbortActionPerformed(evt); + comboScanTypeActionPerformed(evt); } }); + spinnerCycles.setModel(new javax.swing.SpinnerNumberModel(1, 1, 100, 1)); + + labelEndY.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + labelEndY.setText("End Y (µm):"); + + comboBlm1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + comboBlm1ActionPerformed(evt); + } + }); + + jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel7.setText("End X (µm):"); + + jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel9.setText("Cycles:"); + buttonMoveStart.setText("Go to Start"); buttonMoveStart.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -386,15 +439,20 @@ public class WireScan extends Panel { } }); - spinnerStartX.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); + jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel4.setText("BPM 2:"); - spinnerEndX.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); + jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel2.setText("Scan Type:"); - spinnerVel.setModel(new javax.swing.SpinnerNumberModel(200.0d, 1.0d, 10000.0d, 1.0d)); + spinnerStartY.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); - spinnerCycles.setModel(new javax.swing.SpinnerNumberModel(1, 1, 100, 1)); - - plot.setTitle(""); + buttonParkAll.setText("ParkAll"); + buttonParkAll.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonParkAllActionPerformed(evt); + } + }); buttonPark.setText("Garage"); buttonPark.addActionListener(new java.awt.event.ActionListener() { @@ -403,6 +461,62 @@ public class WireScan extends Panel { } }); + comboBlm2.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + comboBlm2ActionPerformed(evt); + } + }); + + spinnerVel.setModel(new javax.swing.SpinnerNumberModel(200.0d, 1.0d, 10000.0d, 1.0d)); + + buttonRaw2.setText("Raw Signal"); + buttonRaw2.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonRaw2ActionPerformed(evt); + } + }); + + comboBlm3.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + comboBlm3ActionPerformed(evt); + } + }); + + comboWireScanner.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + comboWireScannerActionPerformed(evt); + } + }); + + jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel15.setText("Trigger(Hz):"); + + jLabel19.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel19.setText("Background:"); + + checkSaveRaw.setText("Save Raw Signal"); + + jLabel20.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel20.setText("Wire Scanner:"); + + jLabel12.setText("Homed:"); + + jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel5.setText("BPM 3:"); + + spinnerEndY.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); + + jLabel16.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel16.setText("BLM 3:"); + + jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel17.setText("BLM 2:"); + + spinnerStartX.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); + + jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel13.setText("Pos x (µm):"); + jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel11.setText("Pos mot (µm):"); @@ -413,17 +527,10 @@ public class WireScan extends Panel { } }); - buttonScannerPanel.setText("Scanner Panel"); - buttonScannerPanel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonScannerPanelActionPerformed(evt); - } - }); + labelPosX.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + labelPosX.setBorder(javax.swing.BorderFactory.createTitledBorder("")); - jLabel12.setText("Homed:"); - - ledHomed.setForeground(java.awt.Color.darkGray); - ledHomed.setLedSize(18); + spinnerBackground.setModel(new javax.swing.SpinnerNumberModel(50, 0, 1000, 1)); buttonHoming.setText("Homing"); buttonHoming.addActionListener(new java.awt.event.ActionListener() { @@ -432,272 +539,283 @@ public class WireScan extends Panel { } }); - jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel13.setText("Pos x (µm):"); + jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel10.setText("Scan status:"); - jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel14.setText("Pos y (µm):"); + jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel3.setText("BPM 1:"); - labelPosX.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - labelPosX.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + buttonAbort.setText("Abort"); + buttonAbort.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonAbortActionPerformed(evt); + } + }); - labelPosY.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - labelPosY.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); + jLabel6.setText("Start X (µm):"); labelStartY.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); labelStartY.setText("Start Y (µm):"); - spinnerStartY.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); + spinnerEndX.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); - labelEndY.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - labelEndY.setText("End Y (µm):"); - - spinnerEndY.setModel(new javax.swing.SpinnerNumberModel(1000.0d, -10000.0d, 10000.0d, 1.0d)); - - jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel15.setText("Trigger(Hz):"); - - jLabel16.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel16.setText("BLM 3:"); - - jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel17.setText("BLM 2:"); + buttonRaw3.setText("Raw Signal"); + buttonRaw3.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonRaw3ActionPerformed(evt); + } + }); jLabel18.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel18.setText("BLM 1:"); - jLabel19.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel19.setText("Background:"); - - spinnerBackground.setModel(new javax.swing.SpinnerNumberModel(50, 0, 1000, 1)); - - jLabel20.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); - jLabel20.setText("Wire Scanner:"); - - buttonParkAll.setText("ParkAll"); - buttonParkAll.addActionListener(new java.awt.event.ActionListener() { + buttonScannerPanel.setText("Scanner Panel"); + buttonScannerPanel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonParkAllActionPerformed(evt); + buttonScannerPanelActionPerformed(evt); } }); + javax.swing.GroupLayout panelLeftLayout = new javax.swing.GroupLayout(panelLeft); + panelLeft.setLayout(panelLeftLayout); + panelLeftLayout.setHorizontalGroup( + panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelLeftLayout.createSequentialGroup() + .addGap(0, 0, 0) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelLeftLayout.createSequentialGroup() + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel15, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel14, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel13, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel16, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel17, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel18, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(labelStartY, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel20, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelLeftLayout.createSequentialGroup() + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(panelPosition, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(labelPosX, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(labelPosY, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(panelLeftLayout.createSequentialGroup() + .addComponent(panelPosition1, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, Short.MAX_VALUE) + .addComponent(jLabel12) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(ledHomed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(18, 18, Short.MAX_VALUE) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(buttonHoming, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonScannerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonMotorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(comboWireScanner, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(comboScanType, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(comboBpm3, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(comboBpm1, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(comboBpm2, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(panelLeftLayout.createSequentialGroup() + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(spinnerStartY) + .addComponent(panelStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 324, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 16, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelLeftLayout.createSequentialGroup() + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(panelLeftLayout.createSequentialGroup() + .addComponent(spinnerVel, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel9)) + .addGroup(panelLeftLayout.createSequentialGroup() + .addComponent(spinnerStartX) + .addGap(18, 18, Short.MAX_VALUE) + .addComponent(jLabel7)) + .addGroup(panelLeftLayout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel19) + .addComponent(labelEndY)))) + .addGap(8, 8, 8) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(spinnerEndX, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(spinnerEndY, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(spinnerBackground, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spinnerCycles, javax.swing.GroupLayout.Alignment.TRAILING))) + .addGroup(panelLeftLayout.createSequentialGroup() + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(comboBlm3, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(comboBlm2, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(comboBlm1, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(buttonRaw1, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(buttonRaw2, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(buttonRaw3, javax.swing.GroupLayout.Alignment.TRAILING))))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelLeftLayout.createSequentialGroup() + .addComponent(buttonPark) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonParkAll) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonMoveStart)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelLeftLayout.createSequentialGroup() + .addComponent(buttonScan) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(checkSaveRaw) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonAbort))) + .addGap(0, 0, 0)) + ); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel10, jLabel11, jLabel13, jLabel14, jLabel15, jLabel16, jLabel17, jLabel18, jLabel2, jLabel20, jLabel3, jLabel4, jLabel5, jLabel6, jLabel7, jLabel8, jLabel9, labelEndY, labelStartY}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonAbort, buttonMoveStart, buttonPark, buttonParkAll, buttonScan}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonMotorPanel, buttonScannerPanel}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {labelPosX, labelPosY, panelPosition, panelPosition1}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerBackground, spinnerCycles, spinnerEndX, spinnerEndY}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerStartX, spinnerStartY, spinnerVel}); + + panelLeftLayout.setVerticalGroup( + panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelLeftLayout.createSequentialGroup() + .addGap(0, 0, 0) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(comboWireScanner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel20)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(comboScanType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel2)) + .addGap(18, 18, 18) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel8) + .addComponent(spinnerCycles, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel9) + .addComponent(spinnerVel, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(spinnerBackground, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel19)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel6) + .addComponent(jLabel7) + .addComponent(spinnerEndX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spinnerStartX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(spinnerStartY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(labelEndY) + .addComponent(spinnerEndY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(labelStartY)) + .addGap(18, 18, 18) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel3) + .addComponent(comboBpm1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(comboBpm2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel4)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(comboBpm3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel5)) + .addGap(18, 18, 18) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel18) + .addComponent(comboBlm1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(buttonRaw1)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(comboBlm2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel17) + .addComponent(buttonRaw2)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(comboBlm3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel16) + .addComponent(buttonRaw3)) + .addGap(18, 18, Short.MAX_VALUE) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel11) + .addComponent(panelPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(buttonScannerPanel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel13) + .addComponent(labelPosX) + .addComponent(buttonMotorPanel)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel14) + .addComponent(labelPosY)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel15) + .addComponent(panelPosition1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel12) + .addComponent(ledHomed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(buttonHoming)) + .addGap(18, 18, Short.MAX_VALUE) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) + .addComponent(jLabel10) + .addComponent(panelStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, Short.MAX_VALUE) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(buttonPark) + .addComponent(buttonMoveStart) + .addComponent(buttonParkAll)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(panelLeftLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(buttonAbort) + .addComponent(buttonScan) + .addComponent(checkSaveRaw)) + .addGap(0, 0, 0)) + ); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {labelPosX, labelPosY, panelPosition}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {spinnerStartX, spinnerStartY, spinnerVel}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {spinnerCycles, spinnerEndX, spinnerEndY}); + + panelLeftLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {panelPosition1, panelStatus}); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(buttonScan) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonAbort)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel15) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel11) - .addComponent(jLabel13) - .addComponent(jLabel14))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(panelPosition, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelPosX, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelPosY, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(layout.createSequentialGroup() - .addComponent(panelPosition1, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, Short.MAX_VALUE) - .addComponent(jLabel12) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(ledHomed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGap(18, 18, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(buttonHoming, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonScannerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonMotorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(labelStartY, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel18, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel16, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel17, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel20, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(comboWireScanner, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(comboScanType, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(comboBpm3, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(comboBpm1, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(comboBpm2, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(comboBlm3, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(comboBlm2, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(comboBlm1, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(spinnerStartY) - .addComponent(panelStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 324, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(0, 0, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(layout.createSequentialGroup() - .addComponent(spinnerVel, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel9)) - .addGroup(layout.createSequentialGroup() - .addComponent(spinnerStartX) - .addGap(18, 18, Short.MAX_VALUE) - .addComponent(jLabel7)) - .addGroup(layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel19) - .addComponent(labelEndY)))) - .addGap(8, 8, 8) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(spinnerEndX, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(spinnerEndY, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(spinnerBackground, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spinnerCycles, javax.swing.GroupLayout.Alignment.TRAILING))))) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel8) - .addGap(154, 154, 154)) - .addGroup(layout.createSequentialGroup() - .addComponent(buttonPark) - .addGap(18, 18, Short.MAX_VALUE) - .addComponent(buttonParkAll) - .addGap(18, 18, Short.MAX_VALUE) - .addComponent(buttonMoveStart) - .addGap(0, 0, 0))) - .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, 430, Short.MAX_VALUE) + .addComponent(panelLeft, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, 420, Short.MAX_VALUE) .addGap(11, 11, 11)) ); - - layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel10, jLabel11, jLabel13, jLabel14, jLabel2, jLabel3, jLabel4, jLabel5, jLabel6, jLabel7, jLabel8, jLabel9, labelEndY, labelStartY}); - - layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonAbort, buttonMoveStart, buttonPark, buttonParkAll, buttonScan}); - - layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonMotorPanel, buttonScannerPanel}); - - layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {labelPosX, labelPosY, panelPosition, panelPosition1}); - - layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerBackground, spinnerCycles, spinnerEndX, spinnerEndY}); - - layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerStartX, spinnerStartY, spinnerVel}); - layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(comboWireScanner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel20)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(comboScanType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel2)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(jLabel8) - .addComponent(spinnerCycles, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel9) - .addComponent(spinnerVel, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(spinnerBackground, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel19)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(jLabel6) - .addComponent(jLabel7) - .addComponent(spinnerEndX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spinnerStartX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(spinnerStartY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelEndY) - .addComponent(spinnerEndY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(labelStartY)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) - .addComponent(comboBpm1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(comboBpm2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel4)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(comboBpm3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel5)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel18) - .addComponent(comboBlm1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(comboBlm2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel17)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(comboBlm3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel16)) - .addGap(18, 18, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(jLabel11) - .addComponent(panelPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(buttonScannerPanel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(jLabel13) - .addComponent(labelPosX) - .addComponent(buttonMotorPanel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(jLabel14) - .addComponent(labelPosY)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(jLabel15) - .addComponent(panelPosition1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel12) - .addComponent(ledHomed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(buttonHoming)) - .addGap(18, 18, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(jLabel10) - .addComponent(panelStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(buttonPark) - .addComponent(buttonMoveStart) - .addComponent(buttonParkAll)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(buttonAbort) - .addComponent(buttonScan))) + .addComponent(panelLeft, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(plot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); - - layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {labelPosX, labelPosY, panelPosition}); - - layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {spinnerStartX, spinnerStartY, spinnerVel}); - - layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {spinnerCycles, spinnerEndX, spinnerEndY}); - - layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {panelPosition1, panelStatus}); - }// //GEN-END:initComponents private void comboWireScannerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboWireScannerActionPerformed @@ -796,6 +914,7 @@ public class WireScan extends Panel { parameters.add(blms); parameters.add(spinnerBackground.getValue()); parameters.add(plot); + parameters.add(checkSaveRaw.isSelected()); runAsync("Diagnostics/WireScanBackground", parameters).handle((ret, ex) -> { if (ex != null) { getLogger().info("Exception executing scan: " + ex); @@ -936,6 +1055,30 @@ public class WireScan extends Panel { } }//GEN-LAST:event_buttonParkAllActionPerformed + private void buttonRaw1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRaw1ActionPerformed + showBlmRawData(comboBlm1.getSelectedItem().toString()); + }//GEN-LAST:event_buttonRaw1ActionPerformed + + private void buttonRaw2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRaw2ActionPerformed + showBlmRawData(comboBlm2.getSelectedItem().toString()); + }//GEN-LAST:event_buttonRaw2ActionPerformed + + private void buttonRaw3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRaw3ActionPerformed + showBlmRawData(comboBlm3.getSelectedItem().toString()); + }//GEN-LAST:event_buttonRaw3ActionPerformed + + private void comboBlm1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBlm1ActionPerformed + updateRawButtons(); + }//GEN-LAST:event_comboBlm1ActionPerformed + + private void comboBlm3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBlm3ActionPerformed + updateRawButtons(); + }//GEN-LAST:event_comboBlm3ActionPerformed + + private void comboBlm2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBlm2ActionPerformed + updateRawButtons(); + }//GEN-LAST:event_comboBlm2ActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonAbort; private javax.swing.JButton buttonHoming; @@ -943,8 +1086,12 @@ public class WireScan extends Panel { private javax.swing.JButton buttonMoveStart; private javax.swing.JButton buttonPark; private javax.swing.JButton buttonParkAll; + private javax.swing.JButton buttonRaw1; + private javax.swing.JButton buttonRaw2; + private javax.swing.JButton buttonRaw3; private javax.swing.JButton buttonScan; private javax.swing.JButton buttonScannerPanel; + private javax.swing.JCheckBox checkSaveRaw; private javax.swing.JComboBox comboBlm1; private javax.swing.JComboBox comboBlm2; private javax.swing.JComboBox comboBlm3; @@ -977,6 +1124,7 @@ public class WireScan extends Panel { private javax.swing.JLabel labelPosY; private javax.swing.JLabel labelStartY; private ch.psi.pshell.swing.Led ledHomed; + private javax.swing.JPanel panelLeft; private ch.psi.pshell.swing.DeviceValuePanel panelPosition; private ch.psi.pshell.swing.DeviceValuePanel panelPosition1; private ch.psi.pshell.swing.DeviceValuePanel panelStatus; diff --git a/script/Devices/Elements.py b/script/Devices/Elements.py index 98f3033..74c6dea 100644 --- a/script/Devices/Elements.py +++ b/script/Devices/Elements.py @@ -286,6 +286,16 @@ def get_wire_scanners_blms(wire_scan): ret.append(None) return ret -#for w in get_wire_scanners(): -# print w, get_wire_scanners_blms(w) +def get_camera_type(camera_name): + if "LCAM" in camera_name: return "LASER" + if "DSCR" in camera_name or \ + "DSRM" in camera_name or \ + "DLAC" in camera_name: return "ELECTRONS" + if "PROF" in camera_name or \ + "PPRM" in camera_name or \ + "PSSS" in camera_name or \ + "PSCR" in camera_name or \ + "PSRD" in camera_name: return "PHOTONICS" + return "UNKNOWN" + diff --git a/script/Diagnostics/WireScan.py b/script/Diagnostics/WireScan.py index b560e8d..49fe0e2 100644 --- a/script/Diagnostics/WireScan.py +++ b/script/Diagnostics/WireScan.py @@ -18,6 +18,7 @@ bpms = args[5] if is_panel else get_wire_scanners_bpms(prefix) blms = args[6] if is_panel else get_wire_scanners_blms(prefix) bkgrd = args[7] if is_panel else 10 plt = args[8] if is_panel else plot(None, title = "Wire Scan")[0] +save_raw = args[9] if is_panel else False do_elog = True if is_panel else True print "WireScan parameters: ", prefix, scan_type, scan_range, cycles, velocity, bpms, blms, bkgrd @@ -47,10 +48,12 @@ for i in range (len(blms)): plt.addSeries(series) series.setLinesVisible(False) series.setPointSize(2) + if save_raw: + channels.append (("blm" + str(i+1) + "_raw" , blms[i] + ":LOSS_SIGNAL_RAW")) for i in range (len(bpms)): for sensor in BPM_SENSORS: channels.append (("bpm" + str(i+1) + "_" + sensor[0], bpms[i] + ":" + sensor[1])) - + #Metadata set_attribute("/", "Wire Scanner", prefix) set_attribute("/", "Scan Type", scan_type) diff --git a/script/RFscan/GunEnergyScan.py b/script/RFscan/GunEnergyScan.py index b168600..b81196f 100644 --- a/script/RFscan/GunEnergyScan.py +++ b/script/RFscan/GunEnergyScan.py @@ -151,3 +151,6 @@ if do_elog: file_name = os.path.abspath(get_context().setup.getContextPath() + "/GunEnergyScanPlot.png") plt.saveSnapshot(file_name , "png") elog("Gun Energy Scan", log_msg, [file_name,]) + + +set_return(ph_dp_min) \ No newline at end of file diff --git a/script/RFscan/GunEnergyScanSet.py b/script/RFscan/GunEnergyScanSet.py new file mode 100644 index 0000000..16ca057 --- /dev/null +++ b/script/RFscan/GunEnergyScanSet.py @@ -0,0 +1,24 @@ +dry_run = False +do_elog = True + +if get_exec_pars().source == CommandSource.ui: + bph_ref_user = 19.0 + plt = None +else: + bph_ref_user = args[0] + plt = args[1] +phase_offset_old = caget("SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE") +phase_offset_new = 90 - bph_ref_user + phaseOffset_old +if not dry_run: + caput("SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE", phaseOffset_new) + caput("SINEG01-RSYS:CMD-LOAD-CALIB-BEAM", 1) +if do_elog: + log_msg = "SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE: %0.2f" % phase_offset_new + " deg (was %0.2f" % phase_offset_old + " deg)\n" + attachments = [] + if plt is not None: + sleep(0.1) #Give some time to plot to be finished - it is not sync with acquisition + file_name = os.path.abspath(get_context().setup.getContextPath() + "/GunEnergyScanSet.png") + plt.saveSnapshot(file_name , "png") + attachments = [file_name] + elog("Set gun phase", log_msg, attachments) +show_message("Success setting phase reference") diff --git a/script/Tools/CameraTools.py b/script/Tools/CameraTools.py index a441273..8a2e03e 100644 --- a/script/Tools/CameraTools.py +++ b/script/Tools/CameraTools.py @@ -1,10 +1,16 @@ import json +import java.math.BigInteger as BigInteger +import org.python.core.PyLong as PyLong +import org.python.core.PyFloat as PyFloat +import traceback +import datetime + run("Devices/Elements") def get_processing_parameters(stream_value): return json.loads(stream_value.getValue("processing_parameters")) -def _create_tables(paths, stream_value, data_type, shape): +def _create_tables(paths, stream_value, data_type, shape, images): root = paths["root"] create_dataset(paths["image"], data_type, dimensions = [images, shape[0], shape[1]]) create_dataset(paths["pid"], 'l', dimensions = [images]) @@ -60,7 +66,7 @@ def _append_frame(paths, stream_value, index, data_type, shape): print "Saved frame: ", index -def _write_metadata(paths, camera, images = 1, interval = -1): +def _write_metadata(paths, camera, images, interval): root = paths["root"] set_attribute(root, "Camera", camera) set_attribute(root, "Images", images) @@ -90,9 +96,8 @@ def save_camera_data(server, images = 1, interval = -1, root = "/camera1", paral for i in range(images): print i if i==0: - _create_tables(paths, stream_value, data_type, shape) - _write_metadata(paths, camera, images, interval) - + _create_tables(paths, stream_value, data_type, shape, images) + _write_metadata(paths, camera, images, interval) start = time.time() stream_value = server.stream.take() if parallel: diff --git a/script/Tools/save_camera_data.py b/script/Tools/save_camera_data.py index a507b0d..ea61f37 100644 --- a/script/Tools/save_camera_data.py +++ b/script/Tools/save_camera_data.py @@ -1,10 +1,5 @@ import ch.psi.pshell.imaging.ImageBuffer as ImageBuffer -import java.math.BigInteger as BigInteger -import org.python.core.PyLong as PyLong -import org.python.core.PyFloat as PyFloat import json -import traceback -import datetime import ch.psi.pshell.bs.PipelineServer as PipelineServer import ch.psi.pshell.imaging.Colormap as Colormap diff --git a/script/local.py b/script/local.py index 274c113..4ad8840 100755 --- a/script/local.py +++ b/script/local.py @@ -58,19 +58,6 @@ def is_timing_ok(): def get_repetition_rate(): return caget("SIN-TIMAST-TMA:Evt-15-Freq-I") - -def bsget(channel): - """ - """ - st = Stream(None, dispatcher) - try: - st.addScalar(channel, channel, 10, 0) - st.initialize() - st.start(); - st.waitValueNot(None, 5000) - return st.getValue(channel) - finally: - st.close() ################################################################################################### diff --git a/script/test/GunEnergyScanSet.py b/script/test/GunEnergyScanSet.py index d6ace45..fee132e 100644 --- a/script/test/GunEnergyScanSet.py +++ b/script/test/GunEnergyScanSet.py @@ -2,7 +2,7 @@ dry_run = True do_elog = True if get_exec_pars().source == CommandSource.ui: - bph_ref_user = 0.0 + bph_ref_user = 19.0 plt = None else: bph_ref_user = args[0] @@ -13,13 +13,11 @@ if not dry_run: caput("SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE", phaseOffset_new) caput("SINEG01-RSYS:CMD-LOAD-CALIB-BEAM", 1) if do_elog: - log_msg = "SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE \n" - log_msg = log_msg + "Old: %0.1f" % phaseOffset_old + " deg \n" - log_msg = log_msg + "New: %0.1f" % phaseOffset_new + " deg \n" + log_msg = "SINEG01-RSYS:SET-VSUM-PHASE-OFFSET-BASE: %0.2f" % phase_offset_new + " deg (was %0.2f" % phase_offset_old + " deg)\n" attachments = [] if plt is not None: sleep(0.1) #Give some time to plot to be finished - it is not sync with acquisition - file_name = os.path.abspath(get_context().setup.getContextPath() + "/SchottkyScanSetPlot.png") + file_name = os.path.abspath(get_context().setup.getContextPath() + "/GunEnergyScanSet.png") plt.saveSnapshot(file_name , "png") attachments = [file_name] elog("Set gun phase", log_msg, attachments) diff --git a/script/test/lin1 phase.py b/script/test/lin1 phase.py new file mode 100644 index 0000000..ef27df9 --- /dev/null +++ b/script/test/lin1 phase.py @@ -0,0 +1,4 @@ +devlist = ['01', '02', '03', '04', '05', '06', '07', '08'] + +for dev in devlist: + caput("S10CB" + dev + "-RSYS:SET-BEAM-PHASE", 83.5) \ No newline at end of file