Browse Source

fix:增加托盘状态的判断

master
王梦远 2 months ago
parent
commit
3749a4dec4
  1. 10
      src/main/java/com/iflytop/sgs/app/cmd/control/MoveToHeatAreaCommand.java
  2. 5
      src/main/java/com/iflytop/sgs/app/cmd/control/MoveToLiquidAreaCommand.java
  3. 2
      src/main/java/com/iflytop/sgs/common/result/ResultCode.java

10
src/main/java/com/iflytop/sgs/app/cmd/control/MoveToHeatAreaCommand.java

@ -1,5 +1,6 @@
package com.iflytop.sgs.app.cmd.control; package com.iflytop.sgs.app.cmd.control;
import cn.hutool.core.lang.Assert;
import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.core.BaseCommandHandler;
import com.iflytop.sgs.app.model.bo.Point3D; import com.iflytop.sgs.app.model.bo.Point3D;
import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.model.dto.CmdDTO;
@ -10,6 +11,8 @@ import com.iflytop.sgs.app.service.device.module.TransferModuleService;
import com.iflytop.sgs.common.annotation.CommandMapping; import com.iflytop.sgs.common.annotation.CommandMapping;
import com.iflytop.sgs.common.enums.HeatModuleCode; import com.iflytop.sgs.common.enums.HeatModuleCode;
import com.iflytop.sgs.common.enums.data.DevicePositionCode; import com.iflytop.sgs.common.enums.data.DevicePositionCode;
import com.iflytop.sgs.common.exception.AppException;
import com.iflytop.sgs.common.result.ResultCode;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -32,13 +35,12 @@ public class MoveToHeatAreaCommand extends BaseCommandHandler {
@Override @Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) throws Exception { public CompletableFuture<Void> handle(CmdDTO cmdDTO) throws Exception {
if (!deviceStateService.getDeviceState().getTransferModule().isTrayStatus()) { //判断机械臂上是否有托盘
//TODO 判断目标加热模块传感器是否有托盘如果有托盘的话提示错误
}
String targetHeatModuleCodeStr = cmdDTO.getStringParam("heatModuleCode"); String targetHeatModuleCodeStr = cmdDTO.getStringParam("heatModuleCode");
HeatModuleCode targetHeatModuleCode = HeatModuleCode.valueOf(targetHeatModuleCodeStr);//目标加热模块 HeatModuleCode targetHeatModuleCode = HeatModuleCode.valueOf(targetHeatModuleCodeStr);//目标加热模块
if (!deviceStateService.getDeviceState().getTransferModule().isTrayStatus()) { //判断机械臂上是否有托盘
Assert.isTrue(!deviceStateService.getDeviceState().getHeatModuleByCode(targetHeatModuleCode).isTrayStatus(), () -> new AppException(ResultCode.TARGET_HEAT_MODULE_NO_TRAY));//目标加热区有托盘
}
Point3D targetHeatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(targetHeatModuleCode);//获取目标加热模块托盘夹取点 Point3D targetHeatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(targetHeatModuleCode);//获取目标加热模块托盘夹取点
Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离 Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离
Double transferModuleZPickTrayDownPositon = devicePositionService.getPosition(DevicePositionCode.transferModuleZPickTrayDownPositon).getPositon();//获取转运模块Z轴拿取托盘时下降的高度位置 Double transferModuleZPickTrayDownPositon = devicePositionService.getPosition(DevicePositionCode.transferModuleZPickTrayDownPositon).getPositon();//获取转运模块Z轴拿取托盘时下降的高度位置

5
src/main/java/com/iflytop/sgs/app/cmd/control/MoveToLiquidAreaCommand.java

@ -1,5 +1,6 @@
package com.iflytop.sgs.app.cmd.control; package com.iflytop.sgs.app.cmd.control;
import cn.hutool.core.lang.Assert;
import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.core.BaseCommandHandler;
import com.iflytop.sgs.app.model.bo.Point3D; import com.iflytop.sgs.app.model.bo.Point3D;
import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.model.dto.CmdDTO;
@ -10,6 +11,8 @@ import com.iflytop.sgs.app.service.device.module.TransferModuleService;
import com.iflytop.sgs.common.annotation.CommandMapping; import com.iflytop.sgs.common.annotation.CommandMapping;
import com.iflytop.sgs.common.enums.HeatModuleCode; import com.iflytop.sgs.common.enums.HeatModuleCode;
import com.iflytop.sgs.common.enums.data.DevicePositionCode; import com.iflytop.sgs.common.enums.data.DevicePositionCode;
import com.iflytop.sgs.common.exception.AppException;
import com.iflytop.sgs.common.result.ResultCode;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -38,7 +41,7 @@ public class MoveToLiquidAreaCommand extends BaseCommandHandler {
targetHeatModuleCode = HeatModuleCode.valueOf(targetHeatModuleCodeStr); targetHeatModuleCode = HeatModuleCode.valueOf(targetHeatModuleCodeStr);
} else { } else {
targetHeatModuleCode = null; targetHeatModuleCode = null;
//TODO 尝试获取上料区是否有托盘如果没有托盘则提示错误
Assert.isTrue(deviceStateService.getDeviceState().getSolutionModule().isFeedAreaTrayStatus(), () -> new AppException(ResultCode.FEED_AREA_NO_TRAY));//上料区无托盘
} }
Point3D targetHeatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(targetHeatModuleCode);//获取目标加热模块托盘夹取点 Point3D targetHeatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(targetHeatModuleCode);//获取目标加热模块托盘夹取点

2
src/main/java/com/iflytop/sgs/common/result/ResultCode.java

@ -57,6 +57,8 @@ public enum ResultCode implements IResultCode, Serializable {
CMD_BUSY("6024", "设备忙,请稍后"), CMD_BUSY("6024", "设备忙,请稍后"),
TARGET_HEAT_MODULE_NOT_ANNEAL("6025", "目标加热区不是退火状态"), TARGET_HEAT_MODULE_NOT_ANNEAL("6025", "目标加热区不是退火状态"),
TRANSFER_MODULE_NO_TRAY("6026", "转运模块无托盘"), TRANSFER_MODULE_NO_TRAY("6026", "转运模块无托盘"),
SOLUTION_MODULE_NO_TRAY("6027", "加液模块无托盘"),
FEED_AREA_NO_TRAY("6028", "上料区无托盘"),
; ;
/** 状态码 */ /** 状态码 */
private final String code; private final String code;

Loading…
Cancel
Save