diff --git a/src/src/main/java/com/my/graphiteDigesterBg/task/TaskStartReset.java b/src/src/main/java/com/my/graphiteDigesterBg/task/TaskStartReset.java index baac0f4..e36a457 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/task/TaskStartReset.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/task/TaskStartReset.java @@ -13,6 +13,7 @@ import com.my.graphiteDigesterBg.move.MoveDoorOpen; import com.my.graphiteDigesterBg.move.MoveMoveTubeRackFromHeatPlateToLiquidPlate; import com.my.graphiteDigesterBg.move.MoveMoveTubeRackFromLiquidPlateToHeatPlate; import com.my.graphiteDigesterBg.resource.ResHeatingTubeRackSlotManager; +import java.util.List; @Task(name="StartReset") public class TaskStartReset extends DiTaskBase { // 是否需要放置异常处理试管架 @@ -110,7 +111,45 @@ public class TaskStartReset extends DiTaskBase { } } - // @TODO : 这里要放置将酸液充满试管 ~~~ + DiActMotor liquidPlateMotor = this.getActuator(MyDevice.ACT_LIQUID_PLATE_MOTOR, DiActMotor.class); + DiActMotor liquidMotor = this.getActuator(MyDevice.ACT_LIQUID_MOTOR, DiActMotor.class); + + this.setProgressMessage("设备初始化 : 初始化加液管路"); + MoveDoorOpen.execute(this.getDevice()); + DiMdbNotification.taskAction(this, "TaskStartResetPumpPipeSetupTubeRankPutIn"); + this.waitAction("TaskStartResetPumpPipeSetupTubeRankPutIn"); + MoveDoorClose.execute(this.getDevice()); + + // 加液管充满 + for ( int i=0; i<8; i++ ) { + this.setProgressMessage("设备初始化 : 初始化加液管路 " + (i+1) + "/8"); + if ( 0 == i%2 ) { + liquidMotor.moveTo("LiquidArmPumpGroupOut"); + liquidPlateMotor.moveTo("LiquidPlateSlotPumpOutGroup",i/2); + } else { + liquidMotor.moveTo("LiquidArmPumpGroupIn"); + liquidPlateMotor.moveTo("LiquidPlateSlotPumpInGroup", i/2); + } + + var pump0 = this.getActuator("LiquidPeristalticPump_"+i+"_0", DiActPeristalticPump.class); + var pump1 = this.getActuator("LiquidPeristalticPump_"+i+"_1", DiActPeristalticPump.class); + var pipeVolumeCircle0 = pump1.getLocationValue("LiquidPeristalticPumpPipeVolumeCircle",i, 0); + var pipeVolumeCircle1 = pump1.getLocationValue("LiquidPeristalticPumpPipeVolumeCircle",i, 1); + this.batchExecute(List.of( + () -> pump0.moveBy(pipeVolumeCircle0), + () -> pump1.moveBy(pipeVolumeCircle1) + )); + pump0.retract(); + pump1.retract(); + } + + liquidMotor.moveTo("LiquidArmStandby"); + + // 加液管充满, 需要取出试管架 + MoveDoorOpen.execute(this.getDevice()); + DiMdbNotification.taskAction(this, "TaskStartResetPumpPipeSetupTubeRankTakeOut"); + this.waitAction("TaskStartResetPumpPipeSetupTubeRankTakeOut"); + MoveDoorClose.execute(this.getDevice()); } /** @@ -196,6 +235,18 @@ public class TaskStartReset extends DiTaskBase { action.finish(); } + // 蠕动泵管路初始化 + public void actionPumpPipeSetupTubeRankPutIn() { + var action = this.getAction("TaskStartResetPumpPipeSetupTubeRankPutIn"); + action.finish(); + } + + // 蠕动泵管路初始化 + public void actionPumpPipeSetupTubeRankTakeOut() { + var action = this.getAction("TaskStartResetPumpPipeSetupTubeRankTakeOut"); + action.finish(); + } + // set progress message private void setProgressMessage(String message) { var runtimeVars = this.getDevice().getRuntimeVariables();