From 702aaab8cb4923c00c708aae7c3de631d8d1b44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Thu, 13 Mar 2025 15:19:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4backstageAck=E4=BC=A0?= =?UTF-8?q?=E5=8F=82=E5=A2=9E=E5=8A=A0title=E4=B8=8Econtent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/common/command/DeviceCommandGenerator.java | 75 +++------------------- .../ms/app/common/command/FrontCommandAck.java | 24 ++++--- .../ms/app/handler/impl/DehumidifierStart.java | 15 ++--- .../com/qyft/ms/app/handler/impl/MotorXToHome.java | 6 +- .../com/qyft/ms/app/handler/impl/MotorYToHome.java | 6 +- .../com/qyft/ms/app/handler/impl/MotorZToHome.java | 6 +- .../ms/app/handler/impl/NozzlePipelineWash.java | 57 +++++++++++++++- .../com/qyft/ms/app/handler/impl/SlideTrayIn.java | 8 +-- .../com/qyft/ms/app/handler/impl/SlideTrayOut.java | 8 +-- .../qyft/ms/app/handler/impl/TestDemoHandler.java | 2 + 10 files changed, 107 insertions(+), 100 deletions(-) diff --git a/src/main/java/com/qyft/ms/app/common/command/DeviceCommandGenerator.java b/src/main/java/com/qyft/ms/app/common/command/DeviceCommandGenerator.java index 23fb63a..0a67ab3 100644 --- a/src/main/java/com/qyft/ms/app/common/command/DeviceCommandGenerator.java +++ b/src/main/java/com/qyft/ms/app/common/command/DeviceCommandGenerator.java @@ -67,41 +67,8 @@ public class DeviceCommandGenerator { return cmdToDevice; } - - public static String matrix_prefill() { - return "matrix_prefill"; - } - - public static String spray_pipeline_wash() { - return "spray_pipeline_wash"; - } - - public static String syringe_pipeline_wash() { - return "syringe_pipeline_wash"; - } - - public static String matrix_spray_start() { - return "matrix_spray_start"; - } - - public static String matrix_spray_change_param() { - return "matrix_spray_change_param"; - } - - public static String matrix_spray_stop() { - return "matrix_spray_stop"; - } - - public static String matrix_spray_pause() { - return "matrix_spray_pause"; - } - - public static String matrix_spray_continue() { - return "matrix_spray_continue"; - } - /** - * 推入玻片托盘 + * 推入推出玻片托盘 * { * cmdName:'controlMotorCmd' * cmdId:'', @@ -115,7 +82,7 @@ public class DeviceCommandGenerator { * } * } */ - public static CMDToDevice slide_tray_in(int current, int position, int speed) { + public static CMDToDevice slide_tray(int current, int position, int speed) { int cmdId = CyclicNumberGenerator.getInstance().generateNumber(); CMDToDevice cmdToDevice = new CMDToDevice(); cmdToDevice.setCmdId(cmdId); @@ -131,38 +98,10 @@ public class DeviceCommandGenerator { return cmdToDevice; } + /** - * 推入玻片托盘 - * { - * cmdName:'controlMotorCmd' - * cmdId:'', - * device:'x', - * action:'move', - * param:{ - * current:'',//电流 - * direction:'forward|backward', - * position:'根据坐标计算', - * speed:''//移动速度 - * } - * } + * x轴回原点 */ - public static CMDToDevice slide_tray_out(int current, int position, int speed) { - int cmdId = CyclicNumberGenerator.getInstance().generateNumber(); - CMDToDevice cmdToDevice = new CMDToDevice(); - cmdToDevice.setCmdId(cmdId); - cmdToDevice.setCmdName("controlMotorCmd"); - cmdToDevice.setDevice("y"); - cmdToDevice.setAction("move"); - Map params = new HashMap<>(); - params.put("current",current ); - params.put("direction", "forward"); - params.put("position", position); - params.put("speed", speed); - cmdToDevice.setParam(params); - return cmdToDevice; - } - - public static CMDToDevice motor_x_to_home() { int cmdId = CyclicNumberGenerator.getInstance().generateNumber(); CMDToDevice cmdToDevice = new CMDToDevice(); @@ -173,6 +112,9 @@ public class DeviceCommandGenerator { return cmdToDevice; } + /** + * y轴回原点 + */ public static CMDToDevice motor_y_to_home() { int cmdId = CyclicNumberGenerator.getInstance().generateNumber(); CMDToDevice cmdToDevice = new CMDToDevice(); @@ -183,6 +125,9 @@ public class DeviceCommandGenerator { return cmdToDevice; } + /** + * z轴回原点 + */ public static CMDToDevice motor_z_to_home() { int cmdId = CyclicNumberGenerator.getInstance().generateNumber(); CMDToDevice cmdToDevice = new CMDToDevice(); diff --git a/src/main/java/com/qyft/ms/app/common/command/FrontCommandAck.java b/src/main/java/com/qyft/ms/app/common/command/FrontCommandAck.java index a2ae818..2051704 100644 --- a/src/main/java/com/qyft/ms/app/common/command/FrontCommandAck.java +++ b/src/main/java/com/qyft/ms/app/common/command/FrontCommandAck.java @@ -4,24 +4,30 @@ import cn.hutool.json.JSONObject; public class FrontCommandAck { - public static String backstageAck(String cmdId, String cmdName, String status, String info) { + public static String backstageAck(String cmdId, String cmdName, String status, String title, Object content) { JSONObject jsonObject = new JSONObject(); jsonObject.set("cmdId", cmdId); jsonObject.set("cmdName", cmdName); jsonObject.set("success", true); jsonObject.set("status", status); - jsonObject.set("info", info); + jsonObject.set("title", title); + jsonObject.set("content", content); return jsonObject.toString(); } - public static String deviceAck(String cmdId, String cmdName) { - JSONObject jsonObject = new JSONObject(); - jsonObject.set("cmdId", cmdId); - jsonObject.set("cmdName", cmdName); - jsonObject.set("success", true); - jsonObject.set("status", "receive"); - return jsonObject.toString(); + public static String backstageAck(String cmdId, String cmdName, String status, String title) { + return backstageAck(cmdId, cmdName, status, title, null); } +// public static String deviceAck(String cmdId, String cmdName) { +// JSONObject jsonObject = new JSONObject(); +// jsonObject.set("cmdId", cmdId); +// jsonObject.set("cmdName", cmdName); +// jsonObject.set("success", true); +// jsonObject.set("status", "receive"); +// return jsonObject.toString(); +// } + + } diff --git a/src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStart.java b/src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStart.java index 8c46ea0..2734375 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStart.java +++ b/src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStart.java @@ -1,7 +1,6 @@ package com.qyft.ms.app.handler.impl; import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; import com.qyft.ms.app.common.annotation.CommandMapping; import com.qyft.ms.app.common.command.CommandFuture; import com.qyft.ms.app.common.command.CurrentSendCmdMapInstance; @@ -63,7 +62,7 @@ public class DehumidifierStart implements CommandHandler { Integer toDeviceCmdId = humidityCmdToDevice.getCmdId(); CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, humidityGetFuture);//将指令放入map deviceClient.sendToJSON(humidityCmdToDevice); //发送指令给设备 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了获取湿度指令:" + JSONUtil.toJsonStr(humidityCmdToDevice)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了获取湿度指令", humidityCmdToDevice), MediaType.APPLICATION_JSON); humidityGetFuture.waitForContinue();//等待设备的反馈 @@ -77,13 +76,13 @@ public class DehumidifierStart implements CommandHandler { if (humidityGetFuture.isReceived() || humidityGetFuture.isGetResult()) { //设备已经收到指令并且执行成功 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "设备指令反馈:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "设备指令反馈", deviceResult), MediaType.APPLICATION_JSON); Double deviceHumidity = deviceResult.getJSONObject("result").getDouble("humidity");//拿到设备返回的湿度数值 if (frontHumidity > deviceHumidity) { //如果小于设置值,提醒用户不用除湿 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "设定湿度大于当前湿度,无需除湿。"), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "设定湿度大于当前湿度,无需除湿"), MediaType.APPLICATION_JSON); } else { @@ -98,7 +97,7 @@ public class DehumidifierStart implements CommandHandler { Integer dehumidifier_valve_control_cmdId = dehumidifier_valve_control.getCmdId(); CurrentSendCmdMapInstance.getInstance().putCommand(dehumidifier_valve_control_cmdId, dehumidifier_valve_control_Future);//将指令放入map deviceClient.sendToJSON(dehumidifier_valve_control); //发送指令给设备 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了开启除湿阀指令:" + JSONUtil.toJsonStr(dehumidifier_valve_control)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了开启除湿阀指令", dehumidifier_valve_control), MediaType.APPLICATION_JSON); dehumidifier_valve_control_Future.waitForContinue();//等待设备的反馈 @@ -111,11 +110,11 @@ public class DehumidifierStart implements CommandHandler { if (dehumidifier_valve_control_Future.isReceived() || dehumidifier_valve_control_Future.isGetResult()) { //设备已经收到指令并且执行成功 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "开启除湿阀指令指令设备反馈:" + JSONUtil.toJsonStr(dehumidifier_valve_control_result)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "开启除湿阀指令指令设备反馈", dehumidifier_valve_control_result), MediaType.APPLICATION_JSON); } else { //设备未收到指令或者执行失败 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "开启除湿阀指令没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "开启除湿阀指令没有响应", deviceResult), MediaType.APPLICATION_JSON); } @@ -124,7 +123,7 @@ public class DehumidifierStart implements CommandHandler { } else { //设备未收到指令或者执行失败 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "设备没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "设备没有响应", deviceResult), MediaType.APPLICATION_JSON); } 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 ac8ff1a..41b0b40 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 @@ -43,7 +43,7 @@ public class MotorXToHome implements CommandHandler { Integer toDeviceCmdId = motorXToHomeCmdToDevice.getCmdId(); CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, motorXToHomeCmdToDeviceFuture);//将指令放入map deviceClient.sendToJSON(motorXToHomeCmdToDevice); //发送指令给设备 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了x轴回原点指令:" + JSONUtil.toJsonStr(motorXToHomeCmdToDevice)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了x轴回原点指令:" , motorXToHomeCmdToDevice), MediaType.APPLICATION_JSON); motorXToHomeCmdToDeviceFuture.waitForContinue();//等待设备的反馈 @@ -51,9 +51,9 @@ public class MotorXToHome implements CommandHandler { CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 if (motorXToHomeCmdToDeviceFuture.isReceived()) { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴回原点指令设备反馈:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴回原点指令设备反馈:" , deviceResult), MediaType.APPLICATION_JSON); } else { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令没有响应:" , deviceResult), MediaType.APPLICATION_JSON); } } } 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 1971f6f..30d6f60 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 @@ -43,7 +43,7 @@ public class MotorYToHome implements CommandHandler { Integer toDeviceCmdId = motorYToHomeCmdToDevice.getCmdId(); CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, motorYToHomeCmdToDeviceFuture);//将指令放入map deviceClient.sendToJSON(motorYToHomeCmdToDevice); //发送指令给设备 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了y轴回原点指令:" + JSONUtil.toJsonStr(motorYToHomeCmdToDevice)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了y轴回原点指令:" , motorYToHomeCmdToDevice), MediaType.APPLICATION_JSON); motorYToHomeCmdToDeviceFuture.waitForContinue();//等待设备的反馈 @@ -51,9 +51,9 @@ public class MotorYToHome implements CommandHandler { CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 if (motorYToHomeCmdToDeviceFuture.isReceived()) { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "y轴回原点指令设备反馈:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "y轴回原点指令设备反馈:" , deviceResult), MediaType.APPLICATION_JSON); } else { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "y轴回原点指令没有响应:" , deviceResult), MediaType.APPLICATION_JSON); } } } 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 e4bc14f..db98f82 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 @@ -43,7 +43,7 @@ public class MotorZToHome implements CommandHandler { Integer toDeviceCmdId = motorZToHomeCmdToDevice.getCmdId(); CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, motorZToHomeCmdToDeviceFuture);//将指令放入map deviceClient.sendToJSON(motorZToHomeCmdToDevice); //发送指令给设备 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了z轴回原点指令:" + JSONUtil.toJsonStr(motorZToHomeCmdToDevice)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了z轴回原点指令:" , motorZToHomeCmdToDevice), MediaType.APPLICATION_JSON); motorZToHomeCmdToDeviceFuture.waitForContinue();//等待设备的反馈 @@ -51,9 +51,9 @@ public class MotorZToHome implements CommandHandler { CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 if (motorZToHomeCmdToDeviceFuture.isReceived()) { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "z轴回原点指令设备反馈:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "z轴回原点指令设备反馈:" , deviceResult), MediaType.APPLICATION_JSON); } else { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "z轴回原点指令没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "z轴回原点指令没有响应:" , deviceResult), MediaType.APPLICATION_JSON); } } } 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 c3c14e7..39c7d35 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 @@ -1,24 +1,79 @@ package com.qyft.ms.app.handler.impl; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.qyft.ms.app.common.annotation.CommandMapping; +import com.qyft.ms.app.common.command.CommandFuture; +import com.qyft.ms.app.common.command.CurrentSendCmdMapInstance; +import com.qyft.ms.app.common.command.DeviceCommandGenerator; +import com.qyft.ms.app.common.command.FrontCommandAck; +import com.qyft.ms.app.common.constant.CommandStatus; import com.qyft.ms.app.handler.CommandHandler; +import com.qyft.ms.app.model.bo.CMDToDevice; import com.qyft.ms.app.model.form.CMDFormV2; +import com.qyft.ms.device.client.TcpClient; import lombok.RequiredArgsConstructor; +import org.springframework.http.MediaType; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter; /** - * 处理前端清洗喷嘴管路 + * 清洗喷嘴管路 */ @Component @RequiredArgsConstructor @Async("asyncExecutor") @CommandMapping("nozzle_pipeline_wash")//业务指令注解 public class NozzlePipelineWash implements CommandHandler { + private final TcpClient deviceClient; @Override public void handle(CMDFormV2 cmdForm, ResponseBodyEmitter emitter) throws Exception { + String frontCmdId = cmdForm.getCmdId(); + String frontCmdName = cmdForm.getCmdName(); + //向前端发送接收到指令 + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令"), MediaType.APPLICATION_JSON); + //1.先把z回原点 + CMDToDevice motorZToHomeCmdToDevice = DeviceCommandGenerator.motor_z_to_home();//生成指令 回原点 + CommandFuture motorXToHomeCmdToDeviceFuture = new CommandFuture(); + motorXToHomeCmdToDeviceFuture.setCmdToDevice(motorZToHomeCmdToDevice); + Integer toDeviceCmdId = motorZToHomeCmdToDevice.getCmdId(); + CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, motorXToHomeCmdToDeviceFuture);//将指令放入map + deviceClient.sendToJSON(motorZToHomeCmdToDevice); //发送指令给设备 + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了z轴回原点指令:" , motorZToHomeCmdToDevice), MediaType.APPLICATION_JSON); + + motorXToHomeCmdToDeviceFuture.waitForContinue();//等待设备的反馈 + + JSONObject deviceResult = motorXToHomeCmdToDeviceFuture.getCallbackResult();//拿到设备返回结果 + CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 + + if (motorXToHomeCmdToDeviceFuture.isReceived()) { + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴回原点指令设备反馈:" , deviceResult), MediaType.APPLICATION_JSON); + } else { + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令没有响应:" , deviceResult), MediaType.APPLICATION_JSON); + } + //2.移动x到废液瓶上方 +// CMDToDevice motorZToHomeCmdToDevice = DeviceCommandGenerator.motor_z_to_home();//生成指令 回原点 +// CommandFuture motorXToHomeCmdToDeviceFuture = new CommandFuture(); +// motorXToHomeCmdToDeviceFuture.setCmdToDevice(motorZToHomeCmdToDevice); +// Integer toDeviceCmdId = motorZToHomeCmdToDevice.getCmdId(); +// CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, motorXToHomeCmdToDeviceFuture);//将指令放入map +// +// deviceClient.sendToJSON(motorZToHomeCmdToDevice); //发送指令给设备 +// emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了z轴回原点指令:" + JSONUtil.toJsonStr(motorZToHomeCmdToDevice)), MediaType.APPLICATION_JSON); +// +// motorXToHomeCmdToDeviceFuture.waitForContinue();//等待设备的反馈 +// +// JSONObject deviceResult = motorXToHomeCmdToDeviceFuture.getCallbackResult();//拿到设备返回结果 +// CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 +// +// if (motorXToHomeCmdToDeviceFuture.isReceived()) { +// emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "x轴回原点指令设备反馈:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); +// } else { +// emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "x轴回原点指令没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); +// } + //3.开启三通阀到喷嘴管路 } } \ No newline at end of file diff --git a/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayIn.java b/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayIn.java index 5dc3180..5f3bfe6 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayIn.java +++ b/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayIn.java @@ -40,14 +40,14 @@ public class SlideTrayIn implements CommandHandler { String frontCmdName = cmdForm.getCmdName(); //向前端发送接收到指令 emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令"), MediaType.APPLICATION_JSON); - CMDToDevice slideTrayInCmdToDevice = DeviceCommandGenerator.slide_tray_in(5, 0, 2);//生成指令 推入玻片托盘 + CMDToDevice slideTrayInCmdToDevice = DeviceCommandGenerator.slide_tray(5, 0, 2);//生成指令 推入玻片托盘 CommandFuture slideTrayInCmdToDeviceFuture = new CommandFuture(); slideTrayInCmdToDeviceFuture.setCmdToDevice(slideTrayInCmdToDevice); Integer toDeviceCmdId = slideTrayInCmdToDevice.getCmdId(); CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, slideTrayInCmdToDeviceFuture);//将指令放入map deviceClient.sendToJSON(slideTrayInCmdToDevice); //发送指令给设备 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了推入玻片托盘指令:" + JSONUtil.toJsonStr(slideTrayInCmdToDevice)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了推入玻片托盘指令:" , slideTrayInCmdToDevice), MediaType.APPLICATION_JSON); slideTrayInCmdToDeviceFuture.waitForContinue();//等待设备的反馈 @@ -55,9 +55,9 @@ public class SlideTrayIn implements CommandHandler { CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 if (slideTrayInCmdToDeviceFuture.isReceived()) { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "推入玻片托盘指令设备反馈:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "推入玻片托盘指令设备反馈:" , deviceResult), MediaType.APPLICATION_JSON); }else{ - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "推入玻片托盘指令没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "推入玻片托盘指令没有响应:" , deviceResult), MediaType.APPLICATION_JSON); } } } diff --git a/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayOut.java b/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayOut.java index a7b8480..e9aee9d 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayOut.java +++ b/src/main/java/com/qyft/ms/app/handler/impl/SlideTrayOut.java @@ -42,14 +42,14 @@ public class SlideTrayOut implements CommandHandler { //向前端发送接收到指令 emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令"), MediaType.APPLICATION_JSON); //TODO 数值应该从数据库中获取 - CMDToDevice slideTrayOutCmdToDevice = DeviceCommandGenerator.slide_tray_out(5, 20, 2);//生成指令 推出玻片托盘 + CMDToDevice slideTrayOutCmdToDevice = DeviceCommandGenerator.slide_tray(5, 20, 2);//生成指令 推出玻片托盘 CommandFuture slideTrayOutCmdToDeviceFuture = new CommandFuture(); slideTrayOutCmdToDeviceFuture.setCmdToDevice(slideTrayOutCmdToDevice); Integer toDeviceCmdId = slideTrayOutCmdToDevice.getCmdId(); CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, slideTrayOutCmdToDeviceFuture);//将指令放入map deviceClient.sendToJSON(slideTrayOutCmdToDevice); //发送指令给设备 - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了推出玻片托盘指令:" + JSONUtil.toJsonStr(slideTrayOutCmdToDevice)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了推出玻片托盘指令:" , slideTrayOutCmdToDevice), MediaType.APPLICATION_JSON); slideTrayOutCmdToDeviceFuture.waitForContinue();//等待设备的反馈 @@ -57,9 +57,9 @@ public class SlideTrayOut implements CommandHandler { CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 if (slideTrayOutCmdToDeviceFuture.isReceived()) { - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "推出玻片托盘指令设备反馈:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "推出玻片托盘指令设备反馈:" , deviceResult), MediaType.APPLICATION_JSON); }else{ - emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "推出玻片托盘指令没有响应:" + JSONUtil.toJsonStr(deviceResult)), MediaType.APPLICATION_JSON); + emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "推出玻片托盘指令没有响应:" , deviceResult), MediaType.APPLICATION_JSON); } } } \ No newline at end of file diff --git a/src/main/java/com/qyft/ms/app/handler/impl/TestDemoHandler.java b/src/main/java/com/qyft/ms/app/handler/impl/TestDemoHandler.java index 72fba28..5e6fce4 100644 --- a/src/main/java/com/qyft/ms/app/handler/impl/TestDemoHandler.java +++ b/src/main/java/com/qyft/ms/app/handler/impl/TestDemoHandler.java @@ -26,7 +26,9 @@ public class TestDemoHandler implements CommandHandler { String frontCmdId = cmdForm.getCmdId(); String frontCmdName = cmdForm.getCmdName(); emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令1"), MediaType.APPLICATION_JSON); + Thread.sleep(2000); emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令2"), MediaType.APPLICATION_JSON); + Thread.sleep(2000); emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令3"), MediaType.APPLICATION_JSON); emitter.complete(); }