From e0f09b32c293252ca87beb8294b7be9d75913862 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 12 Jun 2025 16:20:08 +0800 Subject: [PATCH] update --- .../qatest/LiquidAbsorptionAndDistributionTestService.java | 2 +- .../type/pipette_module/cfg/PipetteCommonConfigIndex.java | 1 + .../type/pipette_module/cfgbean/PipetteCommonConfig.java | 1 + .../app/service/lowerctrl/LiquidOperationCtrService.java | 6 +++--- src/main/java/a8k/app/service/module/OptScanCtrlModule.java | 13 +++++++++---- .../java/a8k/app/type/a8k/state/OptScanModuleState.java | 5 +---- .../driver/pipette_module/PipetteGunCommonConfigPage.java | 7 +++++++ .../page/extsetting/db/A8kSubModuleConfigDebugPage.java | 12 +++++++++--- 8 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/main/java/a8k/app/engineer/service/qatest/LiquidAbsorptionAndDistributionTestService.java b/src/main/java/a8k/app/engineer/service/qatest/LiquidAbsorptionAndDistributionTestService.java index cec5606..0f16267 100644 --- a/src/main/java/a8k/app/engineer/service/qatest/LiquidAbsorptionAndDistributionTestService.java +++ b/src/main/java/a8k/app/engineer/service/qatest/LiquidAbsorptionAndDistributionTestService.java @@ -110,7 +110,7 @@ public class LiquidAbsorptionAndDistributionTestService { 0, 1, 0, - 0, + -1, 0, 0, 0, diff --git a/src/main/java/a8k/app/hardware/type/pipette_module/cfg/PipetteCommonConfigIndex.java b/src/main/java/a8k/app/hardware/type/pipette_module/cfg/PipetteCommonConfigIndex.java index 229065a..f789172 100644 --- a/src/main/java/a8k/app/hardware/type/pipette_module/cfg/PipetteCommonConfigIndex.java +++ b/src/main/java/a8k/app/hardware/type/pipette_module/cfg/PipetteCommonConfigIndex.java @@ -5,6 +5,7 @@ public enum PipetteCommonConfigIndex { platformInfoCpyid, eachActionDelayTime, aspiratePressureReportExtendTime, // 吸液压力采集延长时间,吸液完成后,多采集压力的时间 + lldEnableProtect, // 是否启用LLD保护,如果启用,则在LLD过程中,最大探测范围为tip的长度范围 mark; public Integer toInteger() { diff --git a/src/main/java/a8k/app/hardware/type/pipette_module/cfgbean/PipetteCommonConfig.java b/src/main/java/a8k/app/hardware/type/pipette_module/cfgbean/PipetteCommonConfig.java index 4e43647..6064b7b 100644 --- a/src/main/java/a8k/app/hardware/type/pipette_module/cfgbean/PipetteCommonConfig.java +++ b/src/main/java/a8k/app/hardware/type/pipette_module/cfgbean/PipetteCommonConfig.java @@ -27,6 +27,7 @@ public class PipetteCommonConfig { public Integer platformInfoCpyid = 0; // 平台信息配置索引,当调用initPumpDevice时,如果传入的参数为-1,则使用platformInfoMCpyid public Integer eachActionDelayTime = 0; // 每个动作之间的延时,单位ms (动作调试使用,方便观察液体变化情况) public Integer aspiratePressureReportExtendTime = 0; // 吸液压力采集延长时间,吸液完成后,多采集压力的时间 + public Integer lldEnableProtect = 0; // 是否启用LLD保护,如果启用,则在LLD过程中,最大探测范围为tip的长度范围 public Integer mark = 0; // 结构体最后一个数值,设置9973,用于保证单片机端和java端均正确更新了枚举 diff --git a/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrService.java b/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrService.java index 77e6150..3bd5a12 100644 --- a/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrService.java +++ b/src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrService.java @@ -94,7 +94,7 @@ public class LiquidOperationCtrService { 0, 1, 0, - 0, + -1, 0, 0, 0, @@ -189,7 +189,7 @@ public class LiquidOperationCtrService { 0, 1, 0, - 0, + -1, 0, 0, 0, @@ -273,7 +273,7 @@ public class LiquidOperationCtrService { 0, 0, 0, - 0, + -1, 0, 0, 0, diff --git a/src/main/java/a8k/app/service/module/OptScanCtrlModule.java b/src/main/java/a8k/app/service/module/OptScanCtrlModule.java index fb98bc9..198b096 100644 --- a/src/main/java/a8k/app/service/module/OptScanCtrlModule.java +++ b/src/main/java/a8k/app/service/module/OptScanCtrlModule.java @@ -137,8 +137,10 @@ public class OptScanCtrlModule { } private void doOptScan() throws AppException { - SampleInfo sampleInfo = optScanModuleStateMgr.getOptScanModule().getSampleInfo(); - ProjInfo projInfo = optScanModuleStateMgr.getOptScanModule().getProjInfo(); + + var state = optScanModuleStateMgr.getOptScanModule(); + SampleInfo sampleInfo = state.getSampleInfo(); + ProjInfo projInfo = new ProjInfo(state.getProjBuildinInfo(), state.getProjExtInfoCard()); List reactionResults = new ArrayList<>(); List optScanResults = new ArrayList<>(); @@ -177,8 +179,11 @@ public class OptScanCtrlModule { } private void doOptScanVirtual() throws AppException { - SampleInfo sampleInfo = optScanModuleStateMgr.getOptScanModule().getSampleInfo(); - ProjInfo projInfo = optScanModuleStateMgr.getOptScanModule().getProjInfo(); + var state = optScanModuleStateMgr.getOptScanModule(); + + SampleInfo sampleInfo = state.getSampleInfo(); + ProjInfo projInfo = new ProjInfo(state.getProjBuildinInfo(), state.getProjExtInfoCard()); + List reactionResults = FakeReactionResultFactory.build(projInfo); List optScanResults = new ArrayList<>(); reactionRecordMgrService.addRecord(sampleInfo, projInfo, optScanResults, reactionResults); diff --git a/src/main/java/a8k/app/type/a8k/state/OptScanModuleState.java b/src/main/java/a8k/app/type/a8k/state/OptScanModuleState.java index 5ba7d63..4946651 100644 --- a/src/main/java/a8k/app/type/a8k/state/OptScanModuleState.java +++ b/src/main/java/a8k/app/type/a8k/state/OptScanModuleState.java @@ -54,10 +54,7 @@ public class OptScanModuleState implements Serializable { return sampleInfo; } - @JsonIgnore - public ProjInfo getProjInfo() { - return new ProjInfo(projBuildinInfo, projExtInfoCard); - } + } diff --git a/src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunCommonConfigPage.java b/src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunCommonConfigPage.java index e38cbc0..ae169e9 100644 --- a/src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunCommonConfigPage.java +++ b/src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunCommonConfigPage.java @@ -48,6 +48,11 @@ public class PipetteGunCommonConfigPage { pipetteCtrlDriverV2.setCommonConfig(PipetteCommonConfigIndex.aspiratePressureReportExtendTime, timems); } + // lldEnableProtect + public void setLldEnableProtect(Boolean enable) throws AppException { + pipetteCtrlDriverV2.setCommonConfig(PipetteCommonConfigIndex.lldEnableProtect, enable ? 1 : 0); + } + @PostConstruct void init() { var page = extApiPageMgr.newPage(this); @@ -60,6 +65,8 @@ public class PipetteGunCommonConfigPage { .setParamVal("timems", () -> getVal(PipetteCommonConfigIndex.eachActionDelayTime)); page.addFunction("设置吸液压力采集延长时间(ms)", this::setAspiratePressureReportExtendTime) .setParamVal("timems", () -> getVal(PipetteCommonConfigIndex.aspiratePressureReportExtendTime)); + page.addFunction("设置LLD保护开关", this::setLldEnableProtect) + .setParamVal("enable", () -> getVal(PipetteCommonConfigIndex.lldEnableProtect) == 1); extApiPageMgr.addPage(page); } diff --git a/src/main/java/a8k/extui/page/extsetting/db/A8kSubModuleConfigDebugPage.java b/src/main/java/a8k/extui/page/extsetting/db/A8kSubModuleConfigDebugPage.java index a432e1f..1bfc6d8 100644 --- a/src/main/java/a8k/extui/page/extsetting/db/A8kSubModuleConfigDebugPage.java +++ b/src/main/java/a8k/extui/page/extsetting/db/A8kSubModuleConfigDebugPage.java @@ -18,9 +18,9 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor public class A8kSubModuleConfigDebugPage { - private final ExtApiPageMgr extApiPageMgr; - private final A8kCanBusService canBus; - private final SubModuleConfigService subModuleConfigService; + private final ExtApiPageMgr extApiPageMgr; + private final A8kCanBusService canBus; + private final SubModuleConfigService subModuleConfigService; public FileToBeDownload export() { subModuleConfigService.export(); @@ -31,6 +31,10 @@ public class A8kSubModuleConfigDebugPage { subModuleConfigService.syncFromMirco(); } + public void syncToMirco() throws AppException { + subModuleConfigService.syncToMirco(); + } + public void importFromCSV(ExtUIFile file) { String filecontent = new String(file.bytes); subModuleConfigService.importFromCSV(filecontent); @@ -41,6 +45,8 @@ public class A8kSubModuleConfigDebugPage { ExtUIPageCfg page = new ExtUIPageCfg(this); page.newGroup("sync"); page.addFunction("syncFromMirco", this::syncFromMirco); + page.addFunction("syncToMirco", this::syncToMirco); + page.newGroup("导入/导出"); page.addFunction("导出", this::export); page.addFunction("导入", this::importFromCSV);