diff --git a/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidLiftingOriginCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidLiftingOriginCommand.java index 54d3a09..dfd756c 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidLiftingOriginCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidLiftingOriginCommand.java @@ -27,8 +27,6 @@ public class LiquidLiftingOriginCommand extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - transferModuleService.transferZMoveBy(2);//向下移动2mm - transferModuleService.transferXMoveBy(21);//向右移动21mm solutionModuleService.solutionMotorOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); selfTestService.getSelfTestState().setDualRobotOrigin(true); }); diff --git a/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidPreFillCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidPreFillCommand.java index ada3ecd..257b6b9 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidPreFillCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/selftest/LiquidPreFillCommand.java @@ -57,6 +57,14 @@ public class LiquidPreFillCommand extends BaseCommandHandler { Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置 Double preFillDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.pre_fill_distance_when_open_service);//预充距离 transferModuleService.transferXMove(heatArea1TrayClawPoint.getX());//转运模块移动至加热位1 + clawTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.CLAW_TRAY_EXIST); + if (clawTrayExist) { + throw new AppException(ResultCode.TRANSFER_MODULE_YES_TRAY);//夹爪存在托盘 + } + feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST); + if (feedTrayExist) { + throw new AppException(ResultCode.FEED_AREA_EXIST_TRAY);//上料区存在托盘 + } solutionModuleService.solutionMotorMove(liquidAreaPreFillPoint);//加液机械臂下降至至预充点位 solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 solutionModuleService.liquidPumpMove(-preFillDistance);//排空 diff --git a/src/main/java/com/iflytop/sgs/app/cmd/selftest/MoveTestCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/selftest/MoveTestCommand.java index 1fe1533..8b5aa2f 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/selftest/MoveTestCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/selftest/MoveTestCommand.java @@ -69,12 +69,31 @@ public class MoveTestCommand extends BaseCommandHandler { transferModuleService.transferZMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//Z轴抬升至最高 transferModuleService.transferMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidAreaTrayPoint3D);//转移至加液区托盘点位 transferModuleService.transferXMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), annealHeatModuleTrayClawPoint3D.getX());//将X轴移动至托盘夹取点 + clawTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.CLAW_TRAY_EXIST); + if (clawTrayExist) { + webSocketService.pushSelfMoveTest(SelfMoveTestGenerator.generateJson(cmdDTO.getCommandId(), cmdDTO.getCommand(), "机械臂夹爪存在试管架,请取出!", 0, "error")); + throw new AppException(ResultCode.TRANSFER_MODULE_YES_TRAY);//夹爪存在托盘 + } + feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST); + if (feedTrayExist) { + webSocketService.pushSelfMoveTest(SelfMoveTestGenerator.generateJson(cmdDTO.getCommandId(), cmdDTO.getCommand(), "上料区存在试管架,请取出!", 0, "error")); + throw new AppException(ResultCode.FEED_AREA_EXIST_TRAY);//上料区存在托盘 + } solutionModuleService.solutionMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), solutionModuleMotorDownInTubeExtPositon);//加液模块下降进入试管抽取位置 solutionModuleService.solutionMotorMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//加液机械臂抬升至最高 webSocketService.pushSelfMoveTest(SelfMoveTestGenerator.generateJson(cmdDTO.getCommandId(), cmdDTO.getCommand(), "2、加液模块升降电机检测完毕", 50, "success")); transferModuleService.transferXMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidAreaTrayPoint3D.getX());//将X轴移动至加液时托盘位置点 transferModuleService.transferXMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), feedAreaTrayPoint3D.getX());//将X轴移动至上料区位置点 webSocketService.pushSelfMoveTest(SelfMoveTestGenerator.generateJson(cmdDTO.getCommandId(), cmdDTO.getCommand(), "3、x轴电机检测完毕", 75, "success")); + if (clawTrayExist) { + webSocketService.pushSelfMoveTest(SelfMoveTestGenerator.generateJson(cmdDTO.getCommandId(), cmdDTO.getCommand(), "机械臂夹爪存在试管架,请取出!", 0, "error")); + throw new AppException(ResultCode.TRANSFER_MODULE_YES_TRAY);//夹爪存在托盘 + } + feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST); + if (feedTrayExist) { + webSocketService.pushSelfMoveTest(SelfMoveTestGenerator.generateJson(cmdDTO.getCommandId(), cmdDTO.getCommand(), "上料区存在试管架,请取出!", 0, "error")); + throw new AppException(ResultCode.FEED_AREA_EXIST_TRAY);//上料区存在托盘 + } transferModuleService.transferZMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), feedAreaTrayPoint3D.getZ());//Z轴下降至夹取点,使托盘落入上料区 transferModuleService.transferZMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//Z轴抬升至最高 webSocketService.pushSelfMoveTest(SelfMoveTestGenerator.generateJson(cmdDTO.getCommandId(), cmdDTO.getCommand(), "4、z轴电机检测完毕", 100, "success")); diff --git a/src/main/java/com/iflytop/sgs/app/cmd/selftest/TrayOutCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/selftest/TrayOutCommand.java index e21a550..c96fb9e 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/selftest/TrayOutCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/selftest/TrayOutCommand.java @@ -11,6 +11,7 @@ import com.iflytop.sgs.app.service.device.module.HeatModuleService; import com.iflytop.sgs.app.service.device.module.SolutionModuleService; import com.iflytop.sgs.app.service.device.module.TransferModuleService; import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.DeviceSensorCode; import com.iflytop.sgs.common.enums.HeatModuleCode; import com.iflytop.sgs.common.enums.data.DevicePositionCode; import com.iflytop.sgs.common.exception.AppException; @@ -51,17 +52,23 @@ public class TrayOutCommand extends BaseCommandHandler { Point3D targetHeatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(targetHeatModuleCode);//获取目标加热模块托盘夹取点 Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离 Point3D feedAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.feedAreaTrayPoint).getPoint3D();//获取上料区托盘夹爪位置点 - deviceStateService.getCommandMutexState().get().setTrayOut(true); return runAsync(() -> { try{ + deviceStateService.getCommandMutexState().get().setTrayOut(true); boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(targetHeatModuleCode);//目标加热模块有无托盘 - Assert.isTrue(heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_NO_TRAY));//提示被占用 + Assert.isTrue(heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_NO_TRAY));//提示无托盘 solutionModuleService.solutionMotorMoveZero(); transferModuleService.transferXMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), targetHeatModuleTrayClawPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至目标加热模块托盘夹取点 + 进出卡槽移动距离 + heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(targetHeatModuleCode);//目标加热模块有无托盘 + Assert.isTrue(heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_NO_TRAY));//提示无托盘 transferModuleService.transferZMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), targetHeatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 transferModuleService.transferXMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -transferModuleXPickTrayMoveDistance);//X轴进入卡槽 transferModuleService.transferZMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//Z轴抬升至最高 transferModuleService.transferXMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), feedAreaTrayPoint3D.getX());//将X轴移动至上料区位置点 + boolean feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST); + if (feedTrayExist) { + throw new AppException(ResultCode.FEED_AREA_EXIST_TRAY);//上料区存在托盘 + } transferModuleService.transferZMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), feedAreaTrayPoint3D.getZ());//Z轴下降至夹取点,使托盘落入上料区 transferModuleService.transferXMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), transferModuleXPickTrayMoveDistance);//X轴移出卡槽 transferModuleService.transferZMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//Z轴抬升至最高