Browse Source

fix:调试指令开门关门位置从数据库中获取

master
白凤吉 3 months ago
parent
commit
b45e981a8f
  1. 7
      src/main/java/com/iflytop/gd/app/cmd/debug/DoorCloseCommandHandler.java
  2. 7
      src/main/java/com/iflytop/gd/app/cmd/debug/DoorOpenCommandHandler.java
  3. 2
      src/main/java/com/iflytop/gd/app/service/DevicePositionService.java
  4. 12
      src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java

7
src/main/java/com/iflytop/gd/app/cmd/debug/DoorCloseCommandHandler.java

@ -2,11 +2,14 @@ package com.iflytop.gd.app.cmd.debug;
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.model.entity.DevicePosition;
import com.iflytop.gd.app.service.DeviceCommandService; import com.iflytop.gd.app.service.DeviceCommandService;
import com.iflytop.gd.app.service.DevicePositionService;
import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.CommandFuture;
import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandBundle;
import com.iflytop.gd.common.cmd.DeviceCommandGenerator; import com.iflytop.gd.common.cmd.DeviceCommandGenerator;
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;
@ -22,11 +25,13 @@ import java.util.concurrent.CompletableFuture;
@CommandMapping("debug_door_close") @CommandMapping("debug_door_close")
public class DoorCloseCommandHandler extends BaseCommandHandler { public class DoorCloseCommandHandler extends BaseCommandHandler {
private final DeviceCommandService deviceCommandService; private final DeviceCommandService deviceCommandService;
private final DevicePositionService devicePositionService;
@Override @Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) { public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
return runAsync(() -> { return runAsync(() -> {
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.doorMove(0.0);
DevicePosition devicePosition = devicePositionService.getPosition(DevicePositionCode.doorClose);
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.doorMove(devicePosition.getDistance());
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand);
commandWait(deviceCommandFuture); commandWait(deviceCommandFuture);
}); });

7
src/main/java/com/iflytop/gd/app/cmd/debug/DoorOpenCommandHandler.java

@ -2,11 +2,14 @@ package com.iflytop.gd.app.cmd.debug;
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.model.entity.DevicePosition;
import com.iflytop.gd.app.service.DeviceCommandService; import com.iflytop.gd.app.service.DeviceCommandService;
import com.iflytop.gd.app.service.DevicePositionService;
import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.annotation.CommandMapping;
import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.CommandFuture;
import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandBundle;
import com.iflytop.gd.common.cmd.DeviceCommandGenerator; import com.iflytop.gd.common.cmd.DeviceCommandGenerator;
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;
@ -22,11 +25,13 @@ import java.util.concurrent.CompletableFuture;
@CommandMapping("debug_door_open") @CommandMapping("debug_door_open")
public class DoorOpenCommandHandler extends BaseCommandHandler { public class DoorOpenCommandHandler extends BaseCommandHandler {
private final DeviceCommandService deviceCommandService; private final DeviceCommandService deviceCommandService;
private final DevicePositionService devicePositionService;
@Override @Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) { public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
return runAsync(() -> { return runAsync(() -> {
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.doorMove(100.0);
DevicePosition devicePosition = devicePositionService.getPosition(DevicePositionCode.doorOpen);
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.doorMove(devicePosition.getDistance());
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand);
commandWait(deviceCommandFuture); commandWait(deviceCommandFuture);
}); });

2
src/main/java/com/iflytop/gd/app/service/DevicePositionService.java

@ -46,7 +46,7 @@ public class DevicePositionService extends ServiceImpl<DevicePositionMapper, Dev
/** /**
* 根据位置类型获取位置 * 根据位置类型获取位置
*/ */
public DevicePosition getPoint(DevicePositionCode code) {
public DevicePosition getPosition(DevicePositionCode code) {
return this.getOne(new LambdaQueryWrapper<>(DevicePosition.class).eq(DevicePosition::getCode, code)); return this.getOne(new LambdaQueryWrapper<>(DevicePosition.class).eq(DevicePosition::getCode, code));
} }

12
src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java

@ -100,7 +100,17 @@ public enum DevicePositionCode {
/** /**
* 试管相对原点位置 * 试管相对原点位置
*/ */
testTubeRelativeToOrigin(DevicePositionType.POINT_3D, "试管相对原点位置");
testTubeRelativeToOrigin(DevicePositionType.POINT_3D, "试管相对原点位置"),
/**
* 开门位置
*/
doorOpen(DevicePositionType.DISTANCE, "开门位置"),
/**
* 关门位置
*/
doorClose(DevicePositionType.DISTANCE, "关门位置");
private final DevicePositionType type; private final DevicePositionType type;
private final String name; private final String name;

Loading…
Cancel
Save