Browse Source

不能多选加热模块了

master
白凤吉 2 months ago
parent
commit
2751903697
  1. 18
      src/main/java/com/iflytop/gd/app/command/control/HeatStartCommand.java
  2. 9
      src/main/java/com/iflytop/gd/app/command/control/HeatStopCommand.java
  3. 12
      src/main/java/com/iflytop/gd/app/command/control/TrayUpCommand.java
  4. 13
      src/main/java/com/iflytop/gd/app/controller/TestController.java

18
src/main/java/com/iflytop/gd/app/command/control/HeatStartCommand.java

@ -2,18 +2,14 @@ package com.iflytop.gd.app.command.control;
import com.iflytop.gd.app.core.BaseCommandHandler; import com.iflytop.gd.app.core.BaseCommandHandler;
import com.iflytop.gd.app.model.dto.CmdDTO; import com.iflytop.gd.app.model.dto.CmdDTO;
import com.iflytop.gd.app.service.api.DevicePositionService;
import com.iflytop.gd.app.service.device.DeviceStateService; import com.iflytop.gd.app.service.device.DeviceStateService;
import com.iflytop.gd.app.service.device.module.HeatModuleService; import com.iflytop.gd.app.service.device.module.HeatModuleService;
import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.enums.HeatModuleCode; import com.iflytop.gd.common.enums.HeatModuleCode;
import com.iflytop.gd.common.enums.HeatingType;
import com.iflytop.gd.common.enums.data.DevicePositionCode;
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;
import java.time.LocalDateTime;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
/** /**
@ -27,22 +23,16 @@ public class HeatStartCommand extends BaseCommandHandler {
private final HeatModuleService heatModuleService; private final HeatModuleService heatModuleService;
private final DeviceStateService deviceStateService; private final DeviceStateService deviceStateService;
@Override @Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) { public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
String heatId = cmdDTO.getStringParam("heatId"); String heatId = cmdDTO.getStringParam("heatId");
Integer time = cmdDTO.getIntegerParam("time");
Integer minutes = cmdDTO.getIntegerParam("minutes");
Integer seconds = cmdDTO.getIntegerParam("seconds");
Double temperature = cmdDTO.getDoubleParam("temperature");
HeatModuleCode heatModuleCode = HeatModuleCode.valueOf(heatId); HeatModuleCode heatModuleCode = HeatModuleCode.valueOf(heatId);
return runAsync(() -> { return runAsync(() -> {
//从系统状态中获取指定加热区设定的温度数值
double temperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature();
//开启加热
heatModuleService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode, temperature); heatModuleService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode, temperature);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTargetTime(time);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatTemperature(temperature);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTargetTemperature(temperature);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.thermostatic);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeating(true);
}); });
} }
} }

9
src/main/java/com/iflytop/gd/app/command/control/HeatStopCommand.java

@ -6,12 +6,10 @@ import com.iflytop.gd.app.service.device.DeviceStateService;
import com.iflytop.gd.app.service.device.module.HeatModuleService; import com.iflytop.gd.app.service.device.module.HeatModuleService;
import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.enums.HeatModuleCode; import com.iflytop.gd.common.enums.HeatModuleCode;
import com.iflytop.gd.common.enums.HeatingType;
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;
import java.time.LocalDateTime;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
/** /**
@ -32,12 +30,7 @@ public class HeatStopCommand extends BaseCommandHandler {
return runAsync(() -> { return runAsync(() -> {
//关闭加热 //关闭加热
heatModuleService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode); heatModuleService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setStartHeatTime(null);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTargetTime(null);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setWarmUpTemperature(null);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatTemperature(null);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTargetTemperature(null);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.stop);
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeating(false);
}); });
} }
} }

12
src/main/java/com/iflytop/gd/app/command/control/TrayUpCommand.java

@ -1,6 +1,5 @@
package com.iflytop.gd.app.command.control; package com.iflytop.gd.app.command.control;
import cn.hutool.json.JSONArray;
import com.iflytop.gd.app.core.BaseCommandHandler; import com.iflytop.gd.app.core.BaseCommandHandler;
import com.iflytop.gd.app.model.dto.CmdDTO; import com.iflytop.gd.app.model.dto.CmdDTO;
import com.iflytop.gd.app.service.api.DevicePositionService; import com.iflytop.gd.app.service.api.DevicePositionService;
@ -28,21 +27,18 @@ public class TrayUpCommand extends BaseCommandHandler {
private final HeatModuleService heatModuleService; private final HeatModuleService heatModuleService;
private final DevicePositionService devicePositionService; private final DevicePositionService devicePositionService;
private final DeviceStateService deviceStateService; private final DeviceStateService deviceStateService;
@Override @Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) { public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
if (deviceStateService.getCommandMutexState().get().isMoveToHeatAreaCommandExecuting() if (deviceStateService.getCommandMutexState().get().isMoveToHeatAreaCommandExecuting()
|| deviceStateService.getCommandMutexState().get().isMoveToSolutionAreaCommandExecuting()) { || deviceStateService.getCommandMutexState().get().isMoveToSolutionAreaCommandExecuting()) {
throw new AppException(ResultCode.CMD_BUSY); throw new AppException(ResultCode.CMD_BUSY);
} }
JSONArray heatIdJsonArray = cmdDTO.getJSONArrayParam("heatId");
String heatId = cmdDTO.getStringParam("heatId");
HeatModuleCode heatModuleCode = HeatModuleCode.valueOf(heatId);
//获取加热位抬升托盘位置 //获取加热位抬升托盘位置
double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance(); double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance();
return runAsync(() -> { return runAsync(() -> {
for (int i = 0; i < heatIdJsonArray.size(); i++) {
String heatId = heatIdJsonArray.getStr(i);
HeatModuleCode heatModuleCode = HeatModuleCode.valueOf(heatId);
CompletableFuture.runAsync(() -> {
try { try {
//抬升加热位托盘 //抬升加热位托盘
heatModuleService.heaterMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode, trayLift); heatModuleService.heaterMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode, trayLift);
@ -52,7 +48,5 @@ public class TrayUpCommand extends BaseCommandHandler {
} }
}); });
} }
});
}
} }

13
src/main/java/com/iflytop/gd/app/controller/TestController.java

@ -1,8 +1,10 @@
package com.iflytop.gd.app.controller; package com.iflytop.gd.app.controller;
import com.iflytop.gd.app.model.bo.status.CommandMutexState;
import com.iflytop.gd.app.model.dto.AllSensorDTO; import com.iflytop.gd.app.model.dto.AllSensorDTO;
import com.iflytop.gd.app.service.api.HeatService; import com.iflytop.gd.app.service.api.HeatService;
import com.iflytop.gd.app.service.api.TestService; import com.iflytop.gd.app.service.api.TestService;
import com.iflytop.gd.app.service.device.DeviceStateService;
import com.iflytop.gd.app.service.device.module.CapModuleService; import com.iflytop.gd.app.service.device.module.CapModuleService;
import com.iflytop.gd.common.result.Result; import com.iflytop.gd.common.result.Result;
import com.iflytop.gd.hardware.exception.HardwareException; import com.iflytop.gd.hardware.exception.HardwareException;
@ -10,6 +12,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -27,9 +30,10 @@ import java.util.List;
public class TestController { public class TestController {
private final TestService testService; private final TestService testService;
private final CapModuleService capModuleService; private final CapModuleService capModuleService;
private final DeviceStateService deviceStateService;
@Operation(summary = "获取所有传感器读数") @Operation(summary = "获取所有传感器读数")
@PostMapping("/all-sensor")
@GetMapping("/all-sensor")
public Result<List<AllSensorDTO>> getAllSensor() throws HardwareException { public Result<List<AllSensorDTO>> getAllSensor() throws HardwareException {
return Result.success(testService.getAllSensor()); return Result.success(testService.getAllSensor());
} }
@ -49,4 +53,11 @@ public class TestController {
return Result.success(); return Result.success();
} }
@Operation(summary = "获取指令互斥状态")
@GetMapping("/mutex-state")
public Result<CommandMutexState> getCommandMutexState() throws HardwareException {
return Result.success(deviceStateService.getCommandMutexState().get());
}
} }
Loading…
Cancel
Save