|
|
@ -96,11 +96,10 @@ public class CMDService { |
|
|
|
return false; |
|
|
|
} |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
double voltage = Optional.ofNullable(params.get("voltage")) |
|
|
|
.filter(Number.class::isInstance) |
|
|
|
.map(Number.class::cast) |
|
|
|
.map(Number::doubleValue) |
|
|
|
.orElse(0.0); |
|
|
|
int voltage = (int) params.get("voltage"); |
|
|
|
if(voltage> 5000) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
cmdList.add(() -> deviceTcpCMDService.turnOnHighVoltage(voltage)); |
|
|
|
initExecutorThread(cmdList, form); |
|
|
|
return true; |
|
|
@ -108,20 +107,16 @@ public class CMDService { |
|
|
|
|
|
|
|
// 关闭高压电 |
|
|
|
public boolean turnOffHighVoltage(CMDForm form) { |
|
|
|
Map<String, Object> params = form.getParams(); |
|
|
|
if (params == null) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
cmdList.add(deviceTcpCMDService::turnOffHighVoltage); |
|
|
|
initExecutorThread(cmdList, form); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
// 以指定转速、时间开启注射泵 |
|
|
|
// 以指定转速开启注射泵 |
|
|
|
public boolean turnOnSyringePump(CMDForm form) { |
|
|
|
Map<String, Object> params = form.getParams(); |
|
|
|
if (params == null || !params.containsKey("rotationSpeed") || !params.containsKey("time")) { |
|
|
|
if (params == null || !params.containsKey("rotationSpeed")) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
@ -130,12 +125,7 @@ public class CMDService { |
|
|
|
.map(Number.class::cast) |
|
|
|
.map(Number::doubleValue) |
|
|
|
.orElse(0.0); |
|
|
|
double time = Optional.ofNullable(params.get("time")) |
|
|
|
.filter(Number.class::isInstance) |
|
|
|
.map(Number.class::cast) |
|
|
|
.map(Number::doubleValue) |
|
|
|
.orElse(0.0); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump(rotationSpeed, time)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump(rotationSpeed)); |
|
|
|
initExecutorThread(cmdList, form); |
|
|
|
return true; |
|
|
|
} |
|
|
@ -231,11 +221,11 @@ public class CMDService { |
|
|
|
int movementSpeed = (Integer) params.get("movementSpeed"); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.setMotorSpeed("x", movementSpeed)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.setMotorSpeed("y", movementSpeed)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.setMotorSpeed("z", movementSpeed)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.setMotorSpeed("z", 10)); |
|
|
|
// 移动到指定高度(位置) |
|
|
|
int height = (Integer) params.get("height"); |
|
|
|
|
|
|
|
if(z - height < 6.5) { |
|
|
|
if(z - height < 15) { |
|
|
|
return "高度设置太低,有撞针的风险"; |
|
|
|
} |
|
|
|
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Z",z - height )); |
|
|
@ -251,9 +241,9 @@ public class CMDService { |
|
|
|
// 开启喷嘴阀 |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true)); |
|
|
|
// 推注射泵 |
|
|
|
// TODO 这里不管 |
|
|
|
// int matrixFlowVelocity = (int) params.get("matrixFlowVelocity"); |
|
|
|
cmdList.add(deviceTcpCMDService::syringePumpStart); |
|
|
|
|
|
|
|
int matrixFlowVelocity = (int) params.get("matrixFlowVelocity"); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump(matrixFlowVelocity)); |
|
|
|
|
|
|
|
// 插入日志 |
|
|
|
if(i == 0) { |
|
|
@ -285,6 +275,8 @@ public class CMDService { |
|
|
|
// 关闭喷嘴阀 |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true)); |
|
|
|
} |
|
|
|
// 关闭高压 |
|
|
|
cmdList.add(deviceTcpCMDService::turnOffHighVoltage); |
|
|
|
// 回到原点 |
|
|
|
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("X")); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.motorMoveToHome("Y")); |
|
|
@ -310,6 +302,8 @@ public class CMDService { |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
// 停止喷涂 |
|
|
|
cmdList.add(deviceTcpCMDService::turnOffSyringePump); |
|
|
|
// 关闭高压 |
|
|
|
cmdList.add(deviceTcpCMDService::turnOffHighVoltage); |
|
|
|
// 关闭喷嘴阀 |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true)); |
|
|
|
// 回到原点 |
|
|
@ -359,8 +353,20 @@ public class CMDService { |
|
|
|
// 开始清洗 |
|
|
|
public boolean startWash(CMDForm form) { |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
cmdList.add(deviceTcpCMDService::switchThreeWayValveToSubstrate); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Cleaning", true)); |
|
|
|
Map<String, Object> params = form.getParams(); |
|
|
|
String type = (String) params.get("type"); |
|
|
|
|
|
|
|
// type: "injector" | "nozzle" |
|
|
|
if(Objects.equals(type, "injector")) { |
|
|
|
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("clear_spray")); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Cleaning", true)); |
|
|
|
} else if (Objects.equals(type, "nozzle")) { |
|
|
|
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("X", 173.08)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Y", 75.2)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.moveMotorToPosition("Z", 70)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("clear_nozzle")); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true)); |
|
|
|
} |
|
|
|
cmdList.add(() -> { |
|
|
|
sysSettingsService.updateWorkStatus("washing"); |
|
|
|
return true; |
|
|
@ -372,7 +378,9 @@ public class CMDService { |
|
|
|
// 结束清洗 |
|
|
|
public boolean stopWash(CMDForm form) { |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("close_all")); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Cleaning", false)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", false)); |
|
|
|
cmdList.add(() -> { |
|
|
|
sysSettingsService.updateWorkStatus("idle"); |
|
|
|
return true; |
|
|
@ -409,8 +417,12 @@ public class CMDService { |
|
|
|
// 开始预充 |
|
|
|
public boolean startPrefill(CMDForm form) { |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
cmdList.add(deviceTcpCMDService::switchThreeWayValveToSpray); |
|
|
|
Map<String, Object> params = form.getParams(); |
|
|
|
|
|
|
|
cmdList.add(() -> deviceTcpCMDService.switchThreeWayValve("clear_spray")); |
|
|
|
|
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", true)); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.turnOnSyringePump((Double) params.get("rotationSpeed"))); |
|
|
|
cmdList.add(() -> { |
|
|
|
sysSettingsService.updateWorkStatus("prefilling"); |
|
|
|
return true; |
|
|
@ -421,7 +433,9 @@ public class CMDService { |
|
|
|
// 停止预充 |
|
|
|
public boolean stopPrefill(CMDForm form) { |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
cmdList.add(deviceTcpCMDService::turnOffSyringePump); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Nozzle", false)); |
|
|
|
|
|
|
|
cmdList.add(() -> { |
|
|
|
sysSettingsService.updateWorkStatus("idle"); |
|
|
|
return true; |
|
|
@ -462,6 +476,13 @@ public class CMDService { |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
public boolean stopDehumidify(CMDForm form) { |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
|
cmdList.add(() -> deviceTcpCMDService.controlValve("Dehumidification", false)); |
|
|
|
initExecutorThread(cmdList, form); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
// 设置电机速度 |
|
|
|
public boolean setMotorSpeed(CMDForm form) { |
|
|
|
List<Supplier<Boolean>> cmdList = new ArrayList<>(); |
|
|
@ -499,7 +520,13 @@ public class CMDService { |
|
|
|
|
|
|
|
// 执行所有命令 |
|
|
|
for (Supplier<Boolean> command : cmdList) { |
|
|
|
|
|
|
|
boolean result = command.get(); |
|
|
|
try { |
|
|
|
Thread.sleep(5000); |
|
|
|
} catch (InterruptedException e) { |
|
|
|
throw new RuntimeException(e); |
|
|
|
} |
|
|
|
if (!result) { |
|
|
|
log.error("指令执行异常: {}", JSONUtil.toJsonStr(form)); |
|
|
|
executionResult.setStatus(CMDResultCode.FAILURE.getCode()); |
|
|
|