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.pipette_module.AspirationParamId;
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.ZMVCpyIdx;
import a8k.app.hardware.type.pipette_module.cfg.*;
@ -267,8 +268,8 @@ public class PipetteCtrlDriverV2 {
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);
}

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

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

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.LiquidInfoIndex;
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.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;
@ -21,6 +22,7 @@ public class PipetteGunOperationCtrlPage {
private final ExtApiPageMgr extApiPageMgr;
private final PipetteCtrlDriverV2 pipetteCtrlDriverV2;
Integer platInfoCpyId = 0;
Integer volume;
Integer containerPos;
@ -54,20 +56,26 @@ public class PipetteGunOperationCtrlPage {
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 {
pipetteCtrlDriverV2.pipettePumpTakeTipBlock();
}
public void pipettePumpPutTipBlock() throws AppException {
public void pipettePumpDepositTip() throws AppException {
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::setMixTimes).setParamVal("mixTimes", () -> mixTimes);
page.newGroup(" 操作");
page.addFunction("初始化设备", this::pipettePumpInitDeviceBlock);
page.addFunction("初始化设备", this::pipettePumpInitDeviceBlock)
.setParamVal("cpyId", () -> platInfoCpyId);
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::execAspirate);
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);
}
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.tipPickingSearchRange, searchRange);
pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipPickingAppendDistance, appendDistance);
}
public void setTipDepositPos(Integer val) throws AppException {
@ -66,6 +68,9 @@ public class PipetteGunPlatformSettingPage {
pipetteCtrlDriverV2.setPlatInfo(platformInfCpyId, PlatformInfoIndex.tipLength, val);
}
public void setTipPickingAppendDistance(Integer val) throws AppException {
}
@PostConstruct
void init() {
@ -77,7 +82,8 @@ public class PipetteGunPlatformSettingPage {
.setParamVal("val", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.workRefPos));
page.addFunction("设置取Tip位置", this::setTipPickingPos)
.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)
.setParamVal("val", () -> getPlatInfo(platformInfCpyId, PlatformInfoIndex.tipDepositPos));
page.addFunction("设置水平移动位", this::setTransformPos)

Loading…
Cancel
Save