diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_CLEAR_ERROR_BEFORE_WORK.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_CLEAR_ERROR_BEFORE_WORK.java index 6c96b79..edad4a1 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_CLEAR_ERROR_BEFORE_WORK.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_CLEAR_ERROR_BEFORE_WORK.java @@ -60,4 +60,8 @@ public class DO_CLEAR_ERROR_BEFORE_WORK extends A8kStepAction { ); } + + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_FINISH_TUBE_PROCESS.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_FINISH_TUBE_PROCESS.java index 8917afe..cce1fe2 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_FINISH_TUBE_PROCESS.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_FINISH_TUBE_PROCESS.java @@ -121,4 +121,8 @@ public class DO_FINISH_TUBE_PROCESS extends A8kStepAction { return ""; return String.format("[sid: %s, tippos: %s]", tube.getSampleId(), tube.getPos()); } + + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PAUSE.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PAUSE.java index 9dc9060..5e25ed0 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PAUSE.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PAUSE.java @@ -47,4 +47,8 @@ public class DO_PAUSE extends A8kStepAction { @Override public List getResourceList() { return List.of(); } + + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PROCESS_ERROR_PLATE.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PROCESS_ERROR_PLATE.java index 2afbe15..31a5e65 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PROCESS_ERROR_PLATE.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PROCESS_ERROR_PLATE.java @@ -109,4 +109,8 @@ public class DO_PROCESS_ERROR_PLATE extends A8kStepAction { } return String.format("[sid: %s, proj: %s tanpos: %s]", errorTank.getSampleId(), errorTank.getProjId(), errorTank.getPos()); } + + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_RESUME.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_RESUME.java index 1e5f9a1..544990c 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_RESUME.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_RESUME.java @@ -47,5 +47,7 @@ public class DO_RESUME extends A8kStepAction { @Override public List getResourceList() { return List.of(); } - + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_START.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_START.java index 9145966..d29f45e 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_START.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_START.java @@ -83,4 +83,8 @@ public class DO_START extends A8kStepAction { A8kPublicResourceType.HBOT ); } + + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java index 356ec1c..cac9f73 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java @@ -104,4 +104,8 @@ public class DO_STOP extends A8kStepAction { A8kPublicResourceType.HBOT ); } + + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java index 10d1f0b..9f51c48 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java @@ -124,4 +124,8 @@ public class PLATE_OPT_SCAN extends A8kStepAction { OptScanModule optScanModule = gstate.getOptScanModule(); return String.format("[sid: %s, proj:%s ]", optScanModule.getSampleId(), optScanModule.getProjInfoStr()); } + + @Override public Boolean isAllowsParallelRunning() { + return false; + } } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ6_POST_PROCESS.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ6_POST_PROCESS.java index fb49a39..2e4a939 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ6_POST_PROCESS.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ6_POST_PROCESS.java @@ -98,7 +98,6 @@ public class SEQ6_POST_PROCESS extends A8kStepAction { @Override public List getResourceList() { return List.of( - A8kPublicResourceType.IncubationPlateModule, A8kPublicResourceType.PlatesBoxModule, A8kPublicResourceType.HBOT, A8kPublicResourceType.CurTubeProcessToken diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ7_EJECT_TUBEHOLDER.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ7_EJECT_TUBEHOLDER.java index f59e512..4322af5 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ7_EJECT_TUBEHOLDER.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ7_EJECT_TUBEHOLDER.java @@ -71,6 +71,6 @@ public class SEQ7_EJECT_TUBEHOLDER extends A8kStepAction { } @Override public List getResourceList() { - return List.of(A8kPublicResourceType.ShakeModule); + return List.of(A8kPublicResourceType.TubeFeedModule); } } diff --git a/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java b/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java index c0176f0..854ac04 100644 --- a/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java @@ -31,7 +31,7 @@ public class StepMotorCtrlDriver { canBus.callcmd(id.mid, CmdId.step_motor_easy_move_to, pos); } - void stepMotorEasyMoveToZero(StepMotorMId id) throws AppException { + public void stepMotorEasyMoveToZero(StepMotorMId id) throws AppException { canBus.callcmd(id.mid, CmdId.step_motor_easy_move_to_zero); } @@ -69,6 +69,10 @@ public class StepMotorCtrlDriver { canBus.waitForMod(id.mid, actionOvertime); } + public void waitForMod(StepMotorMId id, Integer actionOvertime) throws AppException { + canBus.waitForMod(id.mid, actionOvertime); + } + @ExtApiFn(name = "stepMotorEasyMoveToBlock", order = 5) public void stepMotorEasyMoveToBlock(StepMotorMId id, Integer pos, Integer actionOvertime) throws AppException { logger.info("stepMotorEasyMoveToBlock {} {}", id, pos); @@ -157,7 +161,7 @@ public class StepMotorCtrlDriver { ObjectNode node = ZJsonHelper.createObjectNode(); for (StepMotorRegIndex regIndex : StepMotorRegIndex.values()) { Integer regVal = getReg(id, regIndex); - logger.info("read reg {} -> {}", regIndex,regVal); + logger.info("read reg {} -> {}", regIndex, regVal); node.put(regIndex.name(), getReg(id, regIndex)); } diff --git a/src/main/java/a8k/service/app/devicectrl/exdriver/TubePreProcesModuleExDriver.java b/src/main/java/a8k/service/app/devicectrl/exdriver/TubePreProcesModuleExDriver.java index f79d8d2..2d6ef47 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/TubePreProcesModuleExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/exdriver/TubePreProcesModuleExDriver.java @@ -134,20 +134,22 @@ public class TubePreProcesModuleExDriver { } - private void modGroupMoveToZero() throws AppException { - miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); - miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); - stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, actionOvertime); - stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModGripperZM, actionOvertime); - stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, actionOvertime); - stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.ShakeModShakeM, 90, actionOvertime); - } - public void moveToZeroQuick() throws AppException { stepMotorCtrlDriver.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.ShakeModGripperZM, actionOvertime); stepMotorCtrlDriver.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.ShakeModClampingM, actionOvertime); - stepMotorCtrlDriver.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.ShakeModShakeM, actionOvertime); - modGroupMoveToZero(); +// stepMotorCtrlDriver.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.ShakeModShakeM, actionOvertime); + + + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); + + stepMotorCtrlDriver.stepMotorEasyMoveToZero(StepMotorMId.ShakeModClampingM); + stepMotorCtrlDriver.stepMotorEasyMoveToZero(StepMotorMId.ShakeModGripperZM); + + stepMotorCtrlDriver.waitForMod(StepMotorMId.ShakeModClampingM, actionOvertime); + stepMotorCtrlDriver.waitForMod(StepMotorMId.ShakeModGripperZM, actionOvertime); + + stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.ShakeModShakeM, 90, actionOvertime); } } diff --git a/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java b/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java index 1361895..d5bc107 100644 --- a/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java +++ b/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java @@ -205,6 +205,7 @@ public class DeviceCtrlScripter { //移动到取样位置 A8kSamplePos samplePos = ProjProcessContextUtils.getSamplePos(ctx); + log.info("移动到 {}", samplePos); hbotCtrlService.moveTo(hbotSamplePosParamMgr.getSampleStartPos(samplePos)); //ldd准备