diff --git a/src/src/main/java/com/my/graphiteDigesterBg/move/MoveLiquidAdd.java b/src/src/main/java/com/my/graphiteDigesterBg/move/MoveLiquidAdd.java index 8d6d01a..d1d244f 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/move/MoveLiquidAdd.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/move/MoveLiquidAdd.java @@ -110,7 +110,7 @@ public class MoveLiquidAdd extends DiTaskMoveBase { slotIndex = slotGroupIndexList.get(pumpIndex*2+1); } - var tubeStatus = this.slot.getTubeStatus(slotIndex); - return ResHeatingTubeRackSlot.TUBE_STATUS_USED.equals(tubeStatus); + var tube = this.slot.getTubes().get(slotIndex); + return tube.getHasTube(); } } diff --git a/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlot.java b/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlot.java index 56635af..7655040 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlot.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlot.java @@ -41,17 +41,20 @@ public class ResHeatingTubeRackSlot { public String taskUuid; // manager private final ResHeatingTubeRackSlotManager manager; - // tube status list - private final List tubeStatusList; + // tube rack location + private final List tubes; // constructor public ResHeatingTubeRackSlot( ResHeatingTubeRackSlotManager manager, Integer index ) { this.isLocked = false; this.index = index; this.manager = manager; - this.tubeStatusList = new ArrayList<>(); + + this.tubes = new ArrayList<>(); for ( int i = 0; i < 16; i++ ) { - this.tubeStatusList.add(TUBE_STATUS_EMPTY); + var tube = new ResHeatingTubeRackTubeSlot(); + tube.setHasTube(false); + this.tubes.add(tube); } } @@ -74,9 +77,11 @@ public class ResHeatingTubeRackSlot { // setup as error slot public void setupAsErrorSlot() { this.isErrorSlot = true; - this.tubeStatusList.clear(); + this.tubes.clear(); for ( int i = 0; i < 16; i++ ) { - this.tubeStatusList.add(TUBE_STATUS_EMPTY); + var tube = new ResHeatingTubeRackTubeSlot(); + tube.setHasTube(false); + this.tubes.add(tube); } } @@ -84,7 +89,7 @@ public class ResHeatingTubeRackSlot { public List allocEmptyTubeIndexes( Integer count ) { List indexes = new ArrayList<>(); for ( int i = 0; i < 16; i++ ) { - if ( TUBE_STATUS_EMPTY.equals(this.tubeStatusList.get(i)) && indexes.size() < count ) { + if ( !this.tubes.get(i).getHasTube() && indexes.size() < count ) { indexes.add(i); } } @@ -92,23 +97,18 @@ public class ResHeatingTubeRackSlot { throw new RuntimeException("异常处理区试管空位不足"); } for ( var index : indexes ) { - this.tubeStatusList.set(index, TUBE_STATUS_USED); + this.tubes.get(index).setHasTube(true); } return indexes; } - // set tube status - public void setTubeStatus( Integer index, String status ) { - this.tubeStatusList.set(index, status); - } - - // get tube status - public String getTubeStatus( Integer index ) { - return this.tubeStatusList.get(index); - } - // set rack position public void setRackPosition(String rackPosition) { this.rackPosition = rackPosition; } + + // get tubes + public List getTubes() { + return tubes; + } } diff --git a/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackTubeSlot.java b/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackTubeSlot.java new file mode 100644 index 0000000..71cdb81 --- /dev/null +++ b/src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackTubeSlot.java @@ -0,0 +1,23 @@ +package com.my.graphiteDigesterBg.resource; +public class ResHeatingTubeRackTubeSlot { + // index of slot + public Integer index; + // has tube + private Boolean hasTube; + // rack code + public String rackCode; + // tube code + public String tubeCode; + // tube status + public String digestStatus; + + // set has tube + public void setHasTube(Boolean hasTube) { + this.hasTube = hasTube; + } + + // get has tube + public Boolean getHasTube() { + return this.hasTube; + } +} diff --git a/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java b/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java index 2559896..c3a439f 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/task/TaskSampleAdd.java @@ -60,7 +60,7 @@ public class TaskSampleAdd extends DiTaskBase { // 初始化试管架状态 for ( int i=0; i<16; i++ ) { - slot.setTubeStatus(i, ResHeatingTubeRackSlot.TUBE_STATUS_USED); + slot.getTubes().get(i).setHasTube(true); } // 移动加液盘到观察视角 liquidPlateMotor.moveTo("LiquidPlateCameraShot"); @@ -70,7 +70,7 @@ public class TaskSampleAdd extends DiTaskBase { var tubeRackEmptyList = statusConfirmAction.getResult(List.class); for ( var item : tubeRackEmptyList ) { Integer index = (Integer)item; - slot.setTubeStatus(index, ResHeatingTubeRackSlot.TUBE_STATUS_EMPTY); + slot.getTubes().get(index).setHasTube(false); } this.setStatus(TaskStatus.FINISHED);