This commit is contained in:
2018-04-30 16:27:24 +02:00
parent 4dae79a3ca
commit 7bb86009d1
5 changed files with 447 additions and 80 deletions

View File

@@ -8,14 +8,23 @@ import ch.psi.pshell.core.Context;
import ch.psi.pshell.device.Device;
import ch.psi.pshell.device.DeviceAdapter;
import ch.psi.pshell.device.DeviceListener;
import ch.psi.pshell.imaging.Renderer;
import ch.psi.pshell.imaging.RendererMode;
import ch.psi.pshell.imaging.Source;
import ch.psi.pshell.ui.Panel;
import ch.psi.utils.State;
import ch.psi.utils.swing.SwingUtils;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dialog;
import java.awt.Dimension;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.Map;
import java.util.HashMap;
import javax.script.ScriptException;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
@@ -132,6 +141,16 @@ public class MainPanel extends Panel {
basePlatePanel = new ch.psi.mxsc.BasePlatePanel();
buttonCamera = new javax.swing.JToggleButton();
buttonPuckDet = new javax.swing.JButton();
jPanel11 = new javax.swing.JPanel();
ledLidControlActive2 = new ch.psi.pshell.swing.Led();
ledLidControlActive1 = new ch.psi.pshell.swing.Led();
jLabel20 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
jLabel16 = new javax.swing.JLabel();
jLabel19 = new javax.swing.JLabel();
ledLidControlActive4 = new ch.psi.pshell.swing.Led();
ledLidControlActive3 = new ch.psi.pshell.swing.Led();
jPanel1 = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
jSeparator1 = new javax.swing.JSeparator();
@@ -191,19 +210,106 @@ public class MainPanel extends Panel {
}
});
buttonPuckDet.setText("Detect");
buttonPuckDet.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonPuckDetActionPerformed(evt);
}
});
jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder("Legend"));
ledLidControlActive2.setForeground(new java.awt.Color(128, 232, 152));
ledLidControlActive2.setLedSize(20);
ledLidControlActive1.setForeground(new java.awt.Color(192, 128, 128));
ledLidControlActive1.setLedSize(20);
jLabel20.setText("Empty");
jLabel15.setText("Error");
jLabel16.setText("Minispine");
jLabel19.setText("Unipuck");
ledLidControlActive4.setForeground(new java.awt.Color(128, 128, 128));
ledLidControlActive4.setLedSize(20);
ledLidControlActive3.setForeground(new java.awt.Color(128, 192, 192));
ledLidControlActive3.setLedSize(20);
javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
jPanel11.setLayout(jPanel11Layout);
jPanel11Layout.setHorizontalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(ledLidControlActive1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel15))
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(ledLidControlActive2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel16))
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(ledLidControlActive3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel19))
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(ledLidControlActive4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel20)))
.addGap(4, 4, 4))
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledLidControlActive4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel20))
.addGap(0, 0, 0)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledLidControlActive3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel19))
.addGap(0, 0, 0)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledLidControlActive2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel16))
.addGap(0, 0, 0)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledLidControlActive1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel15)))
);
javax.swing.GroupLayout basePlatePanelLayout = new javax.swing.GroupLayout(basePlatePanel);
basePlatePanel.setLayout(basePlatePanelLayout);
basePlatePanelLayout.setHorizontalGroup(
basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(basePlatePanelLayout.createSequentialGroup()
.addContainerGap(487, Short.MAX_VALUE)
.addComponent(buttonCamera))
.addGap(4, 4, 4)
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, basePlatePanelLayout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonPuckDet)
.addComponent(buttonCamera)))
.addGroup(basePlatePanelLayout.createSequentialGroup()
.addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))))
);
basePlatePanelLayout.setVerticalGroup(
basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(basePlatePanelLayout.createSequentialGroup()
.addComponent(buttonCamera)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonPuckDet)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Level"));
@@ -229,7 +335,7 @@ public class MainPanel extends Panel {
.addGap(4, 4, 4)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jSeparator2)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 35, Short.MAX_VALUE)))
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 35, Short.MAX_VALUE)))
.addGroup(jPanel3Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
@@ -247,13 +353,13 @@ public class MainPanel extends Panel {
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(progressLN2, javax.swing.GroupLayout.DEFAULT_SIZE, 653, Short.MAX_VALUE)
.addComponent(progressLN2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap(56, Short.MAX_VALUE)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(jLabel1, 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.RELATED, 57, Short.MAX_VALUE)
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -675,12 +781,46 @@ public class MainPanel extends Panel {
}
}//GEN-LAST:event_buttonExpertActionPerformed
//Dialog dlgDetPlot;
//Dialog dlgDetText;
Dialog dlgDetRenderer;
JComponent dlgDetPlotComp;
JComponent dlgDetTextComp;
JComponent dlgDetRendererComp;
private void buttonPuckDetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPuckDetActionPerformed
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 ((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);
} catch (Exception ex) {
showException(ex);
}
}//GEN-LAST:event_buttonPuckDetActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private ch.psi.mxsc.BasePlatePanel basePlatePanel;
private javax.swing.JToggleButton buttonCamera;
private javax.swing.JButton buttonExpert;
private javax.swing.JButton buttonInitHexiposi;
private javax.swing.JButton buttonPuckDet;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel1;
private ch.psi.mxsc.HexiposiPanel hexiposiPanel;
private javax.swing.JLabel jLabel1;
@@ -689,9 +829,13 @@ public class MainPanel extends Panel {
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
@@ -701,6 +845,7 @@ public class MainPanel extends Panel {
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
@@ -720,6 +865,10 @@ public class MainPanel extends Panel {
private ch.psi.pshell.swing.Led ledFillingControl;
private ch.psi.pshell.swing.Led ledFillingDewar;
private ch.psi.pshell.swing.Led ledLidControlActive;
private ch.psi.pshell.swing.Led ledLidControlActive1;
private ch.psi.pshell.swing.Led ledLidControlActive2;
private ch.psi.pshell.swing.Led ledLidControlActive3;
private ch.psi.pshell.swing.Led ledLidControlActive4;
private ch.psi.pshell.swing.Led ledLidInitialized;
private ch.psi.pshell.swing.ProcessVariablePanel panelDewar;
private javax.swing.JProgressBar progressLN2;