Browse Source

fix:调整backstageAck传参增加title与content

master
白凤吉 5 months ago
parent
commit
702aaab8cb
  1. 75
      src/main/java/com/qyft/ms/app/common/command/DeviceCommandGenerator.java
  2. 24
      src/main/java/com/qyft/ms/app/common/command/FrontCommandAck.java
  3. 15
      src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStart.java
  4. 6
      src/main/java/com/qyft/ms/app/handler/impl/MotorXToHome.java
  5. 6
      src/main/java/com/qyft/ms/app/handler/impl/MotorYToHome.java
  6. 6
      src/main/java/com/qyft/ms/app/handler/impl/MotorZToHome.java
  7. 57
      src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java
  8. 8
      src/main/java/com/qyft/ms/app/handler/impl/SlideTrayIn.java
  9. 8
      src/main/java/com/qyft/ms/app/handler/impl/SlideTrayOut.java
  10. 2
      src/main/java/com/qyft/ms/app/handler/impl/TestDemoHandler.java

75
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<String, Object> 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();

24
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();
// }
}

15
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);
}

6
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);
}
}
}

6
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);
}
}
}

6
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);
}
}
}

57
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.开启三通阀到喷嘴管路
}
}

8
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);
}
}
}

8
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);
}
}
}

2
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();
}

Loading…
Cancel
Save