24 changed files with 351 additions and 205 deletions
-
4src/main/java/com/iflytop/gd/app/config/CraftsStateMachineConfig.java
-
2src/main/java/com/iflytop/gd/app/controller/AuthController.java
-
8src/main/java/com/iflytop/gd/app/core/CraftsContext.java
-
76src/main/java/com/iflytop/gd/app/core/DeviceState.java
-
17src/main/java/com/iflytop/gd/app/model/bo/Point2D.java
-
14src/main/java/com/iflytop/gd/app/model/bo/Point3D.java
-
6src/main/java/com/iflytop/gd/app/model/entity/User.java
-
2src/main/java/com/iflytop/gd/app/model/vo/CraftStatusVO.java
-
4src/main/java/com/iflytop/gd/app/service/CraftsService.java
-
144src/main/java/com/iflytop/gd/app/service/CraftsStepService.java
-
105src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java
-
2src/main/java/com/iflytop/gd/app/service/UserService.java
-
19src/main/java/com/iflytop/gd/common/enums/AcidPumpDevice.java
-
9src/main/java/com/iflytop/gd/common/enums/TrayLiftStatus.java
-
2src/main/java/com/iflytop/gd/common/enums/automaton/CraftEvents.java
-
2src/main/java/com/iflytop/gd/common/enums/automaton/CraftStates.java
-
2src/main/java/com/iflytop/gd/common/enums/data/Deleted.java
-
2src/main/java/com/iflytop/gd/common/enums/data/FixedUser.java
-
2src/main/java/com/iflytop/gd/common/enums/data/UsrRole.java
@ -0,0 +1,17 @@ |
|||
package com.iflytop.gd.app.model.bo; |
|||
|
|||
|
|||
import lombok.Getter; |
|||
|
|||
@Getter |
|||
public class Point2D { |
|||
private final Double x; |
|||
private final Double y; |
|||
|
|||
public Point2D(Double x, Double y) { |
|||
this.x = x; |
|||
this.y = y; |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,105 @@ |
|||
package com.iflytop.gd.app.service; |
|||
|
|||
import com.iflytop.gd.app.model.bo.Point3D; |
|||
import com.iflytop.gd.common.cmd.CommandFuture; |
|||
import com.iflytop.gd.common.cmd.DeviceCommandBundle; |
|||
import com.iflytop.gd.common.cmd.DeviceCommandGenerator; |
|||
import com.iflytop.gd.common.enums.HeatModuleId; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.concurrent.CompletableFuture; |
|||
import java.util.concurrent.TimeUnit; |
|||
|
|||
@Component |
|||
@RequiredArgsConstructor |
|||
public class DeviceCommandUtilService { |
|||
private final DeviceCommandService deviceCommandService; |
|||
|
|||
/** |
|||
* 龙门架机械臂移动到指定点 |
|||
*/ |
|||
public void gantryMove(Point3D point) throws Exception { |
|||
DeviceCommandBundle gantryXMoveDeviceCommand = DeviceCommandGenerator.gantryXMove(point.getX()); |
|||
DeviceCommandBundle gantryYMoveDeviceCommand = DeviceCommandGenerator.gantryYMove(point.getY()); |
|||
DeviceCommandBundle gantryZMoveDeviceCommand = DeviceCommandGenerator.gantryZMove(point.getZ()); |
|||
CommandFuture gantryXMoveDeviceCommandFuture = deviceCommandService.sendCommand(gantryXMoveDeviceCommand); |
|||
CommandFuture gantryYMoveDeviceCommandFuture = deviceCommandService.sendCommand(gantryYMoveDeviceCommand); |
|||
CommandFuture gantryZMoveDeviceCommandFuture = deviceCommandService.sendCommand(gantryZMoveDeviceCommand); |
|||
commandWait(gantryXMoveDeviceCommandFuture, gantryYMoveDeviceCommandFuture, gantryZMoveDeviceCommandFuture); |
|||
} |
|||
|
|||
/** |
|||
* 龙门架机械臂X轴移动到指定点 |
|||
*/ |
|||
public void gantryXMove(double position) throws Exception { |
|||
DeviceCommandBundle gantryXMoveDeviceCommand = DeviceCommandGenerator.gantryXMove(position); |
|||
CommandFuture gantryXMoveDeviceCommandFuture = deviceCommandService.sendCommand(gantryXMoveDeviceCommand); |
|||
commandWait(gantryXMoveDeviceCommandFuture); |
|||
} |
|||
|
|||
/** |
|||
* 龙门架机械臂Y轴移动到指定点 |
|||
*/ |
|||
public void gantryYMove(double position) throws Exception { |
|||
DeviceCommandBundle gantryXMoveDeviceCommand = DeviceCommandGenerator.gantryYMove(position); |
|||
CommandFuture gantryXMoveDeviceCommandFuture = deviceCommandService.sendCommand(gantryXMoveDeviceCommand); |
|||
commandWait(gantryXMoveDeviceCommandFuture); |
|||
} |
|||
|
|||
/** |
|||
* 龙门架机械臂Z轴移动到指定点 |
|||
*/ |
|||
public void gantryZMove(double position) throws Exception { |
|||
DeviceCommandBundle gantryXMoveDeviceCommand = DeviceCommandGenerator.gantryZMove(position); |
|||
CommandFuture gantryXMoveDeviceCommandFuture = deviceCommandService.sendCommand(gantryXMoveDeviceCommand); |
|||
commandWait(gantryXMoveDeviceCommandFuture); |
|||
} |
|||
|
|||
/** |
|||
* 收紧夹爪 |
|||
*/ |
|||
public void clawClamp(double position) throws Exception { |
|||
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.clawMove(position); |
|||
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); |
|||
commandWait(deviceCommandFuture); |
|||
} |
|||
|
|||
/** |
|||
* 调整拍子升降电机位置 |
|||
* @param num 1为上升1格,-1为下降1格 |
|||
*/ |
|||
public void capMotorMove(int num) throws Exception { |
|||
double capHeight = 0.0; //TODO 每个拍子的高度 从数据库中获取 |
|||
//TODO 获取当前拍子升降电机位置 |
|||
DeviceCommandBundle deviceCommand = DeviceCommandGenerator.trayMotorMove(num * capHeight); |
|||
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); |
|||
commandWait(deviceCommandFuture); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 加热模块升降电机移动到指定位置 |
|||
*/ |
|||
public void heaterMotorMove(HeatModuleId heatModuleId, double position) throws Exception { |
|||
DeviceCommandBundle deviceCommand = switch (heatModuleId) { |
|||
case HeatModuleId.MODULE_01 -> DeviceCommandGenerator.heaterMotor1Move(position); |
|||
case HeatModuleId.MODULE_02 -> DeviceCommandGenerator.heaterMotor2Move(position); |
|||
case HeatModuleId.MODULE_03 -> DeviceCommandGenerator.heaterMotor3Move(position); |
|||
case HeatModuleId.MODULE_04 -> DeviceCommandGenerator.heaterMotor4Move(position); |
|||
case HeatModuleId.MODULE_05 -> DeviceCommandGenerator.heaterMotor5Move(position); |
|||
case HeatModuleId.MODULE_06 -> DeviceCommandGenerator.heaterMotor6Move(position); |
|||
}; |
|||
CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); |
|||
commandWait(deviceCommandFuture); |
|||
} |
|||
|
|||
public void commandWait(CommandFuture... futures) throws Exception { |
|||
CompletableFuture<?>[] responseFutures = Arrays.stream(futures) |
|||
.map(CommandFuture::getResponseFuture) |
|||
.toArray(CompletableFuture[]::new); |
|||
CompletableFuture.allOf(responseFutures) |
|||
.get(120, TimeUnit.SECONDS); |
|||
} |
|||
} |
@ -1,9 +0,0 @@ |
|||
package com.iflytop.gd.common.enums; |
|||
|
|||
/** |
|||
* 托盘升降状态 |
|||
*/ |
|||
public enum TrayLiftStatus { |
|||
UP, |
|||
DOWN |
|||
} |
@ -1,4 +1,4 @@ |
|||
package com.iflytop.gd.common.enums; |
|||
package com.iflytop.gd.common.enums.automaton; |
|||
|
|||
/** |
|||
* 工艺状态机事件枚举 |
@ -1,4 +1,4 @@ |
|||
package com.iflytop.gd.common.enums; |
|||
package com.iflytop.gd.common.enums.automaton; |
|||
|
|||
/** |
|||
* 工艺状态机状态枚举 |
@ -1,4 +1,4 @@ |
|||
package com.iflytop.gd.common.enums; |
|||
package com.iflytop.gd.common.enums.data; |
|||
|
|||
import lombok.Getter; |
|||
|
@ -1,4 +1,4 @@ |
|||
package com.iflytop.gd.common.enums; |
|||
package com.iflytop.gd.common.enums.data; |
|||
|
|||
import lombok.Getter; |
|||
|
@ -1,4 +1,4 @@ |
|||
package com.iflytop.gd.common.enums; |
|||
package com.iflytop.gd.common.enums.data; |
|||
|
|||
public enum UsrRole { |
|||
ADMIN, |
Write
Preview
Loading…
Cancel
Save
Reference in new issue