This commit is contained in:
gac-S_Changer
2019-09-17 16:57:48 +02:00
parent 7421b948f0
commit 230844ee76
39 changed files with 262 additions and 179 deletions

View File

@@ -26,7 +26,7 @@ public class Recovery extends Panel {
//Overridable callbacks
@Override
public void onInitialize(int runCount) {
getContext().setGlobal("recovering", null);
}
@Override
@@ -43,10 +43,15 @@ public class Recovery extends Panel {
void updateButton(){
buttonRecover.setEnabled((getContext().getState().isNormal()) &&
(textPosition.getText().trim().isEmpty()) &&
((!textSegment.getText().trim().isEmpty()) || (ledIsInDewar.getColor()==Color.GREEN))
(!textSegment.getText().trim().isEmpty()) &&
!isRecovering()
);
}
boolean isRecovering(){
return "true".equals(getContext().getGlobal("recovering"));
}
@Override
public void onExecutedFile(String fileName, Object result) {
@@ -64,7 +69,6 @@ public class Recovery extends Panel {
textSegment.setText("");
ledKnownPosition.setColor(Color.BLACK);
textPosition.setText("");
ledIsInDewar.setColor(Color.BLACK);
} else {
if (getState().isNormal()){
String point = null;
@@ -76,9 +80,10 @@ public class Recovery extends Panel {
System.out.println(ex);
ledKnownPosition.setColor(Color.BLACK);
textPosition.setText("");
}
}
List segment = null;
try{
List segment = (List) eval("get_current_segment()", true);
segment = (List) eval("get_current_segment()", true);
ledValidSegment.setColor((segment == null) ? Color.RED : Color.GREEN);
textSegment.setText((segment == null) ? "": segment.get(0) + "->" + segment.get(1) + " [" + segment.get(2) + "mm]");
if ((segment == null)||(point!=null)){
@@ -99,10 +104,12 @@ public class Recovery extends Panel {
}
try{
Boolean is_in_dewar = (Boolean) eval("is_in_dewar()", true);
ledIsInDewar.setColor(is_in_dewar ? Color.GREEN : Color.RED);
if ((segment==null) && is_in_dewar){
ledValidSegment.setColor(Color.GREEN);
textSegment.setText("Inside Dewar");
}
} catch (Exception ex) {
System.out.println(ex);
ledIsInDewar.setColor(Color.BLACK);
}
}
}
@@ -124,8 +131,6 @@ public class Recovery extends Panel {
textSegment = new javax.swing.JTextField();
textDistance = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
ledIsInDewar = new ch.psi.pshell.swing.Led();
jLabel9 = new javax.swing.JLabel();
jLabel6.setText("Known position");
@@ -155,8 +160,6 @@ public class Recovery extends Panel {
jLabel8.setText("Distance:");
jLabel9.setText("Is in Dewar");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
@@ -171,34 +174,25 @@ public class Recovery extends Panel {
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(textPosition))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(ledValidSegment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel7))
.addGroup(layout.createSequentialGroup()
.addComponent(ledIsInDewar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel9)))
.addComponent(ledValidSegment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel7)
.addGap(16, 16, 16)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGap(0, 103, Short.MAX_VALUE)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textDistance, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(textSegment))))
.addGap(8, 8, 8))
.addGroup(layout.createSequentialGroup()
.addContainerGap(136, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(buttonAbort, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonRecover))
.addContainerGap(144, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(buttonRecover, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE)
.addComponent(buttonAbort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonAbort, buttonRecover});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
@@ -212,29 +206,26 @@ public class Recovery extends Panel {
.addComponent(ledValidSegment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7)
.addComponent(textSegment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(textDistance, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledIsInDewar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 62, Short.MAX_VALUE)
.addComponent(buttonRecover)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(textDistance, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 61, Short.MAX_VALUE)
.addComponent(buttonRecover)
.addGap(18, 18, 18)
.addComponent(buttonAbort)
.addContainerGap())
.addGap(24, 24, 24))
);
}// </editor-fold>//GEN-END:initComponents
private void buttonRecoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRecoverActionPerformed
try{
if (isRecovering()){
getLogger().warning("Ongoing recovery ");
return;
}
buttonAbort.setEnabled(true);
getContext().setSetting("recovering", "true");
getContext().setGlobal("recovering", "true");
Device robot = getContext().getDevicePool().getByName("robot", Device.class);
abort();
getContext().waitState(State.Ready, 5000);
@@ -242,23 +233,19 @@ public class Recovery extends Panel {
robot.waitReady(5000);
evalAsync("recover()", false).handle((ret, ex) -> {
if (ex != null){
showException((Exception)ex);
if (!getContext().isAborted()){
showException((Exception)ex);
}
} else {
SwingUtils.showMessage(getTopLevel(), "Return", String.valueOf(ret));
}
try {
getContext().setSetting("recovering", null);
} catch (IOException e) {
}
getContext().setGlobal("recovering", null);
buttonAbort.setEnabled(false);
return ret;
});
} catch (Exception ex) {
showException(ex);
try {
getContext().setSetting("recovering", null);
} catch (IOException e) {
}
getContext().setGlobal("recovering", null);
buttonAbort.setEnabled(false);
}
}//GEN-LAST:event_buttonRecoverActionPerformed
@@ -272,7 +259,7 @@ public class Recovery extends Panel {
this.showException(ex);
}
try{
eval("stop_task()", true);
eval("robot.stop_task()", true);
} catch (Exception ex){
this.showException(ex);
}
@@ -282,7 +269,7 @@ public class Recovery extends Panel {
this.showException(ex);
}
} catch (InterruptedException ex) {
showException(ex);
//showException(ex);
}
}//GEN-LAST:event_buttonAbortActionPerformed
@@ -292,8 +279,6 @@ public class Recovery extends Panel {
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private ch.psi.pshell.swing.Led ledIsInDewar;
private ch.psi.pshell.swing.Led ledKnownPosition;
private ch.psi.pshell.swing.Led ledValidSegment;
private javax.swing.JTextField textDistance;