10 changed files with 229 additions and 38 deletions
-
6src/main/java/a8k/app/constant/ActionOvertimeConstant.java
-
77src/main/java/a8k/app/hardware/driver/PipetteCtrlDriverV2.java
-
2src/main/java/a8k/app/hardware/type/CmdId.java
-
1src/main/java/a8k/app/hardware/type/pipette_module/cpyidx/ZMVCpyIdx.java
-
3src/main/java/a8k/extui/mgr/ExtApiPageGroupCfgMgr.java
-
12src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunCfgSync.java
-
28src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunContainerConfigSettingPage.java
-
27src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunOperationCtrlPage.java
-
69src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunPMVelConfigSettingPage.java
-
42src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunTestCtrlPage.java
@ -0,0 +1,69 @@ |
|||||
|
package a8k.extui.page.driver.pipette_module; |
||||
|
|
||||
|
import a8k.app.hardware.driver.PipetteCtrlDriverV2; |
||||
|
import a8k.app.hardware.type.pipette_module.cfg.PMVConfigIndex; |
||||
|
import a8k.app.hardware.type.pipette_module.cfg.ZMVConfigIndex; |
||||
|
import a8k.app.hardware.type.pipette_module.cpyidx.PMVCpyIdx; |
||||
|
import a8k.app.type.exception.AppException; |
||||
|
import a8k.extui.mgr.ExtApiPageMgr; |
||||
|
import jakarta.annotation.PostConstruct; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
@Component |
||||
|
@RequiredArgsConstructor |
||||
|
@Slf4j |
||||
|
public class PipetteGunPMVelConfigSettingPage { |
||||
|
private final ExtApiPageMgr extApiPageMgr; |
||||
|
private final PipetteCtrlDriverV2 pipetteCtrlDriverV2; |
||||
|
|
||||
|
|
||||
|
PMVCpyIdx cpyId = PMVCpyIdx.VDefault; |
||||
|
|
||||
|
public void setCpyIdCxtRefreshPage(PMVCpyIdx cpyId) { |
||||
|
this.cpyId = cpyId; |
||||
|
} |
||||
|
|
||||
|
public void setVStartConfig(Integer vStart, Integer acc) throws AppException { |
||||
|
pipetteCtrlDriverV2.setPMVCfg(cpyId, PMVConfigIndex.acc, acc); |
||||
|
pipetteCtrlDriverV2.setPMVCfg(cpyId, PMVConfigIndex.vStart, vStart); |
||||
|
} |
||||
|
|
||||
|
public void setVStopConfig(Integer vStop, Integer dec) throws AppException { |
||||
|
pipetteCtrlDriverV2.setPMVCfg(cpyId, PMVConfigIndex.dec, dec); |
||||
|
pipetteCtrlDriverV2.setPMVCfg(cpyId, PMVConfigIndex.vStop, vStop); |
||||
|
} |
||||
|
|
||||
|
public void setVMax(Integer vMax) throws AppException { |
||||
|
pipetteCtrlDriverV2.setPMVCfg(cpyId, PMVConfigIndex.vMax, vMax); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public Integer getConfig(PMVConfigIndex index) { |
||||
|
try { |
||||
|
return pipetteCtrlDriverV2.getPMVCfg(cpyId, index); |
||||
|
} catch (AppException e) { |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@PostConstruct |
||||
|
void init() { |
||||
|
var page = extApiPageMgr.newPage(this); |
||||
|
page.newGroup("基础操作"); |
||||
|
page.addFunction("设置速度CpyId", this::setCpyIdCxtRefreshPage) |
||||
|
.setParamVal("cpyId", () -> cpyId); |
||||
|
page.addFunction("设置加速过程配置(vStart:0->319,acc:1->20)", this::setVStartConfig) |
||||
|
.setParamVal("vStart", () -> getConfig(PMVConfigIndex.vStart)) |
||||
|
.setParamVal("acc", () -> getConfig(PMVConfigIndex.acc)); |
||||
|
page.addFunction("设置减速过程配置(vStop:0->319,dec:1->20)", this::setVStopConfig) |
||||
|
.setParamVal("vStop", () -> getConfig(PMVConfigIndex.vStop)) |
||||
|
.setParamVal("dec", () -> getConfig(PMVConfigIndex.dec)); |
||||
|
page.addFunction("设置最大速度配置(vMax:0->2552 ul/s)", this::setVMax) |
||||
|
.setParamVal("vMax", () -> getConfig(PMVConfigIndex.vMax)); |
||||
|
extApiPageMgr.addPage(page); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,42 @@ |
|||||
|
package a8k.extui.page.driver.pipette_module; |
||||
|
|
||||
|
import a8k.app.hardware.driver.PipetteCtrlDriverV2; |
||||
|
import a8k.app.hardware.type.pipette_module.AspirationParamId; |
||||
|
import a8k.app.hardware.type.pipette_module.cpyidx.ContainerCpyId; |
||||
|
import a8k.app.hardware.type.pipette_module.cpyidx.LiquidConfigCpyIdx; |
||||
|
import a8k.app.hardware.type.pipette_module.cpyidx.PMVCpyIdx; |
||||
|
import a8k.app.type.exception.AppException; |
||||
|
import a8k.extui.mgr.ExtApiPageMgr; |
||||
|
import jakarta.annotation.PostConstruct; |
||||
|
import lombok.Data; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
@Component |
||||
|
@RequiredArgsConstructor |
||||
|
@Slf4j |
||||
|
@Data |
||||
|
public class PipetteGunTestCtrlPage { |
||||
|
private final ExtApiPageMgr extApiPageMgr; |
||||
|
private final PipetteCtrlDriverV2 pipetteCtrlDriverV2; |
||||
|
|
||||
|
public void pipetteTestPumpMoveToX100nl(Integer x100nl, PMVCpyIdx vcpyidx) throws AppException { |
||||
|
pipetteCtrlDriverV2.pipetteTestPumpMoveToX100nl(x100nl, vcpyidx.toInteger()); |
||||
|
} |
||||
|
|
||||
|
public void pipetteTestLld(Integer containerPos, ContainerCpyId containerCpyId, LiquidConfigCpyIdx liquidCpyId) throws AppException { |
||||
|
pipetteCtrlDriverV2.pipetteTestLld(containerPos, containerCpyId, liquidCpyId); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@PostConstruct |
||||
|
void init() { |
||||
|
var page = extApiPageMgr.newPage(this); |
||||
|
page.newGroup(" 操作"); |
||||
|
page.addFunction("单元测试-测试泵机移动到X100nl", this::pipetteTestPumpMoveToX100nl); |
||||
|
page.addFunction("单元测试-测试泵机LLD", this::pipetteTestLld); |
||||
|
extApiPageMgr.addPage(page); |
||||
|
} |
||||
|
|
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue