diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java index b0e655f..c61790b 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java @@ -118,7 +118,7 @@ public class SEQ4_PRE_PROCESS extends A8kStepAction { logger.info("是否高位试管:{}", isHighTube); tubePreProcesCtrlService.takeTubeFromTubeholderToShakePos(isHighTube); tubePreProcesCtrlService.shakeTube(45, shakeTimes); - tubePreProcesCtrlService.takeTubeCap(isHighTube); + tubePreProcesCtrlService.takeTubeCap(); } else { logger.info("不是全血试管,不需要摇匀"); } diff --git a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubePreProcesCtrlService.java b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubePreProcesCtrlService.java index 6fc03cf..79f866e 100644 --- a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubePreProcesCtrlService.java +++ b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubePreProcesCtrlService.java @@ -107,7 +107,7 @@ public class TubePreProcesCtrlService { progress = PROGRESS.SHAKE_TUBE; } - public void takeTubeCap(Boolean isHTube) throws AppException { + public void takeTubeCap() throws AppException { log.info("取试管帽"); //Y移动到取试管帽位置 tubePreProcesModuleExDriver.YSVMoveToShakePos(); @@ -126,7 +126,7 @@ public class TubePreProcesCtrlService { } - public void putbakTubeCapAndPutbakTubeToTubeHolder(Boolean isHTube) throws AppException { + public void putbakTubeCapAndPutbakTubeToTubeHolder() throws AppException { //移动Y轴到方式管的位置 tubePreProcesModuleExDriver.YSVMoveToShakePos(); // 盖盖子 @@ -172,7 +172,7 @@ public class TubePreProcesCtrlService { tubePreProcesModuleExDriver.moveToZeroQuick(); progress = PROGRESS.IDLE; } else if (progress.equals(PROGRESS.TAKE_CAP)) { - putbakTubeCapAndPutbakTubeToTubeHolder(isHTube); + putbakTubeCapAndPutbakTubeToTubeHolder(); progress = PROGRESS.IDLE; return; } else if (progress.equals(PROGRESS.PUT_BAK_TUBE)) { diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java index d741ce6..e930b17 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java @@ -4,7 +4,9 @@ package a8k.service.app.devicectrl.param.calibration; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; +import a8k.service.app.devicectrl.ctrlservice.TubePreProcesCtrlService; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; +import a8k.service.app.devicectrl.exdriver.MotorMoveZeroExDriver; import a8k.service.app.devicectrl.param.type.HbotSamplePos; import a8k.service.app.devicectrl.driver.HbotDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; @@ -38,6 +40,10 @@ public class HbotSamplePosCalibration { TubePreProcesModuleExDriver tubePreProcesModuleExDriver; @Resource HbotBaseMoveExDriver hbotBaseMoveExDriver; + @Resource + TubePreProcesCtrlService tubePreProcesCtrlService; + @Resource + MotorMoveZeroExDriver motorMoveZeroExDriver; @Resource @@ -45,6 +51,7 @@ public class HbotSamplePosCalibration { @Resource HbotSamplePosParamMgr hbotSamplePosParamMgr; + @Resource StepMotorCtrlDriver stepMotorCtrlDriver; @@ -77,8 +84,13 @@ public class HbotSamplePosCalibration { @ExtApiFn(name = "归零", group = "测试工具", order = 11) public void moveToZero() throws AppException { enableModule(); + + motorEnableExDriver.preProcessRelatedModuleEnable(true); + motorMoveZeroExDriver.preProcessModuleMoveToZero(); + pipetteCtrlDriver.zMotorMoveZeroBlock(); hbotBaseMoveExDriver.moveToZero(); + } @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12) @@ -89,33 +101,44 @@ public class HbotSamplePosCalibration { @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) public void disableModule() throws AppException { - motorEnableExDriver.forceDisableAllMotor(); + pipetteCtrlDriver.zMotorEnable(0); + hbotBaseMoveExDriver.enable(0); } - @ExtApiFn(name = "试管夹具复位", group = "辅助工具", order = 21) - public void tubeClampMoveZero() throws AppException { - - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 1); - stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, 5000); - stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.ShakeModShakeM, 90, 5000); - stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, 5000); - tubePreProcesModuleExDriver.clampingMReleaseTube(); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 0); - } - - @ExtApiFn(name = "释放试管", group = "辅助工具", order = 22) - public void releaseTubeClamp() throws AppException { - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); - stepMotorCtrlDriver.stepMotorEasyMoveByBlock(StepMotorMId.ShakeModClampingM, 20, 5000); - // tubePreProcesModuleExDriver.clampingMReleaseTube(); + // @ExtApiFn(name = "试管夹具复位", group = "辅助工具", order = 21) + // public void tubeClampMoveZero() throws AppException { + // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); + // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 1); + // stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, 5000); + // stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.ShakeModShakeM, 90, 5000); + // stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, 5000); + // tubePreProcesModuleExDriver.clampingMReleaseTube(); + // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 0); + // } + // + // @ExtApiFn(name = "释放试管", group = "辅助工具", order = 22) + // public void releaseTubeClamp() throws AppException { + // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); + // stepMotorCtrlDriver.stepMotorEasyMoveByBlock(StepMotorMId.ShakeModClampingM, 20, 5000); + // // tubePreProcesModuleExDriver.clampingMReleaseTube(); + // } + // + // @ExtApiFn(name = "夹紧试管", group = "辅助工具", order = 23) + // public void clampTubeClamp() throws AppException { + // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); + // tubePreProcesModuleExDriver.clampingMclampTube(); + // } + + @ExtApiFn(name = "取试管到试管摇匀位", group = "辅助工具", order = 21) + public void takeTubeToShakePos(Boolean isHtube) throws AppException { + tubePreProcesCtrlService.takeTubeFromTubeholderToShakePos(isHtube); + tubePreProcesCtrlService.takeTubeCap(); } - @ExtApiFn(name = "夹紧试管", group = "辅助工具", order = 23) - public void clampTubeClamp() throws AppException { - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); - tubePreProcesModuleExDriver.clampingMclampTube(); + @ExtApiFn(name = "放回试管到试管架中", group = "辅助工具", order = 22) + public void putTubeBak() throws AppException { + tubePreProcesCtrlService.putbakTubeCapAndPutbakTubeToTubeHolder(); } diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java index 6fe7009..0a55c26 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java @@ -105,6 +105,11 @@ public class ReactionPlatesTransmitControlerCalibration { return turntablePosParamMgr.getParams(); } + @ExtApiFn(name = "获取Hbot滴定坐标", group = "测试工具", order = 7) + public Object getHbotDropLiquidPos() { + return hbotFixedPosParamMgr.getParam(HbotFixedPosParamMgr.Pos.DropLiquidPos); + } + // // 孵育盘校准 @@ -137,7 +142,12 @@ public class ReactionPlatesTransmitControlerCalibration { return dropLiquidPos0; } - @ExtApiFn(name = "标定", group = "HbotTip滴定位.校准", order = 104) + @ExtApiFn(name = "移动孵育盘仓位1滴定位到放液位", group = "HbotTip滴定位.校准", order = 110) + public void moveTurnablePos0ToDropPos() throws AppException { + turnableMoveCtrlService.trunableMoveToDropLiquidPos(IncubatorPos.SPACE01); + } + + @ExtApiFn(name = "标定", group = "HbotTip滴定位.校准", order = 111) public Pos3d Hbot_dropLiquidPosCalibration() throws AppException { enableModule(); pipetteCtrlDriver.zMotorMeasureDistance(); @@ -224,22 +234,26 @@ public class ReactionPlatesTransmitControlerCalibration { @ExtApiFn(name = "滴定", group = "校验", order = 1000) public void turntableMoveDropPos(IncubatorPos pos) throws AppException { + deviceReset(); turnableMoveCtrlService.trunableMoveToDropLiquidPos(pos); hbotCtrlService.moveToDropLiquidPos(); } @ExtApiFn(name = "孵育盘移动到拉板位", group = "校验", order = 1001) public void turntableMovePullPos(IncubatorPos pos) throws AppException { + deviceReset(); turnableMoveCtrlService.trunableMoveToPullPos(pos); } @ExtApiFn(name = "孵育盘移动到推板位", group = "校验", order = 1002) public void turntableMovePushPos(IncubatorPos pos) throws AppException { + deviceReset(); turnableMoveCtrlService.trunableMoveToPushPos(pos); } @ExtApiFn(name = "反应板.推一丢一", group = "校验", order = 1003) public void pushOneAndRemove(ConsumableGroup PBCh, IncubatorPos incubatorPos) throws AppException { + deviceReset(); plateBoxCtrlService.pushPlateQuick(PBCh, incubatorPos); optScanModuleCtrlService.pullPlate(incubatorPos); optScanModuleCtrlService.dropPlate(); @@ -247,6 +261,7 @@ public class ReactionPlatesTransmitControlerCalibration { @ExtApiFn(name = "反应板.推所有丢所有", group = "校验", order = 1004) public void pushAllAndRemoveAll() throws AppException { + deviceReset(); pushOneAndRemove(ConsumableGroup.GROUP0, IncubatorPos.SPACE01); pushOneAndRemove(ConsumableGroup.GROUP1, IncubatorPos.SPACE02); pushOneAndRemove(ConsumableGroup.GROUP2, IncubatorPos.SPACE03); diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java index 15c4cdc..7a73c8b 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java @@ -270,8 +270,8 @@ public class TubePreProcesPosCalibration { deviceReset(); controler.takeTubeFromTubeholderToShakePos(isHTube); controler.shakeTube(45, 5); - controler.takeTubeCap(isHTube); - controler.putbakTubeCapAndPutbakTubeToTubeHolder(isHTube); + controler.takeTubeCap(); + controler.putbakTubeCapAndPutbakTubeToTubeHolder(); tubePreProcesModuleExDriver.clampingMReleaseTubeInFuzzyPos(); disableModule(); diff --git a/src/main/java/a8k/service/app/devicectrl/param/param_mgr/HbotFixedPosParamMgr.java b/src/main/java/a8k/service/app/devicectrl/param/param_mgr/HbotFixedPosParamMgr.java index 5daae38..9757288 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/param_mgr/HbotFixedPosParamMgr.java +++ b/src/main/java/a8k/service/app/devicectrl/param/param_mgr/HbotFixedPosParamMgr.java @@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; public class HbotFixedPosParamMgr extends ParamMgr { static final Logger logger = LoggerFactory.getLogger(HbotFixedPosParamMgr.class); - enum Pos { + public enum Pos { DropLiquidPos("滴液位置"), ; public final String chName; diff --git a/src/main/java/a8k/service/app/devicectrl/param/param_mgr/base/ParamMgr.java b/src/main/java/a8k/service/app/devicectrl/param/param_mgr/base/ParamMgr.java index 1efca68..ca706bb 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/param_mgr/base/ParamMgr.java +++ b/src/main/java/a8k/service/app/devicectrl/param/param_mgr/base/ParamMgr.java @@ -9,13 +9,17 @@ import java.util.List; public class ParamMgr { @Resource LowerDeviceParameterDBService db; - String serviceName = this.getClass().getSimpleName(); + String serviceName = this.getClass().getSimpleName(); public List getParams() { return db.getParams(serviceName); } + public Parameter getParam(Enum key) { + return db.getParam(this.serviceName, key.name()); + } + public void resetParams() { db.recoveryParamByService(serviceName); } diff --git a/src/main/resources/app.db b/src/main/resources/app.db index 97cdd56..4455928 100644 Binary files a/src/main/resources/app.db and b/src/main/resources/app.db differ