Initial commit V2

This commit is contained in:
gac-S_Changer
2024-10-29 11:07:44 +01:00
parent 47ab8f1f0e
commit b2557c14b1
7 changed files with 379 additions and 324 deletions

View File

@@ -7,6 +7,9 @@ import ch.psi.mxsc.BasePlatePanel.SelectionMode;
import ch.psi.pshell.core.Plugin;
import ch.psi.pshell.device.Device;
import ch.psi.pshell.device.DeviceAdapter;
import ch.psi.pshell.device.DeviceBase;
import ch.psi.pshell.device.DeviceListener;
import ch.psi.pshell.imaging.PointDouble;
import ch.psi.pshell.imaging.Renderer;
import ch.psi.pshell.imaging.RendererMode;
import ch.psi.pshell.imaging.Source;
@@ -28,11 +31,14 @@ import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -416,7 +422,11 @@ public class MainPanel extends Panel {
updateMode(((Device) getDevice("robot")).take());
} catch (Exception ex) {
this.getLogger().log(Level.SEVERE, null, ex);
}
}
DeviceBase dev = (DeviceBase) this.getDevice("cover_detection");
dev.addListener(cover_detection_listener);
setPuckDatamatrix(null);
setSampleDatamatrix(null);
setBackgroundUpdate(true);
@@ -578,6 +588,21 @@ public class MainPanel extends Panel {
}
void updateCameraView() {
try{
if (buttonCamera.isSelected()){
int center_x = ((Number)this.eval("cover_detection.config.center_x", true)).intValue();
int center_y = ((Number)this.eval("cover_detection.config.center_y", true)).intValue();
int diam_dewar = ((Number)this.eval("cover_detection.config.diameter_dewar", true)).intValue();
double dewar_wall = ((Number)this.eval("cover_detection.config.dewar_wall", true)).doubleValue();
int diam =(int) (dewar_wall * diam_dewar);
Rectangle roi = new Rectangle(center_x-diam/2,center_y - diam/2, diam, diam );
basePlatePanel.basePlateGraphics.setImageRoi(roi);
}
} catch (Exception ex){
if (getState().isInitialized()){
getLogger().log(Level.SEVERE, null, ex);
}
}
Source source = buttonCamera.isSelected() ? (Source) this.getDevice("img") : null;
basePlatePanel.setCameraView(source);
}
@@ -683,20 +708,20 @@ public class MainPanel extends Panel {
buttonCalibrateImage.setVisible(expert);
buttonCalibrateCover.setVisible(expert);
devicesPanel.setActive(expert);
panelViewType.setVisible(expert);
//panelViewType.setVisible(expert);
panelDetection.setVisible(expert && !isRt());
buttonDetectCover.setVisible(expert);
buttonConfig.setVisible(expert);
Puck.setDisplayDetectionError(expert);
if (checkExpert.isSelected() != expert) {
checkExpert.setSelected(expert);
}
if (expert == false) {
buttonCamera.setSelected(false);
buttonDrawing.setSelected(true);
updateViewType();
}
//if (expert == false) {
// buttonCamera.setSelected(true);
// buttonDrawing.setSelected(false);
// updateViewType();
//}
if (current != expert) {
onModeChange(expert);
}
@@ -935,6 +960,24 @@ public class MainPanel extends Panel {
}
}
DeviceListener cover_detection_listener = new DeviceAdapter() {
@Override
public void onCacheChanged(Device device, Object value, Object former, long timestamp, boolean valueChange) {
Point mm = null;
Point det = null;
try{
mm = new Point(Array.getInt(value, 4), Array.getInt(value, 5));
det = new Point(Array.getInt(value, 0), Array.getInt(value, 1));
basePlatePanel.basePlateGraphics.setDetection(det);
} catch (Exception ex){
}
Point aux = mm;
SwingUtilities.invokeLater(()->{
textCoverDet.setText((aux==null) ? "" :aux.x + ", " + aux.y);
});
}
};
/**
* This method is called from within the constructor to initialize the form.
@@ -945,6 +988,7 @@ public class MainPanel extends Panel {
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
buttonGroup1 = new javax.swing.ButtonGroup();
panelTop = new javax.swing.JPanel();
basePlatePanel = new ch.psi.mxsc.BasePlatePanel();
panelLegend = new javax.swing.JPanel();
@@ -959,11 +1003,13 @@ public class MainPanel extends Panel {
ledLidControlActive5 = new ch.psi.pshell.swing.Led();
jLabel23 = new javax.swing.JLabel();
panelDetection = new javax.swing.JPanel();
buttonClearDet = new javax.swing.JButton();
buttonPuckDet = new javax.swing.JButton();
buttonCalibrationPanel = new javax.swing.JButton();
buttonDetectionCalibrate = new javax.swing.JButton();
panelHexiposi = new javax.swing.JPanel();
hexiposiPanel = new ch.psi.mxsc.HexiposiPanel();
buttonDetectCover = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
textCoverDet = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
textCoverMove = new javax.swing.JTextField();
panelViewType = new javax.swing.JPanel();
buttonCamera = new javax.swing.JToggleButton();
buttonDrawing = new javax.swing.JToggleButton();
@@ -1112,17 +1158,17 @@ public class MainPanel extends Panel {
panelDetection.setBorder(javax.swing.BorderFactory.createTitledBorder("Detection"));
buttonClearDet.setText("Clear");
buttonClearDet.addActionListener(new java.awt.event.ActionListener() {
buttonCalibrationPanel.setText("Panel");
buttonCalibrationPanel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonClearDetActionPerformed(evt);
buttonCalibrationPanelActionPerformed(evt);
}
});
buttonPuckDet.setText("Start");
buttonPuckDet.addActionListener(new java.awt.event.ActionListener() {
buttonDetectionCalibrate.setText("Calibrate");
buttonDetectionCalibrate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonPuckDetActionPerformed(evt);
buttonDetectionCalibrateActionPerformed(evt);
}
});
@@ -1131,55 +1177,75 @@ public class MainPanel extends Panel {
panelDetectionLayout.setHorizontalGroup(
panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelDetectionLayout.createSequentialGroup()
.addContainerGap(26, Short.MAX_VALUE)
.addGroup(panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(buttonClearDet, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonPuckDet, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(26, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(buttonDetectionCalibrate)
.addComponent(buttonCalibrationPanel))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelDetectionLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCalibrationPanel, buttonDetectionCalibrate});
panelDetectionLayout.setVerticalGroup(
panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDetectionLayout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonPuckDet)
.addComponent(buttonDetectionCalibrate)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonClearDet)
.addComponent(buttonCalibrationPanel)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelHexiposi.setBorder(javax.swing.BorderFactory.createTitledBorder("Cover"));
panelHexiposi.setPreferredSize(new java.awt.Dimension(112, 153));
buttonDetectCover.setText("Image");
buttonDetectCover.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonDetectCoverActionPerformed(evt);
}
});
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Detection:");
textCoverDet.setEditable(false);
textCoverDet.setHorizontalAlignment(javax.swing.JTextField.CENTER);
textCoverDet.setDisabledTextColor(new java.awt.Color(0, 0, 0));
textCoverDet.setEnabled(false);
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel2.setText("Last Move:");
textCoverMove.setEditable(false);
textCoverMove.setHorizontalAlignment(javax.swing.JTextField.CENTER);
textCoverMove.setDisabledTextColor(new java.awt.Color(0, 0, 0));
textCoverMove.setEnabled(false);
javax.swing.GroupLayout panelHexiposiLayout = new javax.swing.GroupLayout(panelHexiposi);
panelHexiposi.setLayout(panelHexiposiLayout);
panelHexiposiLayout.setHorizontalGroup(
panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelHexiposiLayout.createSequentialGroup()
.addContainerGap(14, Short.MAX_VALUE)
.addGroup(panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(buttonDetectCover)
.addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(15, Short.MAX_VALUE))
.addGroup(panelHexiposiLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(textCoverDet)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(textCoverMove, javax.swing.GroupLayout.DEFAULT_SIZE, 90, Short.MAX_VALUE))
.addContainerGap())
);
panelHexiposiLayout.setVerticalGroup(
panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelHexiposiLayout.createSequentialGroup()
.addContainerGap(18, Short.MAX_VALUE)
.addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
.addComponent(buttonDetectCover)
.addContainerGap())
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textCoverDet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textCoverMove, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(18, Short.MAX_VALUE))
);
panelViewType.setBorder(javax.swing.BorderFactory.createTitledBorder("View"));
buttonGroup1.add(buttonCamera);
buttonCamera.setSelected(true);
buttonCamera.setText("Image");
buttonCamera.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -1187,7 +1253,7 @@ public class MainPanel extends Panel {
}
});
buttonDrawing.setSelected(true);
buttonGroup1.add(buttonDrawing);
buttonDrawing.setText("Design");
buttonDrawing.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -1200,11 +1266,11 @@ public class MainPanel extends Panel {
panelViewTypeLayout.setHorizontalGroup(
panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelViewTypeLayout.createSequentialGroup()
.addContainerGap(21, Short.MAX_VALUE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(buttonDrawing)
.addComponent(buttonCamera))
.addContainerGap(21, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelViewTypeLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCamera, buttonDrawing});
@@ -1225,18 +1291,15 @@ public class MainPanel extends Panel {
basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, basePlatePanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelDetection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 234, Short.MAX_VALUE)
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelHexiposi, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelViewType, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(panelLegend, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelDetection, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 255, Short.MAX_VALUE)
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(panelHexiposi, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelViewType, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
basePlatePanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panelDetection, panelViewType});
basePlatePanelLayout.setVerticalGroup(
basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, basePlatePanelLayout.createSequentialGroup()
@@ -1660,9 +1723,9 @@ public class MainPanel extends Panel {
.addGroup(panelDevicesLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(devicesPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE)
.addComponent(panelExpert, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(27, Short.MAX_VALUE))
.addContainerGap(26, Short.MAX_VALUE))
);
panelDevicesLayout.setVerticalGroup(
panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -1747,7 +1810,7 @@ public class MainPanel extends Panel {
panelSamplesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelSamplesLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(panelTableSamples)
.addComponent(panelTableSamples, javax.swing.GroupLayout.DEFAULT_SIZE, 676, Short.MAX_VALUE)
.addGap(0, 0, 0))
);
panelSamplesLayout.setVerticalGroup(
@@ -1861,7 +1924,7 @@ public class MainPanel extends Panel {
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(panelTop, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(0, 0, 0)
.addComponent(panelBottom, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)
.addComponent(panelBottom, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE)
.addGap(1, 1, 1))
);
}// </editor-fold>//GEN-END:initComponents
@@ -1887,41 +1950,21 @@ public class MainPanel extends Panel {
JComponent dlgDetTextComp;
JComponent dlgDetRendererComp;
private void buttonPuckDetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPuckDetActionPerformed
private void buttonDetectionCalibrateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDetectionCalibrateActionPerformed
try {
/*
if ((dlgDetPlot == null) || (!dlgDetPlot.isShowing())){
dlgDetPlotComp = new ch.psi.pshell.plot.LinePlotJFree();
((ch.psi.pshell.plot.LinePlotJFree) dlgDetPlotComp).setTitle("");
dlgDetPlot = SwingUtils.showDialog(getTopLevel(), "Puck Detection", new Dimension(600,400), dlgDetPlotComp);
}
if ((dlgDetText == null)|| (!dlgDetText.isShowing())){
dlgDetTextComp = new javax.swing.JTextArea();
((javax.swing.JTextArea)dlgDetTextComp).setEditable(false);
dlgDetText = SwingUtils.showDialog(getTopLevel(), "Puck Detection", new Dimension(600,400), dlgDetTextComp);
}
*/
if (!App.isDetached()) {
if ((dlgDetRenderer == null) || (!dlgDetRenderer.isShowing())) {
dlgDetRendererComp = new Renderer();
((Renderer) dlgDetRendererComp).setMode(RendererMode.Fit);
dlgDetRenderer = SwingUtils.showDialog(getTopLevel(), "Puck Detection", new Dimension(600, 400), dlgDetRendererComp);
}
}
Controller.getInstance().imageDetectPucks(dlgDetPlotComp, dlgDetRendererComp, dlgDetTextComp);
this.runAsync("imgproc/NewCoverCalibration", this, false);
} catch (Exception ex) {
showException(ex);
}
}//GEN-LAST:event_buttonPuckDetActionPerformed
}//GEN-LAST:event_buttonDetectionCalibrateActionPerformed
private void buttonClearDetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonClearDetActionPerformed
private void buttonCalibrationPanelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCalibrationPanelActionPerformed
try {
Controller.getInstance().clearImageDetection();
this.evalAsync("cover_detection.set_renderer(show_panel(img))", true);
} catch (Exception ex) {
showException(ex);
}
}//GEN-LAST:event_buttonClearDetActionPerformed
}//GEN-LAST:event_buttonCalibrationPanelActionPerformed
private void checkExpertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkExpertActionPerformed
@@ -1973,23 +2016,6 @@ public class MainPanel extends Panel {
execute("imgproc/CameraCalibration", null, false, true);
}//GEN-LAST:event_buttonCalibrateImageActionPerformed
private void buttonDetectCoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDetectCoverActionPerformed
try {
execute("cover_detection_debug=True");
runAsync("imgproc/CoverDetection", null, false).handle((ret, ex) -> {
execute("cover_detection_debug=False", true);
if (ex != null) {
showException((Exception) ex);
} else {
showMessage("Return", String.valueOf(ret));
}
return ret;
});
} catch (Exception ex) {
showException(ex);
}
}//GEN-LAST:event_buttonDetectCoverActionPerformed
private void buttonCalibrateCoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCalibrateCoverActionPerformed
onExpertCommand(null);
execute("imgproc/CoverDetectionCalibration", null, false, true);
@@ -2033,24 +2059,25 @@ public class MainPanel extends Panel {
private javax.swing.JToggleButton btViewRT;
private javax.swing.JButton buttonCalibrateCover;
private javax.swing.JButton buttonCalibrateImage;
private javax.swing.JButton buttonCalibrationPanel;
private javax.swing.JToggleButton buttonCamera;
private javax.swing.JButton buttonClearDet;
private javax.swing.JButton buttonConfig;
private javax.swing.JButton buttonDetectCover;
private javax.swing.JButton buttonDetectionCalibrate;
private javax.swing.JToggleButton buttonDrawing;
private javax.swing.JButton buttonExpertCommands;
private javax.swing.JButton buttonPuckDet;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JButton buttonRecovery;
private javax.swing.JButton buttonRelease;
private javax.swing.JCheckBox checkExpert;
private ch.psi.mxsc.DevicesPanel devicesPanel;
private javax.swing.Box.Filler filler1;
ch.psi.mxsc.HexiposiPanel hexiposiPanel;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel23;
private javax.swing.JLabel jLabel24;
@@ -2104,6 +2131,8 @@ public class MainPanel extends Panel {
private javax.swing.JProgressBar progressLN2;
private javax.swing.JTable tablePucks;
private javax.swing.JTable tableSamples;
private javax.swing.JTextField textCoverDet;
private javax.swing.JTextField textCoverMove;
private javax.swing.JTextField textPuckDatamatrix;
private javax.swing.JTextField textSampleDatamatrix;
// End of variables declaration//GEN-END:variables