10 changed files with 107 additions and 100 deletions
-
75src/main/java/com/qyft/ms/app/common/command/DeviceCommandGenerator.java
-
24src/main/java/com/qyft/ms/app/common/command/FrontCommandAck.java
-
15src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStart.java
-
6src/main/java/com/qyft/ms/app/handler/impl/MotorXToHome.java
-
6src/main/java/com/qyft/ms/app/handler/impl/MotorYToHome.java
-
6src/main/java/com/qyft/ms/app/handler/impl/MotorZToHome.java
-
57src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java
-
8src/main/java/com/qyft/ms/app/handler/impl/SlideTrayIn.java
-
8src/main/java/com/qyft/ms/app/handler/impl/SlideTrayOut.java
-
2src/main/java/com/qyft/ms/app/handler/impl/TestDemoHandler.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.开启三通阀到喷嘴管路 |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue