Browse Source

增加停止所有电机指令

master
王梦远 1 week ago
parent
commit
e303e07061
  1. 39
      src/main/java/com/iflytop/colortitration/app/command/control/StopAllMotorCommand.java
  2. 6
      src/main/java/com/iflytop/colortitration/app/controller/PositionController.java
  3. 23
      src/main/java/com/iflytop/colortitration/app/service/module/TransferModuleService.java

39
src/main/java/com/iflytop/colortitration/app/command/control/StopAllMotorCommand.java

@ -0,0 +1,39 @@
package com.iflytop.colortitration.app.command.control;
import com.iflytop.colortitration.app.common.annotation.CommandMapping;
import com.iflytop.colortitration.app.common.enums.MultipleModuleCode;
import com.iflytop.colortitration.app.core.command.BaseCommandHandler;
import com.iflytop.colortitration.app.model.dto.CommandDTO;
import com.iflytop.colortitration.app.service.module.TitrationModuleService;
import com.iflytop.colortitration.app.service.module.TransferModuleService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.concurrent.CompletableFuture;
/**
* 停止所有电机
*/
@Slf4j
@Component
@RequiredArgsConstructor
@CommandMapping("stop_all_motor")
public class StopAllMotorCommand extends BaseCommandHandler {
private final TitrationModuleService titrationModuleService;
private final TransferModuleService transferModuleService;
@Override
public CompletableFuture<Void> handle(CommandDTO commandDTO) {
return runAsync(() -> {
//停止转运电机
transferModuleService.stopAllMotor();
//停止摇匀电机
titrationModuleService.shakeStop(MultipleModuleCode.MODULE_1);
titrationModuleService.shakeStop(MultipleModuleCode.MODULE_2);
//停止所有的泵 todo
});
}
}

6
src/main/java/com/iflytop/colortitration/app/controller/PositionController.java

@ -26,11 +26,11 @@ public class PositionController {
@Operation(summary = "查询设备位置") @Operation(summary = "查询设备位置")
@GetMapping("/list") @GetMapping("/list")
public List<DevicePositionVO> list() {
public Result<List<DevicePositionVO>> list() {
List<Position> devicePositions = positionService.list(); List<Position> devicePositions = positionService.list();
return devicePositions.stream()
return Result.success(devicePositions.stream()
.map(DevicePositionVO::new) .map(DevicePositionVO::new)
.collect(Collectors.toList());
.collect(Collectors.toList()));
} }
@Operation(summary = "添加设备位置") @Operation(summary = "添加设备位置")

23
src/main/java/com/iflytop/colortitration/app/service/module/TransferModuleService.java

@ -95,8 +95,10 @@ public class TransferModuleService {
*/ */
public void roboticMoveToTitration(MultipleModuleCode moduleCode) throws Exception { public void roboticMoveToTitration(MultipleModuleCode moduleCode) throws Exception {
Point3D position = switch (moduleCode) { //1首先检测试管所在的托盘传感器的值 Point3D position = switch (moduleCode) { //1首先检测试管所在的托盘传感器的值
case MultipleModuleCode.MODULE_1 -> positionService.getPositionByCode(DevicePositionCode.titrationArea_1).getPoint3D();
case MultipleModuleCode.MODULE_2 -> positionService.getPositionByCode(DevicePositionCode.titrationArea_2).getPoint3D();
case MultipleModuleCode.MODULE_1 ->
positionService.getPositionByCode(DevicePositionCode.titrationArea_1).getPoint3D();
case MultipleModuleCode.MODULE_2 ->
positionService.getPositionByCode(DevicePositionCode.titrationArea_2).getPoint3D();
}; };
// Z轴回零点 // Z轴回零点
DeviceCommand zOriginCommand = DeviceCommandGenerator.zMove(0.0); DeviceCommand zOriginCommand = DeviceCommandGenerator.zMove(0.0);
@ -116,8 +118,10 @@ public class TransferModuleService {
*/ */
public void roboticMoveToHeat(MultipleModuleCode moduleCode) throws Exception { public void roboticMoveToHeat(MultipleModuleCode moduleCode) throws Exception {
Point3D position = switch (moduleCode) { //1首先检测试管所在的托盘传感器的值 Point3D position = switch (moduleCode) { //1首先检测试管所在的托盘传感器的值
case MultipleModuleCode.MODULE_1 -> positionService.getPositionByCode(DevicePositionCode.heatArea_1).getPoint3D();
case MultipleModuleCode.MODULE_2 -> positionService.getPositionByCode(DevicePositionCode.heatArea_2).getPoint3D();
case MultipleModuleCode.MODULE_1 ->
positionService.getPositionByCode(DevicePositionCode.heatArea_1).getPoint3D();
case MultipleModuleCode.MODULE_2 ->
positionService.getPositionByCode(DevicePositionCode.heatArea_2).getPoint3D();
}; };
// Z轴回零点 // Z轴回零点
DeviceCommand zOriginCommand = DeviceCommandGenerator.zMove(0.0); DeviceCommand zOriginCommand = DeviceCommandGenerator.zMove(0.0);
@ -194,5 +198,16 @@ public class TransferModuleService {
CommandUtil.wait(zOriginFuture); CommandUtil.wait(zOriginFuture);
} }
public void stopAllMotor() throws Exception {
DeviceCommand zStopCommand = DeviceCommandGenerator.zStop();
CommandFuture zStopFuture = deviceCommandService.sendCommand(zStopCommand);
// 机械臂大轴移动
DeviceCommand xStopCommand = DeviceCommandGenerator.roboticArmBigMotorStop();
CommandFuture xStopFuture = deviceCommandService.sendCommand(xStopCommand);
// 机械臂小轴移动
DeviceCommand yStopCommand = DeviceCommandGenerator.roboticArmBigMotorStop();
CommandFuture yStopFuture = deviceCommandService.sendCommand(yStopCommand);
}
} }
Loading…
Cancel
Save