1 changed files with 65 additions and 0 deletions
@ -0,0 +1,65 @@ |
|||||
|
package com.iflytop.sgs.app.cmd.selftest; |
||||
|
|
||||
|
import com.iflytop.sgs.app.core.BaseCommandHandler; |
||||
|
import com.iflytop.sgs.app.model.bo.Point3D; |
||||
|
import com.iflytop.sgs.app.model.dto.CmdDTO; |
||||
|
import com.iflytop.sgs.app.service.api.DevicePositionService; |
||||
|
import com.iflytop.sgs.app.service.api.SystemConfigService; |
||||
|
import com.iflytop.sgs.app.service.device.DeviceStateService; |
||||
|
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.SolutionCode; |
||||
|
import com.iflytop.sgs.common.enums.SystemConfigCode; |
||||
|
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.extern.slf4j.Slf4j; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.util.concurrent.CompletableFuture; |
||||
|
|
||||
|
/** |
||||
|
* 自检后 开机预充 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@Component |
||||
|
@RequiredArgsConstructor |
||||
|
@CommandMapping("liquid_pre_fill_when_launch ")//业务指令注解 |
||||
|
public class LiquidPreFillCommand extends BaseCommandHandler { |
||||
|
private final SolutionModuleService solutionModuleService; |
||||
|
private final TransferModuleService transferModuleService; |
||||
|
private final DevicePositionService devicePositionService; |
||||
|
private final DeviceStateService deviceStateService; |
||||
|
private final SystemConfigService systemConfigService; |
||||
|
|
||||
|
@Override |
||||
|
public CompletableFuture<Void> handle(CmdDTO cmdDTO) { |
||||
|
if (deviceStateService.getCommandMutexState().get().isMoveTest()) { |
||||
|
throw new AppException(ResultCode.COMMAND_ALREADY_EXECUTING); |
||||
|
} |
||||
|
deviceStateService.getCommandMutexState().get().setMoveTest(true); |
||||
|
return runAsync(() -> { |
||||
|
try { |
||||
|
Point3D heatArea1TrayClawPoint = devicePositionService.getPosition(DevicePositionCode.heatArea1TrayClawPoint).getPoint3D();//加热位1坐标 |
||||
|
Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置 |
||||
|
Double preFillDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.pre_fill_distance_when_open_service);//预充距离 |
||||
|
transferModuleService.transferXMove(heatArea1TrayClawPoint.getX());//转运模块移动至加热位1 |
||||
|
solutionModuleService.solutionMotorMove(liquidAreaPreFillPoint);//加液机械臂下降至至预充点位 |
||||
|
solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 |
||||
|
solutionModuleService.liquidPumpMove(-preFillDistance);//排空 |
||||
|
solutionModuleService.liquidValveSwitch(SolutionCode.thin);//电磁阀对应通道打开 |
||||
|
solutionModuleService.liquidPumpMove(preFillDistance);//预充 |
||||
|
solutionModuleService.liquidValveSwitch(SolutionCode.thick);//电磁阀对应通道打开 |
||||
|
solutionModuleService.liquidPumpMove(preFillDistance);//预充 |
||||
|
solutionModuleService.liquidValveSwitch(SolutionCode.water);//电磁阀对应通道打开 |
||||
|
solutionModuleService.liquidPumpMove(preFillDistance);//预充 |
||||
|
solutionModuleService.solutionMotorMoveZero();//回原点 |
||||
|
} finally { |
||||
|
deviceStateService.getCommandMutexState().get().setMoveTest(false); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue