diff --git a/src/main/java/a8k/extapi_controler/ExtApiControler.java b/src/main/java/a8k/extapi/controler/ExtApiControler.java similarity index 96% rename from src/main/java/a8k/extapi_controler/ExtApiControler.java rename to src/main/java/a8k/extapi/controler/ExtApiControler.java index 67a46dd..dc016a4 100644 --- a/src/main/java/a8k/extapi_controler/ExtApiControler.java +++ b/src/main/java/a8k/extapi/controler/ExtApiControler.java @@ -1,10 +1,12 @@ -package a8k.extapi_controler; +package a8k.extapi.controler; import a8k.SpringBootBeanUtil; -import a8k.extapi_controler.utils.*; +import a8k.extapi.service.ExtApiTabCfgService; +import a8k.extapi.utils.*; import a8k.type.appret.AppRetV1; import a8k.utils.*; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.util.Assert; @@ -23,6 +25,10 @@ import java.util.Map; @Slf4j @Controller public class ExtApiControler { + + @Resource + ExtApiTabCfgService extApiTabCfgService; + @PostMapping("/api/service-config/service-list") @ResponseBody public AppRetV1 services() { @@ -30,14 +36,19 @@ public class ExtApiControler { var classes = SpringBootBeanUtil.getBeans(); for (var clazz : classes) { var hardwareServiceAnnotation = clazz.getAnnotation(ExtApiTab.class); - if (null == hardwareServiceAnnotation || !hardwareServiceAnnotation.cfg().isDisplay()) { + var cfg = extApiTabCfgService.getCfg(clazz); + + if (cfg == null) { + continue; + } + if (null == hardwareServiceAnnotation || !cfg.display) { continue; } Map service = new HashMap<>(); service.put("key", clazz.getSimpleName()); - service.put("name", hardwareServiceAnnotation.cfg().getName()); - service.put("order", hardwareServiceAnnotation.cfg().ordinal()); + service.put("name", cfg.getChName()); + service.put("order", cfg.getIndex()); services.add(service); } return AppRetV1.success(services); @@ -165,7 +176,8 @@ public class ExtApiControler { } return AppRetV1.success(statusList); } -// + + // @PostMapping("/api/service-config/service-action-list") @ResponseBody public AppRetV1 serviceActionList(@RequestBody Map params) throws Exception { diff --git a/src/main/java/a8k/extapi_controler/ExtApiControllerAdvice.java b/src/main/java/a8k/extapi/controler/ExtApiControllerAdvice.java similarity index 87% rename from src/main/java/a8k/extapi_controler/ExtApiControllerAdvice.java rename to src/main/java/a8k/extapi/controler/ExtApiControllerAdvice.java index d60d823..3b1c902 100644 --- a/src/main/java/a8k/extapi_controler/ExtApiControllerAdvice.java +++ b/src/main/java/a8k/extapi/controler/ExtApiControllerAdvice.java @@ -1,4 +1,4 @@ -package a8k.extapi_controler; +package a8k.extapi.controler; import a8k.type.appret.AppRetV1; import org.slf4j.Logger; @@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; -@ControllerAdvice(value = "a8k.extapi_controler") +@ControllerAdvice(value = "a8k.extapi.controler") public class ExtApiControllerAdvice { Logger logger = LoggerFactory.getLogger(ExtApiControllerAdvice.class); diff --git a/src/main/java/a8k/extapi/service/ExtApiTabCfgService.java b/src/main/java/a8k/extapi/service/ExtApiTabCfgService.java new file mode 100644 index 0000000..c54726a --- /dev/null +++ b/src/main/java/a8k/extapi/service/ExtApiTabCfgService.java @@ -0,0 +1,120 @@ + +package a8k.extapi.service; + +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; +import a8k.service.app.background.BackgroudProcessCtrlService; +import a8k.service.app.devicectrl.ctrlservice.TubeFeedingCtrlService; +import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; +import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; +import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; +import a8k.service.app.devicectrl.init.MiniServoReferencePointIniter; +import a8k.service.app.devicectrl.param.LowerDeviceParamMgr; +import a8k.service.app.devicectrl.param.calibration.*; +import a8k.service.test.*; +import a8k.service.verification.PipetteGunVerification; +import jakarta.annotation.PostConstruct; +import lombok.Data; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +@ExtApiTab() +public class ExtApiTabCfgService { + + static int index; + + public enum TabType { + Public, + CodeTest, + Calibration, + Verify, + LowLevelApiTest, + Others, + } + + ; + + @Data + public class Config { + public TabType tabType; + public Class service; + public String chName; + public Boolean display; + public int index = ExtApiTabCfgService.index++; + + + public Config(Class service, String chName, TabType tabType) { + this.service = service; + this.display = true; + this.chName = chName; + this.tabType = tabType; + } + } + + + List cfgList = new ArrayList<>(); + + + @PostConstruct + void init() { + cfgList.add(new Config(ExtApiTabCfgService.class, "页面配置", TabType.Public)); + + cfgList.add(new Config(VirtualDeviceSimulationTest.class, "测试.虚拟设备测试", TabType.CodeTest)); + cfgList.add(new Config(MainflowCtrlTestService.class, "测试.主流程控制测试", TabType.CodeTest)); + cfgList.add(new Config(BackgroudProcessCtrlService.class, "测试模式.后台线程控制", TabType.CodeTest)); + + cfgList.add(new Config(LowerDeviceParamMgr.class, "校准.参数管理", TabType.Calibration)); + cfgList.add(new Config(MiniServoReferencePointIniter.class, "校准.舵机参考点设置", TabType.Calibration)); + cfgList.add(new Config(ReactionPlatesTransmitControlerCalibration.class, "校准.反应板相关位置校准", TabType.Calibration)); + cfgList.add(new Config(TubeFeedingModulePosCalibration.class, "校准.试管入料校准", TabType.Calibration)); + cfgList.add(new Config(TubePreProcesPosCalibration.class, "校准.试管预处理校准", TabType.Calibration)); + cfgList.add(new Config(Hbot2DCodeScanPosCalibration.class, "校准.耗材扫描校准", TabType.Calibration)); + cfgList.add(new Config(HbotTipPosCalibration.class, "校准.Tip耗材位置校准", TabType.Calibration)); + cfgList.add(new Config(HbotLittleBSPosCalibration.class, "校准.小瓶BS耗材位置校准", TabType.Calibration)); + cfgList.add(new Config(HbotProbeSubstancePosCalibration.class, "校准.探测物质位置校准", TabType.Calibration)); + cfgList.add(new Config(HbotLargeBottleBSPosCalibration.class, "校准.大瓶BS耗材位置校准", TabType.Calibration)); + cfgList.add(new Config(HbotSamplePosCalibration.class, "校准.样本位置校准", TabType.Calibration)); + cfgList.add(new Config(PipetteGunLLDParamCalibration.class, "校准.移液枪LLD参数校准", TabType.Calibration)); + cfgList.add(new Config(PipetteGunLLFParamCalibration.class, "校准.移液枪LLF参数校准", TabType.Calibration)); + cfgList.add(new Config(OptModuleParamCalibration.class, "校准.光学模块参数校准", TabType.Calibration)); + cfgList.add(new Config(TemperatureCtrlParamCalibration.class, "校准.温度控制参数校准", TabType.Calibration)); + + + cfgList.add(new Config(PipetteGunTest.class, "测试.PipetteGun", TabType.LowLevelApiTest)); + cfgList.add(new Config(PosMeasureUtils.class, "测试.坐标测量", TabType.LowLevelApiTest)); + cfgList.add(new Config(A8kOptTest.class, "测试.光学测试", TabType.LowLevelApiTest)); + + cfgList.add(new Config(PipetteCtrlDriver.class, "硬件驱动.移液枪测试", TabType.LowLevelApiTest)); + cfgList.add(new Config(StepMotorCtrlDriver.class, "硬件驱动.步进电机测试", TabType.LowLevelApiTest)); + cfgList.add(new Config(TubeFeedingCtrlService.class, "硬件控制.入料模块", TabType.LowLevelApiTest)); + + cfgList.add(new Config(PipetteGunVerification.class, "验证.移液枪验证", TabType.Verify)); + + + for (Config cfg : cfgList) { + cfg.display = cfg.tabType.equals(TabType.Public); + } + } + + public Config getCfg(Class service) { + for (Config cfg : cfgList) { + if (cfg.service == service) { + return cfg; + } + } + + return null; + } + + + @ExtApiFn(name = "切换显示", group = "页面配置", order = 1) + public String display(TabType type) { + for (Config cfg : cfgList) { + cfg.display = cfg.tabType.equals(type) || cfg.tabType.equals(TabType.Public); + } + return "已切换,请刷新页面."; + } +} diff --git a/src/main/java/a8k/extapi_controler/utils/EnginnerPageActionParam.java b/src/main/java/a8k/extapi/utils/EnginnerPageActionParam.java similarity index 89% rename from src/main/java/a8k/extapi_controler/utils/EnginnerPageActionParam.java rename to src/main/java/a8k/extapi/utils/EnginnerPageActionParam.java index 7bff8ad..e8f7e9f 100644 --- a/src/main/java/a8k/extapi_controler/utils/EnginnerPageActionParam.java +++ b/src/main/java/a8k/extapi/utils/EnginnerPageActionParam.java @@ -1,4 +1,4 @@ -package a8k.extapi_controler.utils; +package a8k.extapi.utils; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/src/main/java/a8k/extapi_controler/utils/EnginnerParamFile.java b/src/main/java/a8k/extapi/utils/EnginnerParamFile.java similarity index 89% rename from src/main/java/a8k/extapi_controler/utils/EnginnerParamFile.java rename to src/main/java/a8k/extapi/utils/EnginnerParamFile.java index df6734d..2d282f7 100644 --- a/src/main/java/a8k/extapi_controler/utils/EnginnerParamFile.java +++ b/src/main/java/a8k/extapi/utils/EnginnerParamFile.java @@ -1,4 +1,4 @@ -package a8k.extapi_controler.utils; +package a8k.extapi.utils; import java.util.Base64; public class EnginnerParamFile { private byte[] bytes; diff --git a/src/main/java/a8k/extapi_controler/utils/ExtApiFn.java b/src/main/java/a8k/extapi/utils/ExtApiFn.java similarity index 92% rename from src/main/java/a8k/extapi_controler/utils/ExtApiFn.java rename to src/main/java/a8k/extapi/utils/ExtApiFn.java index 9ba3e12..801f2cd 100644 --- a/src/main/java/a8k/extapi_controler/utils/ExtApiFn.java +++ b/src/main/java/a8k/extapi/utils/ExtApiFn.java @@ -1,4 +1,4 @@ -package a8k.extapi_controler.utils; +package a8k.extapi.utils; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/src/main/java/a8k/extapi_controler/utils/ExtApiParam.java b/src/main/java/a8k/extapi/utils/ExtApiParam.java similarity index 90% rename from src/main/java/a8k/extapi_controler/utils/ExtApiParam.java rename to src/main/java/a8k/extapi/utils/ExtApiParam.java index bf50fe8..279f2a8 100644 --- a/src/main/java/a8k/extapi_controler/utils/ExtApiParam.java +++ b/src/main/java/a8k/extapi/utils/ExtApiParam.java @@ -1,4 +1,4 @@ -package a8k.extapi_controler.utils; +package a8k.extapi.utils; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/src/main/java/a8k/extapi_controler/utils/ExtApiParamsTab.java b/src/main/java/a8k/extapi/utils/ExtApiParamsTab.java similarity index 88% rename from src/main/java/a8k/extapi_controler/utils/ExtApiParamsTab.java rename to src/main/java/a8k/extapi/utils/ExtApiParamsTab.java index ef7a58d..7dc9bc6 100644 --- a/src/main/java/a8k/extapi_controler/utils/ExtApiParamsTab.java +++ b/src/main/java/a8k/extapi/utils/ExtApiParamsTab.java @@ -1,4 +1,4 @@ -package a8k.extapi_controler.utils; +package a8k.extapi.utils; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/src/main/java/a8k/extapi_controler/utils/ExtApiStatu.java b/src/main/java/a8k/extapi/utils/ExtApiStatu.java similarity index 90% rename from src/main/java/a8k/extapi_controler/utils/ExtApiStatu.java rename to src/main/java/a8k/extapi/utils/ExtApiStatu.java index 22d7de1..fc2fa81 100644 --- a/src/main/java/a8k/extapi_controler/utils/ExtApiStatu.java +++ b/src/main/java/a8k/extapi/utils/ExtApiStatu.java @@ -1,4 +1,4 @@ -package a8k.extapi_controler.utils; +package a8k.extapi.utils; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/src/main/java/a8k/extapi_controler/utils/ExtApiTab.java b/src/main/java/a8k/extapi/utils/ExtApiTab.java similarity index 68% rename from src/main/java/a8k/extapi_controler/utils/ExtApiTab.java rename to src/main/java/a8k/extapi/utils/ExtApiTab.java index 801e8a7..015d412 100644 --- a/src/main/java/a8k/extapi_controler/utils/ExtApiTab.java +++ b/src/main/java/a8k/extapi/utils/ExtApiTab.java @@ -1,5 +1,4 @@ -package a8k.extapi_controler.utils; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; +package a8k.extapi.utils; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -8,5 +7,4 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface ExtApiTab { - ExtApiTabConfig cfg(); } diff --git a/src/main/java/a8k/extapi_controler/DownloadMgr.java b/src/main/java/a8k/extapi_controler/DownloadMgr.java deleted file mode 100644 index bdcf2fe..0000000 --- a/src/main/java/a8k/extapi_controler/DownloadMgr.java +++ /dev/null @@ -1,56 +0,0 @@ -package a8k.extapi_controler; - - -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.io.resource.ResourceUtil; -import jakarta.annotation.PostConstruct; -import lombok.extern.slf4j.Slf4j; -import org.springframework.core.io.FileSystemResource; -import org.springframework.core.io.Resource; -import org.springframework.http.ContentDisposition; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; - -import java.io.File; -import java.io.IOException; - -@Slf4j -@Controller -@RequestMapping(value = "/api/extapi/") -public class DownloadMgr { - - @GetMapping("/download/{path}") - public ResponseEntity download(@PathVariable String path) { - String contentDisposition = ContentDisposition - .builder("attachment") - .filename(path) - .build().toString(); - return ResponseEntity.ok() - .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition) - .body(new FileSystemResource(path)); - } - - -// @PostConstruct -// void init() throws IOException { -// //创建一个文件,并保存你好 -// -// FileSystemResource file = new FileSystemResource("你好.txt"); -// log.info("文件路径:{}", file.getFile().getAbsolutePath()); -// -// File file1 = new File("你好.txt"); -// log.info("文件路径:{}", file1.getAbsolutePath()); -// -// // var output = file.getOutputStream(); -// // output.write("你好".getBytes()); -// // output.close(); -// -// -// } - -} diff --git a/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java b/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java deleted file mode 100644 index c6996c0..0000000 --- a/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java +++ /dev/null @@ -1,56 +0,0 @@ -package a8k.extapi_controler.pagecontrol; - -public enum ExtApiTabConfig { - VirtualDeviceSimulationTest("测试.虚拟设备测试", true), - MainflowCtrlTestService("测试.主流程控制测试", true), - - - BackgroudProcessCtrlService("测试模式.后台线程控制", true), - LowerDeviceParamMgr("校准.参数管理", true),//OK - MiniServoReferencePointSetting("校准.舵机参考点设置", true), - ReactionPlatesTransmitControlerCalibration("校准.反应板相关位置校准", true), - TubeFeedingModulePosCalibration("校准.试管入料校准", true), - TubePreProcesPosCalibration("校准.试管预处理校准", true), - Hbot2DCodeScanPosCalibration("校准.耗材扫描校准", true), - HbotTipPosCalibration("校准.Tip耗材位置校准", true), - HbotLittleBSPosCalibration("校准.小瓶BS耗材位置校准", true), - HbotProbeSubstancePosCalibration("校准.探测物质位置校准", true), - HbotLargeBottleBSPosCalibration("校准.大瓶BS耗材位置校准", true), - HbotSamplePosCalibration("校准.样本位置校准", true), - PipetteGunLLDParamCalibration("校准.移液枪LLD参数校准", true), - PipetteGunLLFParamCalibration("校准.移液枪LLF参数校准", true), - OptModuleParamCalibration("校准.光学模块参数校准", true), - TemperatureCtrlParamCalibration("校准.温度控制参数校准", true), - - - PipetteGunTest("测试.PipetteGun",true), - PosMeasureUtils("测试.坐标测量",true), - A8kOptTest("测试.光学测试",true), - - A8kPipetteCtrlModule("硬件驱动.移液枪测试", true), - StepMotorCtrlDriver("硬件驱动.步进电机测试", false), - - HbotControlService("HbotControlService", false), - TubeTubeFeedingModule("硬件控制.入料模块", false), - - - Max("max", false); - - final String name; - final boolean display; - - ExtApiTabConfig(String name, boolean display) { - this.name = name; - this.display = display; - } - - public String getName() { - return name; - } - - public boolean isDisplay() { - return display; - } - - -} diff --git a/src/main/java/a8k/service/app/background/BackgroudProcessCtrlService.java b/src/main/java/a8k/service/app/background/BackgroudProcessCtrlService.java index ff360c1..26f70c4 100644 --- a/src/main/java/a8k/service/app/background/BackgroudProcessCtrlService.java +++ b/src/main/java/a8k/service/app/background/BackgroudProcessCtrlService.java @@ -1,7 +1,7 @@ package a8k.service.app.background; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.appdata.ProjIdCardInfoMgrService; import a8k.service.test.state.VirtualDevice; import a8k.type.exception.AppException; @@ -9,7 +9,7 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Component; @Component -@ExtApiTab(cfg = a8k.extapi_controler.pagecontrol.ExtApiTabConfig.BackgroudProcessCtrlService) +@ExtApiTab() public class BackgroudProcessCtrlService { @Resource VirtualDevice virtualDevice; diff --git a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeFeedingCtrlService.java b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeFeedingCtrlService.java index b88c65b..9436faf 100644 --- a/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeFeedingCtrlService.java +++ b/src/main/java/a8k/service/app/devicectrl/ctrlservice/TubeFeedingCtrlService.java @@ -1,9 +1,8 @@ package a8k.service.app.devicectrl.ctrlservice; import a8k.OS; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.CodeScanerExDriver; import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; @@ -27,7 +26,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Component -@ExtApiTab(cfg = ExtApiTabConfig.TubeTubeFeedingModule) +@ExtApiTab() public class TubeFeedingCtrlService { static Logger logger = LoggerFactory.getLogger(TubeFeedingCtrlService.class); static Integer infeedOvertime = 10000; diff --git a/src/main/java/a8k/service/app/devicectrl/driver/PipetteCtrlDriver.java b/src/main/java/a8k/service/app/devicectrl/driver/PipetteCtrlDriver.java index 611e2aa..26d01b9 100644 --- a/src/main/java/a8k/service/app/devicectrl/driver/PipetteCtrlDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/driver/PipetteCtrlDriver.java @@ -1,8 +1,7 @@ package a8k.service.app.devicectrl.driver; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiTab; -import a8k.extapi_controler.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; import a8k.hardware.A8kCanBusService; import a8k.hardware.type.LldType; import a8k.hardware.type.a8kcanprotocol.CmdId; @@ -33,7 +32,7 @@ import java.util.List; */ @Component -@ExtApiTab(cfg = ExtApiTabConfig.A8kPipetteCtrlModule) +@ExtApiTab() public class PipetteCtrlDriver { private static final Logger log = LoggerFactory.getLogger(PipetteCtrlDriver.class); diff --git a/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java b/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java index 607dfc4..7923af0 100644 --- a/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/driver/StepMotorCtrlDriver.java @@ -1,7 +1,7 @@ package a8k.service.app.devicectrl.driver; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.hardware.A8kCanBusService; import a8k.hardware.type.a8kcanprotocol.A8kPacket; import a8k.hardware.type.a8kcanprotocol.CmdId; @@ -16,7 +16,7 @@ import org.slf4j.Logger; import org.springframework.stereotype.Component; @Component -@ExtApiTab(cfg = a8k.extapi_controler.pagecontrol.ExtApiTabConfig.StepMotorCtrlDriver) +@ExtApiTab() public class StepMotorCtrlDriver { static Logger logger = org.slf4j.LoggerFactory.getLogger(StepMotorCtrlDriver.class); diff --git a/src/main/java/a8k/service/app/devicectrl/exdriver/HbotBaseMoveExDriver.java b/src/main/java/a8k/service/app/devicectrl/exdriver/HbotBaseMoveExDriver.java index 4413cbf..e0d2a78 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/HbotBaseMoveExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/exdriver/HbotBaseMoveExDriver.java @@ -1,7 +1,6 @@ package a8k.service.app.devicectrl.exdriver; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.type.PipetteRegIndex; import a8k.service.app.devicectrl.driver.HbotDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; @@ -21,7 +20,7 @@ import org.springframework.stereotype.Component; * Hbot控制服务 */ @Component -@ExtApiTab(cfg = ExtApiTabConfig.HbotControlService) +@ExtApiTab() public class HbotBaseMoveExDriver { static Logger logger = LoggerFactory.getLogger(HbotBaseMoveExDriver.class); diff --git a/src/main/java/a8k/service/app/devicectrl/init/MiniServoReferencePointIniter.java b/src/main/java/a8k/service/app/devicectrl/init/MiniServoReferencePointIniter.java index 890a7a7..b5c6798 100644 --- a/src/main/java/a8k/service/app/devicectrl/init/MiniServoReferencePointIniter.java +++ b/src/main/java/a8k/service/app/devicectrl/init/MiniServoReferencePointIniter.java @@ -1,9 +1,8 @@ package a8k.service.app.devicectrl.init; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; import a8k.type.exception.AppException; @@ -11,7 +10,7 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Component; @Component -@ExtApiTab(cfg = ExtApiTabConfig.MiniServoReferencePointSetting) +@ExtApiTab() public class MiniServoReferencePointIniter { @Resource diff --git a/src/main/java/a8k/service/app/devicectrl/param/LowerDeviceParamMgr.java b/src/main/java/a8k/service/app/devicectrl/param/LowerDeviceParamMgr.java index f56b43c..88b2c51 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/LowerDeviceParamMgr.java +++ b/src/main/java/a8k/service/app/devicectrl/param/LowerDeviceParamMgr.java @@ -1,8 +1,7 @@ package a8k.service.app.devicectrl.param; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.dao.LowerDeviceParameterDao; import a8k.service.dao.type.Parameter; import jakarta.annotation.Resource; @@ -10,7 +9,7 @@ import org.springframework.stereotype.Component; import org.springframework.util.Assert; @Component -@ExtApiTab(cfg = ExtApiTabConfig.LowerDeviceParamMgr) +@ExtApiTab() public class LowerDeviceParamMgr { @Resource diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/Hbot2DCodeScanPosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/Hbot2DCodeScanPosCalibration.java index 3b28967..ab85973 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/Hbot2DCodeScanPosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/Hbot2DCodeScanPosCalibration.java @@ -1,9 +1,8 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; import a8k.service.app.devicectrl.driver.HbotDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; @@ -17,7 +16,7 @@ import jakarta.annotation.Resource; import org.slf4j.Logger; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.Hbot2DCodeScanPosCalibration) +@ExtApiTab() @Component public class Hbot2DCodeScanPosCalibration { static Logger logger = org.slf4j.LoggerFactory.getLogger(Hbot2DCodeScanPosCalibration.class); diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLargeBottleBSPosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLargeBottleBSPosCalibration.java index 83eb65e..c0be37c 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLargeBottleBSPosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLargeBottleBSPosCalibration.java @@ -1,9 +1,8 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; import a8k.service.app.devicectrl.param.type.HbotLargeBottleBSPos; import a8k.service.app.devicectrl.driver.HbotDriver; @@ -20,7 +19,7 @@ import org.aspectj.lang.annotation.Aspect; import org.slf4j.Logger; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.HbotLargeBottleBSPosCalibration) +@ExtApiTab() @Component @Aspect public class HbotLargeBottleBSPosCalibration { diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLittleBSPosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLittleBSPosCalibration.java index 09f8ad9..0667638 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLittleBSPosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotLittleBSPosCalibration.java @@ -2,9 +2,8 @@ package a8k.service.app.devicectrl.param.calibration; import a8k.constant.AppConstant; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; import a8k.service.app.devicectrl.param.param_mgr.HbotLittleBSPosMgr; import a8k.service.app.devicectrl.param.type.HbotLittleBSPos; @@ -22,7 +21,7 @@ import org.springframework.stereotype.Component; import java.util.List; -@ExtApiTab(cfg = ExtApiTabConfig.HbotLittleBSPosCalibration) +@ExtApiTab() @Component public class HbotLittleBSPosCalibration { static Logger logger = org.slf4j.LoggerFactory.getLogger(HbotLittleBSPosCalibration.class); diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotProbeSubstancePosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotProbeSubstancePosCalibration.java index 00ee908..1efb48b 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotProbeSubstancePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotProbeSubstancePosCalibration.java @@ -2,16 +2,14 @@ package a8k.service.app.devicectrl.param.calibration; import a8k.constant.AppConstant; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; import a8k.service.app.devicectrl.param.param_mgr.HbotProbeSubstancePosMgr; import a8k.service.app.devicectrl.param.type.HbotProbeSubstancePos; import a8k.service.app.devicectrl.ctrlservice.HbotCtrlService; import a8k.service.app.devicectrl.driver.HbotDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; -import a8k.service.app.devicectrl.param.type.HbotSamplePos; import a8k.type.ConsumableGroup; import a8k.type.LittleBottleConsumableRefPoint; import a8k.type.cfg.Pos2d; @@ -24,7 +22,7 @@ import org.springframework.stereotype.Component; import java.util.List; -@ExtApiTab(cfg = ExtApiTabConfig.HbotProbeSubstancePosCalibration) +@ExtApiTab() @Component public class HbotProbeSubstancePosCalibration { static Logger logger = org.slf4j.LoggerFactory.getLogger(HbotProbeSubstancePosCalibration.class); diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java index cbd5447..e30b2d3 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java @@ -1,9 +1,8 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.ctrlservice.TubePreProcesCtrlService; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; import a8k.service.app.devicectrl.exdriver.MotorMoveZeroExDriver; @@ -24,7 +23,7 @@ import org.aspectj.lang.annotation.Aspect; import org.slf4j.Logger; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.HbotSamplePosCalibration) +@ExtApiTab() @Component @Aspect public class HbotSamplePosCalibration { diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotTipPosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotTipPosCalibration.java index e62d80a..f41b391 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotTipPosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotTipPosCalibration.java @@ -2,10 +2,8 @@ package a8k.service.app.devicectrl.param.calibration; import a8k.constant.AppConstant; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; -import a8k.hardware.type.a8kcanprotocol.A8kEcode; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; import a8k.service.app.devicectrl.param.ext_param_mgr.HbotConsumableParamMgr; import a8k.service.app.devicectrl.param.param_mgr.HbotTipPosMgr; @@ -16,23 +14,16 @@ import a8k.type.*; import a8k.type.cfg.Pos2d; import a8k.type.cfg.Pos3d; import a8k.type.exception.AppException; -import a8k.type.pos.TipPos; import a8k.type.type.TipGroup; -import a8k.utils.ZJsonHelper; import a8k.utils.ZList; -import a8k.utils.ZSimplAlgo; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; import jakarta.annotation.Resource; -import org.aspectj.lang.annotation.Aspect; import org.slf4j.Logger; import org.springframework.stereotype.Component; -import org.springframework.util.Assert; import java.util.List; import java.util.Map; -@ExtApiTab(cfg = ExtApiTabConfig.HbotTipPosCalibration) +@ExtApiTab() @Component public class HbotTipPosCalibration { static Logger logger = org.slf4j.LoggerFactory.getLogger(HbotTipPosCalibration.class); diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java index 351d3ce..0a88f6f 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/OptModuleParamCalibration.java @@ -1,8 +1,7 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.ctrlservice.OptScanModuleCtrlService; import a8k.service.app.devicectrl.ctrlservice.PlateBoxCtrlService; import a8k.service.app.devicectrl.driver.OptModuleDriver; @@ -14,7 +13,6 @@ import a8k.service.app.devicectrl.param.type.OptModuleExtParam; import a8k.service.dao.type.Parameter; import a8k.service.dao.type.a8kidcard.zenum.A8kOptType; import a8k.type.*; -import a8k.type.ecode.AECodeError; import a8k.type.exception.AppException; import a8k.utils.ZList; import a8k.utils.opt_gain_convert.OptGainConvert; @@ -37,7 +35,7 @@ import java.util.List; * TOptScanStartPos (T光学扫描起始位置) * FOptScanStartPos (F光学扫描起始位置) */ -@ExtApiTab(cfg = ExtApiTabConfig.OptModuleParamCalibration) +@ExtApiTab() @Component public class OptModuleParamCalibration { diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLDParamCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLDParamCalibration.java index d6f7159..d592ef6 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLDParamCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLDParamCalibration.java @@ -1,8 +1,7 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.hardware.type.LldType; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; @@ -14,7 +13,7 @@ import a8k.type.exception.AppException; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.PipetteGunLLDParamCalibration) +@ExtApiTab() @Component public class PipetteGunLLDParamCalibration { diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLFParamCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLFParamCalibration.java index 07c13eb..7a0cc53 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLFParamCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/PipetteGunLLFParamCalibration.java @@ -1,9 +1,8 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; import a8k.service.app.devicectrl.param.param_mgr.PipetteGunLLFParamMgr; @@ -12,7 +11,7 @@ import a8k.type.exception.AppException; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.PipetteGunLLFParamCalibration) +@ExtApiTab() @Component public class PipetteGunLLFParamCalibration { diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java index 0a55c26..af8cc63 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/ReactionPlatesTransmitControlerCalibration.java @@ -1,8 +1,7 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; import a8k.service.app.devicectrl.param.param_mgr.HbotFixedPosParamMgr; import a8k.service.app.devicectrl.param.param_mgr.OptModuleParamsMgr; @@ -27,7 +26,7 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Component; @Component -@ExtApiTab(cfg = ExtApiTabConfig.ReactionPlatesTransmitControlerCalibration) +@ExtApiTab() public class ReactionPlatesTransmitControlerCalibration { final static int overtime = 10000; diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/TemperatureCtrlParamCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/TemperatureCtrlParamCalibration.java index 7472b6d..cd02d15 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/TemperatureCtrlParamCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/TemperatureCtrlParamCalibration.java @@ -1,9 +1,8 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.TemperatureControlDriver; import a8k.service.app.devicectrl.param.param_mgr.TemperatureCtrlParamMgr; import a8k.service.app.devicectrl.param.type.TemperatureCtrlParam; @@ -14,7 +13,7 @@ import jakarta.annotation.Resource; import org.slf4j.Logger; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.TemperatureCtrlParamCalibration) +@ExtApiTab() @Component public class TemperatureCtrlParamCalibration { static Logger logger = org.slf4j.LoggerFactory.getLogger(TemperatureCtrlParamCalibration.class); diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/TubeFeedingModulePosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/TubeFeedingModulePosCalibration.java index 0bfa2f7..8a516e6 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/TubeFeedingModulePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/TubeFeedingModulePosCalibration.java @@ -1,8 +1,7 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.hardware.A8kCanBusService; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; @@ -23,7 +22,7 @@ import org.springframework.stereotype.Component; import java.util.List; -@ExtApiTab(cfg = ExtApiTabConfig.TubeFeedingModulePosCalibration) +@ExtApiTab() @Component public class TubeFeedingModulePosCalibration { diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java index 7a73c8b..824f978 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/TubePreProcesPosCalibration.java @@ -1,8 +1,7 @@ package a8k.service.app.devicectrl.param.calibration; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.MiniServoDriver; import a8k.service.app.devicectrl.driver.StepMotorCtrlDriver; import a8k.service.app.devicectrl.driver.type.MiniServoMId; @@ -21,7 +20,7 @@ import a8k.utils.ZJsonHelper; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.TubePreProcesPosCalibration) +@ExtApiTab() @Component public class TubePreProcesPosCalibration { diff --git a/src/main/java/a8k/service/bases/FrontEndEventRouter.java b/src/main/java/a8k/service/bases/FrontEndEventRouter.java index 947e152..aa4089d 100644 --- a/src/main/java/a8k/service/bases/FrontEndEventRouter.java +++ b/src/main/java/a8k/service/bases/FrontEndEventRouter.java @@ -1,13 +1,9 @@ package a8k.service.bases; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiTab; -import a8k.extapi_controler.utils.ExtApiFn; import a8k.service.bases.appevent.*; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; import org.springframework.stereotype.Component; import java.util.List; diff --git a/src/main/java/a8k/service/dao/LowerDeviceParameterStorgeDao.java b/src/main/java/a8k/service/dao/LowerDeviceParameterStorgeDao.java index ca6b71a..af1b520 100644 --- a/src/main/java/a8k/service/dao/LowerDeviceParameterStorgeDao.java +++ b/src/main/java/a8k/service/dao/LowerDeviceParameterStorgeDao.java @@ -48,6 +48,7 @@ public class LowerDeviceParameterStorgeDao { public void addOrUpdate(Parameter parameter) { Parameter old = findByServiceAndKey(parameter.service, parameter.key); if (old == null) { + parameter.id = 0; zSqlite.add(parameter); return; } diff --git a/src/main/java/a8k/service/test/A8kOptTest.java b/src/main/java/a8k/service/test/A8kOptTest.java index 0febdae..a6793f2 100644 --- a/src/main/java/a8k/service/test/A8kOptTest.java +++ b/src/main/java/a8k/service/test/A8kOptTest.java @@ -1,10 +1,8 @@ package a8k.service.test; -import a8k.a8kproj.optalgo.type.OptAlgoAnalysResult; import a8k.a8kproj.optalgo.type.OptScanResult; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.appdata.FileMgrService; import a8k.service.app.appdata.ProjInfoMgrService; import a8k.service.app.devicectrl.ctrlservice.OptScanModuleCtrlService; @@ -20,7 +18,6 @@ import a8k.type.exception.AppException; import a8k.utils.ProjBuildinInfo; import a8k.utils.ZList; import jakarta.annotation.Resource; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; @@ -32,7 +29,7 @@ import java.util.List; * * */ -@ExtApiTab(cfg = ExtApiTabConfig.A8kOptTest) +@ExtApiTab() @Component public class A8kOptTest { diff --git a/src/main/java/a8k/service/test/MainflowCtrlTestService.java b/src/main/java/a8k/service/test/MainflowCtrlTestService.java index 1d829d2..4f269f6 100644 --- a/src/main/java/a8k/service/test/MainflowCtrlTestService.java +++ b/src/main/java/a8k/service/test/MainflowCtrlTestService.java @@ -3,8 +3,8 @@ package a8k.service.test; import a8k.OS; import a8k.a8kproj.fakeproj.*; import a8k.constant.AppConstant; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.appctrl.AppConsumablesScanService; import a8k.service.app.appctrl.AppDeviceCtrlService; import a8k.service.app.appctrl.AppTubeSettingMgrService; @@ -44,7 +44,7 @@ import java.util.List; @Component @Slf4j -@ExtApiTab(cfg = a8k.extapi_controler.pagecontrol.ExtApiTabConfig.MainflowCtrlTestService) +@ExtApiTab() public class MainflowCtrlTestService { diff --git a/src/main/java/a8k/service/test/PipetteGunTest.java b/src/main/java/a8k/service/test/PipetteGunTest.java index a75a1bf..ff99fee 100644 --- a/src/main/java/a8k/service/test/PipetteGunTest.java +++ b/src/main/java/a8k/service/test/PipetteGunTest.java @@ -1,8 +1,7 @@ package a8k.service.test; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.hardware.type.LldType; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; @@ -12,7 +11,7 @@ import a8k.type.exception.AppException; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.PipetteGunTest) +@ExtApiTab() @Component public class PipetteGunTest { diff --git a/src/main/java/a8k/service/test/PosMeasureUtils.java b/src/main/java/a8k/service/test/PosMeasureUtils.java index 5ca203c..f0ba175 100644 --- a/src/main/java/a8k/service/test/PosMeasureUtils.java +++ b/src/main/java/a8k/service/test/PosMeasureUtils.java @@ -1,8 +1,8 @@ package a8k.service.test; -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; + +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.service.app.devicectrl.driver.HbotDriver; import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; @@ -13,7 +13,7 @@ import a8k.type.exception.AppException; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; -@ExtApiTab(cfg = ExtApiTabConfig.PosMeasureUtils) +@ExtApiTab() @Component public class PosMeasureUtils { diff --git a/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java b/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java index 13ed43d..4cf7529 100644 --- a/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java +++ b/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java @@ -2,8 +2,8 @@ package a8k.service.test; import a8k.SpringBootBeanUtil; import a8k.a8kproj.fakeproj.*; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; import a8k.hardware.type.a8kcanprotocol.A8kEcode; import a8k.hardware.type.a8kcanprotocol.CmdId; import a8k.hardware.type.a8kcanprotocol.MId; @@ -27,12 +27,10 @@ import a8k.type.ecode.AEConsumeNotEnoughError; import a8k.type.ecode.AEHardwareError; import a8k.type.exception.AppException; import a8k.type.reaction_result_type.ReactionResultStatus; -import a8k.type.tube_setting.TubeHolderSetting; import a8k.type.type.A8kTubeHolderType; import a8k.type.type.BloodType; import a8k.utils.A8kPacketBuilder; import a8k.utils.ZDateUtils; -import a8k.utils.ZList; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; @@ -40,7 +38,7 @@ import java.util.ArrayList; import java.util.List; @Component -@ExtApiTab(cfg = a8k.extapi_controler.pagecontrol.ExtApiTabConfig.VirtualDeviceSimulationTest) +@ExtApiTab() public class VirtualDeviceSimulationTest { @Resource VirtualDevice virtualDevice; diff --git a/src/main/java/a8k/service/verification/PipetteGunVerification.java b/src/main/java/a8k/service/verification/PipetteGunVerification.java new file mode 100644 index 0000000..db27230 --- /dev/null +++ b/src/main/java/a8k/service/verification/PipetteGunVerification.java @@ -0,0 +1,207 @@ +package a8k.service.verification; + +import a8k.extapi.utils.ExtApiFn; +import a8k.extapi.utils.ExtApiTab; +import a8k.hardware.type.LldType; +import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; +import a8k.service.app.devicectrl.driver.type.PipetteRegIndex; +import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; +import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; +import a8k.service.app.devicectrl.param.param_mgr.HbotSamplePosParamMgr; +import a8k.service.app.devicectrl.param.param_mgr.PipetteGunLLDParamMgr; +import a8k.service.app.devicectrl.param.param_mgr.base.ParamMgr; +import a8k.service.app.devicectrl.param.type.A8kSamplePos; +import a8k.service.app.devicectrl.param.type.HbotSamplePos; +import a8k.service.dao.type.Parameter; +import a8k.type.cfg.Pos3d; +import a8k.type.exception.AppException; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +@ExtApiTab() +@Component +@Slf4j +public class PipetteGunVerification extends ParamMgr { + + + enum PipetteGunVerificationParam { + LLDStartPos("LLD开始位置", Integer.class), + LLDEndPos("LLD结束位置", Integer.class), + LLDType("LLD类型", LldType.class), + LLDCThreshold("LLD C阈值", Integer.class), + LLDPThreshold("LLD P阈值", Integer.class), + LLFVel("LLF Z轴速度", Integer.class), + ; + public final String chName; + public final Class type; + + PipetteGunVerificationParam(String chName, Class type) { + this.chName = chName; + this.type = type; + } + + } + + @Resource + PipetteGunLLDParamMgr pipetteGunLLDParamMgr; + + @Resource + PipetteCtrlDriver pipetteCtrlDriver; + @Resource + HbotBaseMoveExDriver hbotBaseMoveExDriver; + @Resource + MotorEnableExDriver motorEnableExDriver; + @Resource + HbotSamplePosParamMgr hbotSamplePosParamMgr; + + @PostConstruct + void initialize() { + for (PipetteGunVerificationParam cfg : PipetteGunVerificationParam.values()) { + initParam(cfg, cfg.chName, cfg.type); + } + } + + + @ExtApiFn(name = "失能电机", group = "基础", order = 1) + public void disableModule() throws AppException { + motorEnableExDriver.forceDisableAllMotor(); + } + + @ExtApiFn(name = "移液枪初始化(Tip会掉落)", group = "基础", order = 2) + public void pipetteInitDeviceBlock() throws AppException { + + } + + @ExtApiFn(name = "获取相关参数", group = "配置", order = 100) + public List getParams() { + return super.getParams(); + } + + @ExtApiFn(name = "设置当前位置为LLD开始位置", group = "配置", order = 101) + public void setCurZPosAsLLDStartZ() throws AppException { + pipetteCtrlDriver.zMotorEnable(1); + pipetteCtrlDriver.zMotorMeasureDistance(); + Integer curZPos = pipetteCtrlDriver.zMotorReadMeasureDistanceResult(); + setParam(PipetteGunVerificationParam.LLDStartPos, curZPos); + pipetteCtrlDriver.zMotorEnable(0); + } + + @ExtApiFn(name = "设置当前位置为LLD结束位置", group = "配置", order = 102) + public void setCurZPosAsLLDEndZ() throws AppException { + pipetteCtrlDriver.zMotorEnable(1); + pipetteCtrlDriver.zMotorMeasureDistance(); + Integer curZPos = pipetteCtrlDriver.zMotorReadMeasureDistanceResult(); + setParam(PipetteGunVerificationParam.LLDEndPos, curZPos); + pipetteCtrlDriver.zMotorEnable(0); + } + + @ExtApiFn(name = "设置LLD参数(c_val[1..300], p_val[1..300])", group = "配置", order = 103) + public void setLLDParam(LldType type, Integer c_val, Integer p_val) throws AppException { + setParam(PipetteGunVerificationParam.LLDType, type); + setParam(PipetteGunVerificationParam.LLDCThreshold, c_val); + setParam(PipetteGunVerificationParam.LLDPThreshold, p_val); + } + + @ExtApiFn(name = "设置LLF参数(vel[1..1000])", group = "配置", order = 104) + public void setLLFParam(Integer vel) throws AppException { + setParam(PipetteGunVerificationParam.LLFVel, vel); + } + + + enum Step { + kStepIdle, + kStepLLDPrepare, + kStepLLD, + kStepAspirate, + kStepDistribu, + } + + Step step = Step.kStepIdle; + + @ExtApiFn(name = "LLD准备", group = "操作", order = 200) + public void lldprepare() throws AppException { + motorEnableExDriver.enableAllMotor(); + pipetteCtrlDriver.zMotorMoveZeroBlock(); + pipetteCtrlDriver.pipetteInitDeviceBlock(); + pipetteCtrlDriver.lldPrepareBlock(); + + step = Step.kStepLLDPrepare; + } + + + @ExtApiFn(name = "LLD", group = "操作", order = 201) + public void lld() throws AppException { + if (!step.equals(Step.kStepLLDPrepare)) { + throw AppException.ofAECodeError("请按照顺序执行"); + } + + pipetteCtrlDriver.zMotorEnable(1); + pipetteCtrlDriver.zMotorMoveZeroBlock(); + + + Integer lldStartPos = getParam(PipetteGunVerificationParam.LLDStartPos, Integer.class); + Integer lldEndPos = getParam(PipetteGunVerificationParam.LLDEndPos, Integer.class); + LldType type = getParam(PipetteGunVerificationParam.LLDType, LldType.class); + Integer c_val = getParam(PipetteGunVerificationParam.LLDCThreshold, Integer.class); + Integer p_val = getParam(PipetteGunVerificationParam.LLDPThreshold, Integer.class); + + pipetteCtrlDriver.setStartZ(lldStartPos); + pipetteCtrlDriver.setEndZ(lldEndPos); + pipetteCtrlDriver.setLldType(type); + pipetteCtrlDriver.setLldCThreshold(c_val); + pipetteCtrlDriver.setLldPThreshold(p_val); + pipetteCtrlDriver.lldBlock(); + + if (!pipetteCtrlDriver.lldIsDetectLiquid()) { + throw AppException.ofAECodeError("没有液体"); + } + + step = Step.kStepLLD; + } + + + @ExtApiFn(name = "吸液", group = "操作", order = 202) + public String aspirate(Integer ul) throws AppException { + + if (!step.equals(Step.kStepLLD)) { + throw AppException.ofAECodeError("请按照顺序执行"); + } + + /* + * 吸液并归零 + */ + pipetteCtrlDriver.zMotorEnable(1); + + Integer lldEndPos = getParam(PipetteGunVerificationParam.LLDEndPos, Integer.class); + Integer lldVel = getParam(PipetteGunVerificationParam.LLFVel, Integer.class); + + if (!pipetteCtrlDriver.isHasTip()) { + throw AppException.ofAECodeError("没有tip头"); + } + pipetteCtrlDriver.setLlfStartZ(pipetteCtrlDriver.getReg(PipetteRegIndex.kreg_pipette_zm_pos)); + pipetteCtrlDriver.setLlfStartZ(lldEndPos); + pipetteCtrlDriver.aspirateSetLlfVelocity(lldVel); + pipetteCtrlDriver.aspiratePrepareBlock(); + pipetteCtrlDriver.aspirateBlock(ul); + + pipetteCtrlDriver.zMotorMoveToZeroPointQuickBlock(); + step = Step.kStepAspirate; + return "吸液成功"; + } + + @ExtApiFn(name = "分配", group = "操作", order = 203) + public String distribuAll() throws AppException { + if (!step.equals(Step.kStepAspirate)) { + throw AppException.ofAECodeError("请按照顺序执行"); + } + Integer containUl = pipetteCtrlDriver.getReg(PipetteRegIndex.kreg_pipette_pos_ul); + pipetteCtrlDriver.aspirateBlock(-containUl); +// pipetteCtrlDriver.clearHangingLiquid(3); + step = Step.kStepDistribu; + return "分配成功"; + } +} diff --git a/src/main/java/a8k/type/appret/AppRetV1.java b/src/main/java/a8k/type/appret/AppRetV1.java index de6a889..111ea0c 100644 --- a/src/main/java/a8k/type/appret/AppRetV1.java +++ b/src/main/java/a8k/type/appret/AppRetV1.java @@ -10,9 +10,10 @@ import org.springframework.web.method.annotation.HandlerMethodValidationExceptio public class AppRetV1 { // 错误信息 - public AppError ecode = null; - public String dataType; - public Object data; + public AppError ecode = null; + public String dataType; + public Object data; + public String message; // 接口请求时间 @Getter @@ -41,13 +42,17 @@ public class AppRetV1 { public static AppRetV1 fail(Exception e) { AppRetV1 r = new AppRetV1(); if (e instanceof AppException hexcep) { - r.ecode = hexcep.error; + r.ecode = hexcep.error; + r.message = hexcep.error.exmsg; } else if (e instanceof ValidationException ex) { - r.ecode = new AECodeError( ex.getLocalizedMessage()); + r.ecode = new AECodeError(ex.getLocalizedMessage()); + r.message = ex.getMessage(); } else if (e instanceof HandlerMethodValidationException validationE) { - r.ecode = new AECodeError( validationE.getMessage()); + r.ecode = new AECodeError(validationE.getMessage()); + r.message = validationE.getMessage(); } else { - r.ecode = new AECodeError(e.getMessage()); + r.ecode = new AECodeError(e.getMessage()); + r.message = e.getMessage(); } return r; } diff --git a/src/main/java/a8k/utils/ZCSVUtils.java b/src/main/java/a8k/utils/ZCSVUtils.java index 9b75c07..626d431 100644 --- a/src/main/java/a8k/utils/ZCSVUtils.java +++ b/src/main/java/a8k/utils/ZCSVUtils.java @@ -89,7 +89,6 @@ public class ZCSVUtils { log.info("{}", ZJsonHelper.objectToJson(projectBaseInfo)); } - } diff --git a/src/main/java/a8k/utils/ZJsonHelper.java b/src/main/java/a8k/utils/ZJsonHelper.java index 8115d6a..00e407c 100644 --- a/src/main/java/a8k/utils/ZJsonHelper.java +++ b/src/main/java/a8k/utils/ZJsonHelper.java @@ -95,6 +95,9 @@ public class ZJsonHelper { if (obj instanceof Float) { return ObjectMapper.createObjectNode().put("value", (Float) obj); } + if (obj instanceof Enum) { + return ObjectMapper.createObjectNode().put("value", obj.toString()); + } return ObjectMapper.valueToTree(obj); }