|
@ -267,7 +267,7 @@ public class DigestionTaskThread extends Thread { |
|
|
// 正常消解结束; |
|
|
// 正常消解结束; |
|
|
this.updateTaskStatus("LastRound", "取出试管架"); |
|
|
this.updateTaskStatus("LastRound", "取出试管架"); |
|
|
device.door.open(); // 打开门 |
|
|
device.door.open(); // 打开门 |
|
|
this.waitForTubeRackTakeOut(); // 等待取出 |
|
|
|
|
|
|
|
|
this.waitForTubeRackTakeOut(this.heatingSlot.tubes); // 等待取出 |
|
|
device.door.close(); // 关闭门 |
|
|
device.door.close(); // 关闭门 |
|
|
this.heatingSlot.setTubeRackNo(null); // 释放加热位 |
|
|
this.heatingSlot.setTubeRackNo(null); // 释放加热位 |
|
|
this.updateTaskStatus("LastRound", "执行最后一轮配置结束"); |
|
|
this.updateTaskStatus("LastRound", "执行最后一轮配置结束"); |
|
@ -395,14 +395,15 @@ public class DigestionTaskThread extends Thread { |
|
|
|
|
|
|
|
|
// 取出剩余异常试管 |
|
|
// 取出剩余异常试管 |
|
|
device.transferArm.takeOutTubesFromErrorSlot(this.errorTubeIndexes); |
|
|
device.transferArm.takeOutTubesFromErrorSlot(this.errorTubeIndexes); |
|
|
|
|
|
|
|
|
|
|
|
// 等待取出试管架 |
|
|
|
|
|
device.door.open(); |
|
|
var errorSlot = device.heatingTurntable.getErrorSlot(); |
|
|
var errorSlot = device.heatingTurntable.getErrorSlot(); |
|
|
|
|
|
this.waitForTubeRackTakeOut(errorSlot.tubes); |
|
|
for ( var index : this.errorTubeIndexes ) { |
|
|
for ( var index : this.errorTubeIndexes ) { |
|
|
errorSlot.tubes.set(index, null); |
|
|
errorSlot.tubes.set(index, null); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 等待取出试管架 |
|
|
|
|
|
device.door.open(); |
|
|
|
|
|
this.waitForTubeRackTakeOut(); |
|
|
|
|
|
device.door.close(); |
|
|
device.door.close(); |
|
|
this.unlockLiquidPlate("异常处理:剩余试管已取出"); |
|
|
this.unlockLiquidPlate("异常处理:剩余试管已取出"); |
|
|
} catch (InterruptedException e) { |
|
|
} catch (InterruptedException e) { |
|
@ -477,7 +478,11 @@ public class DigestionTaskThread extends Thread { |
|
|
|
|
|
|
|
|
// 等待取出试管架 |
|
|
// 等待取出试管架 |
|
|
device.door.open(); |
|
|
device.door.open(); |
|
|
this.waitForTubeRackTakeOut(); |
|
|
|
|
|
|
|
|
List<HeatingTurntableSlotTube> tubes = new ArrayList<>(); |
|
|
|
|
|
for ( var index : this.finishedErrorTubeIndexes ) { |
|
|
|
|
|
tubes.add(errorSlot.tubes.get(index)); |
|
|
|
|
|
} |
|
|
|
|
|
this.waitForTubeRackTakeOut(tubes); |
|
|
device.door.close(); |
|
|
device.door.close(); |
|
|
this.unlockLiquidPlate("异常处理:消解完成的试管已取出"); |
|
|
this.unlockLiquidPlate("异常处理:消解完成的试管已取出"); |
|
|
|
|
|
|
|
@ -553,13 +558,13 @@ public class DigestionTaskThread extends Thread { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 等待取出试管架 |
|
|
// 等待取出试管架 |
|
|
private void waitForTubeRackTakeOut() { |
|
|
|
|
|
|
|
|
private void waitForTubeRackTakeOut( List<HeatingTurntableSlotTube> tubes ) { |
|
|
this.updateTaskStatus("TubeRackTakeOutWait", "等待取出试管架"); |
|
|
this.updateTaskStatus("TubeRackTakeOutWait", "等待取出试管架"); |
|
|
|
|
|
|
|
|
Map<String,Object> message = new HashMap<>(); |
|
|
Map<String,Object> message = new HashMap<>(); |
|
|
message.put("taskId", this.taskModel.outTaskId); |
|
|
message.put("taskId", this.taskModel.outTaskId); |
|
|
message.put("batchNo", this.taskModel.batchNo); |
|
|
message.put("batchNo", this.taskModel.batchNo); |
|
|
message.put("tubes", this.heatingSlot.tubes); |
|
|
|
|
|
|
|
|
message.put("tubes", tubes); |
|
|
if ( "auto".equals(this.taskModel.mode) ) { |
|
|
if ( "auto".equals(this.taskModel.mode) ) { |
|
|
this.manager.sendMessageToTransBot("TubeRackTakeOut", message); |
|
|
this.manager.sendMessageToTransBot("TubeRackTakeOut", message); |
|
|
} else { |
|
|
} else { |
|
|