19 changed files with 163 additions and 220 deletions
-
7src/main/java/com/qyft/ms/app/common/command/DeviceCommandGenerator.java
-
44src/main/java/com/qyft/ms/app/controller/FrontCmdController.java
-
59src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStart.java
-
60src/main/java/com/qyft/ms/app/handler/impl/DehumidifierStop.java
-
9src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayChangeParam.java
-
9src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayContinue.java
-
9src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayPause.java
-
9src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStart.java
-
10src/main/java/com/qyft/ms/app/handler/impl/MatrixSprayStop.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
-
5src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFill.java
-
34src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelinePreFillStop.java
-
47src/main/java/com/qyft/ms/app/handler/impl/NozzlePipelineWash.java
-
5src/main/java/com/qyft/ms/app/handler/impl/SlideTrayIn.java
-
7src/main/java/com/qyft/ms/app/handler/impl/SlideTrayOut.java
-
9src/main/java/com/qyft/ms/app/handler/impl/SyringePipelineWash.java
-
24src/main/java/com/qyft/ms/app/handler/impl/SyringePipelineWashStop.java
@ -0,0 +1,60 @@ |
|||||
|
package com.qyft.ms.app.handler.impl; |
||||
|
|
||||
|
import cn.hutool.json.JSONObject; |
||||
|
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("dehumidifier_stop")//业务指令注解 |
||||
|
public class DehumidifierStop implements CommandHandler { |
||||
|
/** |
||||
|
* 设备通信client |
||||
|
*/ |
||||
|
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);//向前端发送接收到指令 |
||||
|
|
||||
|
CMDToDevice cmdToDevice = DeviceCommandGenerator.dehumidifier_valve_close();//生成指令 关闭除湿阀 |
||||
|
CommandFuture cmdToDeviceFuture = new CommandFuture(); |
||||
|
cmdToDeviceFuture.setCmdToDevice(cmdToDevice); |
||||
|
Integer toDeviceCmdId = cmdToDevice.getCmdId(); |
||||
|
CurrentSendCmdMapInstance.getInstance().putCommand(toDeviceCmdId, cmdToDeviceFuture);//将指令放入map |
||||
|
|
||||
|
deviceClient.sendToJSON(cmdToDevice); //发送指令给设备 |
||||
|
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.SEND, "已向设备发送了关闭除湿阀指令", cmdToDevice), MediaType.APPLICATION_JSON); |
||||
|
|
||||
|
cmdToDeviceFuture.waitForContinue();//等待设备的反馈 |
||||
|
JSONObject deviceResult = cmdToDeviceFuture.getCallbackResult();//拿到设备返回结果 |
||||
|
CurrentSendCmdMapInstance.getInstance().removeCommand(toDeviceCmdId);//将指令从map中删除 |
||||
|
if (cmdToDeviceFuture.isReceived()) { |
||||
|
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RESULT, "关闭除湿阀指令设备反馈", deviceResult), MediaType.APPLICATION_JSON); |
||||
|
} else { |
||||
|
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.ERROR, "关闭除湿阀指令有响应", deviceResult), MediaType.APPLICATION_JSON); |
||||
|
} |
||||
|
|
||||
|
emitter.complete(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,34 @@ |
|||||
|
package com.qyft.ms.app.handler.impl; |
||||
|
|
||||
|
import com.qyft.ms.app.common.annotation.CommandMapping; |
||||
|
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.form.CMDFormV2; |
||||
|
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; |
||||
|
|
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 喷嘴管路_停止基质预充 |
||||
|
*/ |
||||
|
@Component |
||||
|
@RequiredArgsConstructor |
||||
|
@Async("asyncExecutor") |
||||
|
@CommandMapping("matrix_prefill")//业务指令注解 |
||||
|
public class NozzlePipelinePreFillStop implements CommandHandler { |
||||
|
|
||||
|
@Override |
||||
|
public void handle(CMDFormV2 cmdForm, ResponseBodyEmitter emitter) throws Exception { |
||||
|
String frontCmdId = cmdForm.getCmdId(); |
||||
|
String frontCmdName = cmdForm.getCmdName(); |
||||
|
Map<String, Object> param = cmdForm.getParam(); |
||||
|
emitter.send(FrontCommandAck.backstageAck(frontCmdId, frontCmdName, CommandStatus.RECEIVE, "后台已收到指令"), MediaType.APPLICATION_JSON);//向前端发送接收到指令 |
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
@ -0,0 +1,24 @@ |
|||||
|
package com.qyft.ms.app.handler.impl; |
||||
|
|
||||
|
import com.qyft.ms.app.common.annotation.CommandMapping; |
||||
|
import com.qyft.ms.app.handler.CommandHandler; |
||||
|
import com.qyft.ms.app.model.form.CMDFormV2; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
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("syringe_pipeline_wash_stop")//业务指令注解 |
||||
|
public class SyringePipelineWashStop implements CommandHandler { |
||||
|
|
||||
|
@Override |
||||
|
public void handle(CMDFormV2 cmdForm, ResponseBodyEmitter emitter) throws Exception { |
||||
|
|
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue