This commit is contained in:
gac-S_Changer
2018-08-14 14:09:01 +02:00
parent 3d571e8a4e
commit 047fad02d8
4 changed files with 415 additions and 230 deletions

View File

@@ -3,6 +3,7 @@
*/
package ch.psi.mxsc;
import ch.psi.mxsc.Puck.PuckType;
import ch.psi.pshell.core.Context;
import ch.psi.pshell.core.DevicePool;
import ch.psi.pshell.core.DevicePoolListener;
@@ -43,6 +44,37 @@ public class Controller {
Esera;
}
public enum PuckTypes {
unipuck,
minispine,
mixed
}
PuckTypes puckTypes = PuckTypes.mixed;
public PuckTypes getPuckTypes() {
return puckTypes;
}
void updatePuckTypes(){
try{
puckTypes = PuckTypes.valueOf(getMainFrame().eval("get_puck_types()", true).toString());
} catch( Exception ex){
puckTypes = PuckTypes.mixed;
}
switch(puckTypes){
case unipuck:
setSinglePuckType(PuckType.Unipuck);
break;
case minispine:
setSinglePuckType(PuckType.Minispine);
break;
case mixed:
//setSinglePuckType(PuckType.Unknown);
break;
}
}
final PuckSensorAccess puckSensorAccess = PuckSensorAccess.RaspberryPi;
static String PUCK_ESERA_DEVICE = "onewire";
@@ -55,7 +87,7 @@ public class Controller {
for (int i = 0; i < NUMBER_OF_PUCKS; i++) {
puckState[i] = new PuckState(i + 1);
}
this.mainFrame = (MainPanel)mainFrame;
this.mainFrame = (MainPanel) mainFrame;
instance = this;
}
@@ -102,7 +134,7 @@ public class Controller {
}
}
hexiposi = (Device) getMainFrame().getDevice("hexiposi");
if (hexiposi!=null){
if (hexiposi != null) {
hexiposi.addListener(new DeviceAdapter() {
@Override
public void onValueChanged(Device device, Object value, Object former) {
@@ -119,11 +151,11 @@ public class Controller {
public PuckState[] getPuckStates() {
return puckState;
}
public Puck getPuck(String name){
public Puck getPuck(String name) {
return basePlate.getPuckByName(name);
}
EseraDetection detection;
//From 1 to PUCKS_NUMBER
@@ -161,7 +193,7 @@ public class Controller {
try {
return getMainFrame().eval("is_led_room_temp()", true).equals(true);
} catch (Exception ex) {
return null;
return null;
}
}
@@ -169,26 +201,26 @@ public class Controller {
try {
return getMainFrame().eval("is_room_temp()", true).equals(true);
} catch (Exception ex) {
return null;
return null;
}
}
public String getWorkingMode(){
public String getWorkingMode() {
try {
return String.valueOf(getMainFrame().eval("robot.working_mode", true));
} catch (Exception ex) {
return "Unknown";
}
return "Unknown";
}
}
public boolean isManualMode(){
public boolean isManualMode() {
try {
return getMainFrame().eval("is_manual_mode()", true).equals(true);
} catch (Exception ex) {
return false;
return false;
}
}
public void imageDetectPucks() throws Context.ContextStateException {
imageDetectPucks(null, null, null);
}
@@ -203,7 +235,7 @@ public class Controller {
Map<String, List<String>> map = (Map<String, List<String>>) ret;
setImageDetection(map);
} else {
getMainFrame().showException((Exception)ex);
getMainFrame().showException((Exception) ex);
}
return ret;
});
@@ -213,21 +245,32 @@ public class Controller {
public void clearImageDetection() throws Context.ContextStateException, ScriptException, IOException, InterruptedException {
Map<String, List<String>> map = (Map<String, List<String>>) getMainFrame().eval("clear_detection(None)");
setImageDetection(map);
updateView();
updateView();
}
void setImageDetection(Map<String, List<String>> map){
for (Puck.ImageDetection id : Puck.ImageDetection.values()) {
for (String name : map.get(id.toString())) {
void setImageDetection(Map<String, List<String>> map) {
for (Puck.PuckType puckType : Puck.PuckType.values()) {
for (String name : map.get(puckType.toString())) {
Puck p = basePlate.getPuckByName(name);
if (p != null) {
p.setImageDetection(id);
p.setPuckType(puckType);
}
}
}
}
}
void setSinglePuckType(Puck.PuckType puckType) {
for (Puck p : basePlate.getPucks()) {
p.setPuckType(puckType);
}
}
void resetPuckTypes() {
for (Puck p : basePlate.getPucks()) {
p.setPuckType(Puck.PuckType.Unknown);
}
}
BasePlatePanel puckPanel;
void onPuckPressed(Puck puck){
//JPanel panel = new SinglePuckPanel(puck);

View File

@@ -86,13 +86,13 @@
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="panelLegend" linkSize="9" min="-2" max="-2" attributes="0"/>
<Component id="panelDetection" linkSize="9" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="panelDetection" linkSize="23" min="-2" max="-2" attributes="0"/>
<Component id="panelLegend" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="panelViewType" linkSize="9" min="-2" max="-2" attributes="0"/>
<Component id="panelHexiposi" linkSize="9" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="panelHexiposi" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="panelViewType" linkSize="23" alignment="1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
@@ -274,12 +274,12 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace pref="12" max="32767" attributes="0"/>
<EmptySpace pref="14" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="buttonClearDet" linkSize="4" max="32767" attributes="0"/>
<Component id="buttonPuckDet" max="32767" attributes="0"/>
</Group>
<EmptySpace pref="12" max="32767" attributes="0"/>
<EmptySpace pref="14" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -321,24 +321,32 @@
<TitledBorder title="Cover"/>
</Border>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[112, 153]"/>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace min="0" pref="4" max="32767" attributes="0"/>
<Component id="hexiposiPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="4" max="32767" attributes="0"/>
<EmptySpace pref="13" max="32767" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="buttonDetectCover" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="hexiposiPanel" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="14" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="0" pref="24" max="32767" attributes="0"/>
<EmptySpace pref="15" max="32767" attributes="0"/>
<Component id="hexiposiPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="35" max="32767" attributes="0"/>
<EmptySpace pref="10" max="32767" attributes="0"/>
<Component id="buttonDetectCover" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -346,6 +354,14 @@
<SubComponents>
<Component class="ch.psi.mxsc.HexiposiPanel" name="hexiposiPanel">
</Component>
<Component class="javax.swing.JButton" name="buttonDetectCover">
<Properties>
<Property name="text" type="java.lang.String" value="Image"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDetectCoverActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="panelViewType">
@@ -361,12 +377,12 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace min="-2" pref="2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="buttonCamera" linkSize="10" alignment="0" min="-2" pref="71" max="-2" attributes="0"/>
<Component id="buttonDrawing" linkSize="10" alignment="0" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="buttonDrawing" linkSize="25" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="buttonCamera" linkSize="25" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -394,7 +410,7 @@
<Component class="javax.swing.JToggleButton" name="buttonDrawing">
<Properties>
<Property name="selected" type="boolean" value="true"/>
<Property name="text" type="java.lang.String" value="Drawing"/>
<Property name="text" type="java.lang.String" value="Design"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDrawingActionPerformed"/>
@@ -476,11 +492,11 @@
<Group type="103" groupAlignment="0" attributes="0">
<Component id="progressLN2" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<EmptySpace pref="65" max="32767" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="jSeparator1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="61" max="32767" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="jSeparator2" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Component id="jLabel3" min="-2" max="-2" attributes="0"/>
@@ -590,6 +606,8 @@
<Component id="checkExpert" max="32767" attributes="0"/>
<Component id="buttonRecovery" max="32767" attributes="0"/>
<Component id="buttonCalibrateImage" max="32767" attributes="0"/>
<Component id="buttonCalibrateCover" max="32767" attributes="0"/>
<Component id="buttonConfig" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
@@ -606,11 +624,15 @@
<Component id="checkExpert" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonExpertCommands" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonRecovery" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonCalibrateImage" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="49" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonCalibrateCover" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonConfig" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -654,6 +676,22 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonCalibrateImageActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonCalibrateCover">
<Properties>
<Property name="text" type="java.lang.String" value="Cover Ref"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonCalibrateCoverActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonConfig">
<Properties>
<Property name="text" type="java.lang.String" value="Config"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonConfigActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel4">

View File

@@ -1,7 +1,6 @@
/*
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
*/
package ch.psi.mxsc;
import ch.psi.pshell.core.Plugin;
@@ -12,53 +11,67 @@ import ch.psi.pshell.imaging.RendererMode;
import ch.psi.pshell.imaging.Source;
import ch.psi.pshell.ui.App;
import ch.psi.pshell.ui.Panel;
import ch.psi.utils.Config;
import ch.psi.utils.swing.ConfigDialog;
import ch.psi.utils.swing.PropertiesDialog;
import ch.psi.utils.swing.StandardDialog;
import ch.psi.utils.swing.SwingUtils;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
/**
*
*/
public class MainPanel extends Panel {
/** Creates new form Panel */
public MainPanel() {
initComponents();
/**
* Creates new form Panel
*/
public MainPanel() {
initComponents();
getContext().getPluginManager().addDynamicClass(PuckDetection.class);
Controller.createInstance(this);
basePlatePanel.setMode(BasePlatePanel.Mode.single);
basePlatePanel.setMode(BasePlatePanel.Mode.single);
labelRoomTemperature.setVisible(false);
labeManualMode.setVisible(false);
setExpertMode(false);
setDefaultDetail();
}
@Override
protected void onLoaded(){
if (App.isDetached()){
@Override
protected void onLoaded() {
if (App.isDetached()) {
Image img = new ImageIcon(this.getClass().getResource("/apple_transparent_white_100x50.png")).getImage();
SwingUtils.getWindow(this).setIconImage(img);
SwingUtils.getWindow(this).setIconImage(img);
}
}
@Override
public void onInitialize(int runCount) {
@Override
public void onInitialize(int runCount) {
stopTimer();
Controller.getInstance().onInitialize(runCount);
basePlatePanel.setDevice((Device) getDevice("BasePlate"));
basePlatePanel.getDevice().setSelectable(true);
try{
basePlatePanel.setDevice((Device) getDevice("BasePlate"));
basePlatePanel.getDevice().setSelectable(true);
try {
devicesPanel.initialize();
((Device) getDevice("dewar_level")).addListener(new DeviceAdapter() {
@Override
@@ -74,7 +87,7 @@ public class MainPanel extends Panel {
updateFillingDeware(value);
}
});
updateFillingDeware(((Device) getDevice("filling_dewar")).take());
updateFillingDeware(((Device) getDevice("filling_dewar")).take());
((Device) getDevice("ln2_main_power")).addListener(new DeviceAdapter() {
@Override
@@ -82,7 +95,7 @@ public class MainPanel extends Panel {
updateFillingControl(value);
}
});
updateFillingControl(((Device) getDevice("ln2_main_power")).take());
updateFillingControl(((Device) getDevice("ln2_main_power")).take());
((Device) getDevice("air_pressure_ok")).addListener(new DeviceAdapter() {
@Override
@@ -114,10 +127,11 @@ public class MainPanel extends Panel {
updatePsysSafety(value);
}
});
updatePsysSafety(((Device) getDevice("feedback_psys_safety")).take());
} catch (Exception ex){
this.getLogger().log(Level.SEVERE,null, ex);
updatePsysSafety(((Device) getDevice("feedback_psys_safety")).take());
} catch (Exception ex) {
this.getLogger().log(Level.SEVERE, null, ex);
}
Controller.getInstance().updatePuckTypes();
startTimer(10000, 1000);
updateCameraView();
@@ -126,230 +140,233 @@ public class MainPanel extends Panel {
@Override
protected void onTimer() {
devicesPanel.update();
try{
try {
labelRoomTemperature.setVisible(Controller.getInstance().isRoomTemp());
} catch( Exception ex){
} catch (Exception ex) {
labelRoomTemperature.setVisible(false);
}
try{
try {
labeManualMode.setVisible(Controller.getInstance().isManualMode());
} catch( Exception ex){
} catch (Exception ex) {
labeManualMode.setVisible(false);
}
}
void updateLevel(Object value){
if ((value == null) || !(value instanceof Number)){
}
}
void updateLevel(Object value) {
if ((value == null) || !(value instanceof Number)) {
progressLN2.setIndeterminate(true);
} else {
progressLN2.setIndeterminate(false);
double val = ((Number)value).doubleValue() * 10.0;
progressLN2.setValue(Math.min(Math.max((int)val, 0), 1000));
}
double val = ((Number) value).doubleValue() * 10.0;
progressLN2.setValue(Math.min(Math.max((int) val, 0), 1000));
}
}
void updateFillingDeware(Object value){
if ((value == null) || !(value instanceof Boolean)){
void updateFillingDeware(Object value) {
if ((value == null) || !(value instanceof Boolean)) {
ledFillingDewar.setColor(Color.BLACK);
} else if ((Boolean)value){
} else if ((Boolean) value) {
ledFillingDewar.setColor(Color.GREEN);
} else {
ledFillingDewar.setColor(Color.BLACK);
}
}
void updateFillingControl(Object value){
if ((value == null) || !(value instanceof Boolean)){
}
}
void updateFillingControl(Object value) {
if ((value == null) || !(value instanceof Boolean)) {
ledFillingControl.setColor(Color.BLACK);
} else if ((Boolean)value){
} else if ((Boolean) value) {
ledFillingControl.setColor(Color.GREEN);
} else {
ledFillingControl.setColor(Color.BLACK);
}
}
void updateAirPressure(Object value){
if ((value == null) || !(value instanceof Boolean)){
}
}
void updateAirPressure(Object value) {
if ((value == null) || !(value instanceof Boolean)) {
ledAirPressure.setColor(Color.BLACK);
} else if ((Boolean)value){
} else if ((Boolean) value) {
ledAirPressure.setColor(Color.GREEN);
} else {
ledAirPressure.setColor(Color.RED);
}
}
void updateN2Pressure(Object value){
if ((value == null) || !(value instanceof Boolean)){
}
}
void updateN2Pressure(Object value) {
if ((value == null) || !(value instanceof Boolean)) {
ledN2Pressure.setColor(Color.BLACK);
} else if ((Boolean)value){
} else if ((Boolean) value) {
ledN2Pressure.setColor(Color.GREEN);
} else {
ledN2Pressure.setColor(Color.RED);
}
}
}
}
void updateLocalSafety(Object value){
if ((value == null) || !(value instanceof Boolean)){
void updateLocalSafety(Object value) {
if ((value == null) || !(value instanceof Boolean)) {
ledLocalSafety.setColor(Color.BLACK);
} else if ((Boolean)value){
} else if ((Boolean) value) {
ledLocalSafety.setColor(Color.GREEN);
} else {
ledLocalSafety.setColor(Color.RED);
}
}
}
}
void updatePsysSafety(Object value){
if ((value == null) || !(value instanceof Boolean)){
void updatePsysSafety(Object value) {
if ((value == null) || !(value instanceof Boolean)) {
ledPsysSafety.setColor(Color.BLACK);
} else if ((Boolean)value){
} else if ((Boolean) value) {
ledPsysSafety.setColor(Color.GREEN);
} else {
ledPsysSafety.setColor(Color.RED);
}
}
void updateCameraView(){
Source source = buttonCamera.isSelected() ? (Source)this.getDevice("img"): null;
basePlatePanel.setCameraView(source);
}
}
void execute(String statement){
void updateCameraView() {
Source source = buttonCamera.isSelected() ? (Source) this.getDevice("img") : null;
basePlatePanel.setCameraView(source);
}
void execute(String statement) {
execute(statement, false);
}
void execute(String statement, boolean background){
void execute(String statement, boolean background) {
execute(statement, background, false);
}
void execute(String statement, boolean background, boolean showReturn){
void execute(String statement, boolean background, boolean showReturn) {
try {
evalAsync(statement, background).handle((ret, ex) -> {
if (ex != null){
showException((Exception)ex);
} else if (showReturn){
if (ex != null) {
showException((Exception) ex);
} else if (showReturn) {
showMessage("Return", String.valueOf(ret));
}
return ret;
});
} catch (Exception ex) {
showException(ex);
}
}
}
void execute(String script, Object args, boolean background, boolean showReturn){
void execute(String script, Object args, boolean background, boolean showReturn) {
try {
runAsync(script, args, background).handle((ret, ex) -> {
if (ex != null){
showException((Exception)ex);
} else if (showReturn){
if (ex != null) {
showException((Exception) ex);
} else if (showReturn) {
showMessage("Return", String.valueOf(ret));
}
return ret;
});
} catch (Exception ex) {
showException(ex);
}
}
void updateViewType(){
try{
}
}
void updateViewType() {
try {
updateCameraView();
} catch (Exception ex) {
showException(ex);
}
}
}
boolean viewDewar = true;
RoomTempBasePlatePanel roomTempPanel;
void updateViewMode(){
try{
if (btViewDewar.isSelected() != viewDewar){
void updateViewMode() {
try {
if (btViewDewar.isSelected() != viewDewar) {
viewDewar = btViewDewar.isSelected();
if (viewDewar){
((GroupLayout)getLayout()).replace(roomTempPanel, basePlatePanel);
if (viewDewar) {
((GroupLayout) getLayout()).replace(roomTempPanel, basePlatePanel);
} else {
if (roomTempPanel == null){
if (roomTempPanel == null) {
roomTempPanel = new RoomTempBasePlatePanel();
roomTempPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("RT Humidifier"));
}
((GroupLayout)getLayout()).replace(basePlatePanel, roomTempPanel);
((GroupLayout) getLayout()).replace(basePlatePanel, roomTempPanel);
}
}
} catch (Exception ex) {
showException(ex);
}
}
}
void setExpertMode(boolean expert){
void setExpertMode(boolean expert) {
buttonExpertCommands.setVisible(expert);
buttonRecovery.setVisible(expert);
buttonCalibrateImage.setVisible(expert);
buttonCalibrateCover.setVisible(expert);
devicesPanel.setActive(expert);
buttonRelease.setVisible(expert);
panelViewType.setVisible(expert);
panelDetection.setVisible(expert);
if (checkExpert.isSelected()!=expert){
checkExpert.setSelected(expert);
buttonDetectCover.setVisible(expert);
buttonConfig.setVisible(expert);
if (checkExpert.isSelected() != expert) {
checkExpert.setSelected(expert);
}
if (expert==false){
if (expert == false) {
buttonCamera.setSelected(false);
buttonDrawing.setSelected(true);
updateViewType();
updateViewType();
}
}
Plugin commandsPlugin;
void showCommandsPanel(){
if (commandsPlugin!=null){
void showCommandsPanel() {
if (commandsPlugin != null) {
getContext().getPluginManager().unloadPlugin(commandsPlugin);
}
commandsPlugin = getContext().getPluginManager().loadInitializePlugin(getContext().getSetup().expandPath("{plugins}/Commands.java"));
}
Plugin recoveryPlugin;
void showRecoveryPanel(){
if (recoveryPlugin!=null){
void showRecoveryPanel() {
if (recoveryPlugin != null) {
getContext().getPluginManager().unloadPlugin(recoveryPlugin);
}
recoveryPlugin = getContext().getPluginManager().loadInitializePlugin(getContext().getSetup().expandPath("{plugins}/Recovery.java"));
recoveryPlugin = getContext().getPluginManager().loadInitializePlugin(getContext().getSetup().expandPath("{plugins}/Recovery.java"));
}
void setDefaultDetail() {
void setDefaultDetail() {
JLabel label = new JLabel();
label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/apple_transparent_white_100x50.png")));
JPanel panel = new JPanel();
label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/apple_transparent_white_100x50.png")));
JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());
panel.add(label);
setDetail(panel);
//setContext(label);
}
void setDetail(Component c) {
panelContext.removeAll();
panelContext.setLayout(new BorderLayout());
panelContext.setLayout(new BorderLayout());
//panelContext.setLayout(new GridBagLayout());
panelContext.add(c);
updateUI();
}
Component getDetail() {
return this.getComponent(0);
}
Dimension getDetailSize(){
Dimension getDetailSize() {
return panelContext.getSize();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
@@ -372,6 +389,7 @@ public class MainPanel extends Panel {
buttonPuckDet = new javax.swing.JButton();
panelHexiposi = new javax.swing.JPanel();
hexiposiPanel = new ch.psi.mxsc.HexiposiPanel();
buttonDetectCover = new javax.swing.JButton();
panelViewType = new javax.swing.JPanel();
buttonCamera = new javax.swing.JToggleButton();
buttonDrawing = new javax.swing.JToggleButton();
@@ -392,6 +410,8 @@ public class MainPanel extends Panel {
buttonExpertCommands = new javax.swing.JButton();
buttonRecovery = new javax.swing.JButton();
buttonCalibrateImage = new javax.swing.JButton();
buttonCalibrateCover = new javax.swing.JButton();
buttonConfig = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
ledFillingControl = new ch.psi.pshell.swing.Led();
ledFillingDewar = new ch.psi.pshell.swing.Led();
@@ -533,11 +553,11 @@ public class MainPanel extends Panel {
panelDetectionLayout.setHorizontalGroup(
panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelDetectionLayout.createSequentialGroup()
.addContainerGap(12, Short.MAX_VALUE)
.addContainerGap(14, 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(12, Short.MAX_VALUE))
.addContainerGap(14, Short.MAX_VALUE))
);
panelDetectionLayout.setVerticalGroup(
panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -550,22 +570,34 @@ public class MainPanel extends Panel {
);
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);
}
});
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()
.addGap(0, 4, Short.MAX_VALUE)
.addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 4, Short.MAX_VALUE))
.addContainerGap(13, 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(14, Short.MAX_VALUE))
);
panelHexiposiLayout.setVerticalGroup(
panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelHexiposiLayout.createSequentialGroup()
.addGap(0, 24, Short.MAX_VALUE)
.addContainerGap(15, Short.MAX_VALUE)
.addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(35, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE)
.addComponent(buttonDetectCover)
.addContainerGap())
);
panelViewType.setBorder(javax.swing.BorderFactory.createTitledBorder("View"));
@@ -578,7 +610,7 @@ public class MainPanel extends Panel {
});
buttonDrawing.setSelected(true);
buttonDrawing.setText("Drawing");
buttonDrawing.setText("Design");
buttonDrawing.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonDrawingActionPerformed(evt);
@@ -590,11 +622,11 @@ public class MainPanel extends Panel {
panelViewTypeLayout.setHorizontalGroup(
panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelViewTypeLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addGroup(panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonCamera, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonDrawing))
.addGap(2, 2, 2))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(buttonDrawing)
.addComponent(buttonCamera))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelViewTypeLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCamera, buttonDrawing});
@@ -616,16 +648,16 @@ public class MainPanel extends Panel {
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, basePlatePanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelDetection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.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, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelViewType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelHexiposi, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.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))
.addContainerGap())
);
basePlatePanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panelDetection, panelHexiposi, panelLegend, panelViewType});
basePlatePanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panelDetection, panelViewType});
basePlatePanelLayout.setVerticalGroup(
basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -685,11 +717,11 @@ public class MainPanel extends Panel {
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(progressLN2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap(65, Short.MAX_VALUE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, 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, 61, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, 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)
@@ -774,6 +806,20 @@ public class MainPanel extends Panel {
}
});
buttonCalibrateCover.setText("Cover Ref");
buttonCalibrateCover.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonCalibrateCoverActionPerformed(evt);
}
});
buttonConfig.setText("Config");
buttonConfig.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonConfigActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(
@@ -786,7 +832,9 @@ public class MainPanel extends Panel {
.addComponent(buttonExpertCommands, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(checkExpert, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonRecovery, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonCalibrateImage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(buttonCalibrateImage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonCalibrateCover, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonConfig, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel5Layout.setVerticalGroup(
@@ -799,11 +847,15 @@ public class MainPanel extends Panel {
.addComponent(checkExpert)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonExpertCommands)
.addGap(18, 18, 18)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonRecovery)
.addGap(18, 18, 18)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonCalibrateImage)
.addGap(49, 49, 49))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonCalibrateCover)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonConfig)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Control"));
@@ -1158,9 +1210,8 @@ public class MainPanel extends Panel {
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel12, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jPanel8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel12, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
@@ -1171,15 +1222,15 @@ public class MainPanel extends Panel {
private void buttonCameraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCameraActionPerformed
buttonDrawing.setSelected(!buttonCamera.isSelected());
updateViewType();
updateViewType();
}//GEN-LAST:event_buttonCameraActionPerformed
private void buttonExpertCommandsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExpertCommandsActionPerformed
try{
try {
showCommandsPanel();
} catch (Exception ex) {
showException(ex);
}
}
}//GEN-LAST:event_buttonExpertCommandsActionPerformed
//Dialog dlgDetPlot;
@@ -1188,9 +1239,9 @@ public class MainPanel extends Panel {
JComponent dlgDetPlotComp;
JComponent dlgDetTextComp;
JComponent dlgDetRendererComp;
private void buttonPuckDetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPuckDetActionPerformed
try{
try {
/*
if ((dlgDetPlot == null) || (!dlgDetPlot.isShowing())){
dlgDetPlotComp = new ch.psi.pshell.plot.LinePlotJFree();
@@ -1202,27 +1253,27 @@ public class MainPanel extends Panel {
((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())){
*/
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);
}
((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
private void buttonClearDetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonClearDetActionPerformed
try{
try {
Controller.getInstance().clearImageDetection();
} catch (Exception ex) {
showException(ex);
}
}
}//GEN-LAST:event_buttonClearDetActionPerformed
private void buttonReleaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonReleaseActionPerformed
@@ -1253,25 +1304,78 @@ public class MainPanel extends Panel {
}//GEN-LAST:event_btViewRTActionPerformed
private void buttonRecoveryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRecoveryActionPerformed
try{
try {
showRecoveryPanel();
} catch (Exception ex) {
showException(ex);
}
}
}//GEN-LAST:event_buttonRecoveryActionPerformed
private void buttonCalibrateImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCalibrateImageActionPerformed
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
execute("imgproc/CoverDetectionCalibration", null, false, true);
}//GEN-LAST:event_buttonCalibrateCoverActionPerformed
private void buttonConfigActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonConfigActionPerformed
try {
final PropertiesDialog dlg = new PropertiesDialog((Frame) getTopLevelAncestor(), false);
dlg.setTitle("System Configuration");
Properties props = new Properties();
String fileName = getSessionPath() + "/OpenedFiles.dat";
try (FileInputStream in = new FileInputStream(fileName)) {
props.load(in);
}
dlg.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
dlg.setListener((StandardDialog sd, boolean accepted) -> {
if (sd.getResult()) {
try (FileOutputStream out = new FileOutputStream(fileName);) {
props.store(out, null);
} catch (IOException ex) {
SwingUtils.showException(MainPanel.this, ex);
}
}
});
dlg.setVisible(true);
SwingUtils.centerComponent(getTopLevelAncestor(), dlg);
dlg.requestFocus();
} catch (Exception ex) {
SwingUtils.showException(MainPanel.this, ex);
}
}//GEN-LAST:event_buttonConfigActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private ch.psi.mxsc.BasePlatePanel basePlatePanel;
private javax.swing.JToggleButton btViewDewar;
private javax.swing.JToggleButton btViewRT;
private javax.swing.JButton buttonCalibrateCover;
private javax.swing.JButton buttonCalibrateImage;
private javax.swing.JToggleButton buttonCamera;
private javax.swing.JButton buttonClearDet;
private javax.swing.JButton buttonConfig;
private javax.swing.JButton buttonDetectCover;
private javax.swing.JToggleButton buttonDrawing;
private javax.swing.JButton buttonExpertCommands;
private javax.swing.JButton buttonInitHexiposi1;

View File

@@ -82,17 +82,17 @@ public class Puck extends DeviceBase {
final static PointDouble labelPositionWithImage = new PointDouble(0.0, 36.0);
ImageDetection imageDetection = ImageDetection.Unknown;
PuckType puckType = PuckType.Unknown;
public ImageDetection getImageDetection(){
return imageDetection;
public PuckType getPuckType(){
return puckType;
}
public void setImageDetection(ImageDetection value){
imageDetection = value;
public void setPuckType(PuckType value){
puckType = value;
}
public enum ImageDetection{
public enum PuckType{
Empty,
Minispine,
Unipuck,
@@ -306,8 +306,8 @@ public class Puck extends DeviceBase {
ret = isHighlithted() ? new Color(212, 212, 212) : Color.LIGHT_GRAY;
break;
case Present:
if ((imageDetection != null) && (imageDetection != ImageDetection.Unknown)){
switch (imageDetection){
if ((puckType != null) && (puckType != PuckType.Unknown)){
switch (puckType){
case Minispine:
ret = isHighlithted() ? new Color(0, 200, 80) : new Color(128, 232, 152);
break;