diff --git a/app.db b/app.db index 2d36357..6396dbb 100644 Binary files a/app.db and b/app.db differ 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 f4c98ca..8415adf 100644 --- a/src/main/java/a8k/service/app/devicectrl/calibration/TubeFeedingModulePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/calibration/TubeFeedingModulePosCalibration.java @@ -141,7 +141,9 @@ public class TubeFeedingModulePosCalibration { @ExtApiFn(name = "扫描试管架", group = "校验", order = 400) public TubeHolderScanResult calibrateScanTubeHolder() throws AppException { - return tubeTubeFeedingCtrlService.scanTubeHodler(); + TubeHolderScanResult result = tubeTubeFeedingCtrlService.scanTubeHodler(); + tubeTubeFeedingCtrlService.ejectTubeHolder(); + return result; } @ExtApiFn(name = "移动试管到预处理位置", group = "校验", order = 401) 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 f31466a..47ba527 100644 --- a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeTubeFeedingCtrlService.java +++ b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeTubeFeedingCtrlService.java @@ -59,6 +59,7 @@ public class TubeTubeFeedingCtrlService { StepMotorCtrlDriver stepMotorCtrlDriver; + private Boolean isTubeExist() throws AppException { return canBus.getIOState(IOId.TubeExistPPS); } @@ -212,13 +213,10 @@ public class TubeTubeFeedingCtrlService { moveTubeToScanPos(tubeIndex); try { tubeTransportExDriver.scanClampModClamp(); - - canBus.codeScanerStartScan(MId.FeedingModScannerMod); - miniServoDriver.miniServoRotateWithTorque(MiniServoMId.ShakeModTubeScanerClampingSV, stp.getTubeScanServoTorque()); + miniServoDriver.miniServoRotateWithTorque(MiniServoMId.ShakeModTubeScanerRotateSV, stp.getTubeScanServoTorque()); return codeScaner.feedingModScannerModCodeScannerScanCode(scanOvertime); } finally { - canBus.moduleStop(MId.ShakeModTubeScanerClampingSV); - canBus.moduleStop(MId.FeedingModScannerMod); + miniServoDriver.moduleStop(MiniServoMId.ShakeModTubeScanerRotateSV); tubeTransportExDriver.scanClampModRelease(); } } @@ -269,6 +267,7 @@ public class TubeTubeFeedingCtrlService { if (tubeType.isEmpty()) { logger.warn("扫描试管架类型失败,弹出试管架"); ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_SCAN_TUBEHOLDER_TYPE_TIMEOUT)); + ejectTubeHolder(); return null; } logger.info("扫描试管架类型成功,{}", tubeType); @@ -292,6 +291,7 @@ public class TubeTubeFeedingCtrlService { if (!hasTube) { logger.error("试管架中没有试管"); ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_TUBE_HOLDER_TYPE_IS_NOT_SUPPORT)); + ejectTubeHolder(); return null; } result.tubeHolderType = tubeType; diff --git a/src/main/java/a8k/service/app/devicectrl/driver/MiniServoDriver.java b/src/main/java/a8k/service/app/devicectrl/driver/MiniServoDriver.java index 5e9f13a..eaa45f3 100644 --- a/src/main/java/a8k/service/app/devicectrl/driver/MiniServoDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/driver/MiniServoDriver.java @@ -20,6 +20,9 @@ public class MiniServoDriver { @Resource A8kCanBusService canBus; + public void moduleStop(MiniServoMId id) throws AppException { + canBus.moduleStop(id.mid); + } public void miniServoEnable(MiniServoMId id, int enable) throws AppException { logger.info("{} miniServoEnable {}", id.mid, enable);