diff --git a/src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStart.java b/src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStart.java index 7e9f684..f6d4766 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStart.java +++ b/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; } diff --git a/src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStop.java b/src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStop.java index ebbfea6..c14ee63 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStop.java +++ b/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; diff --git a/src/main/java/com/qyft/ms/app/handler/impl/MotorXToHome.java b/src/main/java/com/qyft/ms/app/handler/impl/MotorXToHome.java index 17dd486..6de41ce 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/MotorXToHome.java +++ b/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(); diff --git a/src/main/java/com/qyft/ms/app/handler/impl/MotorYToHome.java b/src/main/java/com/qyft/ms/app/handler/impl/MotorYToHome.java index 4a2a361..c47b708 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/MotorYToHome.java +++ b/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(); diff --git a/src/main/java/com/qyft/ms/app/handler/impl/MotorZToHome.java b/src/main/java/com/qyft/ms/app/handler/impl/MotorZToHome.java index ba71544..39f6959 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/MotorZToHome.java +++ b/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(); diff --git a/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFill.java b/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFill.java index 9259f5c..4ce53c8 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFill.java +++ b/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(); diff --git a/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFillStop.java b/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFillStop.java index 6651208..3792382 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFillStop.java +++ b/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(); diff --git a/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java b/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java index 7343044..53ca893 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java +++ b/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(); diff --git a/src/main/java/com/qyft/ms/device/handler/DeviceMessageHandler.java b/src/main/java/com/qyft/ms/device/handler/DeviceMessageHandler.java index 3186011..0de8d6e 100644 --- a/src/main/java/com/qyft/ms/device/handler/DeviceMessageHandler.java +++ b/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 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 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);