From 40ea459369a21721713ff62bcc796ad69c5bdf89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Sat, 12 Jul 2025 19:39:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=90=AF=E5=8A=A8=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E7=9A=84=E6=97=B6=E5=80=99=E8=87=AA=E6=A3=80?= =?UTF-8?q?=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qyft/ms/app/controller/TestController.java | 9 +++++ .../qyft/ms/app/front/cmd/test/TestCoherence.java | 40 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/main/java/com/qyft/ms/app/front/cmd/test/TestCoherence.java diff --git a/src/main/java/com/qyft/ms/app/controller/TestController.java b/src/main/java/com/qyft/ms/app/controller/TestController.java index e78853a..c1dce72 100644 --- a/src/main/java/com/qyft/ms/app/controller/TestController.java +++ b/src/main/java/com/qyft/ms/app/controller/TestController.java @@ -1,6 +1,7 @@ package com.qyft.ms.app.controller; import com.qyft.ms.app.device.status.DeviceStatus; +import com.qyft.ms.app.model.vo.SelfTestVO; import com.qyft.ms.system.common.result.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -27,4 +28,12 @@ public class TestController { deviceStatus.setVirtual(true); return Result.success(); } + + @Operation(summary = "启动虚拟模式并且自检完毕") + @PostMapping("/finish") + public Result selfTestFinish() { + deviceStatus.setVirtual(true); + deviceStatus.setSelfTestCompleted(true); + return Result.success(); + } } diff --git a/src/main/java/com/qyft/ms/app/front/cmd/test/TestCoherence.java b/src/main/java/com/qyft/ms/app/front/cmd/test/TestCoherence.java new file mode 100644 index 0000000..d936969 --- /dev/null +++ b/src/main/java/com/qyft/ms/app/front/cmd/test/TestCoherence.java @@ -0,0 +1,40 @@ +package com.qyft.ms.app.front.cmd.test; + +import com.qyft.ms.system.common.annotation.CommandMapping; +import com.qyft.ms.system.common.device.command.CommandFuture; +import com.qyft.ms.system.common.device.command.DeviceCommandGenerator; +import com.qyft.ms.system.core.handler.BaseCommandHandler; +import com.qyft.ms.system.model.bo.DeviceCommand; +import com.qyft.ms.system.model.form.FrontCmdControlForm; +import com.qyft.ms.system.service.device.DeviceCommandService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 指令连贯性测试 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("test_coherence") +public class TestCoherence extends BaseCommandHandler { + private final DeviceCommandService deviceCommandService; + + @Override + public CompletableFuture handle(FrontCmdControlForm form) { + return runAsync(() -> { + for (int i = 0; i < 10; i++) { + DeviceCommand washValveOpenToCommand = DeviceCommandGenerator.motorXPositionSet(20.0); + CommandFuture washValveOpenToCommandFuture = deviceCommandService.sendCommand(form.getCmdId(), form.getCmdCode(), washValveOpenToCommand); + commandWait(washValveOpenToCommandFuture); + DeviceCommand washValveOpenBackCommand = DeviceCommandGenerator.motorXPositionSet(0.0); + CommandFuture washValveOpenBackCommandFuture = deviceCommandService.sendCommand(form.getCmdId(), form.getCmdCode(), washValveOpenBackCommand); + commandWait(washValveOpenBackCommandFuture); + } + + }); + } +}