Browse Source

fix:修复继续暂停

master
白凤吉 3 weeks ago
parent
commit
ecd5affdc1
  1. 9
      src/main/java/com/qyft/ms/app/device/spray/SprayTaskExecutor.java
  2. 5
      src/main/java/com/qyft/ms/app/device/status/SprayTask.java

9
src/main/java/com/qyft/ms/app/device/spray/SprayTaskExecutor.java

@ -75,7 +75,6 @@ public class SprayTaskExecutor {
try { try {
webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.START, "喷涂任务开始执行")); webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.START, "喷涂任务开始执行"));
List<SprayTaskParams> sprayTaskParams = sprayTask.getSprayTaskParams(); List<SprayTaskParams> sprayTaskParams = sprayTask.getSprayTaskParams();
int currentStep = 0; //不管是暂停还是新的线程记录当前线程喷涂步骤序号
for (SprayTaskParams sprayTaskParam : sprayTaskParams) {//循环玻片 for (SprayTaskParams sprayTaskParam : sprayTaskParams) {//循环玻片
if (sprayTask.getCurrentIndex() != null && sprayTaskParam.getIndex() < sprayTask.getCurrentIndex()) { if (sprayTask.getCurrentIndex() != null && sprayTaskParam.getIndex() < sprayTask.getCurrentIndex()) {
continue; continue;
@ -83,6 +82,9 @@ public class SprayTaskExecutor {
sprayTask.setCurrentIndex(sprayTaskParam.getIndex()); sprayTask.setCurrentIndex(sprayTaskParam.getIndex());
int sprayNum = 1; //当前玻片是第几次喷涂 int sprayNum = 1; //当前玻片是第几次喷涂
for (SprayTimes sprayTimes : sprayTaskParam.getTimes()) {//每个拨片有多次喷涂循环每次喷涂 for (SprayTimes sprayTimes : sprayTaskParam.getTimes()) {//每个拨片有多次喷涂循环每次喷涂
if (sprayNum < sprayTask.getSprayNum()) {
continue;
}
sprayTask.setSprayTimes(sprayTimes); sprayTask.setSprayTimes(sprayTimes);
Double[] slide = slideArr[sprayTaskParam.getIndex()];//获取玻片的坐标 Double[] slide = slideArr[sprayTaskParam.getIndex()];//获取玻片的坐标
@ -124,6 +126,7 @@ public class SprayTaskExecutor {
//因为走的是折现所以单词指令只需要移动x或y缓存上一个点位用来判断本次是走x还是y //因为走的是折现所以单词指令只需要移动x或y缓存上一个点位用来判断本次是走x还是y
double cacheXPoint = -1; double cacheXPoint = -1;
double cacheYPoint = -1; double cacheYPoint = -1;
int currentStep = 0; //记录当前线程喷涂步骤序号
for (SprayTaskStep sprayTaskStep : sprayTaskStepList) {//因为田字格喷涂其实是两次 for (SprayTaskStep sprayTaskStep : sprayTaskStepList) {//因为田字格喷涂其实是两次
if (sprayTimes.getHighVoltage()) {//加电 if (sprayTimes.getHighVoltage()) {//加电
DeviceCommand highVoltageOpenCommand = DeviceCommandGenerator.highVoltageOpen(sprayTimes.getHighVoltageValue());//开启高压 DeviceCommand highVoltageOpenCommand = DeviceCommandGenerator.highVoltageOpen(sprayTimes.getHighVoltageValue());//开启高压
@ -171,9 +174,11 @@ public class SprayTaskExecutor {
} }
} }
sprayNum++; sprayNum++;
sprayTask.setSprayNum(sprayNum);
sprayTask.setCurrentStep(0);
delay(sprayTimes.getDelay() * 1000); delay(sprayTimes.getDelay() * 1000);
} }
sprayTask.setSprayNum(0);
} }
//喷涂完毕 //喷涂完毕
DeviceCommand highVoltageCloseCommand = DeviceCommandGenerator.highVoltageClose();//关闭高压 DeviceCommand highVoltageCloseCommand = DeviceCommandGenerator.highVoltageClose();//关闭高压

5
src/main/java/com/qyft/ms/app/device/status/SprayTask.java

@ -33,6 +33,10 @@ public class SprayTask {
*/ */
private Integer currentIndex = null; private Integer currentIndex = null;
/** /**
* 当前玻片是第几次喷涂
*/
private volatile int sprayNum = 0;
/**
* 当前暂停点位 * 当前暂停点位
*/ */
private Point3D currentPausedPoint = null; private Point3D currentPausedPoint = null;
@ -83,6 +87,7 @@ public class SprayTask {
sprayTimes = null; sprayTimes = null;
currentPausedPoint = null; currentPausedPoint = null;
currentIndex = null; currentIndex = null;
sprayNum = 0;
operationLogId = null; operationLogId = null;
sprayTaskSprayedList.clear(); sprayTaskSprayedList.clear();
} }

Loading…
Cancel
Save