Browse Source

update

master
zhaohe 3 months ago
parent
commit
55d7911d88
  1. 5
      src/main/java/a8k/app/hardware/driver/PipetteCtrlDriverV2.java
  2. 3
      src/main/java/a8k/app/hardware/type/pipette_module/cfg/PlatformInfoIndex.java
  3. 44
      src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunContainerConfigSettingPage.java
  4. 25
      src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunOperationCtrlPage.java
  5. 10
      src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunPlatformSettingPage.java

5
src/main/java/a8k/app/hardware/driver/PipetteCtrlDriverV2.java

@ -5,6 +5,7 @@ import a8k.app.hardware.channel.A8kCanBusService;
import a8k.app.hardware.type.*; import a8k.app.hardware.type.*;
import a8k.app.hardware.type.pipette_module.AspirationParamId; import a8k.app.hardware.type.pipette_module.AspirationParamId;
import a8k.app.hardware.type.pipette_module.PipetteStateIndex; import a8k.app.hardware.type.pipette_module.PipetteStateIndex;
import a8k.app.hardware.type.pipette_module.cpyidx.ContainerCpyId;
import a8k.app.hardware.type.pipette_module.cpyidx.PMVCpyIdx; import a8k.app.hardware.type.pipette_module.cpyidx.PMVCpyIdx;
import a8k.app.hardware.type.pipette_module.cpyidx.ZMVCpyIdx; import a8k.app.hardware.type.pipette_module.cpyidx.ZMVCpyIdx;
import a8k.app.hardware.type.pipette_module.cfg.*; import a8k.app.hardware.type.pipette_module.cfg.*;
@ -267,8 +268,8 @@ public class PipetteCtrlDriverV2 {
waitForMod(CmdId.pipette_pump_putbak_tip); waitForMod(CmdId.pipette_pump_putbak_tip);
} }
public void pipettePumpPierceThroughBlock() throws AppException {
callcmd(MId.PipetteMod, CmdId.pipette_pump_pierce_through);
public void pipettePumpPierceThroughBlock(ContainerCpyId containerCpyId, Integer containerPos) throws AppException {
callcmd(MId.PipetteMod, CmdId.pipette_pump_pierce_through, containerCpyId.toInteger(), containerPos);
waitForMod(CmdId.pipette_pump_pierce_through); waitForMod(CmdId.pipette_pump_pierce_through);
} }

3
src/main/java/a8k/app/hardware/type/pipette_module/cfg/PlatformInfoIndex.java

@ -11,6 +11,7 @@ public enum PlatformInfoIndex {
tipPickingPos, // 开始取tip位置(绝对位置0.1mm) tipPickingPos, // 开始取tip位置(绝对位置0.1mm)
tipPickingSearchRange, // 取tip的范围 tipPickingSearchRange, // 取tip的范围
tipPickingAppendDistance, // 取tip时z轴的附加距离
tipDepositPos, // 丢tip位置(绝对位置0.1mm) tipDepositPos, // 丢tip位置(绝对位置0.1mm)
transformPos, // 移液枪安全移动的高度(绝对位置0.1mm) transformPos, // 移液枪安全移动的高度(绝对位置0.1mm)
@ -25,8 +26,6 @@ public enum PlatformInfoIndex {
tipLength, // tip长度 tipLength, // tip长度
; ;
;
public Integer toInteger() { public Integer toInteger() {
return ordinal(); return ordinal();
} }

44
src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunContainerConfigSettingPage.java

@ -42,48 +42,48 @@ public class PipetteGunContainerConfigSettingPage {
} }
} }
void setContainerType(ContainerCpyId cpyid, Integer containerType) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.containerType, containerType);
void setContainerType( Integer containerType) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.containerType, containerType);
} }
void setContainerNeckPos(ContainerCpyId cpyid, Integer containerNeckPos) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.containerNeckPos, containerNeckPos);
void setContainerNeckPos( Integer containerNeckPos) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.containerNeckPos, containerNeckPos);
} }
void setContainerDepth(ContainerCpyId cpyid, Integer containerDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.containerDepth, containerDepth);
void setContainerDepth( Integer containerDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.containerDepth, containerDepth);
} }
void setContainerRound(ContainerCpyId cpyid, Integer containerRound) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.containerRound, containerRound);
void setContainerRound( Integer containerRound) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.containerRound, containerRound);
} }
void setContainerBottomSectionHeight(ContainerCpyId cpyid, Integer containerBottomSectionHeight) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.containerBottomSectionHeight, containerBottomSectionHeight);
void setContainerBottomSectionHeight( Integer containerBottomSectionHeight) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.containerBottomSectionHeight, containerBottomSectionHeight);
} }
void setImmersionDepth(ContainerCpyId cpyid, Integer immersionDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.immersionDepth, immersionDepth);
void setImmersionDepth( Integer immersionDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.immersionDepth, immersionDepth);
} }
void setLeavingHeight(ContainerCpyId cpyid, Integer leavingHeight) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.leavingHeight, leavingHeight);
void setLeavingHeight( Integer leavingHeight) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.leavingHeight, leavingHeight);
} }
void setJetHeight(ContainerCpyId cpyid, Integer jetHeight) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.jetHeight, jetHeight);
void setJetHeight( Integer jetHeight) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.jetHeight, jetHeight);
} }
void setLldStartSearchDepth(ContainerCpyId cpyid, Integer lldStartSearchDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.lldStartSearchDepth, lldStartSearchDepth);
void setLldStartSearchDepth( Integer lldStartSearchDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.lldStartSearchDepth, lldStartSearchDepth);
} }
void setFixAspirationDepth(ContainerCpyId cpyid, Integer fixAspirationDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.fixAspirationDepth, fixAspirationDepth);
void setFixAspirationDepth( Integer fixAspirationDepth) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.fixAspirationDepth, fixAspirationDepth);
} }
void setLlFvConvertCoefficient(ContainerCpyId cpyid, Integer llfVConvertCoefficient) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyid.toInteger(), ContainerInfoIndex.llfVConvertCoefficient, llfVConvertCoefficient);
void setLlFvConvertCoefficient( Integer llfVConvertCoefficient) throws AppException {
pipetteCtrlDriverV2.setContainerInfo(cpyId.toInteger(), ContainerInfoIndex.llfVConvertCoefficient, llfVConvertCoefficient);
} }
void setPierceDepth(Integer pierceDepth) throws AppException { void setPierceDepth(Integer pierceDepth) throws AppException {

25
src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunOperationCtrlPage.java

@ -5,6 +5,7 @@ import a8k.app.hardware.type.pipette_module.AspirationParamId;
import a8k.app.hardware.type.pipette_module.cfg.ContainerInfoIndex; import a8k.app.hardware.type.pipette_module.cfg.ContainerInfoIndex;
import a8k.app.hardware.type.pipette_module.cfg.LiquidInfoIndex; import a8k.app.hardware.type.pipette_module.cfg.LiquidInfoIndex;
import a8k.app.hardware.type.pipette_module.cfg.PlatformInfoIndex; import a8k.app.hardware.type.pipette_module.cfg.PlatformInfoIndex;
import a8k.app.hardware.type.pipette_module.cpyidx.ContainerCpyId;
import a8k.app.type.exception.AppException; import a8k.app.type.exception.AppException;
import a8k.extui.mgr.ExtApiPageMgr; import a8k.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@ -21,6 +22,7 @@ public class PipetteGunOperationCtrlPage {
private final ExtApiPageMgr extApiPageMgr; private final ExtApiPageMgr extApiPageMgr;
private final PipetteCtrlDriverV2 pipetteCtrlDriverV2; private final PipetteCtrlDriverV2 pipetteCtrlDriverV2;
Integer platInfoCpyId = 0;
Integer volume; Integer volume;
Integer containerPos; Integer containerPos;
@ -54,20 +56,26 @@ public class PipetteGunOperationCtrlPage {
pipetteCtrlDriverV2.pipettePumpAspirateBlock(); pipetteCtrlDriverV2.pipettePumpAspirateBlock();
} }
public void pipettePumpInitDeviceBlock(PlatformInfoIndex platInfoCpyId) throws AppException {
pipetteCtrlDriverV2.pipettePumpInitDeviceBlock(platInfoCpyId);
public void pipettePumpInitDeviceBlock(Integer cpyId) throws AppException {
pipetteCtrlDriverV2.pipettePumpInitDeviceBlock(cpyId);
platInfoCpyId = cpyId;
} }
public void pipettePumpTakeTipBlock() throws AppException { public void pipettePumpTakeTipBlock() throws AppException {
pipetteCtrlDriverV2.pipettePumpTakeTipBlock(); pipetteCtrlDriverV2.pipettePumpTakeTipBlock();
} }
public void pipettePumpPutTipBlock() throws AppException {
public void pipettePumpDepositTip() throws AppException {
pipetteCtrlDriverV2.pipettePumpDepositTipBlock(); pipetteCtrlDriverV2.pipettePumpDepositTipBlock();
} }
public void pipettePumpPierceThroughBlock() throws AppException {
pipetteCtrlDriverV2.pipettePumpPierceThroughBlock();
public void pipettePumpPutBakTip() throws AppException {
pipetteCtrlDriverV2.pipettePumpPutBakTipBlock();
}
public void pipettePumpPierceThroughBlock(ContainerCpyId containerCpyId, Integer containerPos) throws AppException {
pipetteCtrlDriverV2.pipettePumpPierceThroughBlock(containerCpyId, containerPos);
} }
@ -88,11 +96,14 @@ public class PipetteGunOperationCtrlPage {
page.addFunction("设置混匀体积", this::setMixVolume).setParamVal("mixVolume", () -> mixVolume); page.addFunction("设置混匀体积", this::setMixVolume).setParamVal("mixVolume", () -> mixVolume);
page.addFunction("设置混匀次数", this::setMixTimes).setParamVal("mixTimes", () -> mixTimes); page.addFunction("设置混匀次数", this::setMixTimes).setParamVal("mixTimes", () -> mixTimes);
page.newGroup(" 操作"); page.newGroup(" 操作");
page.addFunction("初始化设备", this::pipettePumpInitDeviceBlock);
page.addFunction("初始化设备", this::pipettePumpInitDeviceBlock)
.setParamVal("cpyId", () -> platInfoCpyId);
page.addFunction("取Tip", this::pipettePumpTakeTipBlock); page.addFunction("取Tip", this::pipettePumpTakeTipBlock);
page.addFunction("放Tip", this::pipettePumpPutTipBlock);
page.addFunction("放回Tip", this::pipettePumpPutBakTip);
page.addFunction("丢Tip", this::pipettePumpDepositTip);
page.addFunction("刺破", this::pipettePumpPierceThroughBlock); page.addFunction("刺破", this::pipettePumpPierceThroughBlock);
page.addFunction("执行吸取", this::execAspirate); page.addFunction("执行吸取", this::execAspirate);
extApiPageMgr.addPage(page); extApiPageMgr.addPage(page);
} }

10
src/main/java/a8k/extui/page/driver/pipette_module/PipetteGunPlatformSettingPage.java

@ -45,9 +45,11 @@ public class PipetteGunPlatformSettingPage {
pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.workRefPos, val); pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.workRefPos, val);
} }
public void setTipPickingPos(Integer startPos, Integer searchRange) throws AppException {
public void setTipPickingPos(Integer startPos, Integer searchRange,Integer appendDistance) throws AppException {
pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingPos, startPos); pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingPos, startPos);
pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingSearchRange, searchRange); pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingSearchRange, searchRange);
pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingAppendDistance, appendDistance);
} }
public void setTipDepositPos(Integer val) throws AppException { public void setTipDepositPos(Integer val) throws AppException {
@ -66,6 +68,9 @@ public class PipetteGunPlatformSettingPage {
pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipLength, val); pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipLength, val);
} }
public void setTipPickingAppendDistance(Integer val) throws AppException {
}
@PostConstruct @PostConstruct
void init() { void init() {
@ -77,7 +82,8 @@ public class PipetteGunPlatformSettingPage {
.setParamVal("val", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.workRefPos)); .setParamVal("val", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.workRefPos));
page.addFunction("设置取Tip位置", this::setTipPickingPos) page.addFunction("设置取Tip位置", this::setTipPickingPos)
.setParamVal("startPos", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingPos)) .setParamVal("startPos", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingPos))
.setParamVal("searchRange", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingSearchRange));
.setParamVal("searchRange", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingSearchRange))
.setParamVal("appendDistance", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingAppendDistance));
page.addFunction("设置丢Tip位置", this::setTipDepositPos) page.addFunction("设置丢Tip位置", this::setTipDepositPos)
.setParamVal("val", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipDepositPos)); .setParamVal("val", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipDepositPos));
page.addFunction("设置水平移动位", this::setTransformPos) page.addFunction("设置水平移动位", this::setTransformPos)

Loading…
Cancel
Save