Browse Source

fix:喷涂路线中才记录位置

master
白凤吉 3 weeks ago
parent
commit
4804f805eb
  1. 8
      src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java

8
src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java

@ -38,8 +38,10 @@ public class MatrixSprayPause extends BaseCommandHandler {
@Override
public CompletableFuture<Void> handle(FrontCmdControlForm form) {
SprayTask sprayTask = SprayTask.getInstance();
if(sprayTask.isPaused()){
throw new RuntimeException("设备暂停中");
}
sprayTask.setPaused(true);//设置已暂停
deviceStatus.setPaused(true);
try {
sprayTaskExecutor.stopTask();//终止喷涂任务线程
@ -59,6 +61,7 @@ public class MatrixSprayPause extends BaseCommandHandler {
CommandFuture motorZStopCommandFuture = deviceCommandService.sendCommand(form.getCmdId(), form.getCmdCode(), motorZStopCommand);
commandWait(motorXStopCommandFuture, motorYStopCommandFuture, motorZStopCommandFuture);
if(sprayTask.getCurrentStep() > 0){
//记录当前位置
DeviceCommand motorXyzPositionGetCommand = DeviceCommandGenerator.motorXyzPositionGet(); // 生成获得电机XYZ相对原点坐标指令
CommandFuture motorXyzPositionGetCommandFuture = deviceCommandService.sendCommand(form.getCmdId(), form.getCmdCode(), motorXyzPositionGetCommand);
@ -69,6 +72,7 @@ public class MatrixSprayPause extends BaseCommandHandler {
Double zAxisPosition = motorXyzPositionGetCommandDeviceResult.getJSONObject("data").getDouble("zAxisPosition");
Point3D point3D = new Point3D(xAxisPosition, yAxisPosition, zAxisPosition);
sprayTask.setCurrentPausedPoint(point3D);
}
OperationLog operationLog = operationLogService.getById(sprayTask.getOperationLogId());
operationLog.setStatus(2);
@ -84,6 +88,8 @@ public class MatrixSprayPause extends BaseCommandHandler {
commandWait(motorXOriginCommandFuture, motorYOriginCommandFuture, motorZOriginCommandFuture);
} catch (Exception e) {
throw new RuntimeException(e);
}finally {
deviceStatus.setPaused(true);
}
return runAsync(() -> {

Loading…
Cancel
Save