This commit is contained in:
gac-S_Changer
2018-07-06 09:55:46 +02:00
parent eb45f26d1c
commit 8800ea11be
15 changed files with 1597 additions and 879 deletions

View File

@@ -120,6 +120,11 @@ public class Controller {
public PuckState[] getPuckStates() {
return puckState;
}
public Puck getPuck(String name){
return basePlate.getPuckByName(name);
}
EseraDetection detection;
//From 1 to PUCKS_NUMBER
@@ -155,12 +160,20 @@ public class Controller {
public Boolean isLedRoomTemp() {
try {
return ((ProcessVariableBase) getMainFrame().getDevice("led_ctrl_1")).getConfig().maxValue <= 0.50;
return getMainFrame().eval("is_led_room_temp()", true).equals(true);
} catch (Exception ex) {
return null;
return null;
}
}
public Boolean isRoomTemp() {
try {
return getMainFrame().eval("is_room_temp()", true).equals(true);
} catch (Exception ex) {
return null;
}
}
public void imageDetectPucks() throws Context.ContextStateException {
imageDetectPucks(null, null, null);
}
@@ -200,8 +213,8 @@ public class Controller {
}
void onPuckPressed(Puck puck){
getMainFrame().textDetSensors.setText(String.valueOf(puck.getDetection()));
getMainFrame().textDetImage.setText(String.valueOf(puck.getImageDetection()));
//getMainFrame().textDetSensors.setText(String.valueOf(puck.getDetection()));
//getMainFrame().textDetImage.setText(String.valueOf(puck.getImageDetection()));
}
void onSamplePressed(Sample sample){

View File

@@ -22,37 +22,47 @@
<Group type="102" alignment="0" attributes="0">
<Component id="ledRobot" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel24" min="-2" max="-2" attributes="0"/>
<Component id="labelRobot" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="ledWago" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel25" min="-2" max="-2" attributes="0"/>
<Component id="labelWago" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="ledLaser" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel26" min="-2" max="-2" attributes="0"/>
<Component id="labelLaser" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="ledCamera" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel27" min="-2" max="-2" attributes="0"/>
<Component id="labelCamera" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="ledHexiposi" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel28" min="-2" max="-2" attributes="0"/>
<Component id="labelHexiposi" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="ledBarcodeReader" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel29" min="-2" max="-2" attributes="0"/>
<Component id="labelReader" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="ledPuckDetection" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel30" min="-2" max="-2" attributes="0"/>
<Component id="labelPuckDetection" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="ledSmartMagnet" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="labelSmartMagnet" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="ledGripperImage" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="labelGripperImage" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace max="32767" attributes="0"/>
@@ -65,37 +75,47 @@
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledRobot" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel24" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelRobot" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledWago" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel25" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelWago" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledLaser" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel26" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelLaser" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledCamera" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel27" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelCamera" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledHexiposi" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel28" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelHexiposi" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledBarcodeReader" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel29" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelReader" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledPuckDetection" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel30" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelPuckDetection" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledSmartMagnet" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelSmartMagnet" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledGripperImage" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="labelGripperImage" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
@@ -103,54 +123,131 @@
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel24">
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelRobot">
<Properties>
<Property name="text" type="java.lang.String" value="Robot"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledRobotMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledRobot">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledRobotMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledWago">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelWagoMouseClicked"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel25">
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelWago">
<Properties>
<Property name="text" type="java.lang.String" value="Wago"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelWagoMouseClicked"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel26">
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelLaser">
<Properties>
<Property name="text" type="java.lang.String" value="Laser"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledLaserMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledLaser">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledLaserMouseClicked"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel27">
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelCamera">
<Properties>
<Property name="text" type="java.lang.String" value="Camera"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledCameraMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledCamera">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledCameraMouseClicked"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel28">
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelHexiposi">
<Properties>
<Property name="text" type="java.lang.String" value="Hexiposi"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelHexiposiMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledHexiposi">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelHexiposiMouseClicked"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel29">
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelReader">
<Properties>
<Property name="text" type="java.lang.String" value="Barcode Reader"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelReaderMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledBarcodeReader">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelReaderMouseClicked"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel30">
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelPuckDetection">
<Properties>
<Property name="text" type="java.lang.String" value="Puck Detection"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledPuckDetectionMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledPuckDetection">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="ledPuckDetectionMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledSmartMagnet">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelSmartMagnetMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelSmartMagnet">
<Properties>
<Property name="text" type="java.lang.String" value="Smart Magnet"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelSmartMagnetMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledGripperImage">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelGripperImageMouseClicked"/>
</Events>
</Component>
<Component class="ch.psi.mxsc.HyperlinkLabel" name="labelGripperImage">
<Properties>
<Property name="text" type="java.lang.String" value="Gripper Image"/>
<Property name="active" type="boolean" value="true"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="labelGripperImageMouseClicked"/>
</Events>
</Component>
</SubComponents>
</Form>

View File

@@ -3,12 +3,10 @@ package ch.psi.mxsc;
import ch.psi.pshell.device.Device;
import ch.psi.pshell.device.DeviceAdapter;
import ch.psi.pshell.device.GenericDevice;
import ch.psi.pshell.imaging.Data;
import ch.psi.pshell.imaging.ImageListener;
import ch.psi.pshell.swing.Led;
import ch.psi.utils.State;
import ch.psi.utils.swing.SwingUtils;
import java.awt.Color;
import java.awt.image.BufferedImage;
/**
*
@@ -21,7 +19,10 @@ public class DevicesPanel extends javax.swing.JPanel {
GenericDevice wago;
GenericDevice laser;
GenericDevice puck_detection;
GenericDevice img;
GenericDevice sm;
GenericDevice img;
GenericDevice gripper_cam;
/**
* Creates new form DevicesPanel
*/
@@ -30,7 +31,7 @@ public class DevicesPanel extends javax.swing.JPanel {
}
GenericDevice[] getDevices(){
return new GenericDevice[]{robot, hexiposi, microscan, wago, laser, puck_detection};
return new GenericDevice[]{robot, hexiposi, microscan, wago, laser, puck_detection, sm};
}
final DeviceAdapter deviceListener = new DeviceAdapter() {
@@ -53,24 +54,28 @@ public class DevicesPanel extends javax.swing.JPanel {
wago = Controller.getInstance().getDevice("wago");
laser = Controller.getInstance().getDevice("ue");
puck_detection = Controller.getInstance().getDevice("puck_detection");
img = Controller.getInstance().getDevice("img");
img = Controller.getInstance().getDevice("img");
gripper_cam = Controller.getInstance().getDevice("gripper_cam");
sm = Controller.getInstance().getDevice("smart_magnet");
update();
for (GenericDevice dev : getDevices()){
if (dev!=null){
dev.addListener(deviceListener);
}
}
}
}
void update(){
setLedState(ledBarcodeReader, microscan);
setLedState(ledCamera, img);
setLedState(ledGripperImage, gripper_cam);
setLedState(ledHexiposi, hexiposi);
setLedState(ledLaser, laser);
setLedState(ledPuckDetection, puck_detection);
setLedState(ledRobot, robot);
setLedState(ledWago, wago);
setLedState(ledSmartMagnet, sm);
}
void setLedState(Led led, GenericDevice dev){
@@ -100,6 +105,45 @@ public class DevicesPanel extends javax.swing.JPanel {
}
}
void showDevicePanel(String device){
if (isActive()){
try{
Controller.getInstance().getMainFrame().showDevicePanel(device);
} catch (Exception ex) {
SwingUtils.showException(this, ex);
}
}
}
void showRenderer(String device){
if (isActive()){
try{
Controller.getInstance().getMainFrame().showRenderer(device);
} catch (Exception ex) {
SwingUtils.showException(this, ex);
}
}
}
boolean active = true;
public void setActive(boolean value){
active = value;
labelCamera.setActive(value);
labelGripperImage.setActive(value);
labelHexiposi.setActive(value);
labelLaser.setActive(value);
labelPuckDetection.setActive(value);
labelReader.setActive(value);
labelRobot.setActive(value);
labelSmartMagnet.setActive(value);
labelWago.setActive(value);
}
public boolean isActive(){
return active;
}
/**
* 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
@@ -109,34 +153,150 @@ public class DevicesPanel extends javax.swing.JPanel {
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabel24 = new javax.swing.JLabel();
labelRobot = new ch.psi.mxsc.HyperlinkLabel();
ledRobot = new ch.psi.pshell.swing.Led();
ledWago = new ch.psi.pshell.swing.Led();
jLabel25 = new javax.swing.JLabel();
jLabel26 = new javax.swing.JLabel();
labelWago = new ch.psi.mxsc.HyperlinkLabel();
labelLaser = new ch.psi.mxsc.HyperlinkLabel();
ledLaser = new ch.psi.pshell.swing.Led();
jLabel27 = new javax.swing.JLabel();
labelCamera = new ch.psi.mxsc.HyperlinkLabel();
ledCamera = new ch.psi.pshell.swing.Led();
jLabel28 = new javax.swing.JLabel();
labelHexiposi = new ch.psi.mxsc.HyperlinkLabel();
ledHexiposi = new ch.psi.pshell.swing.Led();
jLabel29 = new javax.swing.JLabel();
labelReader = new ch.psi.mxsc.HyperlinkLabel();
ledBarcodeReader = new ch.psi.pshell.swing.Led();
jLabel30 = new javax.swing.JLabel();
labelPuckDetection = new ch.psi.mxsc.HyperlinkLabel();
ledPuckDetection = new ch.psi.pshell.swing.Led();
ledSmartMagnet = new ch.psi.pshell.swing.Led();
labelSmartMagnet = new ch.psi.mxsc.HyperlinkLabel();
ledGripperImage = new ch.psi.pshell.swing.Led();
labelGripperImage = new ch.psi.mxsc.HyperlinkLabel();
jLabel24.setText("Robot");
labelRobot.setText("Robot");
labelRobot.setActive(true);
labelRobot.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledRobotMouseClicked(evt);
}
});
jLabel25.setText("Wago");
ledRobot.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledRobotMouseClicked(evt);
}
});
jLabel26.setText("Laser");
ledWago.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelWagoMouseClicked(evt);
}
});
jLabel27.setText("Camera");
labelWago.setText("Wago");
labelWago.setActive(true);
labelWago.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelWagoMouseClicked(evt);
}
});
jLabel28.setText("Hexiposi");
labelLaser.setText("Laser");
labelLaser.setActive(true);
labelLaser.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledLaserMouseClicked(evt);
}
});
jLabel29.setText("Barcode Reader");
ledLaser.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledLaserMouseClicked(evt);
}
});
jLabel30.setText("Puck Detection");
labelCamera.setText("Camera");
labelCamera.setActive(true);
labelCamera.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledCameraMouseClicked(evt);
}
});
ledCamera.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledCameraMouseClicked(evt);
}
});
labelHexiposi.setText("Hexiposi");
labelHexiposi.setActive(true);
labelHexiposi.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelHexiposiMouseClicked(evt);
}
});
ledHexiposi.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelHexiposiMouseClicked(evt);
}
});
labelReader.setText("Barcode Reader");
labelReader.setActive(true);
labelReader.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelReaderMouseClicked(evt);
}
});
ledBarcodeReader.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelReaderMouseClicked(evt);
}
});
labelPuckDetection.setText("Puck Detection");
labelPuckDetection.setActive(true);
labelPuckDetection.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledPuckDetectionMouseClicked(evt);
}
});
ledPuckDetection.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ledPuckDetectionMouseClicked(evt);
}
});
ledSmartMagnet.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelSmartMagnetMouseClicked(evt);
}
});
labelSmartMagnet.setText("Smart Magnet");
labelSmartMagnet.setActive(true);
labelSmartMagnet.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelSmartMagnetMouseClicked(evt);
}
});
ledGripperImage.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelGripperImageMouseClicked(evt);
}
});
labelGripperImage.setText("Gripper Image");
labelGripperImage.setActive(true);
labelGripperImage.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
labelGripperImageMouseClicked(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
@@ -148,31 +308,39 @@ public class DevicesPanel extends javax.swing.JPanel {
.addGroup(layout.createSequentialGroup()
.addComponent(ledRobot, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel24))
.addComponent(labelRobot, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledWago, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel25))
.addComponent(labelWago, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledLaser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel26))
.addComponent(labelLaser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledCamera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel27))
.addComponent(labelCamera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledHexiposi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel28))
.addComponent(labelHexiposi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledBarcodeReader, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel29))
.addComponent(labelReader, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledPuckDetection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel30)))
.addComponent(labelPuckDetection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledSmartMagnet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(labelSmartMagnet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(ledGripperImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(labelGripperImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
@@ -181,50 +349,98 @@ public class DevicesPanel extends javax.swing.JPanel {
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledRobot, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel24))
.addComponent(labelRobot, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledWago, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel25))
.addComponent(labelWago, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledLaser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel26))
.addComponent(labelLaser, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledCamera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel27))
.addComponent(labelCamera, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledHexiposi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel28))
.addComponent(labelHexiposi, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledBarcodeReader, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel29))
.addComponent(labelReader, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledPuckDetection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel30))
.addComponent(labelPuckDetection, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledSmartMagnet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelSmartMagnet, 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(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledGripperImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelGripperImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
private void labelHexiposiMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_labelHexiposiMouseClicked
showDevicePanel("hexiposi");
}//GEN-LAST:event_labelHexiposiMouseClicked
private void ledRobotMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ledRobotMouseClicked
showDevicePanel("robot");
}//GEN-LAST:event_ledRobotMouseClicked
private void labelSmartMagnetMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_labelSmartMagnetMouseClicked
showDevicePanel("smart_magnet");
}//GEN-LAST:event_labelSmartMagnetMouseClicked
private void ledCameraMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ledCameraMouseClicked
showDevicePanel("img camera");
}//GEN-LAST:event_ledCameraMouseClicked
private void ledLaserMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ledLaserMouseClicked
showDevicePanel("ue");
}//GEN-LAST:event_ledLaserMouseClicked
private void labelWagoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_labelWagoMouseClicked
showDevicePanel("wago");
}//GEN-LAST:event_labelWagoMouseClicked
private void labelReaderMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_labelReaderMouseClicked
showDevicePanel("barcode_reader");
}//GEN-LAST:event_labelReaderMouseClicked
private void ledPuckDetectionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ledPuckDetectionMouseClicked
showDevicePanel("puck_detection");
}//GEN-LAST:event_ledPuckDetectionMouseClicked
private void labelGripperImageMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_labelGripperImageMouseClicked
showRenderer("gripper_cam");
}//GEN-LAST:event_labelGripperImageMouseClicked
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel25;
private javax.swing.JLabel jLabel26;
private javax.swing.JLabel jLabel27;
private javax.swing.JLabel jLabel28;
private javax.swing.JLabel jLabel29;
private javax.swing.JLabel jLabel30;
private ch.psi.mxsc.HyperlinkLabel labelCamera;
private ch.psi.mxsc.HyperlinkLabel labelGripperImage;
private ch.psi.mxsc.HyperlinkLabel labelHexiposi;
private ch.psi.mxsc.HyperlinkLabel labelLaser;
private ch.psi.mxsc.HyperlinkLabel labelPuckDetection;
private ch.psi.mxsc.HyperlinkLabel labelReader;
private ch.psi.mxsc.HyperlinkLabel labelRobot;
private ch.psi.mxsc.HyperlinkLabel labelSmartMagnet;
private ch.psi.mxsc.HyperlinkLabel labelWago;
private ch.psi.pshell.swing.Led ledBarcodeReader;
private ch.psi.pshell.swing.Led ledCamera;
private ch.psi.pshell.swing.Led ledGripperImage;
private ch.psi.pshell.swing.Led ledHexiposi;
private ch.psi.pshell.swing.Led ledLaser;
private ch.psi.pshell.swing.Led ledPuckDetection;
private ch.psi.pshell.swing.Led ledRobot;
private ch.psi.pshell.swing.Led ledSmartMagnet;
private ch.psi.pshell.swing.Led ledWago;
// End of variables declaration//GEN-END:variables
}

View File

@@ -0,0 +1,77 @@
package ch.psi.mxsc;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.JLabel;
public class HyperlinkLabel extends JLabel {
private Color hyperlinkColor = Color.BLUE.darker();
private Color underlineColor = null;
private Color inactiveColor;
boolean active;
public HyperlinkLabel() {
this("");
}
public HyperlinkLabel(String label) {
super(label);
inactiveColor = getForeground();
setActive(true);
}
public void setActive(boolean active) {
this.active = active;
if (active) {
setForeground(hyperlinkColor);
setCursor(new Cursor(Cursor.HAND_CURSOR));
} else {
setForeground(inactiveColor);
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (active) {
g.setColor(underlineColor == null ? hyperlinkColor : underlineColor);
Insets insets = getInsets();
int left = insets.left;
if (getIcon() != null) {
left += getIcon().getIconWidth() + getIconTextGap();
}
g.drawLine(left, getHeight() - 1 - insets.bottom, (int) getPreferredSize().getWidth() - insets.right, getHeight() - 1 - insets.bottom);
}
}
public Color getHiperlinkColor() {
return hyperlinkColor;
}
public void setHiperlinkColor(Color color) {
this.hyperlinkColor = color;
}
public Color getUnderlineColor() {
return underlineColor;
}
public void setUnderlineColor(Color color) {
this.underlineColor = color;
}
public Color getInactiveColor() {
return inactiveColor;
}
public void setInactiveColor(Color color) {
this.inactiveColor = color;
}
}

View File

@@ -21,10 +21,9 @@
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="basePlatePanel" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="roomTempBasePlatePanel1" max="32767" attributes="0"/>
<Component id="jPanel5" max="32767" attributes="0"/>
<Component id="panelDewar" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel5" linkSize="17" alignment="0" min="310" pref="310" max="-2" attributes="0"/>
<Component id="panelContext" linkSize="17" alignment="0" min="-2" pref="310" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="jPanel2" min="-2" max="-2" attributes="0"/>
@@ -33,13 +32,15 @@
<Component id="jPanel4" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="jPanel13" max="32767" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jPanel6" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="jPanel7" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="jPanel6" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="jPanel8" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="jPanel12" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="jPanel10" max="32767" attributes="0"/>
</Group>
</Group>
@@ -49,28 +50,25 @@
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="1" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="roomTempBasePlatePanel1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="panelContext" pref="214" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jPanel5" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="panelDewar" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="jPanel2" max="32767" attributes="0"/>
<Component id="jPanel1" alignment="0" max="32767" attributes="0"/>
<Component id="basePlatePanel" max="32767" attributes="0"/>
</Group>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="jPanel4" linkSize="2" max="32767" attributes="0"/>
<Component id="jPanel6" linkSize="2" max="32767" attributes="0"/>
<Component id="jPanel7" linkSize="2" alignment="0" max="32767" attributes="0"/>
<Component id="jPanel8" linkSize="2" alignment="1" max="32767" attributes="0"/>
<Component id="jPanel10" linkSize="2" alignment="1" max="32767" attributes="0"/>
</Group>
<Component id="jPanel13" linkSize="2" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="jPanel4" linkSize="2" max="32767" attributes="0"/>
<Component id="jPanel6" linkSize="2" max="32767" attributes="0"/>
<Component id="jPanel7" linkSize="2" alignment="0" max="32767" attributes="0"/>
<Component id="jPanel8" linkSize="2" alignment="0" max="32767" attributes="0"/>
<Component id="jPanel10" linkSize="2" alignment="0" max="32767" attributes="0"/>
<Component id="jPanel13" linkSize="2" max="32767" attributes="0"/>
<Component id="jPanel12" alignment="0" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -88,63 +86,42 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="buttonPuckDet" max="32767" attributes="0"/>
<Component id="buttonCamera" min="-2" max="-2" attributes="0"/>
<Component id="buttonClearDet" alignment="0" max="32767" attributes="0"/>
</Group>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="jPanel11" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="375" max="32767" attributes="0"/>
<Component id="panelDet" linkSize="3" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="panelLegend" linkSize="9" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="panelHexiposi" linkSize="9" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel9" linkSize="9" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="panelDet" linkSize="9" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="buttonCamera" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonPuckDet" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonClearDet" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="panelHexiposi" linkSize="8" min="-2" max="-2" attributes="0"/>
<Component id="jPanel9" linkSize="8" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="panelDet" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jPanel11" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="panelDet" linkSize="7" min="-2" max="-2" attributes="0"/>
<Component id="panelLegend" linkSize="7" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JToggleButton" name="buttonCamera">
<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="buttonCameraActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonPuckDet">
<Properties>
<Property name="text" type="java.lang.String" value="Detect"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonPuckDetActionPerformed"/>
</Events>
</Component>
<Container class="javax.swing.JPanel" name="jPanel11">
<Container class="javax.swing.JPanel" name="panelLegend">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
@@ -185,7 +162,7 @@
<Component id="jLabel23" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -212,7 +189,7 @@
<Component id="ledLidControlActive1" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel15" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="ledLidControlActive5" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel23" alignment="3" min="-2" max="-2" attributes="0"/>
@@ -289,14 +266,6 @@
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JButton" name="buttonClearDet">
<Properties>
<Property name="text" type="java.lang.String" value="Clear"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonClearDetActionPerformed"/>
</Events>
</Component>
<Container class="javax.swing.JPanel" name="panelDet">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
@@ -309,70 +278,132 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel21" pref="55" max="32767" attributes="0"/>
<Component id="textDetSensors" alignment="0" max="32767" attributes="0"/>
<Component id="jLabel22" max="32767" attributes="0"/>
<Component id="textDetImage" alignment="0" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<EmptySpace pref="12" 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 max="-2" attributes="0"/>
<EmptySpace pref="12" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace pref="22" max="32767" attributes="0"/>
<Component id="buttonPuckDet" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="buttonClearDet" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="44" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JButton" name="buttonClearDet">
<Properties>
<Property name="text" type="java.lang.String" value="Clear"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonClearDetActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="buttonPuckDet">
<Properties>
<Property name="text" type="java.lang.String" value="Start"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonPuckDetActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="panelHexiposi">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Cover"/>
</Border>
</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"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
<Component id="jLabel21" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="textDetSensors" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel22" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="textDetImage" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="18" max="32767" attributes="0"/>
<EmptySpace min="0" pref="7" max="32767" attributes="0"/>
<Component id="hexiposiPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel21">
<Properties>
<Property name="horizontalAlignment" type="int" value="0"/>
<Property name="text" type="java.lang.String" value="Sensor:"/>
</Properties>
<Component class="ch.psi.mxsc.HexiposiPanel" name="hexiposiPanel">
</Component>
<Component class="javax.swing.JTextField" name="textDetSensors">
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel9">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="View"/>
</Border>
</Property>
</Properties>
<Layout>
<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"/>
</Group>
<EmptySpace min="-2" pref="2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonCamera" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="buttonDrawing" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JToggleButton" name="buttonCamera">
<Properties>
<Property name="horizontalAlignment" type="int" value="0"/>
<Property name="disabledTextColor" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="0" type="rgb"/>
</Property>
<Property name="enabled" type="boolean" value="false"/>
<Property name="text" type="java.lang.String" value="Image"/>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
</AuxValues>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonCameraActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel22">
<Component class="javax.swing.JToggleButton" name="buttonDrawing">
<Properties>
<Property name="horizontalAlignment" type="int" value="0"/>
<Property name="text" type="java.lang.String" value="Image:"/>
<Property name="selected" type="boolean" value="true"/>
<Property name="text" type="java.lang.String" value="Drawing"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="textDetImage">
<Properties>
<Property name="horizontalAlignment" type="int" value="0"/>
<Property name="disabledTextColor" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="0" type="rgb"/>
</Property>
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
</AuxValues>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonDrawingActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
@@ -450,11 +481,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="44" max="32767" attributes="0"/>
<EmptySpace pref="52" 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="40" max="32767" attributes="0"/>
<EmptySpace pref="48" 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"/>
@@ -540,15 +571,6 @@
</Component>
</SubComponents>
</Container>
<Component class="ch.psi.mxsc.RoomTempBasePlatePanel" name="roomTempBasePlatePanel1">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="RT Humidifier Lid States"/>
</Border>
</Property>
</Properties>
</Component>
<Container class="javax.swing.JPanel" name="jPanel5">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
@@ -556,44 +578,64 @@
<TitledBorder title="Devices"/>
</Border>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[300, 282]"/>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="devicesPanel" min="-2" pref="102" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonExpert" min="-2" max="-2" attributes="0"/>
<Component id="devicesPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="81" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="buttonExpertCommands" max="32767" attributes="0"/>
<Component id="checkExpert" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="buttonExpert" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Group type="102" alignment="1" attributes="0">
<Component id="devicesPanel" max="32767" attributes="0"/>
<EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="devicesPanel" pref="0" max="32767" attributes="0"/>
<EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="35" max="-2" attributes="0"/>
<Component id="checkExpert" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="buttonExpertCommands" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JButton" name="buttonExpert">
<Component class="ch.psi.mxsc.DevicesPanel" name="devicesPanel">
<Properties>
<Property name="text" type="java.lang.String" value="Expert "/>
<Property name="active" type="boolean" value="false"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="checkExpert">
<Properties>
<Property name="text" type="java.lang.String" value="Expert"/>
<Property name="horizontalAlignment" type="int" value="11"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonExpertActionPerformed"/>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="checkExpertActionPerformed"/>
</Events>
</Component>
<Component class="ch.psi.mxsc.DevicesPanel" name="devicesPanel">
<Component class="javax.swing.JButton" name="buttonExpertCommands">
<Properties>
<Property name="text" type="java.lang.String" value="Commands"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonExpertCommandsActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
@@ -612,24 +654,28 @@
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="labelRoomTemperature" alignment="0" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="ledFillingControl" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel4" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="ledFillingDewar" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="jLabel14" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel1" pref="32" max="32767" attributes="0"/>
<Component id="ledFillingDewar" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="jLabel14" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="deviceValuePanel1" min="-2" pref="50" max="-2" attributes="0"/>
</Group>
<Component id="jLabel5" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" attributes="0">
<Component id="ledFillingControl" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel4" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="jLabel5" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="24" max="32767" attributes="0"/>
</Group>
</Group>
</Group>
@@ -653,7 +699,9 @@
<Component id="jLabel14" min="-2" max="-2" attributes="0"/>
<Component id="deviceValuePanel1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="31" max="32767" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="labelRoomTemperature" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -688,13 +736,22 @@
<Property name="text" type="java.lang.String" value="Temperature:"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="labelRoomTemperature">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="c8" id="orange" palette="1" red="ff" type="palette"/>
</Property>
<Property name="horizontalAlignment" type="int" value="0"/>
<Property name="text" type="java.lang.String" value="Room Temperature"/>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel6">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Lid Motion Control"/>
<TitledBorder title="Recovering"/>
</Border>
</Property>
</Properties>
@@ -715,11 +772,13 @@
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel7" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="buttonInitHexiposi" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="6" max="32767" attributes="0"/>
<Component id="jPanel9" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<EmptySpace pref="28" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Component id="buttonInitHexiposi" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -736,11 +795,10 @@
<Component id="ledLidInitialized" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel7" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<EmptySpace type="separate" max="32767" attributes="0"/>
<Component id="buttonInitHexiposi" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="26" max="32767" attributes="0"/>
<EmptySpace pref="19" max="32767" attributes="0"/>
</Group>
<Component id="jPanel9" alignment="0" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
</Layout>
@@ -749,58 +807,32 @@
</Component>
<Component class="javax.swing.JLabel" name="jLabel6">
<Properties>
<Property name="text" type="java.lang.String" value="Controller Active"/>
<Property name="text" type="java.lang.String" value="Known position"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="ledLidInitialized">
</Component>
<Component class="javax.swing.JLabel" name="jLabel7">
<Properties>
<Property name="text" type="java.lang.String" value="Initialized"/>
<Property name="text" type="java.lang.String" value="Valid segment"/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="buttonInitHexiposi">
<Properties>
<Property name="text" type="java.lang.String" value="Initialize"/>
<Property name="text" type="java.lang.String" value="Recover"/>
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonInitHexiposiActionPerformed"/>
</Events>
</Component>
<Container class="javax.swing.JPanel" name="jPanel9">
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="hexiposiPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Component id="hexiposiPanel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="ch.psi.mxsc.HexiposiPanel" name="hexiposiPanel">
</Component>
</SubComponents>
</Container>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel7">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Barcode Reader"/>
<TitledBorder title="Beamline Status"/>
</Border>
</Property>
</Properties>
@@ -821,13 +853,8 @@
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel9" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="led7" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel10" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace pref="22" max="32767" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -844,12 +871,7 @@
<Component id="led6" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel9" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="led7" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel10" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="34" max="32767" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -861,28 +883,21 @@
</Component>
<Component class="javax.swing.JLabel" name="jLabel8">
<Properties>
<Property name="text" type="java.lang.String" value="On"/>
<Property name="text" type="java.lang.String" value="Valve state"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel9">
<Properties>
<Property name="text" type="java.lang.String" value="Reading"/>
<Property name="text" type="java.lang.String" value="Transfer permitted"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel10">
<Properties>
<Property name="text" type="java.lang.String" value="Detected"/>
</Properties>
</Component>
<Component class="ch.psi.pshell.swing.Led" name="led7">
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel8">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Robot Gripper"/>
<TitledBorder title="Detection"/>
</Border>
</Property>
</Properties>
@@ -896,12 +911,7 @@
<Group type="102" alignment="0" attributes="0">
<Component id="jLabel13" linkSize="1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="textSample" pref="136" max="32767" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="jLabel12" linkSize="1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="textState" max="32767" attributes="0"/>
<Component id="textSample" pref="51" max="32767" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="jLabel11" linkSize="1" min="-2" max="-2" attributes="0"/>
@@ -921,17 +931,12 @@
<Component id="jLabel11" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="textType" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel12" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="textState" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel13" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="textSample" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="34" max="32767" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -939,12 +944,7 @@
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel11">
<Properties>
<Property name="text" type="java.lang.String" value="Type:"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel12">
<Properties>
<Property name="text" type="java.lang.String" value="State:"/>
<Property name="text" type="java.lang.String" value="Puck:"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel13">
@@ -962,18 +962,13 @@
<Property name="editable" type="boolean" value="false"/>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="textState">
<Properties>
<Property name="editable" type="boolean" value="false"/>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel10">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="RT Humidifier Box"/>
<TitledBorder title="Puck Loading"/>
</Border>
</Property>
</Properties>
@@ -982,18 +977,10 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="led14" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel17" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="led15" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel18" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="buttonInitHexiposi2" max="32767" attributes="0"/>
<Component id="buttonInitHexiposi1" max="32767" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
@@ -1003,52 +990,35 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="led14" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel17" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="led15" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel18" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="60" max="32767" attributes="0"/>
<Component id="buttonInitHexiposi1" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="buttonInitHexiposi2" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="ch.psi.pshell.swing.Led" name="led14">
</Component>
<Component class="ch.psi.pshell.swing.Led" name="led15">
</Component>
<Component class="javax.swing.JLabel" name="jLabel17">
<Component class="javax.swing.JButton" name="buttonInitHexiposi1">
<Properties>
<Property name="text" type="java.lang.String" value="Controller 1 Active"/>
<Property name="text" type="java.lang.String" value="Start"/>
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonInitHexiposi1ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel18">
<Component class="javax.swing.JButton" name="buttonInitHexiposi2">
<Properties>
<Property name="text" type="java.lang.String" value="Controller 2 Active"/>
<Property name="text" type="java.lang.String" value="Data"/>
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="buttonInitHexiposi2ActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Component class="ch.psi.pshell.swing.ProcessVariablePanel" name="panelDewar">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder justification="1" title="Dewar Light"/>
</Border>
</Property>
<Property name="deviceName" type="java.lang.String" value="led_level"/>
<Property name="showAdvanced" type="boolean" value="false"/>
<Property name="showButtons" type="boolean" value="false"/>
<Property name="showLimitButtons" type="boolean" value="false"/>
<Property name="showSlider" type="boolean" value="true"/>
<Property name="showStop" type="boolean" value="false"/>
</Properties>
</Component>
<Container class="javax.swing.JPanel" name="jPanel13">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
@@ -1170,5 +1140,101 @@
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel12">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Mode"/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="btViewDewar" linkSize="15" min="-2" max="-2" attributes="0"/>
<Component id="btViewRT" linkSize="15" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace 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 max="-2" attributes="0"/>
<Component id="btViewDewar" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="btViewRT" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JToggleButton" name="btViewDewar">
<Properties>
<Property name="selected" type="boolean" value="true"/>
<Property name="text" type="java.lang.String" value="Dewar"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btViewDewarActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JToggleButton" name="btViewRT">
<Properties>
<Property name="text" type="java.lang.String" value="RT"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btViewRTActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="panelContext">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Context"/>
</Border>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[300, 95]"/>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace pref="99" max="32767" attributes="0"/>
<Component id="jLabel10" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="99" 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 max="32767" attributes="0"/>
<Component id="jLabel10" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel10">
<Properties>
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
<Image iconType="3" name="/apple_transparent_white_100x50.png"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Form>

File diff suppressed because it is too large Load Diff

View File

@@ -302,7 +302,8 @@ public class Puck extends DeviceBase {
Color ret = Color.LIGHT_GRAY;
switch (detection) {
case Empty:
ret = isHighlithted() ? new Color(224, 224, 224) : Color.LIGHT_GRAY;
//ret = isHighlithted() ? new Color(224, 224, 224) : Color.LIGHT_GRAY;
ret = isHighlithted() ? new Color(212, 212, 212) : Color.LIGHT_GRAY;
break;
case Present:
if ((imageDetection != null) && (imageDetection != ImageDetection.Unknown)){
@@ -371,10 +372,16 @@ public class Puck extends DeviceBase {
}
Font getLabelFont() {
/*
if (plotRect != null) {
return new Font("Times New Roman", Font.BOLD, 18);
}
return new Font("Times New Roman", Font.BOLD, 10);
*/
if (plotRect != null) {
return new Font("Segoe UI", Font.BOLD, 18);
}
return new Font("Segoe UI", Font.BOLD, 12);
}
Font getIdFont() {
@@ -387,7 +394,7 @@ public class Puck extends DeviceBase {
Point getLabelDrawPosition(String text, Graphics g, boolean drawBackground) {
Point pos = drawBackground ? getDrawPosition() : getDrawPosition(labelPositionWithImage);
Dimension textSize = SwingUtils.getTextSize(text, g.getFontMetrics());
return new Point(pos.x - textSize.width / 2, pos.y + (g.getFontMetrics().getAscent() / 2));
return new Point(pos.x - textSize.width / 2 , pos.y + (g.getFontMetrics().getAscent() / 2));
}
Color getBorderColor(boolean drawBackground) {
@@ -463,9 +470,9 @@ public class Puck extends DeviceBase {
//Draw text
String text = getName(); //String.valueOf(getIndex() + 1);
Point labelPosition = getLabelDrawPosition(text, g, drawBackground);
g.setColor(getLabelColor(drawBackground));
g.setFont(getLabelFont());
Point labelPosition = getLabelDrawPosition(text, g, drawBackground);
g.drawString(text, labelPosition.x, labelPosition.y);
if (drawId) {
String id = getId();

View File

@@ -2,14 +2,11 @@ package ch.psi.mxsc;
import ch.psi.pshell.core.JsonSerializer;
import ch.psi.pshell.device.DeviceBase;
import ch.psi.utils.Arr;
import ch.psi.utils.Chrono;
import ch.psi.utils.State;
import ch.psi.utils.Str;
import ch.psi.utils.Threading;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
public class PuckDetection extends DeviceBase {
@@ -62,8 +59,10 @@ public class PuckDetection extends DeviceBase {
}
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
getLogger().fine("Watch-dog thread interrupted");
} catch (Exception ex) {
getLogger().log(Level.INFO, null, ex);
getLogger().log(Level.WARNING, null, ex);
}
}
});
@@ -153,6 +152,15 @@ public class PuckDetection extends DeviceBase {
getLogger().log(Level.INFO, null, ex);
}
}
public PuckState getPuckState(int id) throws Exception {
return Controller.getInstance().getPuckState(id);
}
public Puck getPuck(String name) throws Exception {
return Controller.getInstance().getPuck(name);
}
@Override
protected void doClose() {
@@ -161,7 +169,13 @@ public class PuckDetection extends DeviceBase {
watchDog = null;
}
if (thread != null) {
thread.interrupt();
try {
Threading.stop(thread, true, 2000);
} catch (InterruptedException ex) {
//TODO: Filtering InterruptedException. But stop() should not throw InterruptedException;
getLogger().log(Level.WARNING, null, ex);
}
thread = null;
}
}

View File

@@ -1,59 +1,59 @@
/*
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
*/
package ch.psi.mxsc;
/**
*
*/
public class PuckState {
public final int id;
public boolean online;
public boolean mecSwitch;
public boolean indSwitch;
PuckState(int id) {
this.id = id;
}
BasePlate getBasePlate() {
if (Controller.getInstance() == null) {
return null;
}
return Controller.getInstance().basePlate;
}
void clear() {
online = false;
mecSwitch = false;
indSwitch = false;
BasePlate basePlate = getBasePlate();
if (basePlate != null) {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Offline;
}
}
void set(int mecSwitch, int indSwitch) {
online = true;
//TODO: Handle -1 value: error
this.mecSwitch = mecSwitch ==1;
this.indSwitch = indSwitch ==1;
BasePlate basePlate = getBasePlate();
if (basePlate != null) {
if (this.mecSwitch != this.indSwitch) {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Error;
} else if (this.mecSwitch) {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Present;
} else {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Empty;
}
}
}
@Override
public String toString() {
return "Online = " + online + "\ns1 = " + mecSwitch + "\ns2 = " + indSwitch;
}
}
/*
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
*/
package ch.psi.mxsc;
/**
*
*/
public class PuckState {
public final int id;
public boolean online;
public boolean mecSwitch;
public boolean indSwitch;
PuckState(int id) {
this.id = id;
}
BasePlate getBasePlate() {
if (Controller.getInstance() == null) {
return null;
}
return Controller.getInstance().basePlate;
}
void clear() {
online = false;
mecSwitch = false;
indSwitch = false;
BasePlate basePlate = getBasePlate();
if (basePlate != null) {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Offline;
}
}
void set(int mecSwitch, int indSwitch) {
online = true;
//TODO: Handle -1 value: error
this.mecSwitch = (mecSwitch ==1);
this.indSwitch = (indSwitch ==1);
BasePlate basePlate = getBasePlate();
if (basePlate != null) {
if (this.mecSwitch != this.indSwitch) {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Error;
} else if (this.mecSwitch) {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Present;
} else {
basePlate.getPucks()[id - 1].detection = Puck.Detection.Empty;
}
}
}
@Override
public String toString() {
return "Online = " + online + "\ns1 = " + mecSwitch + "\ns2 = " + indSwitch;
}
}

View File

@@ -1,125 +1,174 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel3" alignment="0" max="32767" attributes="0"/>
<Component id="jPanel5" alignment="0" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="jPanel3" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="jPanel5" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Container class="javax.swing.JPanel" name="jPanel3">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel1" pref="0" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel2" pref="0" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="roomTempPuckPanel2" alignment="1" pref="101" max="32767" attributes="0"/>
<Component id="roomTempPuckPanel1" alignment="1" pref="0" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel1">
</Component>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel2">
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel5">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel5" pref="93" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel6" pref="87" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="roomTempPuckPanel6" alignment="1" pref="101" max="32767" attributes="0"/>
<Component id="roomTempPuckPanel5" alignment="1" pref="0" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel5">
</Component>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel6">
</Component>
</SubComponents>
</Container>
</SubComponents>
</Form>
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<NonVisualComponents>
<Container class="javax.swing.JPanel" name="jPanel2">
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="100" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="0" pref="100" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
</Layout>
</Container>
</NonVisualComponents>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jPanel1" min="-2" max="-2" attributes="0"/>
<EmptySpace 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 max="-2" attributes="0"/>
<Component id="jPanel1" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Container class="javax.swing.JPanel" name="jPanel1">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title=" Lid States"/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jPanel3" alignment="0" max="32767" attributes="0"/>
<Component id="jPanel5" alignment="0" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jPanel3" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="jPanel5" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Container class="javax.swing.JPanel" name="jPanel5">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel5" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel6" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="roomTempPuckPanel6" alignment="1" pref="123" max="32767" attributes="0"/>
<Component id="roomTempPuckPanel5" alignment="1" pref="0" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel5">
</Component>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel6">
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel3">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder/>
</Border>
</Property>
</Properties>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel1" max="32767" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="roomTempPuckPanel2" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="roomTempPuckPanel2" alignment="1" pref="124" max="32767" attributes="0"/>
<Component id="roomTempPuckPanel1" alignment="1" pref="0" max="32767" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel1">
</Component>
<Component class="ch.psi.mxsc.RoomTempPuckPanel" name="roomTempPuckPanel2">
</Component>
</SubComponents>
</Container>
</SubComponents>
</Container>
</SubComponents>
</Form>

View File

@@ -29,35 +29,27 @@ public class RoomTempBasePlatePanel extends DevicePanel {
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel3 = new javax.swing.JPanel();
roomTempPuckPanel1 = new ch.psi.mxsc.RoomTempPuckPanel();
roomTempPuckPanel2 = new ch.psi.mxsc.RoomTempPuckPanel();
jPanel2 = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
roomTempPuckPanel5 = new ch.psi.mxsc.RoomTempPuckPanel();
roomTempPuckPanel6 = new ch.psi.mxsc.RoomTempPuckPanel();
jPanel3 = new javax.swing.JPanel();
roomTempPuckPanel1 = new ch.psi.mxsc.RoomTempPuckPanel();
roomTempPuckPanel2 = new ch.psi.mxsc.RoomTempPuckPanel();
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 100, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 100, Short.MAX_VALUE)
);
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(roomTempPuckPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(roomTempPuckPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(roomTempPuckPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
.addComponent(roomTempPuckPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(" Lid States"));
jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
@@ -67,9 +59,9 @@ public class RoomTempBasePlatePanel extends DevicePanel {
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addContainerGap()
.addComponent(roomTempPuckPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, 93, Short.MAX_VALUE)
.addComponent(roomTempPuckPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(roomTempPuckPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE)
.addComponent(roomTempPuckPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel5Layout.setVerticalGroup(
@@ -77,42 +69,81 @@ public class RoomTempBasePlatePanel extends DevicePanel {
.addGroup(jPanel5Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(roomTempPuckPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE)
.addComponent(roomTempPuckPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)
.addComponent(roomTempPuckPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(roomTempPuckPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(roomTempPuckPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(roomTempPuckPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)
.addComponent(roomTempPuckPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
);
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()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
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)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private ch.psi.mxsc.RoomTempPuckPanel roomTempPuckPanel1;
private ch.psi.mxsc.RoomTempPuckPanel roomTempPuckPanel2;
private ch.psi.mxsc.RoomTempPuckPanel roomTempPuckPanel3;
private ch.psi.mxsc.RoomTempPuckPanel roomTempPuckPanel4;
private ch.psi.mxsc.RoomTempPuckPanel roomTempPuckPanel5;
private ch.psi.mxsc.RoomTempPuckPanel roomTempPuckPanel6;
// End of variables declaration//GEN-END:variables

View File

@@ -143,8 +143,9 @@ public class Sample extends DeviceBase {
}
Font getLabelFont() {
//return new Font("Times New Roman", Font.PLAIN, 8);
return new Font("Courier New", Font.PLAIN, 8);
////return new Font("Times New Roman", Font.PLAIN, 8);
//return new Font("Courier New", Font.PLAIN, 8);
return new Font("Tahoma", Font.PLAIN, 8);
}
Point getLabelPosition(String text, Graphics g) {
@@ -175,12 +176,12 @@ public class Sample extends DeviceBase {
}
g.setColor(getBorderColor(drawBackground));
g.drawOval(position.x - size / 2, position.y - size / 2, size, size);
String text = String.valueOf(index + 1);
Point labelPosition = getLabelPosition(text, g);
if (getNormalDrawSize()>10){
String text = String.valueOf(index + 1);
g.setColor(getLabelColor(drawBackground));
g.setFont(getLabelFont());
Point labelPosition = getLabelPosition(text, g);
g.drawString(text, labelPosition.x, labelPosition.y);
}
g.setPaintMode();