|
|
@ -2,15 +2,25 @@ package com.my.graphiteDigesterBg.step; |
|
|
|
import com.my.graphiteDigesterBg.diframe.DiTaskStepBase; |
|
|
|
import com.my.graphiteDigesterBg.diframe.TaskStep; |
|
|
|
import com.my.graphiteDigesterBg.move.MoveTubeToErrorRackSlot; |
|
|
|
import com.my.graphiteDigesterBg.resource.ResHeatingTubeRackSlot; |
|
|
|
import com.my.graphiteDigesterBg.resource.ResHeatingTubeRackSlotManager; |
|
|
|
import com.my.graphiteDigesterBg.task.TaskDigestion; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
@TaskStep(name="MoveErrorTubesToErrorSlot") |
|
|
|
public class StepMoveErrorTubesToErrorSlot extends DiTaskStepBase { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
var task = (TaskDigestion)this.getTask(); |
|
|
|
var slot = task.getSlot(); |
|
|
|
var errorTubes = task.errorTubeIndexes; |
|
|
|
List<Integer> errorTubes = task.errorTubeIndexes; |
|
|
|
if ( null == errorTubes ) { |
|
|
|
errorTubes = new ArrayList<>(); |
|
|
|
} |
|
|
|
|
|
|
|
if ( !ResHeatingTubeRackSlot.LOCATION_LIQUID_PLATE.equals(slot.rackPosition) ) { |
|
|
|
throw new RuntimeException("试管架未在加液区位置,无法将试管移至异常处理区域"); |
|
|
|
} |
|
|
|
|
|
|
|
var slotMan = task.getResourceManager(ResHeatingTubeRackSlotManager.class); |
|
|
|
var errorSlot = slotMan.getErrorSlot(); |
|
|
@ -26,8 +36,5 @@ public class StepMoveErrorTubesToErrorSlot extends DiTaskStepBase { |
|
|
|
move.errorTubeIndex = emptyTubeIndexList.get(i); |
|
|
|
move.run(); |
|
|
|
} |
|
|
|
|
|
|
|
throw new RuntimeException("无法正常加液"); |
|
|
|
// @TODO: 取出收需要标记响应位置为空, 不然后面加液会出错 ~~~ |
|
|
|
} |
|
|
|
} |