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