Browse Source

fix:调试bug修复

master
guoapeng 5 months ago
parent
commit
28df7537cb
  1. BIN
      matrix-spray.db
  2. 2
      src/main/java/com/qyft/ms/app/controller/CMDController.java
  3. 78
      src/main/java/com/qyft/ms/app/service/CMDService.java
  4. 4
      src/main/java/com/qyft/ms/app/service/impl/ISysSettingsServiceImpl.java

BIN
matrix-spray.db

2
src/main/java/com/qyft/ms/app/controller/CMDController.java

@ -165,7 +165,7 @@ public class CMDController {
}
}
@Operation(summary = "以指定转速、方向和时间开启注射泵")
@Operation(summary = "以指定转速、方向开启注射泵")
@PostMapping("/turnOnSyringePump")
public Result<String> turnOnSyringePump(@RequestBody CMDForm cmdForm) {
try {

78
src/main/java/com/qyft/ms/app/service/CMDService.java

@ -121,7 +121,12 @@ public class CMDService {
.map(Number.class::cast)
.map(Number::doubleValue)
.orElse(0.0);
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump(rotationSpeed));
int direction = (int) params.get("direction");
if(direction == 0) {
rotationSpeed = -rotationSpeed;
}
double finalRotationSpeed = rotationSpeed;
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump(finalRotationSpeed));
initExecutorThread(cmdList, form);
return true;
}
@ -190,9 +195,6 @@ public class CMDService {
cmdList.add(() -> deviceTcpCMDService.setMotorSpeed("Z", 10));
// 回到原点
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Z", 5));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", 5));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", 5));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Z"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("X"));
@ -225,7 +227,7 @@ public class CMDService {
List<PathGenerator.Points> horizontalPath = generatePathPoints(
left, right, top, bottom, space, routeType == 1 ? PathGenerator.MoveMode.HORIZONTAL_ZIGZAG_TOP_DOWN : PathGenerator.MoveMode.VERTICAL_ZIGZAG_LEFT_RIGHT
);
log.info("horizontalPath:{}", horizontalPath);
log.info("horizontalPath:{}", JSONUtil.toJsonStr(horizontalPath));
if(horizontalPath.isEmpty()) {
return "路径规划失败";
}
@ -239,9 +241,10 @@ public class CMDService {
if(height < 15) {
return "高度设置太低,有撞针的风险";
}
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Z",z - height ));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", left));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", top));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Z",z - height ));
// 是否加电 电压
Object voltage = params.get("voltage");
@ -271,27 +274,37 @@ public class CMDService {
return true;
});
}
double currentX = left;
double currentY = top;
// 执行轨迹
for (PathGenerator.Points point : horizontalPath) {
double nextX = (int) point.getX();
double nextY = (int) point.getY();
log.info("当前喷针位置x:{}, y:{}", nextX, nextY );
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", nextX));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", nextY));
if (currentX != nextX) {
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", nextX));
}
if (currentY != nextY) {
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", nextY));
}
// cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", nextX));
// cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", nextY));
currentX= nextX;
currentY= nextY;
}
// 停止喷涂
cmdList.add(deviceTcpCMDService::turnOffSyringePump);
// 关闭喷嘴阀
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true));
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", false));
}
// 关闭高压
cmdList.add(deviceTcpCMDService::turnOffHighVoltage);
// 回到原点
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Z"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("X"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Y"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Z"));
// 结束日志
cmdList.add( () -> {
@ -366,8 +379,10 @@ public class CMDService {
// 关闭喷嘴阀
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true));
// 回到原点
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("X"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Z"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("X"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Y"));
// 结束日志
cmdList.add( () -> {
OperationLog operationLog = operationLogService.getIng();
@ -400,17 +415,23 @@ public class CMDService {
Map<String, Object> params = form.getParams();
String type = (String) params.get("type");
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Z"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("X"));
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Y"));
Map<String, Double> wasteLiquorPosition = sysSettingsService.getWasteLiquorPosition();
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", wasteLiquorPosition.get("x")));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Z", wasteLiquorPosition.get("z")));
// type: "injector" | "nozzle"
if(Objects.equals(type, "injector")) {
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("clear_spray"));
cmdList.add(() -> deviceTcpCMDService.controlValve("Cleaning", true));
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump(1000));
} else if (Objects.equals(type, "nozzle")) {
Map<String, Double> wasteLiquorPosition = sysSettingsService.getWasteLiquorPosition();
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", wasteLiquorPosition.get("x")));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", wasteLiquorPosition.get("y")));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Z", wasteLiquorPosition.get("z")));
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("clear_nozzle"));
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true));
cmdList.add(() -> deviceTcpCMDService.controlValve("Cleaning", true));
}
cmdList.add(() -> {
sysSettingsService.updateWorkStatus("washing");
@ -426,6 +447,7 @@ public class CMDService {
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("close_all"));
cmdList.add(() -> deviceTcpCMDService.controlValve("Cleaning", false));
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", false));
cmdList.add(deviceTcpCMDService::turnOffSyringePump);
cmdList.add(() -> {
sysSettingsService.updateWorkStatus("idle");
return true;
@ -462,11 +484,15 @@ public class CMDService {
public boolean startPrefill(CMDForm form) {
List<Supplier<Boolean>> cmdList = new ArrayList<>();
Map<String, Object> params = form.getParams();
double rotationSpeed = Optional.ofNullable(params.get("rotationSpeed"))
.filter(Number.class::isInstance)
.map(Number.class::cast)
.map(Number::doubleValue)
.orElse(0.0);
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("clear_spray"));
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true));
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump((Double) params.get("rotationSpeed")));
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump(rotationSpeed));
cmdList.add(() -> {
sysSettingsService.updateWorkStatus("prefilling");
return true;
@ -517,7 +543,9 @@ public class CMDService {
while (true) {
double targetHumidity = sysSettingsService.getTargetHumidity();
DeviceStatus deviceStatus = deviceStatusService.getDeviceStatus();
if (deviceStatus.getHumidity()<=targetHumidity ) {
// log.info("当前湿度:{}", deviceStatus.getHumidity());
// log.info("目标湿度:{}", targetHumidity);
if (deviceStatus.getHumidity()<=targetHumidity) {
deviceTcpCMDService.controlValve("Dehumidification", false);
sysSettingsService.updateWorkStatus("idle");
Map<String, String> result = new HashMap<>();
@ -561,17 +589,20 @@ public class CMDService {
return true;
}
// 托盘推
// 托盘推
public boolean trayOut(CMDForm form) {
List<Supplier<Boolean>> cmdList = new ArrayList<>();
cmdList.add(() -> deviceTcpCMDService.setMotorSpeed("Y", 20));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", 150));
initExecutorThread(cmdList, form);
return true;
}
// 托盘推
// 托盘推
public boolean trayIn(CMDForm form) {
List<Supplier<Boolean>> cmdList = new ArrayList<>();
cmdList.add(() -> deviceTcpCMDService.setMotorSpeed("Y", 20));
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", 0));
initExecutorThread(cmdList, form);
return true;
@ -604,6 +635,7 @@ public class CMDService {
executionResult.setStatus(CMDResultCode.SUCCESS.getCode());
executionResult.setMessage(CMDResultCode.SUCCESS.getMsg());
webSocketService.pushMsg(WebSocketMessageType.CMD, executionResult);
}
}

4
src/main/java/com/qyft/ms/app/service/impl/ISysSettingsServiceImpl.java

@ -47,8 +47,8 @@ public class ISysSettingsServiceImpl extends ServiceImpl<SysSettingsMapper, SysS
String [] positionList = position.split(",");
wasteLiquorPosition = Map.of(
"x", Double.parseDouble(positionList[0]),
"y", Double.parseDouble(positionList[0]),
"z", Double.parseDouble(positionList[0])
"y", Double.parseDouble(positionList[1]),
"z", Double.parseDouble(positionList[2])
);
}

Loading…
Cancel
Save