Browse Source

同步代码

master
白凤吉 5 months ago
parent
commit
fd9ebafeac
  1. 117
      src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStart.java
  2. 130
      src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStop.java
  3. 14
      src/main/java/com/qyft/ms/app/handler/impl/MotorXToHome.java
  4. 14
      src/main/java/com/qyft/ms/app/handler/impl/MotorYToHome.java
  5. 14
      src/main/java/com/qyft/ms/app/handler/impl/MotorZToHome.java
  6. 106
      src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFill.java
  7. 42
      src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFillStop.java
  8. 79
      src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java
  9. 25
      src/main/java/com/qyft/ms/device/handler/DeviceMessageHandler.java

117
src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStart.java

@ -235,7 +235,6 @@ public class MatrixSprayStart implements CommandHandler {
if (pathSpray(emitter, frontCmdId, frontCmdName, volume, pathList, movingSpeed))
return;//路径喷涂
if (i + 1 != times) { //如果不是最后一次执行完毕后回到玻片原点
log.info("123");
latch = new CountDownLatch(2);
deviceMessageHandler.setLatch(latch);
if (moveX(emitter, slide[0], frontCmdId, frontCmdName)) return;
@ -265,7 +264,6 @@ public class MatrixSprayStart implements CommandHandler {
if (pathSpray(emitter, frontCmdId, frontCmdName, volume, pathList, movingSpeed))
return;//路径喷涂
if (i + 1 != times) { //如果不是最后一次执行完毕后回到玻片原点
log.info("123");
latch = new CountDownLatch(2);
deviceMessageHandler.setLatch(latch);
if (moveX(emitter, slide[0], frontCmdId, frontCmdName)) return;
@ -306,7 +304,6 @@ public class MatrixSprayStart implements CommandHandler {
if (pathSpray(emitter, frontCmdId, frontCmdName, volume, pathList, movingSpeed))
return;//路径喷涂
if (i + 1 != times) { //如果不是最后一次执行完毕后回到玻片原点
log.info("123");
latch = new CountDownLatch(2);
deviceMessageHandler.setLatch(latch);
if (moveX(emitter, slide[0], frontCmdId, frontCmdName)) return;
@ -384,11 +381,13 @@ public class MatrixSprayStart implements CommandHandler {
emitter.complete();
return true;
}
Boolean motorXSpeedSetStatus = motorXSpeedSetResult.getBool("result");
if (!motorXSpeedSetStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴电机速度设置指令执行失败", motorXSpeedSetResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object motorXSpeedSetStatus = motorXSpeedSetResult.getObj("result");
if (motorXSpeedSetStatus instanceof Boolean) {
if (!(Boolean) motorXSpeedSetStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴电机速度设置指令执行失败", motorXSpeedSetResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴电机速度设置指令反馈", motorXSpeedSetResult), MediaType.APPLICATION_JSON);
@ -481,11 +480,13 @@ public class MatrixSprayStart implements CommandHandler {
return true;
}
Boolean highVoltageCloseStatus = highVoltageCloseResult.getBool("result");
if (!highVoltageCloseStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭高压电指令执行失败", highVoltageCloseResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object highVoltageCloseStatus = highVoltageCloseResult.getObj("result");
if (highVoltageCloseStatus instanceof Boolean) {
if (!(Boolean) highVoltageCloseStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭高压电指令执行失败", highVoltageCloseResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "关闭高压电指令反馈", highVoltageCloseResult), MediaType.APPLICATION_JSON);
@ -541,12 +542,15 @@ public class MatrixSprayStart implements CommandHandler {
emitter.complete();
return true;
}
Boolean nozzleValveCloseCMDToDeviceResultStatus = nozzleValveCloseCMDToDeviceResult.getBool("result");
if (!nozzleValveCloseCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭喷嘴阀指令执行失败", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object nozzleValveCloseCMDToDeviceResultStatus = nozzleValveCloseCMDToDeviceResult.getObj("result");
if (nozzleValveCloseCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) nozzleValveCloseCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭喷嘴阀指令执行失败", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "关闭喷嘴阀指令反馈", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
return false;
}
@ -572,11 +576,14 @@ public class MatrixSprayStart implements CommandHandler {
emitter.complete();
return true;
}
Boolean syringePumpStopCMDToDeviceResultStatus = syringePumpStopCMDToDeviceResult.getBool("result");
if (!syringePumpStopCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令执行失败", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object syringePumpStopCMDToDeviceResultStatus = syringePumpStopCMDToDeviceResult.getObj("result");
if (syringePumpStopCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) syringePumpStopCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令执行失败", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "停止推动注射泵指令反馈", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
return false;
@ -762,12 +769,16 @@ public class MatrixSprayStart implements CommandHandler {
emitter.complete();
return true;
}
Boolean motorXOriginResultStatus = motorXOriginResult.getBool("result");
if (!motorXOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令执行失败", motorXOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object motorXOriginResultStatus = motorXOriginResult.getObj("result");
if (motorXOriginResultStatus instanceof Boolean) {
if (!(Boolean) motorXOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令执行失败", motorXOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴回原点指令反馈", motorXOriginResult), MediaType.APPLICATION_JSON);
return false;
}
@ -795,11 +806,13 @@ public class MatrixSprayStart implements CommandHandler {
emitter.complete();
return true;
}
Boolean motorYOriginResultStatus = motorYOriginResult.getBool("result");
if (!motorYOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令执行失败", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object motorYOriginResultStatus = motorYOriginResult.getObj("result");
if (motorYOriginResultStatus instanceof Boolean) {
if (!(Boolean) motorYOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令执行失败", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "y轴回原点指令反馈", motorYOriginResult), MediaType.APPLICATION_JSON);
return false;
@ -826,12 +839,15 @@ public class MatrixSprayStart implements CommandHandler {
emitter.complete();
return true;
}
Boolean threeWayValveOpenSyringePipelineCMDToDeviceResultStatus = threeWayValveOpenSyringePipelineCMDToDeviceResult.getBool("result");
if (!threeWayValveOpenSyringePipelineCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "打开三通阀喷嘴管路指令执行失败", threeWayValveOpenSyringePipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object threeWayValveOpenSyringePipelineCMDToDeviceResultStatus = threeWayValveOpenSyringePipelineCMDToDeviceResult.getObj("result");
if (threeWayValveOpenSyringePipelineCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) threeWayValveOpenSyringePipelineCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "打开三通阀喷嘴管路指令执行失败", threeWayValveOpenSyringePipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "打开三通阀喷嘴管路指令反馈", threeWayValveOpenSyringePipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
return false;
}
@ -857,11 +873,13 @@ public class MatrixSprayStart implements CommandHandler {
emitter.complete();
return true;
}
Boolean highVoltageOpenStatus = highVoltageOpenResult.getBool("result");
if (!highVoltageOpenStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "开启高压指令执行失败", highVoltageOpenResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object highVoltageOpenStatus = highVoltageOpenResult.getObj("result");
if (highVoltageOpenStatus instanceof Boolean) {
if (!(Boolean) highVoltageOpenStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "开启高压指令执行失败", highVoltageOpenResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "开启高压指令反馈", highVoltageOpenResult), MediaType.APPLICATION_JSON);
return false;
@ -889,12 +907,15 @@ public class MatrixSprayStart implements CommandHandler {
return true;
}
Boolean motorZPositionSetDownCmdToDeviceResultStatus = motorZPositionSetDownCmdToDeviceResult.getBool("result");
if (!motorZPositionSetDownCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object motorZPositionSetDownCmdToDeviceResultStatus = motorZPositionSetDownCmdToDeviceResult.getObj("result");
if (motorZPositionSetDownCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorZPositionSetDownCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动z轴到指定位指令反馈", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
return false;
}

130
src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStop.java

@ -50,6 +50,40 @@ public class MatrixSprayStop implements CommandHandler {
String frontCmdName = cmdForm.getCmdName();
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令"), MediaType.APPLICATION_JSON);//向前端发送接收到指令
log.info("申请中断喷涂线程:{}", matrixSprayState.cancelTask());
//0.先停注射泵
CMDToDevice syringePumpStopCMDToDevice = DeviceCommandGenerator.syringe_pump_stop();//停止推动注射泵
CommandFuture syringePumpStopCMDToDeviceCMDToDeviceFuture = new CommandFuture();
syringePumpStopCMDToDeviceCMDToDeviceFuture.setCmdToDevice(syringePumpStopCMDToDevice);
Integer syringePumpStopCMDToDeviceCmdId = syringePumpStopCMDToDevice.getCmdId();
CurrentSendCmdMapInstance.getInstance().putCommand(syringePumpStopCMDToDeviceCmdId, syringePumpStopCMDToDeviceCMDToDeviceFuture); // 将指令放入map
deviceClient.sendToJSON(syringePumpStopCMDToDevice); // 发送指令给设备
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了停止推动注射泵指令", syringePumpStopCMDToDevice), MediaType.APPLICATION_JSON);
syringePumpStopCMDToDeviceCMDToDeviceFuture.waitForContinue(); // 等待设备的反馈
JSONObject syringePumpStopCMDToDeviceResult = syringePumpStopCMDToDeviceCMDToDeviceFuture.getCallbackResult(); // 拿到设备返回结果
CurrentSendCmdMapInstance.getInstance().removeCommand(syringePumpStopCMDToDeviceCmdId); // 将指令从map中删除
if (!syringePumpStopCMDToDeviceCMDToDeviceFuture.isReceived()) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令响应超时", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
if (syringePumpStopCMDToDeviceResult.getJSONObject("error") != null) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令返回错误", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
Object syringePumpStopCMDToDeviceResultStatus = syringePumpStopCMDToDeviceResult.getObj("result");
if (syringePumpStopCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) syringePumpStopCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令执行失败", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "停止推动注射泵指令反馈", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
//1.轴停止移动
CMDToDevice motorXStopCMDToDevice = DeviceCommandGenerator.motor_x_stop(); //x轴停止移动指令
CommandFuture motorXStopCMDToDeviceFuture = new CommandFuture();
@ -73,12 +107,16 @@ public class MatrixSprayStop implements CommandHandler {
emitter.complete();
return;
}
Boolean motorXStopStatus = motorXStopResult.getBool("result");
if (!motorXStopStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴停止移动指令执行失败", motorXStopResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorXStopStatus = motorXStopResult.getObj("result");
if (motorXStopStatus instanceof Boolean) {
if (!(Boolean) motorXStopStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴停止移动指令执行失败", motorXStopResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴停止移动指令反馈", motorXStopResult), MediaType.APPLICATION_JSON);
CMDToDevice motorYStopCMDToDevice = DeviceCommandGenerator.motor_y_stop(); //y轴停止移动
@ -103,12 +141,16 @@ public class MatrixSprayStop implements CommandHandler {
emitter.complete();
return;
}
Boolean motorYStopStatus = motorYStopResult.getBool("result");
if (!motorYStopStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴停止移动指令执行失败", motorYStopResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorYStopStatus = motorYStopResult.getObj("result");
if (motorYStopStatus instanceof Boolean) {
if (!(Boolean) motorYStopStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴停止移动指令执行失败", motorYStopResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "y轴停止移动指令反馈", motorYStopResult), MediaType.APPLICATION_JSON);
//2.关闭喷嘴阀
CMDToDevice nozzleValveCloseCMDToDevice = DeviceCommandGenerator.nozzle_valve_close();//关闭喷嘴阀
@ -132,12 +174,16 @@ public class MatrixSprayStop implements CommandHandler {
emitter.complete();
return;
}
Boolean nozzleValveCloseCMDToDeviceResultStatus = nozzleValveCloseCMDToDeviceResult.getBool("result");
if (!nozzleValveCloseCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭喷嘴阀指令执行失败", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object nozzleValveCloseCMDToDeviceResultStatus = nozzleValveCloseCMDToDeviceResult.getObj("result");
if (nozzleValveCloseCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) nozzleValveCloseCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭喷嘴阀指令执行失败", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "关闭喷嘴阀指令反馈", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
//3.关闭高压电
CMDToDevice highVoltageCloseCmdToDevice = DeviceCommandGenerator.high_voltage_close();//关闭高压电
@ -161,12 +207,16 @@ public class MatrixSprayStop implements CommandHandler {
emitter.complete();
return;
}
Boolean highVoltageCloseStatus = highVoltageCloseResult.getBool("result");
if (!highVoltageCloseStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭高压电指令执行失败", highVoltageCloseResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object highVoltageCloseStatus = highVoltageCloseResult.getObj("result");
if (highVoltageCloseStatus instanceof Boolean) {
if (!(Boolean) highVoltageCloseStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭高压电指令执行失败", highVoltageCloseResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "关闭高压电指令反馈", highVoltageCloseResult), MediaType.APPLICATION_JSON);
//4.回到原点
CountDownLatch latch = new CountDownLatch(1);
@ -225,11 +275,13 @@ public class MatrixSprayStop implements CommandHandler {
return true;
}
Boolean motorZOriginStatus = motorZOriginResult.getBool("result");
if (!motorZOriginStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "z轴回原点指令执行失败", motorZOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object motorZOriginStatus = motorZOriginResult.getObj("result");
if (motorZOriginStatus instanceof Boolean) {
if (!(Boolean) motorZOriginStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "z轴回原点指令执行失败", motorZOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "z轴回原点指令反馈", motorZOriginResult), MediaType.APPLICATION_JSON);
@ -260,12 +312,16 @@ public class MatrixSprayStop implements CommandHandler {
emitter.complete();
return true;
}
Boolean motorXOriginResultStatus = motorXOriginResult.getBool("result");
if (!motorXOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令执行失败", motorXOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object motorXOriginResultStatus = motorXOriginResult.getObj("result");
if (motorXOriginResultStatus instanceof Boolean) {
if (!(Boolean) motorXOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令执行失败", motorXOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴回原点指令反馈", motorXOriginResult), MediaType.APPLICATION_JSON);
return false;
}
@ -293,12 +349,16 @@ public class MatrixSprayStop implements CommandHandler {
emitter.complete();
return true;
}
Boolean motorYOriginResultStatus = motorYOriginResult.getBool("result");
if (!motorYOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令执行失败", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
Object motorYOriginResultStatus = motorYOriginResult.getObj("result");
if (motorYOriginResultStatus instanceof Boolean) {
if (!(Boolean) motorYOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令执行失败", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return true;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "y轴回原点指令反馈", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴与y轴已回到原点"), MediaType.APPLICATION_JSON);
return false;

14
src/main/java/com/qyft/ms/app/handler/impl/MotorXToHome.java

@ -57,12 +57,16 @@ public class MotorXToHome implements CommandHandler {
emitter.complete();
return;
}
Boolean motorXOriginResultStatus = motorXOriginResult.getBool("result");
if (!motorXOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令执行失败", motorXOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorXOriginResultStatus = motorXOriginResult.getObj("result");
if (motorXOriginResultStatus instanceof Boolean) {
if (!(Boolean) motorXOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令执行失败", motorXOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴回原点指令反馈", motorXOriginResult), MediaType.APPLICATION_JSON);
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "指令执行完毕"), MediaType.APPLICATION_JSON);
emitter.complete();

14
src/main/java/com/qyft/ms/app/handler/impl/MotorYToHome.java

@ -60,12 +60,16 @@ public class MotorYToHome implements CommandHandler {
emitter.complete();
return;
}
Boolean motorYOriginResultStatus = motorYOriginResult.getBool("result");
if (!motorYOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令执行失败", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorYOriginResultStatus = motorYOriginResult.getObj("result");
if (motorYOriginResultStatus instanceof Boolean) {
if (!(Boolean) motorYOriginResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令执行失败", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "y轴回原点指令反馈", motorYOriginResult), MediaType.APPLICATION_JSON);
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "指令执行完毕"), MediaType.APPLICATION_JSON);
emitter.complete();

14
src/main/java/com/qyft/ms/app/handler/impl/MotorZToHome.java

@ -55,12 +55,16 @@ public class MotorZToHome implements CommandHandler {
emitter.complete();
return;
}
Boolean motorZOriginStatus = motorZOriginResult.getBool("result");
if (!motorZOriginStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "z轴回原点指令执行失败", motorZOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorZOriginStatus = motorZOriginResult.getObj("result");
if (motorZOriginStatus instanceof Boolean) {
if (!(Boolean) motorZOriginStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "z轴回原点指令执行失败", motorZOriginResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "z轴回原点指令反馈", motorZOriginResult), MediaType.APPLICATION_JSON);
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "指令执行完毕"), MediaType.APPLICATION_JSON);
emitter.complete();

106
src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFill.java

@ -77,6 +77,14 @@ public class NozzlePipelinePreFill implements CommandHandler {
emitter.complete();
return;
}
Object motorXYZPositionGetCmdToDeviceResultStatus = motorXYZPositionGetCmdToDeviceResult.getObj("result");
if (motorXYZPositionGetCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorXYZPositionGetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "获得电机XYZ相对原点坐标指令执行失败", motorXYZPositionGetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
Double zAxisPosition = motorXYZPositionGetCmdToDeviceResult.getJSONObject("result").getDouble("zAxisPosition");//当前z轴相对于原点的位置
if (zAxisPosition == null || zAxisPosition < 0.0) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "获得电机XYZ相对原点坐标指令执行失败", motorXYZPositionGetCmdToDeviceResult), MediaType.APPLICATION_JSON);
@ -110,12 +118,15 @@ public class NozzlePipelinePreFill implements CommandHandler {
return;
}
Boolean motorZPositionSetCmdToDeviceResultStatus = motorZPositionSetCmdToDeviceResult.getBool("result");
if (!motorZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorZPositionSetCmdToDeviceResultStatus = motorZPositionSetCmdToDeviceResult.getObj("result");
if (motorZPositionSetCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动z轴到指定位指令反馈", motorZPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
boolean finished = latch.await(5, TimeUnit.SECONDS);
if (!finished) {
@ -147,12 +158,16 @@ public class NozzlePipelinePreFill implements CommandHandler {
emitter.complete();
return;
}
Boolean motorXYZPositionSetCmdToDeviceResultStatus = motorXPositionSetCmdToDeviceResult.getBool("result");
if (!motorXYZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动x轴到指定位置指令执行失败", motorXPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorXYZPositionSetCmdToDeviceResultStatus = motorXPositionSetCmdToDeviceResult.getObj("result");
if (motorXYZPositionSetCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorXYZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动x轴到指定位置指令执行失败", motorXPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动x轴到指定位置指令反馈", motorXPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
CMDToDevice motorYPositionSetCMDToDevice = DeviceCommandGenerator.motor_y_position_set(75.0, 2.0);//移动y轴到指定位置 (TODO) 废液桶Y轴位置应当可以配置
CommandFuture motorYPositionSetCMDToDeviceFuture = new CommandFuture();
@ -174,12 +189,16 @@ public class NozzlePipelinePreFill implements CommandHandler {
emitter.complete();
return;
}
Boolean motorYPositionSetCMDToDeviceResultStatus = motorYPositionSetCMDToDeviceResult.getBool("result");
if (!motorYPositionSetCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动y轴到指定位置指令执行失败", motorYPositionSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorYPositionSetCMDToDeviceResultStatus = motorYPositionSetCMDToDeviceResult.getObj("result");
if (motorYPositionSetCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorYPositionSetCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动y轴到指定位置指令执行失败", motorYPositionSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动y轴到指定位置指令反馈", motorYPositionSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
boolean finished = latch.await(5, TimeUnit.SECONDS);
if (!finished) {
@ -211,12 +230,15 @@ public class NozzlePipelinePreFill implements CommandHandler {
return;
}
Boolean motorZPositionSetDownCmdToDeviceResultStatus = motorZPositionSetDownCmdToDeviceResult.getBool("result");
if (!motorZPositionSetDownCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorZPositionSetDownCmdToDeviceResultStatus = motorZPositionSetDownCmdToDeviceResult.getObj("result");
if (motorZPositionSetDownCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorZPositionSetDownCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动z轴到指定位指令反馈", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
finished = latch.await(5, TimeUnit.SECONDS);
if (!finished) {
@ -245,12 +267,16 @@ public class NozzlePipelinePreFill implements CommandHandler {
emitter.complete();
return;
}
Boolean threeWayValveOpenSprayPipelineCMDToDeviceResultStatus = threeWayValveOpenSprayPipelineCMDToDeviceResult.getBool("result");
if (!threeWayValveOpenSprayPipelineCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "打开三通阀注射器管路指令执行失败", threeWayValveOpenSprayPipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object threeWayValveOpenSprayPipelineCMDToDeviceResultStatus = threeWayValveOpenSprayPipelineCMDToDeviceResult.getObj("result");
if (threeWayValveOpenSprayPipelineCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) threeWayValveOpenSprayPipelineCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "打开三通阀注射器管路指令反馈", threeWayValveOpenSprayPipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
//6.打开喷嘴阀
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "开启喷嘴阀"), MediaType.APPLICATION_JSON);
@ -274,16 +300,20 @@ public class NozzlePipelinePreFill implements CommandHandler {
emitter.complete();
return;
}
Boolean nozzleValveOpenCMDToDeviceResultStatus = nozzleValveOpenCMDToDeviceResult.getBool("result");
if (!nozzleValveOpenCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "开启喷嘴阀指令执行失败", nozzleValveOpenCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object nozzleValveOpenCMDToDeviceResultStatus = nozzleValveOpenCMDToDeviceResult.getObj("result");
if (nozzleValveOpenCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) nozzleValveOpenCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "开启喷嘴阀指令执行失败", nozzleValveOpenCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "开启喷嘴阀指令反馈", nozzleValveOpenCMDToDeviceResult), MediaType.APPLICATION_JSON);
//7.设置注射泵速度推注射泵
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "设置注射泵速度,推注射泵"), MediaType.APPLICATION_JSON);
CMDToDevice syringePumpInjectionVolumeSetCMDToDevice = DeviceCommandGenerator.syringe_pump_injection_speed_set(1.0);//推动移动注射泵
CMDToDevice syringePumpInjectionVolumeSetCMDToDevice = DeviceCommandGenerator.syringe_pump_forward(1.0);//推动移动注射泵
CommandFuture syringePumpInjectionVolumeSetCMDToDeviceFuture = new CommandFuture();
syringePumpInjectionVolumeSetCMDToDeviceFuture.setCmdToDevice(syringePumpInjectionVolumeSetCMDToDevice);
Integer syringePumpInjectionVolumeSetCMDToDeviceCmdId = syringePumpInjectionVolumeSetCMDToDevice.getCmdId();
@ -303,12 +333,16 @@ public class NozzlePipelinePreFill implements CommandHandler {
emitter.complete();
return;
}
Boolean syringePumpInjectionVolumeSetCMDToDeviceResultStatus = syringePumpInjectionVolumeSetCMDToDeviceResult.getBool("result");
if (!syringePumpInjectionVolumeSetCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "推动移动注射泵指令执行失败", syringePumpInjectionVolumeSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object syringePumpInjectionVolumeSetCMDToDeviceResultStatus = syringePumpInjectionVolumeSetCMDToDeviceResult.getObj("result");
if (syringePumpInjectionVolumeSetCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) syringePumpInjectionVolumeSetCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "推动移动注射泵指令执行失败", syringePumpInjectionVolumeSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "推动移动注射泵指令反馈", syringePumpInjectionVolumeSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "指令执行完毕"), MediaType.APPLICATION_JSON);
emitter.complete();

42
src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFillStop.java

@ -59,12 +59,16 @@ public class NozzlePipelinePreFillStop implements CommandHandler {
emitter.complete();
return;
}
Boolean syringePumpStopCMDToDeviceResultStatus = syringePumpStopCMDToDeviceResult.getBool("result");
if (!syringePumpStopCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令执行失败", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object syringePumpStopCMDToDeviceResultStatus = syringePumpStopCMDToDeviceResult.getObj("result");
if (syringePumpStopCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) syringePumpStopCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令执行失败", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "停止推动注射泵指令反馈", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
//2.全部关闭三通阀
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "全部关闭三通阀"), MediaType.APPLICATION_JSON);
@ -88,12 +92,16 @@ public class NozzlePipelinePreFillStop implements CommandHandler {
emitter.complete();
return;
}
Boolean threeWayValveCloseAllCMDToDeviceResultStatus = threeWayValveCloseAllCMDToDeviceResult.getBool("result");
if (!threeWayValveCloseAllCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "全部关闭三通阀指令执行失败", threeWayValveCloseAllCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object threeWayValveCloseAllCMDToDeviceResultStatus = threeWayValveCloseAllCMDToDeviceResult.getObj("result");
if (threeWayValveCloseAllCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) threeWayValveCloseAllCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "停止推动注射泵指令执行失败", syringePumpStopCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "全部关闭三通阀指令反馈", threeWayValveCloseAllCMDToDeviceResult), MediaType.APPLICATION_JSON);
//3.关闭喷嘴阀
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "关闭喷嘴阀"), MediaType.APPLICATION_JSON);
@ -118,12 +126,16 @@ public class NozzlePipelinePreFillStop implements CommandHandler {
emitter.complete();
return;
}
Boolean nozzleValveCloseCMDToDeviceResultStatus = nozzleValveCloseCMDToDeviceResult.getBool("result");
if (!nozzleValveCloseCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭喷嘴阀指令执行失败", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object nozzleValveCloseCMDToDeviceResultStatus = nozzleValveCloseCMDToDeviceResult.getObj("result");
if (nozzleValveCloseCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) nozzleValveCloseCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭喷嘴阀指令执行失败", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "关闭喷嘴阀指令反馈", nozzleValveCloseCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "指令执行完毕"), MediaType.APPLICATION_JSON);
emitter.complete();

79
src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java

@ -56,12 +56,23 @@ public class NozzlePipelineWash implements CommandHandler {
emitter.complete();
return;
}
Object motorXYZPositionGetCmdToDeviceResultStatus = motorXYZPositionGetCmdToDeviceResult.getObj("result");
if (motorXYZPositionGetCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorXYZPositionGetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "获得电机XYZ相对原点坐标指令执行失败", motorXYZPositionGetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
Double zAxisPosition = motorXYZPositionGetCmdToDeviceResult.getJSONObject("result").getDouble("zAxisPosition");//当前z轴相对于原点的位置
if (zAxisPosition == null || zAxisPosition < 0.0) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "获得电机XYZ相对原点坐标指令执行失败", motorXYZPositionGetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "电机XYZ相对原点坐标指令反馈", motorXYZPositionGetCmdToDeviceResult), MediaType.APPLICATION_JSON);
if (zAxisPosition > 80) { //z轴超出安全距离抬升z轴 //TODO安全距离应该可配置
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "z轴超出安全距离,抬升z轴至安全距离"), MediaType.APPLICATION_JSON);
@ -86,12 +97,15 @@ public class NozzlePipelineWash implements CommandHandler {
return;
}
Boolean motorZPositionSetCmdToDeviceResultStatus = motorZPositionSetCmdToDeviceResult.getBool("result");
if (!motorZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorZPositionSetCmdToDeviceResultStatus = motorZPositionSetCmdToDeviceResult.getObj("result");
if (motorZPositionSetCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动z轴到指定位指令反馈", motorZPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
}
//2.轴移动到废液位置
@ -116,12 +130,16 @@ public class NozzlePipelineWash implements CommandHandler {
emitter.complete();
return;
}
Boolean motorXYZPositionSetCmdToDeviceResultStatus = motorXPositionSetCmdToDeviceResult.getBool("result");
if (!motorXYZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动x轴到指定位置指令执行失败", motorXPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorXYZPositionSetCmdToDeviceResultStatus = motorXPositionSetCmdToDeviceResult.getObj("result");
if (motorXYZPositionSetCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorXYZPositionSetCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动x轴到指定位置指令执行失败", motorXPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动x轴到指定位置指令反馈", motorXPositionSetCmdToDeviceResult), MediaType.APPLICATION_JSON);
CMDToDevice motorYPositionSetCMDToDevice = DeviceCommandGenerator.motor_y_position_set(75.0, 2.0);//移动y轴到指定位置 (TODO) 废液桶Y轴位置应当可以配置
CommandFuture motorYPositionSetCMDToDeviceFuture = new CommandFuture();
@ -143,12 +161,16 @@ public class NozzlePipelineWash implements CommandHandler {
emitter.complete();
return;
}
Boolean motorYPositionSetCMDToDeviceResultStatus = motorYPositionSetCMDToDeviceResult.getBool("result");
if (!motorYPositionSetCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动y轴到指定位置指令执行失败", motorYPositionSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorYPositionSetCMDToDeviceResultStatus = motorYPositionSetCMDToDeviceResult.getObj("result");
if (motorYPositionSetCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorYPositionSetCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动y轴到指定位置指令执行失败", motorYPositionSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动y轴到指定位置指令反馈", motorYPositionSetCMDToDeviceResult), MediaType.APPLICATION_JSON);
//3.下降z轴高度防止飞溅
Thread.sleep(10 * 1000);//TODO 等待10秒x和y轴移动完毕
@ -174,12 +196,15 @@ public class NozzlePipelineWash implements CommandHandler {
return;
}
Boolean motorZPositionSetDownCmdToDeviceResultStatus = motorZPositionSetDownCmdToDeviceResult.getBool("result");
if (!motorZPositionSetDownCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object motorZPositionSetDownCmdToDeviceResultStatus = motorZPositionSetDownCmdToDeviceResult.getObj("result");
if (motorZPositionSetDownCmdToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) motorZPositionSetDownCmdToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "移动z轴到指定位指令执行失败", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "移动z轴到指定位指令反馈", motorZPositionSetDownCmdToDeviceResult), MediaType.APPLICATION_JSON);
//4.开启三通阀到喷嘴管路
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "打开三通阀注射器管路"), MediaType.APPLICATION_JSON);
@ -203,12 +228,16 @@ public class NozzlePipelineWash implements CommandHandler {
emitter.complete();
return;
}
Boolean threeWayValveOpenSyringePipelineCMDToDeviceResultStatus = threeWayValveOpenSyringePipelineCMDToDeviceResult.getBool("result");
if (!threeWayValveOpenSyringePipelineCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "打开三通阀喷嘴管路指令执行失败", threeWayValveOpenSyringePipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
Object threeWayValveOpenSyringePipelineCMDToDeviceResultStatus = threeWayValveOpenSyringePipelineCMDToDeviceResult.getObj("result");
if (threeWayValveOpenSyringePipelineCMDToDeviceResultStatus instanceof Boolean) {
if (!(Boolean) threeWayValveOpenSyringePipelineCMDToDeviceResultStatus) {
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "打开三通阀喷嘴管路指令执行失败", threeWayValveOpenSyringePipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.complete();
return;
}
}
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "打开三通阀喷嘴管路指令反馈", threeWayValveOpenSyringePipelineCMDToDeviceResult), MediaType.APPLICATION_JSON);
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "指令执行完毕"), MediaType.APPLICATION_JSON);
emitter.complete();

25
src/main/java/com/qyft/ms/device/handler/DeviceMessageHandler.java

@ -50,17 +50,6 @@ public class DeviceMessageHandler extends ChannelInboundHandlerAdapter {
String tag = deviceResult.get("tag").toString();
Integer cmdId = payload.getInt("cmdId");
Map<Integer, Long> receivedCommands = DeviceInstance.getInstance().getReceivedCommands();
long currentTime = System.currentTimeMillis();
if (receivedCommands.containsKey(payload.getInt("cmdId"))) {
long lastReceivedTime = receivedCommands.get(payload.getInt("cmdId"));
if (currentTime - lastReceivedTime < DUPLICATE_CHECK_INTERVAL) {
return;
}
}
receivedCommands.put(cmdId, currentTime);
if ("event".equals(tag)) { //设备上报事件
String eventType = payload.getJSONObject("result").getStr("event_type");
@ -80,7 +69,19 @@ public class DeviceMessageHandler extends ChannelInboundHandlerAdapter {
}
}
} else if ("ack".equals(tag)) {//设备指令反馈
// Integer cmdId = payload.getInt("cmdId");
Map<Integer, Long> receivedCommands = DeviceInstance.getInstance().getReceivedCommands();
long currentTime = System.currentTimeMillis();
if (receivedCommands.containsKey(payload.getInt("cmdId"))) {
long lastReceivedTime = receivedCommands.get(payload.getInt("cmdId"));
if (currentTime - lastReceivedTime < DUPLICATE_CHECK_INTERVAL) {
return;
}
}
receivedCommands.put(cmdId, currentTime);
CommandFuture commandFuture = CurrentSendCmdMapInstance.getInstance().getCommand(cmdId);
if (commandFuture != null) {
commandFuture.setReceived(true);

Loading…
Cancel
Save