diff --git a/src/main/java/ch/psi/mxsc/BasePlate.java b/src/main/java/ch/psi/mxsc/BasePlate.java
index 35c0067..04ec530 100644
--- a/src/main/java/ch/psi/mxsc/BasePlate.java
+++ b/src/main/java/ch/psi/mxsc/BasePlate.java
@@ -281,7 +281,7 @@ public class BasePlate extends DeviceBase {
public void clearId(String id) {
for (Device d : getChildren()) {
if (d instanceof Puck) {
- if ((id == null) || id.equals(((Puck) d).getId())) {
+ if ((id == null) || Puck.isSameId(id, ((Puck) d).getId())) {
((Puck) d).setId(null);
}
}
diff --git a/src/main/java/ch/psi/mxsc/MainPanel.form b/src/main/java/ch/psi/mxsc/MainPanel.form
index 72fe795..049f608 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.form
+++ b/src/main/java/ch/psi/mxsc/MainPanel.form
@@ -376,7 +376,7 @@
-
+
@@ -432,6 +432,7 @@
+
@@ -443,6 +444,7 @@
+
diff --git a/src/main/java/ch/psi/mxsc/MainPanel.java b/src/main/java/ch/psi/mxsc/MainPanel.java
index ef5614a..388c83a 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.java
+++ b/src/main/java/ch/psi/mxsc/MainPanel.java
@@ -407,13 +407,15 @@ public class MainPanel extends Panel {
});
updateDryer(((Device) getDevice("gripper_dryer")).take());
- ((Device) getDevice("feedback_psys_safety")).addListener(new DeviceAdapter() {
+ Device feedback_psys_safety = ((Device) getDevice("feedback_psys_safety"));
+ feedback_psys_safety.addListener(new DeviceAdapter() {
@Override
public void onValueChanged(Device device, Object value, Object former) {
doorsHaveOpened = Boolean.FALSE.equals(value);
updatePsysSafety(value);
}
});
+ feedback_psys_safety.request();
updatePsysSafety(((Device) getDevice("feedback_psys_safety")).take());
((Device) getDevice("robot")).addListener(new DeviceAdapter() {
@Override
@@ -604,7 +606,7 @@ public class MainPanel extends Panel {
}
void updateButtonState(){
- boolean doors_open = !Controller.getInstance().isDoorClosed();
+ boolean doors_open = !Boolean.TRUE.equals(Controller.getInstance().isDoorClosed());
boolean cover_pos_detected = isCoverPosDetected();
buttonSampleLoad.setEnabled(doors_open && !cover_pos_detected && getState().isInitialized());
buttonCamera.setEnabled(getState().isInitialized());
@@ -850,7 +852,7 @@ public class MainPanel extends Panel {
sampleData,
new String[]{
//"User Name", "Dewar Name",
- "Puck Name", "Puck Type", "Puck Id", "Puck Address",
+ "Puck Name", "User Name", "Puck Id", "Puck Address",
"Sample Name", "Sample Position", "Sample Id", "Sample Status", "Mount Count"
}
) {
@@ -1061,20 +1063,30 @@ public class MainPanel extends Panel {
}
}
updateButtonState();
- String text;
- try {
- List cache = (List)eval("get_cover_location_cache()", true);
- text = cache.get(0) + ", " +cache.get(1);
- text= "Robot";
+ String text = "";
+ try{
+ /*
+ Number clearStatus = (Number)eval("get_cover_location_mm(raise_ex=False, print_log=False)[3]", true);
+ switch (clearStatus.intValue()){
+ case 1: text = "Dewar"; break;
+ case 2: text = "Doors"; break;
+ case 3: text = "Manual"; break;
+ case 4: text = "Task"; break;
+ default: text = "";
+ }
+ */
+
} catch (Exception ex) {
text = "";
+ /*
try{
Object use_target_cache = eval("use_target_cache", true);
if (Boolean.TRUE.equals(use_target_cache)){
text= "Target";
}
} catch (Exception e) {
- }
+ }
+ */
}
textCoverCache.setText(text);
@@ -1307,7 +1319,7 @@ public class MainPanel extends Panel {
});
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel2.setText("Cache");
+ jLabel2.setText("Cleared:");
textCoverCache.setEditable(false);
textCoverCache.setHorizontalAlignment(javax.swing.JTextField.CENTER);
@@ -1345,6 +1357,7 @@ public class MainPanel extends Panel {
buttonGroup1.add(buttonCamera);
buttonCamera.setText("Image");
+ buttonCamera.setEnabled(false);
buttonCamera.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonCameraActionPerformed(evt);
@@ -1353,6 +1366,7 @@ public class MainPanel extends Panel {
buttonGroup1.add(buttonDrawing);
buttonDrawing.setText("Design");
+ buttonDrawing.setEnabled(false);
buttonDrawing.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonDrawingActionPerformed(evt);
diff --git a/src/main/java/ch/psi/mxsc/Puck.java b/src/main/java/ch/psi/mxsc/Puck.java
index 31c80dc..1c6b5b4 100644
--- a/src/main/java/ch/psi/mxsc/Puck.java
+++ b/src/main/java/ch/psi/mxsc/Puck.java
@@ -353,6 +353,18 @@ public class Puck extends DeviceBase {
}
id = value;
}
+
+ public static boolean isSameId(String id1, String id2){
+ return id1.equals(id2) || BarcodeMatcher.matchBarcodes(id1,id2);
+ }
+
+ public static boolean hasSameId(Puck p1, Puck p2){
+ return isSameId(p1.getId(), p2.getId());
+ }
+
+ public boolean hasSameId(Puck p){
+ return isSameId(getId(), p.getId());
+ }
public char getSegment() {
return segment;
diff --git a/src/main/java/ch/psi/mxsc/PuckLoadingDialog.form b/src/main/java/ch/psi/mxsc/PuckLoadingDialog.form
index cf42846..0bc374e 100644
--- a/src/main/java/ch/psi/mxsc/PuckLoadingDialog.form
+++ b/src/main/java/ch/psi/mxsc/PuckLoadingDialog.form
@@ -24,7 +24,7 @@
-
+
@@ -32,7 +32,6 @@
-
@@ -45,8 +44,12 @@
+
+
+
+
-
+
@@ -115,7 +118,8 @@
-
+
+
diff --git a/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java b/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java
index 61ae80c..f92a82e 100644
--- a/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java
+++ b/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java
@@ -24,9 +24,10 @@ public class PuckLoadingDialog extends JDialog {
DefaultTableModel model;
final boolean load;
- final int INDEX_DEWAR = 0;
- final int INDEX_DATAMATRIX = 1;
- final int INDEX_POSITION = 2;
+ final int INDEX_USER = 0;
+ final int INDEX_DEWAR = 1;
+ final int INDEX_DATAMATRIX = 2;
+ final int INDEX_POSITION = 3;
/**
* Creates new form PuckLoadingDialog
*/
@@ -75,15 +76,17 @@ public class PuckLoadingDialog extends JDialog {
if (keys.length != model.getRowCount()){
model.setRowCount(keys.length);
}
- for (int i=0; i< keys.length; i++) {
+ for (int i=0; i< keys.length; i++) {
model.setValueAt(keys[i], i, INDEX_DATAMATRIX);
try{
Map info = (Map) dms.get(keys[i]);
model.setValueAt(info.get("address"), i, INDEX_POSITION);
model.setValueAt(info.get("dewar"), i, INDEX_DEWAR);
+ model.setValueAt(info.get("user"), i, INDEX_USER);
} catch (Exception ex){
model.setValueAt("Unknown", i, INDEX_POSITION);
model.setValueAt("Unknown", i, INDEX_DEWAR);
+ model.setValueAt("Unknown", i, INDEX_USER);
}
}
}
@@ -260,14 +263,14 @@ public class PuckLoadingDialog extends JDialog {
},
new String [] {
- "Dewar", "Puck Id/Datamatrix", "Puck Position"
+ "User", "Dewar", "Puck Id/Datamatrix", "Puck Position"
}
) {
Class[] types = new Class [] {
- java.lang.String.class, java.lang.String.class, java.lang.String.class
+ java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
- false, false, false
+ false, false, false, false
};
public Class getColumnClass(int columnIndex) {
@@ -329,7 +332,6 @@ public class PuckLoadingDialog extends JDialog {
.addComponent(buttonSet, javax.swing.GroupLayout.PREFERRED_SIZE, 201, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(labelSuggestion, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(panelTable, javax.swing.GroupLayout.DEFAULT_SIZE, 484, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
@@ -339,7 +341,10 @@ public class PuckLoadingDialog extends JDialog {
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(textDetectedPuck)))
+ .addComponent(textDetectedPuck))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(panelTable, javax.swing.GroupLayout.DEFAULT_SIZE, 531, Short.MAX_VALUE)
+ .addGap(14, 14, 14)))
.addContainerGap())
.addComponent(labelStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
diff --git a/src/main/java/ch/psi/mxsc/SampleInfo.java b/src/main/java/ch/psi/mxsc/SampleInfo.java
index 801c290..25457a6 100644
--- a/src/main/java/ch/psi/mxsc/SampleInfo.java
+++ b/src/main/java/ch/psi/mxsc/SampleInfo.java
@@ -23,8 +23,8 @@ public class SampleInfo extends HashMap {
Object[] getData() {
return new Object[]{
- //getStr("userName"), getStr("dewarName"),
- getStr("puckName"), getEnum("puckType", PuckType.class, PuckType.Unknown), getStr("puckBarcode"), getStr("puckAddress"),
+ //), getStr("dewarName"), getEnum("puckType", PuckType.class, PuckType.Unknown)
+ getStr("puckName"), getStr("userName"), getStr("puckBarcode"), getStr("puckAddress"),
getStr("sampleName"), getInt("samplePosition"), getStr("sampleBarcode"), getEnum("sampleStatus", SampleStatus.class, SampleStatus.Unknown), getInt("sampleMountCount")
};