From 9d5c3d981dc3d1360e5dee2de2c0e311f449aacf Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 18 Oct 2024 16:33:51 +0800 Subject: [PATCH] update --- app.db | Bin 225280 -> 225280 bytes .../calibration/HbotSamplePosCalibration.java | 44 +++++++++++++++++++-- .../devicectrl/exdriver/MotorEnableExDriver.java | 34 ++++++++++++++++ 3 files changed, 74 insertions(+), 4 deletions(-) diff --git a/app.db b/app.db index c75b043fe70428672ef7cbcf506946c0ea97f679..5f5a5da5d13b708342e5bceddd167490976755ba 100644 GIT binary patch delta 292 zcmZp8z}xVEcY?IwUIqpRb09VYVkHI!-U$d2kWa)>3Dy_5OtcC`nL3z)fB`55#W%qMXqg172WoBYrJ3ZhDqxkgf$BaDNbDuEk zFfuWI+AJvWj*&B`T?=TMvAFZ}hR2N3U>lTyhT${M$lM5Qo^1P%=ZxEbJZIwQ007v( BT@nBQ delta 202 zcmV;*05$)B;0=J_4UiiV82|tPHvj+tHUIzsA^-plN|7ux1sMP?c8IZL+t2|zvp~^a z0RcI)pVAxx0XVa~)cXMeH?z3b;Q;|QgPPd4n%Dtn2PFj#03!i50t*QWstQI46$rQp zSO@qC;0bsIK?`RD!USyu9s|a=Cg1^}0}54#D+d5KIRF4tmx1E}8keo-0Sg92Ze&nz zbC*iw0V4-YhbjjEH#3*;;Q<(zsOJF_m)qw79k*@d0W1Lm0%5Ze5M2U?_~!w)_~!x$ Eh!=A}^8f$< diff --git a/src/main/java/a8k/service/app/devicectrl/calibration/HbotSamplePosCalibration.java b/src/main/java/a8k/service/app/devicectrl/calibration/HbotSamplePosCalibration.java index 9fde636..c3b0230 100644 --- a/src/main/java/a8k/service/app/devicectrl/calibration/HbotSamplePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/calibration/HbotSamplePosCalibration.java @@ -7,6 +7,10 @@ import a8k.extapi_controler.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.HbotDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; import a8k.service.app.devicectrl.ctrlservice.HbotCtrlService; +import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; +import a8k.service.app.devicectrl.driver.type.StepMotorMId; +import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; +import a8k.service.app.devicectrl.exdriver.TubePreProcesModuleExDriver; import a8k.service.app.devicectrl.param.HbotSamplePosParamMgr; import a8k.type.*; import a8k.type.cfg.Pos2d; @@ -15,6 +19,7 @@ import a8k.type.exception.AppException; import jakarta.annotation.Resource; import org.aspectj.lang.annotation.Aspect; import org.slf4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @ExtApiTab(cfg = ExtApiTabConfig.HbotSamplePosCalibration) @@ -24,9 +29,13 @@ public class HbotSamplePosCalibration { static Logger logger = org.slf4j.LoggerFactory.getLogger(HbotSamplePosCalibration.class); @Resource - PipetteCtrlDriver pipetteCtrlDriver; + PipetteCtrlDriver pipetteCtrlDriver; @Resource - HbotDriver hbotDriver; + HbotDriver hbotDriver; + @Resource + MotorEnableExDriver motorEnableExDriver; + @Resource + TubePreProcesModuleExDriver tubePreProcesModuleExDriver; @Resource @@ -35,6 +44,8 @@ public class HbotSamplePosCalibration { HbotSamplePosParamMgr hbotSamplePosParamMgr; Boolean stopFlag = false; + @Autowired + private StepMotorCtrlDriver stepMotorCtrlDriver; Boolean checkStopFlag() { if (stopFlag) { @@ -75,8 +86,33 @@ public class HbotSamplePosCalibration { @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) public void disableModule() throws AppException { - pipetteCtrlDriver.zMotorEnable(0); - hbotDriver.enable(0); + motorEnableExDriver.forceDisableAllMotor(); + } + + + @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(); } diff --git a/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java b/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java index 71770fd..8024de7 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java @@ -9,9 +9,11 @@ import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.service.app.devicectrl.driver.type.StepMotorMId; import a8k.type.exception.AppException; import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @Component +@Slf4j public class MotorEnableExDriver { @@ -61,4 +63,36 @@ public class MotorEnableExDriver { } + public void forceDisableAllMotor() { + // StepMotorMId.values() + for (StepMotorMId stepMotorMId : StepMotorMId.values()) { + try { + stepMotorCtrlDriver.stepMotorEnable(stepMotorMId, 0); + } catch (AppException e) { + log.info("disableStepMotor: {} failed, {}", stepMotorMId, e.getMessage()); + } + } + + for (MiniServoMId miniServoMId : MiniServoMId.values()) { + try { + miniServoDriver.miniServoEnable(miniServoMId, 0); + } catch (AppException e) { + log.info("disableMiniServo: {} failed, {}", miniServoMId, e.getMessage()); + } + } + + try { + hbotDriver.enable(0); + } catch (AppException e) { + log.info("hbotDriver disable failed, {}", e.getMessage()); + } + + try { + pipetteCtrlDriver.zMotorEnable(0); + } catch (AppException e) { + log.info("pipetteCtrlDriver: zMotorEnable failed, {}", e.getMessage()); + } + } + + }