diff --git a/app.db b/app.db index 1628400..7015d9a 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/a8k/service/app/devicectrl/calibration/ReactionPlatesTransmitControlerCalibration.java b/src/main/java/a8k/service/app/devicectrl/calibration/ReactionPlatesTransmitControlerCalibration.java index a63f115..fbcb03e 100644 --- a/src/main/java/a8k/service/app/devicectrl/calibration/ReactionPlatesTransmitControlerCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/calibration/ReactionPlatesTransmitControlerCalibration.java @@ -4,12 +4,13 @@ import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.HbotDriver; -import a8k.service.app.devicectrl.exdriver.MiniServoExDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.driver.type.StepMotorMId; import a8k.service.app.devicectrl.ctrlservice.HbotCtrlService; import a8k.service.app.devicectrl.ctrlservice.ReactionPlatesTransmitCtrlService; +import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; import a8k.service.app.devicectrl.param.*; import a8k.type.ConsumableGroup; import a8k.type.IncubatorPos; @@ -25,13 +26,13 @@ public class ReactionPlatesTransmitControlerCalibration { final static int overtime = 10000; @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @Resource - StepMotorCtrlDriver stepMotorCtrlDriver; + StepMotorCtrlDriver stepMotorCtrlDriver; @Resource - OptModuleParamsMgr optModuleParamsMgr; + OptModuleParamsMgr optModuleParamsMgr; @Resource - TurntablePosParamMgr turntablePosParamMgr; + TurntablePosParamMgr turntablePosParamMgr; @Resource PlatesBoxPosParamMgr platesBoxPosParamMgr; @Resource @@ -48,6 +49,8 @@ public class ReactionPlatesTransmitControlerCalibration { @Resource HbotFixPosParamMgr hbotFixPosParamMgr; + @Resource + MotorEnableExDriver motorEnableExDriver; //基础工具 @ExtApiFn(name = "归零", group = "测试工具", order = 1) @@ -64,26 +67,14 @@ public class ReactionPlatesTransmitControlerCalibration { @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 2) public void enableModule() throws AppException { - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.OptModPullM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.OptModScannerM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.IncubatorRotateCtrlM, 1); - - pipetteCtrlDriver.zMotorEnable(1); - hbotDriver.enable(1); + motorEnableExDriver.reactionPlatesRelateModuleEnable(true); + motorEnableExDriver.hbotRelateModuleEnable(true); } @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 3) public void disableModule() throws AppException { - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.PlatesBoxYM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.OptModPullM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.OptModScannerM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.IncubatorRotateCtrlM, 0); - - pipetteCtrlDriver.zMotorEnable(0); - hbotDriver.enable(0); + motorEnableExDriver.reactionPlatesRelateModuleEnable(false); + motorEnableExDriver.hbotRelateModuleEnable(false); } @ExtApiFn(name = "读取板夹仓坐标", group = "测试工具", order = 5) diff --git a/src/main/java/a8k/service/app/devicectrl/calibration/TubeFeedingModulePosCalibration.java b/src/main/java/a8k/service/app/devicectrl/calibration/TubeFeedingModulePosCalibration.java index f5c227a..4a43f53 100644 --- a/src/main/java/a8k/service/app/devicectrl/calibration/TubeFeedingModulePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/calibration/TubeFeedingModulePosCalibration.java @@ -4,8 +4,9 @@ import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; import a8k.hardware.A8kCanBusService; -import a8k.service.app.devicectrl.exdriver.MiniServoExDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; +import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; import a8k.service.app.devicectrl.exdriver.TubeTransportExDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.service.app.devicectrl.driver.type.StepMotorMId; @@ -31,11 +32,13 @@ public class TubeFeedingModulePosCalibration { @Resource TubeTubeFeedingCtrlService tubeTubeFeedingCtrlService; @Resource - TubeTransportExDriver tubeTransportExDriver; + TubeTransportExDriver tubeTransportExDriver; @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @Resource - StepMotorCtrlDriver stepMotorCtrlDriver; + StepMotorCtrlDriver stepMotorCtrlDriver; + @Resource + MotorEnableExDriver motorEnableExDriver; private Integer readFeedingModXMPos() throws AppException { stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModXM, 1); @@ -47,29 +50,24 @@ public class TubeFeedingModulePosCalibration { return tubeScanPosMgr.getParams(); } + + // 测试工具 @ExtApiFn(name = "归零", group = "测试工具", order = 11) public void deviceReset() throws AppException { enableModule(); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.FeedingModXM, 15000); - } @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12) public void enableModule() throws AppException { - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModInfeedM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModXM, 1); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); + motorEnableExDriver.tubeFeedRelatedModuleEnable(true); } @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) public void disableModule() throws AppException { - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModInfeedM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModXM, 0); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 0); - + motorEnableExDriver.tubeFeedRelatedModuleEnable(false); + motorEnableExDriver.preProcessRelatedModuleEnable(false); } diff --git a/src/main/java/a8k/service/app/devicectrl/calibration/TubePreProcesPosCalibration.java b/src/main/java/a8k/service/app/devicectrl/calibration/TubePreProcesPosCalibration.java index 25877f1..720d4aa 100644 --- a/src/main/java/a8k/service/app/devicectrl/calibration/TubePreProcesPosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/calibration/TubePreProcesPosCalibration.java @@ -3,11 +3,12 @@ package a8k.service.app.devicectrl.calibration; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; -import a8k.service.app.devicectrl.exdriver.MiniServoExDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.service.app.devicectrl.driver.type.StepMotorMId; import a8k.service.app.devicectrl.ctrlservice.TubePreProcesCtrlService; +import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; import a8k.service.app.devicectrl.param.TubePreProcesPosParamMgr; import a8k.type.exception.AppException; import jakarta.annotation.Resource; @@ -23,19 +24,21 @@ public class TubePreProcesPosCalibration { TubePreProcesPosParamMgr posMgr; @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @Resource StepMotorCtrlDriver stepMotorCtrlDriver; @Resource TubePreProcesCtrlService controler; + @Resource + MotorEnableExDriver motorEnableExDriver; //基础工具 @ExtApiFn(name = "归零", group = "测试工具", order = 1) public void deviceReset() throws AppException { enableModule(); - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModGripperZM, overtime); - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, overtime); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, overtime); @@ -45,21 +48,13 @@ public class TubePreProcesPosCalibration { @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 2) public void enableModule() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModGripperZM, 1); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 1); + motorEnableExDriver.preProcessRelatedModuleEnable(true); } @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 3) public void disableModule() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 0); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModGripperZM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 0); - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModXM, 0); + motorEnableExDriver.preProcessRelatedModuleEnable(false); + motorEnableExDriver.tubeFeedRelatedModuleEnable(false); } // @ExtApiFn(name = "读取夹爪当前位置", group = "测试工具", order = 4) @@ -85,48 +80,48 @@ public class TubePreProcesPosCalibration { // 夹爪标定,校准,校验 // -// @ExtApiFn(name = "设置当前位置为<参考点>(完全张开的位置)", group = "标定.夹爪", order = 21, newline = true) -// public Integer gripperSVSetCurrentPosAsRef() throws AppException { -// miniServoControler.miniServoSetRefPos(MiniServoMId.ShakeModGripperSV); -// return 1800; -// } + // @ExtApiFn(name = "设置当前位置为<参考点>(完全张开的位置)", group = "标定.夹爪", order = 21, newline = true) + // public Integer gripperSVSetCurrentPosAsRef() throws AppException { + // miniServoControler.miniServoSetRefPos(MiniServoMId.ShakeModGripperSV); + // return 1800; + // } @ExtApiFn(name = "<标定>当前点为<抓手张开位置>", group = "标定.夹爪", order = 22) public Integer gripperSVSetCurrentPosAsOpenPos() throws AppException { - Integer pos = miniServoExDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV); + Integer pos = miniServoDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV); posMgr.setGripperServoOpenPos(pos); return pos; } @ExtApiFn(name = "<标定>当前点为<抓手闭合位置>", group = "标定.夹爪", order = 23) public Integer gripperSVSetCurrentPosAsClosePos() throws AppException { - int pos = miniServoExDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV); + int pos = miniServoDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV); posMgr.setGripperServoClosePos(pos + 2); return pos; } @ExtApiFn(name = "<标定>当前点为<抓手取试管位置>", group = "标定.夹爪", order = 24) public Integer gripperSVSetCurrentPosAsTakeCapPos() throws AppException { - Integer pos = miniServoExDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV); + Integer pos = miniServoDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV); posMgr.setGripperServoTakeCapPos(pos - 5); return pos; } @ExtApiFn(name = "<校验>张开", group = "校验.夹爪", order = 26) public void gripperSVOpen() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); controler.gripperSVOpen(); } @ExtApiFn(name = "<校验>夹紧", group = "校验.夹爪", order = 25) public void gripperSVCClose() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); controler.gripperSVCClose(); } @ExtApiFn(name = "<校验>夹住试管", group = "校验.夹爪", order = 25) public void gripperSVClampTube() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); controler.gripperSVClampTube(); } @@ -134,40 +129,40 @@ public class TubePreProcesPosCalibration { //YSV : 设置参考点,标定,验证 // -// @ExtApiFn(name = "设置当前位置为<参考点>(Y轴最外侧的位置)", group = "标定.YSV", order = 31, newline = true) -// public Integer YAxixServoSetCurrentPosAsRef() throws AppException { -// return miniServoControler.miniServoSetRefPos(MiniServoMId.ShakeModGripperYSV); -// } + // @ExtApiFn(name = "设置当前位置为<参考点>(Y轴最外侧的位置)", group = "标定.YSV", order = 31, newline = true) + // public Integer YAxixServoSetCurrentPosAsRef() throws AppException { + // return miniServoControler.miniServoSetRefPos(MiniServoMId.ShakeModGripperYSV); + // } @ExtApiFn(name = "<标定>当前点为<取试管位置>", group = "标定.YSV", order = 32) public Integer YAxixServoSetCurrentPosAsTakeTubePos() throws AppException { - Integer pos = miniServoExDriver.miniServoReadPos(MiniServoMId.ShakeModGripperYSV); + Integer pos = miniServoDriver.miniServoReadPos(MiniServoMId.ShakeModGripperYSV); posMgr.setYServoTakeTubePos(pos); return pos; } @ExtApiFn(name = "<标定>当前点为<摇晃位置>", group = "标定.YSV", order = 33) public Integer YAxixServoSetCurrentPosAsShakePos() throws AppException { - Integer pos = miniServoExDriver.miniServoReadPos(MiniServoMId.ShakeModGripperYSV); + Integer pos = miniServoDriver.miniServoReadPos(MiniServoMId.ShakeModGripperYSV); posMgr.setYServoShakePos(pos); return pos; } @ExtApiFn(name = "<校验>移动到摇匀位", group = "校验.YSV", order = 35) public void YAxixServoShake() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); controler.YSVMoveToShakePos(); } @ExtApiFn(name = "<校验>移动到取试管位", group = "校验.YSV", order = 36) public void YAxixServoTakeTube() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); controler.YSVMoveToTakeTubePos(); } @ExtApiFn(name = "<校验>移动到待机位", group = "校验.YSV", order = 37) public void YAxixServoMoveToStandyPos() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); controler.YSVMoveToStandyPos(); } diff --git a/src/main/java/a8k/service/app/devicectrl/ctrlservice/DeviceInitCtrlService.java b/src/main/java/a8k/service/app/devicectrl/ctrlservice/DeviceInitCtrlService.java index b05a682..497514d 100644 --- a/src/main/java/a8k/service/app/devicectrl/ctrlservice/DeviceInitCtrlService.java +++ b/src/main/java/a8k/service/app/devicectrl/ctrlservice/DeviceInitCtrlService.java @@ -2,7 +2,7 @@ package a8k.service.app.devicectrl.ctrlservice; import a8k.hardware.A8kCanBusService; import a8k.hardware.type.a8kcanprotocol.IOId; -import a8k.service.app.devicectrl.exdriver.MiniServoExDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.service.app.devicectrl.driver.type.StepMotorMId; @@ -35,7 +35,7 @@ public class DeviceInitCtrlService { @Resource AppDebugHelperService appDebugHelper; @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @Resource StepMotorCtrlDriver stepMotorCtrlDriver; @@ -93,9 +93,9 @@ public class DeviceInitCtrlService { //进出料初始化 actionReactor.dosome("入料平移电机回零", () -> stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.FeedingModXM, actionOvertime)); - actionReactor.dosome("摇匀模组-扫码夹紧舵机回零", () -> miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModTubeScanerClampingSV)); - actionReactor.dosome("摇匀模组-夹爪舵机回零", () -> miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV)); - actionReactor.dosome("摇匀模组-夹爪Y轴舵机回零", () -> miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV)); + actionReactor.dosome("摇匀模组-扫码夹紧舵机回零", () -> miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModTubeScanerClampingSV)); + actionReactor.dosome("摇匀模组-夹爪舵机回零", () -> miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV)); + actionReactor.dosome("摇匀模组-夹爪Y轴舵机回零", () -> miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV)); actionReactor.dosome("摇匀模组-夹紧电机回零", () -> stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, actionOvertime)); actionReactor.dosome("摇匀模组-夹爪Z轴电机回零", () -> stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModGripperZM, actionOvertime)); actionReactor.dosome("摇匀模组-摇匀电机回零", () -> stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, actionOvertime)); 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 bef1a3b..ac58740 100644 --- a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubePreProcesCtrlService.java +++ b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubePreProcesCtrlService.java @@ -4,7 +4,7 @@ import a8k.constant.MiniServoConstant; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; -import a8k.service.app.devicectrl.exdriver.MiniServoExDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.service.app.devicectrl.driver.type.StepMotorMId; @@ -43,7 +43,7 @@ public class TubePreProcesCtrlService { @Resource TubePreProcesPosParamMgr tubePreProcesPosParamMgr; @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @Resource StepMotorCtrlDriver stepMotorCtrlDriver; // ++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -51,8 +51,8 @@ public class TubePreProcesCtrlService { // ++++++++++++++++++++++++++++++++++++++++++++++++++++++ private void modGroupMoveToZero() throws AppException { - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, actionOvertime); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModGripperZM, actionOvertime); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, actionOvertime); @@ -81,30 +81,30 @@ public class TubePreProcesCtrlService { // Api public void gripperSVOpen() throws AppException { - miniServoExDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, tubePreProcesPosParamMgr.getGripperServoOpenPos()); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, tubePreProcesPosParamMgr.getGripperServoOpenPos()); } public void gripperSVCClose() throws AppException { - miniServoExDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, tubePreProcesPosParamMgr.getGripperServoClosePos()); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, tubePreProcesPosParamMgr.getGripperServoClosePos()); } public void gripperSVClampTube() throws AppException { - miniServoExDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, tubePreProcesPosParamMgr.getGripperServoTakeCapPos()); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, tubePreProcesPosParamMgr.getGripperServoTakeCapPos()); } public void YSVMoveToTakeTubePos() throws AppException { - miniServoExDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoTakeTubePos() - 100); //该动作是为了消除齿轮间隙 - miniServoExDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoTakeTubePos()); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoTakeTubePos() - 100); //该动作是为了消除齿轮间隙 + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoTakeTubePos()); } public void YSVMoveToShakePos() throws AppException { - miniServoExDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoShakePos() - 100); //该动作是为了消除齿轮间隙 - miniServoExDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoShakePos()); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoShakePos() - 100); //该动作是为了消除齿轮间隙 + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, tubePreProcesPosParamMgr.getYServoShakePos()); } public void YSVMoveToStandyPos() throws AppException { - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); } @@ -181,12 +181,12 @@ public class TubePreProcesCtrlService { } //Y轴在零点附近 - if (!ZEQ.IntEq(miniServoExDriver.miniServoReadPos(MiniServoMId.ShakeModGripperYSV), MiniServoConstant.getZeroPos(MiniServoMId.ShakeModGripperYSV), 30)) { + if (!ZEQ.IntEq(miniServoDriver.miniServoReadPos(MiniServoMId.ShakeModGripperYSV), MiniServoConstant.getZeroPos(MiniServoMId.ShakeModGripperYSV), 30)) { throw new AppException(A8kEcode.CODEERROR_MOTOR_NOT_IN_ZERO_POS, MId.ShakeModGripperYSV); } //夹爪没有零位置 - if (!ZEQ.IntEq(miniServoExDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV), MiniServoConstant.getZeroPos(MiniServoMId.ShakeModGripperSV), 30)) { + if (!ZEQ.IntEq(miniServoDriver.miniServoReadPos(MiniServoMId.ShakeModGripperSV), MiniServoConstant.getZeroPos(MiniServoMId.ShakeModGripperSV), 30)) { throw new AppException(A8kEcode.CODEERROR_MOTOR_NOT_IN_ZERO_POS, MId.ShakeModGripperSV); } diff --git a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeTubeFeedingCtrlService.java b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeTubeFeedingCtrlService.java index dc96a56..f31466a 100644 --- a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeTubeFeedingCtrlService.java +++ b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeTubeFeedingCtrlService.java @@ -5,7 +5,7 @@ import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.CodeScanerExDriver; -import a8k.service.app.devicectrl.exdriver.MiniServoExDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.exdriver.TubeTransportExDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; @@ -54,9 +54,9 @@ public class TubeTubeFeedingCtrlService { @Resource TubeTransportExDriver tubeTransportExDriver; @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @Resource - StepMotorCtrlDriver stepMotorCtrlDriver; + StepMotorCtrlDriver stepMotorCtrlDriver; private Boolean isTubeExist() throws AppException { @@ -214,7 +214,7 @@ public class TubeTubeFeedingCtrlService { tubeTransportExDriver.scanClampModClamp(); canBus.codeScanerStartScan(MId.FeedingModScannerMod); - miniServoExDriver.miniServoRotateWithTorque(MiniServoMId.ShakeModTubeScanerClampingSV, stp.getTubeScanServoTorque()); + miniServoDriver.miniServoRotateWithTorque(MiniServoMId.ShakeModTubeScanerClampingSV, stp.getTubeScanServoTorque()); return codeScaner.feedingModScannerModCodeScannerScanCode(scanOvertime); } finally { canBus.moduleStop(MId.ShakeModTubeScanerClampingSV); diff --git a/src/main/java/a8k/service/app/devicectrl/exdriver/MiniServoExDriver.java b/src/main/java/a8k/service/app/devicectrl/driver/MiniServoDriver.java similarity index 96% rename from src/main/java/a8k/service/app/devicectrl/exdriver/MiniServoExDriver.java rename to src/main/java/a8k/service/app/devicectrl/driver/MiniServoDriver.java index 9ed7a9e..5e9f13a 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/MiniServoExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/driver/MiniServoDriver.java @@ -1,4 +1,4 @@ -package a8k.service.app.devicectrl.exdriver; +package a8k.service.app.devicectrl.driver; import a8k.constant.MiniServoConstant; import a8k.hardware.A8kCanBusService; @@ -14,8 +14,8 @@ import org.springframework.stereotype.Component; @Component -public class MiniServoExDriver { - Logger logger = org.slf4j.LoggerFactory.getLogger(MiniServoExDriver.class); +public class MiniServoDriver { + Logger logger = org.slf4j.LoggerFactory.getLogger(MiniServoDriver.class); @Resource A8kCanBusService canBus; 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 a8b3262..71770fd 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java @@ -2,8 +2,12 @@ package a8k.service.app.devicectrl.exdriver; import a8k.hardware.A8kCanBusService; import a8k.service.app.devicectrl.driver.HbotDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; +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 org.springframework.stereotype.Component; @@ -12,15 +16,49 @@ public class MotorEnableExDriver { @Resource - A8kCanBusService canBus; + A8kCanBusService canBus; @Resource HbotDriver hbotDriver; @Resource PipetteCtrlDriver pipetteCtrlDriver; @Resource StepMotorCtrlDriver stepMotorCtrlDriver; + @Resource + MiniServoDriver miniServoDriver; + + + public void preProcessRelatedModuleEnable(Boolean enable) throws AppException { + Integer val = enable ? 1 : 0; + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, val); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModGripperZM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, val); + } + + public void tubeFeedRelatedModuleEnable(Boolean enable) throws AppException { + Integer val = enable ? 1 : 0; + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModInfeedM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.FeedingModXM, val); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, val); + } + + public void reactionPlatesRelateModuleEnable(Boolean enable) throws AppException { + Integer val = enable ? 1 : 0; + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.PlatesBoxYM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.OptModPullM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.OptModScannerM, val); + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.IncubatorRotateCtrlM, val); + } + public void hbotRelateModuleEnable(Boolean enable) throws AppException { + Integer val = enable ? 1 : 0; + pipetteCtrlDriver.zMotorEnable(val); + hbotDriver.enable(val); + } } diff --git a/src/main/java/a8k/service/app/devicectrl/exdriver/TubeTransportExDriver.java b/src/main/java/a8k/service/app/devicectrl/exdriver/TubeTransportExDriver.java index a7f5fef..76e138a 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/TubeTransportExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/exdriver/TubeTransportExDriver.java @@ -5,6 +5,7 @@ import a8k.extapi_controler.utils.ExtApiFn; import a8k.hardware.A8kCanBusService; import a8k.hardware.type.a8kcanprotocol.A8kEcode; import a8k.hardware.type.a8kcanprotocol.MId; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.service.app.devicectrl.driver.type.StepMotorMId; @@ -22,9 +23,9 @@ public class TubeTransportExDriver { static Integer overtime = 10000; @Resource - A8kCanBusService canBus; + A8kCanBusService canBus; @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @Resource TubeFeedingModuleParamMgr tubeScanPosMgr; @@ -72,16 +73,16 @@ public class TubeTransportExDriver { @ExtApiFn(name = "扫描夹紧机构夹紧", group = "基础方法", order = 1) public void scanClampModClamp() throws AppException { logger.info("扫描夹紧机构夹紧"); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); - miniServoExDriver.miniServoMoveTo(MiniServoMId.ShakeModTubeScanerClampingSV, MiniServoConstant.getZeroPos(MiniServoMId.ShakeModTubeScanerClampingSV) + 900); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); + miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModTubeScanerClampingSV, MiniServoConstant.getZeroPos(MiniServoMId.ShakeModTubeScanerClampingSV) + 900); canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, overtime); } @ExtApiFn(name = "扫描夹紧机构复位", group = "基础方法", order = 2) public void scanClampModRelease() throws AppException { logger.info("扫描夹紧机构复位"); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); - miniServoExDriver.miniServoMoveTo(MiniServoMId.ShakeModTubeScanerClampingSV, MiniServoConstant.getZeroPos(MiniServoMId.ShakeModTubeScanerClampingSV)); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); + miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModTubeScanerClampingSV, MiniServoConstant.getZeroPos(MiniServoMId.ShakeModTubeScanerClampingSV)); canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, overtime); } diff --git a/src/main/java/a8k/service/app/devicectrl/calibration/MiniServoReferencePointSetting.java b/src/main/java/a8k/service/app/devicectrl/init/MiniServoReferencePointIniter.java similarity index 61% rename from src/main/java/a8k/service/app/devicectrl/calibration/MiniServoReferencePointSetting.java rename to src/main/java/a8k/service/app/devicectrl/init/MiniServoReferencePointIniter.java index bc80036..890a7a7 100644 --- a/src/main/java/a8k/service/app/devicectrl/calibration/MiniServoReferencePointSetting.java +++ b/src/main/java/a8k/service/app/devicectrl/init/MiniServoReferencePointIniter.java @@ -1,10 +1,10 @@ -package a8k.service.app.devicectrl.calibration; +package a8k.service.app.devicectrl.init; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; -import a8k.service.app.devicectrl.exdriver.MiniServoExDriver; +import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.type.exception.AppException; import jakarta.annotation.Resource; @@ -12,54 +12,54 @@ import org.springframework.stereotype.Component; @Component @ExtApiTab(cfg = ExtApiTabConfig.MiniServoReferencePointSetting) -public class MiniServoReferencePointSetting { +public class MiniServoReferencePointIniter { @Resource - MiniServoExDriver miniServoExDriver; + MiniServoDriver miniServoDriver; @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 1) public void disableMotor() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 0); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 0); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 0); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 0); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 0); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 0); } @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 2) public void enableMotor() throws AppException { - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); - miniServoExDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); + miniServoDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); } @ExtApiFn(name = "设置<夹爪><参考点>(完全张开的位置)", group = "参考点设置", order = 11, newline = true) public Integer gripperSVSetCurrentPosAsRef() throws AppException { - miniServoExDriver.miniServoSetRefPos(MiniServoMId.ShakeModGripperSV); + miniServoDriver.miniServoSetRefPos(MiniServoMId.ShakeModGripperSV); return 1800; } @ExtApiFn(name = "设置<摇匀模组Y轴舵机><参考点>(Y轴最外侧的位置)", group = "参考点设置", order = 12, newline = true) public Integer YAxixServoSetCurrentPosAsRef() throws AppException { - return miniServoExDriver.miniServoSetRefPos(MiniServoMId.ShakeModGripperYSV); + return miniServoDriver.miniServoSetRefPos(MiniServoMId.ShakeModGripperYSV); } @ExtApiFn(name = "设置<夹紧舵机>参考点(水平位置)", group = "参考点设置", order = 13) public void setTubeScanClampPos() throws AppException { - miniServoExDriver.miniServoSetRefPos(MiniServoMId.ShakeModTubeScanerClampingSV); + miniServoDriver.miniServoSetRefPos(MiniServoMId.ShakeModTubeScanerClampingSV); } @ExtApiFn(name = "夹紧舵机移动到待机位(在参考点附近)", group = "校验", order = 21) public void gripperSVMoveToZeroBlock() throws AppException { - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperSV); } @ExtApiFn(name = "摇匀模组Y轴舵机移动到待机位(在参考点附近)", group = "校验", order = 22) public void YAxixServoMoveToZeroBlock() throws AppException { - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModGripperYSV); } @ExtApiFn(name = "夹紧舵机移动到待机位(在参考点附近)", group = "校验", order = 23) public void tubeScanClampMoveToZeroBlock() throws AppException { - miniServoExDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModTubeScanerClampingSV); + miniServoDriver.miniServoMoveToZeroBlock(MiniServoMId.ShakeModTubeScanerClampingSV); } }