Browse Source

update

tags/v0
zhaohe 4 months ago
parent
commit
7a623a1187
  1. 12
      src/main/java/a8k/app/service/lowerctrl/HbotMoveCtrlService.java
  2. 19
      src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java
  3. 6
      src/main/java/a8k/extui/page/driver/HbotCtrlPage.java
  4. 2
      src/main/java/a8k/extui/page/driver/OutputIOCtrlDebugPage.java
  5. 4
      src/main/java/a8k/extui/page/extapp/P02A8kTemperaturaVerfication.java
  6. 2
      src/main/java/a8k/extui/page/extapp/debug_assistant/IDCardDataGeneratorPage.java
  7. 2
      src/main/java/a8k/extui/page/extapp/debug_assistant/VirtualEventGeneratorPage.java
  8. 2
      src/main/java/a8k/extui/page/extapp/tools/MoterMoveUtilsPage.java
  9. 36
      src/main/java/a8k/extui/page/extsetting/pos_calibration/P21HbotLittleBSPosCalibrationPage.java
  10. 12
      src/main/java/a8k/extui/page/extsetting/pos_calibration/P23HbotLargeBottleBSPosCalibrationPage.java
  11. 18
      src/main/java/a8k/extui/page/measurement/HbotPosMeasurePage.java
  12. 10
      src/main/java/a8k/extui/page/test/verification/P30InfeedAndPreProcessPosVerificationPage.java
  13. 8
      src/main/java/a8k/extui/page/test/verification/P32HbotPosVerificationPage.java
  14. 12
      src/main/java/a8k/extui/type/ExUIFunction.java
  15. 35
      src/main/java/a8k/extui/type/ExtUIPageCfg.java
  16. 142
      src/main/resources/db/zapp_a8k_pos_parameter.csv

12
src/main/java/a8k/app/service/lowerctrl/HbotMoveCtrlService.java

@ -50,6 +50,18 @@ public class HbotMoveCtrlService {
hbotDriver.enable(enable);
}
/**
* 移动到观察位置(为了校准使用Z轴不归零)
* @param targetPos
* @param zpos
* @throws AppException
*/
public void moveToObservationPos(Pos2d targetPos, Integer zpos) throws AppException {
logger.info("hbot move to observation pos:{}", targetPos);
hbotDriver.moveToBlock(targetPos.x, targetPos.y);
pipetteCtrlDriver.zMotorMoveToBlock(zpos);
}
public void hbotMoveTo(Pos3d targetPos) throws AppException {
logger.info("hbot move to:{}", targetPos);

19
src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java

@ -1,5 +1,6 @@
package a8k.app.service.lowerctrl;
import a8k.app.constant.GearBacklashConstant;
import a8k.app.service.param.hbotpos.Hbot2DCodeScanParamMgr;
import a8k.app.type.a8k.ConsumableGroup;
import a8k.app.type.a8k.pos.TipGroupPos;
@ -58,6 +59,21 @@ public class HbotMoveExCtrlService {
pipetteCtrlDriver.zMotorMoveToZeroPointQuickBlock();
}
public void moveToTakeTipObservationPos(TipGroupPos tipGroupPos, Integer index, Integer zpos) throws AppException {
log.info("moveToTakeTipObservationPos groupId:{} index:{}", tipGroupPos.ordinal(), index);
Pos3d tipPos = hbotConsumableExParamMgr.getTipPos(tipGroupPos, index);
tipPos.z = zpos;
Pos3d nowPos = getPos();
if (nowPos.z.equals(tipPos.z)) {
hbotDriver.moveToBlock(tipPos.x - GearBacklashConstant.HBOT_GEAR_BACKLASH, tipPos.y);
hbotDriver.moveToBlock(tipPos.x, tipPos.y);
return;
} else {
hbotMoveCtrlService.hbotMoveTo(tipPos);
}
}
public void zAxisMoveToBlock(Integer z) throws AppException {
pipetteCtrlDriver.zMotorMoveToBlock(z);
}
@ -104,6 +120,7 @@ public class HbotMoveExCtrlService {
return pipetteCtrlDriver.isHasTip();
}
public void takeTip(TipPos pos) throws AppException {
Assert.isTrue(pos != null, "TipPos is null");
takeTip(pos.group, pos.index);
@ -197,6 +214,8 @@ public class HbotMoveExCtrlService {
hbotMoveCtrlService.hbotMoveTo(hbotConsumableExParamMgr.getLittleBufferSamplePos(group, off));
}
// public void moveToProbeSubstanceSamplePos(ConsumableGroup group, Integer off) throws AppException {
// hbotBaseMoveExDriver.hbotMoveTo(hbotConsumableParamMgr.getProbeSubstanceSamplePos(group, off));
// }

6
src/main/java/a8k/extui/page/driver/HbotCtrlPage.java

@ -154,18 +154,18 @@ public class HbotCtrlPage {
page.addFunction("后", this::moveBackward);
page.addFunction("左", this::moveLeft);
page.addFunction("右", this::moveRight);
page.addFunction("移动到", this::moveTo).setParamVal("x", 0).setParamVal("y", 0);
page.addFunction("移动到", this::moveTo).setParamVal("x", ()->0).setParamVal("y",()-> 0);
page.newGroup("Z轴");
page.addFunction("设置Z轴相对移动距离", this::setzMotorMoveByDistance).setParamVal("distance", () -> zMotorMoveByDistance);
page.addFunction("上", this::zmoveUp);
page.addFunction("下", this::zmoveDown);
page.addFunction("移动到", this::zMotorMoveTo).setParamVal("z", 0);
page.addFunction("移动到", this::zMotorMoveTo).setParamVal("z", ()->0);
page.newGroup("移动到");
page.addFunction("移动到", this::measurementMoveTo);
page.addFunction("移动到", this::measurementMoveTo);
page.addFunction("移动到", this::measurementMoveTo).setParamVal("x", readPosNoEx().x).setParamVal("y", readPosNoEx().y).setParamVal("z", readPosNoEx().z);
page.addFunction("移动到", this::measurementMoveTo).setParamVal("x", ()->readPosNoEx().x).setParamVal("y",()-> readPosNoEx().y).setParamVal("z", ()->readPosNoEx().z);
extApiPageMgr.addPage(page);
}

2
src/main/java/a8k/extui/page/driver/OutputIOCtrlDebugPage.java

@ -22,7 +22,7 @@ public class OutputIOCtrlDebugPage {
@PostConstruct
void init() {
var page = extApiPageMgr.newPage(this);
page.addFunction("废料仓光栅控制", this::setIOState).setParamVal("state", true);
page.addFunction("废料仓光栅控制", this::setIOState).setParamVal("state", ()->true);
extApiPageMgr.addPage(page);
}
}

4
src/main/java/a8k/extui/page/extapp/P02A8kTemperaturaVerfication.java

@ -71,9 +71,9 @@ public class P02A8kTemperaturaVerfication {
page.newGroup("基础");
page.addFunction("设置孵育盘温度偏移", this::setIncubatorBoxTemperatureOff)
.setParamVal("offset", temperatureCtrlParamMgr.getParam(TemperatureCtrlParam.IncubatorTCMTempOffset));
.setParamVal("offset", ()->temperatureCtrlParamMgr.getParam(TemperatureCtrlParam.IncubatorTCMTempOffset));
page.addFunction("设置板夹仓温度偏移", this::setPlatesBoxTCMTempOffset)
.setParamVal("offset", temperatureCtrlParamMgr.getParam(TemperatureCtrlParam.PlatesBoxTCMTempOffset));
.setParamVal("offset", ()->temperatureCtrlParamMgr.getParam(TemperatureCtrlParam.PlatesBoxTCMTempOffset));
page.newGroup("操作");
page.addFunction("启动温度控制", this::startCtrl);

2
src/main/java/a8k/extui/page/extapp/debug_assistant/IDCardDataGeneratorPage.java

@ -69,7 +69,7 @@ public class IDCardDataGeneratorPage {
public void init() {
var page = extApiPageMgr.newPage(this);
page.addFunction("保存当前插入的ID卡信息", this::saveMountedProjInfoCard);
page.addFunction("创建并保存ID卡", this::addProjFakeProjInfoCard).setParamVal("projids", "1");
page.addFunction("创建并保存ID卡", this::addProjFakeProjInfoCard).setParamVal("projids", ()->"1");
page.addFunction("创建并保存ID卡(所有项目)", this::addAllProjFakeProjInfoCard);
extApiPageMgr.addPage(page);
}

2
src/main/java/a8k/extui/page/extapp/debug_assistant/VirtualEventGeneratorPage.java

@ -71,7 +71,7 @@ public class VirtualEventGeneratorPage {
ExtUIPageCfg page = new ExtUIPageCfg(this);
page.addFunction("构建弹窗事件", this::buildInfoPromoptEvent);
page.addFunction("构造消息", this::pushMessageBoxEvent)
.setParamVal("info", "测试消息");
.setParamVal("info", ()->"测试消息");
page.addFunction("构造TubeHolderUpdateEvent", this::pushTubeHolderUpdateEvent);
extApiPageMgr.addPage(page);
}

2
src/main/java/a8k/extui/page/extapp/tools/MoterMoveUtilsPage.java

@ -39,7 +39,7 @@ public class MoterMoveUtilsPage {
page.newGroup("摇匀模组-试管夹紧电机");
page.addFunction("夹紧一点", this::clampALittle).setParamVal("dpos", () -> 5);
page.addFunction("松开一点", this::unclampALittle).setParamVal("dpos", 5);
page.addFunction("松开一点", this::unclampALittle).setParamVal("dpos", ()->5);
extApiPageMgr.addPage(page);

36
src/main/java/a8k/extui/page/extsetting/pos_calibration/P21HbotLittleBSPosCalibrationPage.java

@ -72,36 +72,36 @@ public class P21HbotLittleBSPosCalibrationPage {
var page = extApiPageMgr.newPage(this);
page.newGroup("公共");
page.addFunction("设置耗材组之间间距", this::setGroupDxAndDy).
setParamVal("dx", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.GroupDX, Double.class)).
setParamVal("dy", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.GroupDY, Double.class));
setParamVal("dx", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.GroupDX, Double.class)).
setParamVal("dy", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.GroupDY, Double.class));
page.newGroup("小瓶缓冲液");
page.addFunction("设置G0P0坐标", this::setLittleBufferG0P00).
setParamVal("x", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferGroup0_000Pos, Pos2d.class).x).
setParamVal("y", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferGroup0_000Pos, Pos2d.class).y);
setParamVal("x", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferGroup0_000Pos, Pos2d.class).x).
setParamVal("y", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferGroup0_000Pos, Pos2d.class).y);
page.addFunction("设置X间距Y间距", this::setLittleBufferDXDY).
setParamVal("dx", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferDX, Double.class)).
setParamVal("dy", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferDY, Double.class));
setParamVal("dx", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferDX, Double.class)).
setParamVal("dy", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBufferDY, Double.class));
page.addFunction("设置刺破XY附加距离", this::setLittleBSPierceXYAppendDistance).
setParamVal("distance", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBSPierceXYAppendDistance, Double.class));
page.addFunction("设置取样Z坐标", this::setLittleBSSampleZPos).
setParamVal("z", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBSSampleZPos, Integer.class));
page.addFunction("设置刺破Z坐标", this::setLittleBSPierceZPos).
setParamVal("z", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBSPierceZPos, Integer.class));
setParamVal("distance", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBSPierceXYAppendDistance, Double.class));
page.addFunction("设置[取样]Z坐标", this::setLittleBSSampleZPos).
setParamVal("z", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBSSampleZPos, Integer.class));
page.addFunction("设置[刺破]Z坐标", this::setLittleBSPierceZPos).
setParamVal("z", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.LittleBSPierceZPos, Integer.class));
page.newGroup("探测物质");
page.addFunction("设置G0P0坐标", this::setProbeSubstanceG0P00).
setParamVal("x", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceGroup0_000Pos, Pos2d.class).x).
setParamVal("y", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceGroup0_000Pos, Pos2d.class).y);
setParamVal("x", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceGroup0_000Pos, Pos2d.class).x).
setParamVal("y", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceGroup0_000Pos, Pos2d.class).y);
page.addFunction("设置X间距Y间距", this::setProbeSubstanceDXDY).
setParamVal("dx", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceDX, Double.class)).
setParamVal("dy", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceDY, Double.class));
setParamVal("dx", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceDX, Double.class)).
setParamVal("dy", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceDY, Double.class));
page.addFunction("设置刺破XY附加距离", this::setProbeSubstancePierceXYAppendDistance).
setParamVal("distance", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstancePierceXYAppendDistance, Double.class));
setParamVal("distance", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstancePierceXYAppendDistance, Double.class));
page.addFunction("设置取样Z坐标", this::setProbeSubstanceSampleZPos).
setParamVal("z", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceSampleZPos, Integer.class));
setParamVal("z", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstanceSampleZPos, Integer.class));
page.addFunction("设置刺破Z坐标", this::setProbeSubstancePierceZPos).
setParamVal("z", hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstancePierceZPos, Integer.class));
setParamVal("z", ()->hbotLittleBSPosMgr.getParam(HbotLittleBSPos.ProbeSubstancePierceZPos, Integer.class));
extApiPageMgr.addPage(page);

12
src/main/java/a8k/extui/page/extsetting/pos_calibration/P23HbotLargeBottleBSPosCalibrationPage.java

@ -43,18 +43,18 @@ public class P23HbotLargeBottleBSPosCalibrationPage {
var page = extApiPageMgr.newPage(this);
page.newGroup("坐标设置");
page.addFunction("设置0号耗材坐标", this::setConsumable0Pos)
.setParamVal("x", hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_0Pos, Pos2d.class).x)
.setParamVal("y", hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_0Pos, Pos2d.class).y);
.setParamVal("x", ()->hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_0Pos, Pos2d.class).x)
.setParamVal("y", ()->hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_0Pos, Pos2d.class).y);
page.addFunction("设置LLD开始Z轴位置", this::setLLDStartZAxisPos)
.setParamVal("z", hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBottleBufferLLDStartZAxisPos, Double.class).intValue());
.setParamVal("z", ()->hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBottleBufferLLDStartZAxisPos, Double.class).intValue());
page.addFunction("设置瓶底Z轴位置", this::setBottomZAxisPos)
.setParamVal("z", hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBottleBufferBottomZAxisPos, Double.class).intValue());
.setParamVal("z", ()->hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBottleBufferBottomZAxisPos, Double.class).intValue());
page.newGroup("常量设置");
page.addFunction("设置Dx", this::setConsumableDX)
.setParamVal("dx", hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_DX, Double.class));
.setParamVal("dx", ()->hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_DX, Double.class));
page.addFunction("设置Dy", this::setConsumableDY)
.setParamVal("dy", hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_DY, Double.class));
.setParamVal("dy", ()->hbotLargeBottleBSPosMgr.getParam(HbotLargeBottleBSPos.LargeBuffer_DY, Double.class));
extApiPageMgr.addPage(page);
}

18
src/main/java/a8k/extui/page/measurement/HbotPosMeasurePage.java

@ -148,6 +148,17 @@ public class HbotPosMeasurePage {
pipetteCtrlDriver.zMotorMoveToBlock(z);
}
public void measurementMoveTo2(Integer bx, Integer by, Double dx, Double dy, Integer xoff, Integer yoff, Integer z) throws AppException {
hbotDriver.enable(1);
pipetteCtrlDriver.zMotorEnable(1);
pipetteCtrlDriver.zMotorMoveToBlock(0);
Integer x = bx + (int) (dx * xoff);
Integer y = by + (int) (dy * yoff);
hbotDriver.moveToBlock(x - GearBacklashConstant.HBOT_GEAR_BACKLASH, y);
hbotDriver.moveToBlock(x, y);
pipetteCtrlDriver.zMotorMoveToBlock(z);
}
@PostConstruct
public void init() {
@ -163,13 +174,13 @@ public class HbotPosMeasurePage {
page.addFunction("后", this::moveBackward);
page.addFunction("左", this::moveLeft);
page.addFunction("右", this::moveRight);
page.addFunction("移动到", this::moveTo).setParamVal("x", 0).setParamVal("y", 0);
page.addFunction("移动到", this::moveTo).setParamVal("x",()-> 0).setParamVal("y",()-> 0);
page.newGroup("Z轴");
page.addFunction("设置Z轴相对移动距离", this::setzMotorMoveByDistance).setParamVal("distance", () -> zMotorMoveByDistance);
page.addFunction("上", this::zmoveUp);
page.addFunction("下", this::zmoveDown);
page.addFunction("移动到", this::zMotorMoveTo).setParamVal("z", 0);
page.addFunction("移动到", this::zMotorMoveTo).setParamVal("z",()-> 0);
page.newGroup("扫码");
page.addFunction("打开扫码灯", this::openCodeScanner);
@ -178,8 +189,7 @@ public class HbotPosMeasurePage {
page.newGroup("移动到");
page.addFunction("移动到", this::measurementMoveTo);
page.addFunction("移动到", this::measurementMoveTo);
page.addFunction("移动到", this::measurementMoveTo);
page.addFunction("移动到", this::measurementMoveTo2);
extApiPageMgr.addPage(page);
}

10
src/main/java/a8k/extui/page/test/verification/P30InfeedAndPreProcessPosVerificationPage.java

@ -113,17 +113,17 @@ public class P30InfeedAndPreProcessPosVerificationPage {
var page = extApiPageMgr.newPage(this);
page.newGroup("入料操作");
page.addFunction("入料", this::enterTubeHolder);
page.addFunction("移动到[试管]扫描位置,并扫描", this::moveToTubeScanPosAndScan).setParamVal("tubeIndex", 1);
page.addFunction("移动到[试管]存在检测位置,并判断", this::moveAndjudgeTubeExist).setParamVal("tubeIndex", 1);
page.addFunction("移动到[试管]高低检测位置,并判断", this::moveAndJudgeTubeAltit).setParamVal("tubeIndex", 1);
page.addFunction("移动到[试管]预处理位置", this::moveTubeToPreProcessPos).setParamVal("tubeIndex", 1);
page.addFunction("移动到[试管]扫描位置,并扫描", this::moveToTubeScanPosAndScan).setParamVal("tubeIndex",()-> 1);
page.addFunction("移动到[试管]存在检测位置,并判断", this::moveAndjudgeTubeExist).setParamVal("tubeIndex", ()->1);
page.addFunction("移动到[试管]高低检测位置,并判断", this::moveAndJudgeTubeAltit).setParamVal("tubeIndex", ()->1);
page.addFunction("移动到[试管]预处理位置", this::moveTubeToPreProcessPos).setParamVal("tubeIndex",()-> 1);
page.addFunction("移动到[试管架]扫描位置,并扫描", this::moveToTubeRackScanPosAndScan);
page.addFunction("出料", this::ejectTubeFromTubeHolder);
page.newGroup("入料操作-脚本");
page.addFunction("入料,并扫描试管架和试管,出料", this::scanTubeHolder);
page.newGroup("预处理校准.单步");
page.addFunction("摇匀试管", this::shakeTube).setParamVal("angle", 45).setParamVal("times", 5);
page.addFunction("摇匀试管", this::shakeTube).setParamVal("angle", ()->45).setParamVal("times", ()->5);
page.newGroup("预处理校准.脚本");
page.addFunction("取试管到预处理位", this::takeTubeFromTubeholderToShakePos);
page.addFunction("放试管回试管架", this::putTubeBackToTubeHolder);

8
src/main/java/a8k/extui/page/test/verification/P32HbotPosVerificationPage.java

@ -19,6 +19,10 @@ public class P32HbotPosVerificationPage {
hbotMoveExCtrlService.takeTipNoCheck(tipGroupPos, index);
}
public void moveToTakeTipObservationPos(TipGroupPos tipGroupPos, Integer index, Integer zpos) throws AppException {
hbotMoveExCtrlService.moveToTakeTipObservationPos(tipGroupPos, index, zpos);
}
public void takeAndDropTip(TipGroupPos tipGroupPos, Integer index) throws AppException {
try {
hbotMoveExCtrlService.testTakeTip(tipGroupPos, index);
@ -34,10 +38,13 @@ public class P32HbotPosVerificationPage {
hbotMoveExCtrlService.dropTip();
}
public void moveToDropLiquidPos() throws AppException {
hbotMoveExCtrlService.moveToDropLiquidPos();
}
public void moveToLittleBufferPircePos(ConsumableGroup group, Integer off) throws AppException {
hbotMoveExCtrlService.moveToLittleBufferPiercePos(group, off);
}
@ -73,6 +80,7 @@ public class P32HbotPosVerificationPage {
page.newGroup("TIP");
page.addFunction("取Tip", this::takeTip);
page.addFunction("取Tip并放回", this::takeAndDropTip);
page.addFunction("移动到取Tip观察位", this::moveToTakeTipObservationPos);
page.addFunction("丢Tip", this::dropTip);
page.addFunction("移动滴液位", this::moveToDropLiquidPos);

12
src/main/java/a8k/extui/type/ExUIFunction.java

@ -65,12 +65,12 @@ public class ExUIFunction {
}
public ExUIFunction setParamVal(String paraName, Object defaultVal) {
ExUIParam param = getParam(paraName);
Assert.notNull(param, String.format("Can't find param %s in function %s", paraName, keyName));
param.initValue = defaultVal;
return this;
}
// public ExUIFunction setParamVal(String paraName, Object defaultVal) {
// ExUIParam param = getParam(paraName);
// Assert.notNull(param, String.format("Can't find param %s in function %s", paraName, keyName));
// param.initValue = defaultVal;
// return this;
// }
public ExUIFunction setParamVal(String paraName, ExUIParamGetInitValFnType1 getInitValFn) {
ExUIParam param = getParam(paraName);

35
src/main/java/a8k/extui/type/ExtUIPageCfg.java

@ -123,6 +123,17 @@ public class ExtUIPageCfg {
}
@FunctionalInterface
public interface ExUIFnR1P6<R, T0, T1, T2, T3, T4, T5> extends Serializable {
public R fn(T0 p0, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5) throws Exception;
}
@FunctionalInterface
public interface ExUIFnR1P7<R, T0, T1, T2, T3, T4, T5, T6> extends Serializable {
public R fn(T0 p0, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6) throws Exception;
}
@FunctionalInterface
public interface ExUIFnR0P0 extends Serializable {
public void fn() throws Exception;
}
@ -152,6 +163,15 @@ public class ExtUIPageCfg {
public void fn(T0 p0, T1 p1, T2 p2, T3 p3, T4 p4) throws Exception;
}
@FunctionalInterface
public interface ExUIFnR0P6<T0, T1, T2, T3, T4, T5> extends Serializable {
public void fn(T0 p0, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5) throws Exception;
}
@FunctionalInterface
public interface ExUIFnR0P7<T0, T1, T2, T3, T4, T5, T6> extends Serializable {
public void fn(T0 p0, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6) throws Exception;
}
public ExUIFunction addFunction(String displayName, ExUIFnR0P0 fn) {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
@ -177,6 +197,14 @@ public class ExtUIPageCfg {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
}
public <T0, T1, T2, T3, T4, T5> ExUIFunction addFunction(String displayName, ExUIFnR0P6<T0, T1, T2, T3, T4, T5> fn) {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
}
public <T0, T1, T2, T3, T4, T5, T6> ExUIFunction addFunction(String displayName, ExUIFnR0P7<T0, T1, T2, T3, T4, T5, T6> fn) {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
}
public <R> ExUIFunction addFunction(String displayName, ExUIFnR1P0<R> fn) {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
}
@ -201,4 +229,11 @@ public class ExtUIPageCfg {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
}
public <R, T0, T1, T2, T3, T4, T5> ExUIFunction addFunction(String displayName, ExUIFnR1P6<R, T0, T1, T2, T3, T4, T5> fn) {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
}
public <R, T0, T1, T2, T3, T4, T5, T6> ExUIFunction addFunction(String displayName, ExUIFnR1P7<R, T0, T1, T2, T3, T4, T5, T6> fn) {
return addFunction(groupContext, FieldUtils.getImplMethodName(fn), displayName);
}
}

142
src/main/resources/db/zapp_a8k_pos_parameter.csv

@ -1,17 +1,17 @@
id,service,key,valType,val,chName
1,Hbot2DCodeScanParamMgr,PBScanPos0,Pos2d,"{""x"":-20,""y"":1504}",板夹仓扫码位置0
7,Hbot2DCodeScanParamMgr,LittBS0,Pos2d,"{""x"":1653,""y"":2063}",小缓冲液扫码位置0
13,Hbot2DCodeScanParamMgr,LarBS0,Pos2d,"{""x"":4867,""y"":1231}",大缓冲液扫码位置0
19,TubeFeedingModuleParamMgr,TubeHolderEnterXPos,Integer,"{""value"":-46}",入料位置
20,TubeFeedingModuleParamMgr,TubeHolderExitXPos,Integer,"{""value"":3975}",出料位置
21,TubeFeedingModuleParamMgr,TubeHolderScanXPos,Integer,"{""value"":2202}",试管架扫描位置
22,TubeFeedingModuleParamMgr,Tube0ScanPos,Integer,"{""value"":505}",01号试管扫描位置
23,TubeFeedingModuleParamMgr,Tube0AltitJudgPos,Integer,"{""value"":505}",01试管高度判断位置
24,TubeFeedingModuleParamMgr,Tube0ExistJudgPos,Integer,"{""value"":300}",01试管存在判断位置
25,TubeFeedingModuleParamMgr,Tube0PreProcessPos,Integer,"{""value"":1225}",01试管预处理位置
1,Hbot2DCodeScanParamMgr,PBScanPos0,Pos2d,"{""x"":1864,""y"":16958}",板夹仓扫码位置0
7,Hbot2DCodeScanParamMgr,LittBS0,Pos2d,"{""x"":18715,""y"":22069}",小缓冲液扫码位置0
13,Hbot2DCodeScanParamMgr,LarBS0,Pos2d,"{""x"":51780,""y"":13622}",大缓冲液扫码位置0
19,TubeFeedingModuleParamMgr,TubeHolderEnterXPos,Integer,"{""value"":-125}",入料位置
20,TubeFeedingModuleParamMgr,TubeHolderExitXPos,Integer,"{""value"":3875}",出料位置
21,TubeFeedingModuleParamMgr,TubeHolderScanXPos,Integer,"{""value"":2116}",试管架扫描位置
22,TubeFeedingModuleParamMgr,Tube0ScanPos,Integer,"{""value"":420}",01号试管扫描位置
23,TubeFeedingModuleParamMgr,Tube0AltitJudgPos,Integer,"{""value"":420}",01试管高度判断位置
24,TubeFeedingModuleParamMgr,Tube0ExistJudgPos,Integer,"{""value"":220}",01试管存在判断位置
25,TubeFeedingModuleParamMgr,Tube0PreProcessPos,Integer,"{""value"":1185}",01试管预处理位置
26,TubeFeedingModuleParamMgr,TubeScanServoTorque,Integer,"{""value"":500}",试管扫描伺服力矩
27,TubeFeedingModuleParamMgr,TubeSpacing,Double,"{""value"":200.22222222222223}",试管间距
28,HbotFixedPosParamMgr,DropLiquidPos,Pos3d,"{""x"":2143,""y"":289,""z"":1134}",滴液位置
28,HbotFixedPosParamMgr,DropLiquidPos,Pos3d,"{""x"":24358,""y"":4100,""z"":1340}",滴液位置
29,HbotSamplePosParamMgr,EmergencyTubeSamplePos,Pos3d,"{""x"":4857,""y"":3191,""z"":274}",<急诊位>取样位置
30,HbotSamplePosParamMgr,EmergencyTubeSampleEndPos,Pos3d,"{""x"":4857,""y"":3191,""z"":490}",<急诊位>取样结束位置
31,HbotSamplePosParamMgr,BloodHTubeSamplePos,Pos3d,"{""x"":2331,""y"":4017,""z"":294}",<全血高试管>取样位置
@ -28,26 +28,26 @@ id,service,key,valType,val,chName
42,HbotSamplePosParamMgr,Bulltube0P5SampleEndPos,Pos3d,"{""x"":2331,""y"":3773,""z"":649}",<子弹头试管0.5mL>取样结束位置
43,HbotSamplePosParamMgr,StoolTestTubeSamplePos,Pos3d,"{""x"":2331,""y"":3773,""z"":433}",<粪便试管>取样位置
44,HbotSamplePosParamMgr,StoolTestTubeSampleEndPos,Pos3d,"{""x"":2331,""y"":3773,""z"":649}",<粪便试管>取样结束位置
45,HbotLittleBSPosMgr,LittleBufferGroup0_000Pos,Pos2d,"{""x"":901,""y"":1105}",第1组小瓶缓冲液的第1个位置
53,HbotLittleBSPosMgr,LittleBSPierceXYAppendDistance,Double,"{""value"":7.0}",小瓶缓冲液刺破XY附加距离
54,HbotLittleBSPosMgr,LittleBSPierceZPos,Integer,"{""value"":542}",小瓶缓冲液刺破Z坐标
55,HbotLittleBSPosMgr,LittleBSSampleZPos,Integer,"{""value"":621}",小瓶缓冲液取样Z坐标
56,HbotLargeBottleBSPosMgr,LargeBuffer_0Pos,Pos2d,"{""x"":4576,""y"":1364}",大瓶缓冲液的第1个位置
57,HbotLargeBottleBSPosMgr,LargeBuffer_DX,Double,"{""value"":281.0}",大瓶缓冲液的X间距
58,HbotLargeBottleBSPosMgr,LargeBuffer_DY,Double,"{""value"":274.0}",大瓶缓冲液的Y间距
61,HbotTipPosMgr,TipGroup0_000Pos,Pos3d,"{""x"":885,""y"":-17,""z"":582}",第1组TIP的第1个位置
62,HbotTipPosMgr,TipGroup0_SpaceingX,Double,"{""value"":92.5}",第1组TIP的X间距
63,HbotTipPosMgr,TipGroup0_SpaceingY,Double,"{""value"":92.8}",第1组TIP的Y间距
64,HbotTipPosMgr,TipGroup1_000Pos,Pos3d,"{""x"":2413,""y"":-15,""z"":576}",第2组TIP的第1个位置
65,HbotTipPosMgr,TipGroup1_SpaceingX,Double,"{""value"":92.54722222222222}",第2组TIP的X间距
66,HbotTipPosMgr,TipGroup1_SpaceingY,Double,"{""value"":92.54722222222222}",第2组TIP的Y间距
67,HbotTipPosMgr,TipGroup2_000Pos,Pos3d,"{""x"":3944,""y"":-20,""z"":578}",第3组TIP的第1个位置
68,HbotTipPosMgr,TipGroup2_SpaceingX,Double,"{""value"":92.5}",第3组TIP的X间距
69,HbotTipPosMgr,TipGroup2_SpaceingY,Double,"{""value"":92.5}",第3组TIP的Y间距
70,HbotTipPosMgr,DropTipPos,Pos3d,"{""x"":4843,""y"":2567,""z"":545}",丢TIP位置
82,TurntablePosParamMgr,PushPos0,Integer,"{""value"":1600}",入板位置
83,TurntablePosParamMgr,PullPos0,Integer,"{""value"":19560}",出板位置
84,TurntablePosParamMgr,DropLiquidPos0,Integer,"{""value"":10550}",滴液位置
45,HbotLittleBSPosMgr,LittleBufferGroup0_000Pos,Pos2d,"{""x"":11901,""y"":12333}",第1组小瓶缓冲液的第1个位置
53,HbotLittleBSPosMgr,LittleBSPierceXYAppendDistance,Double,"{""value"":200.0}",小瓶缓冲液刺破XY附加距离
54,HbotLittleBSPosMgr,LittleBSPierceZPos,Integer,"{""value"":685}",小瓶缓冲液刺破Z坐标
55,HbotLittleBSPosMgr,LittleBSSampleZPos,Integer,"{""value"":832}",小瓶缓冲液取样Z坐标
56,HbotLargeBottleBSPosMgr,LargeBuffer_0Pos,Pos2d,"{""x"":49048,""y"":15560}",大瓶缓冲液的第1个位置
57,HbotLargeBottleBSPosMgr,LargeBuffer_DX,Double,"{""value"":2840.0}",大瓶缓冲液的X间距
58,HbotLargeBottleBSPosMgr,LargeBuffer_DY,Double,"{""value"":2840.0}",大瓶缓冲液的Y间距
61,HbotTipPosMgr,TipGroup0_000Pos,Pos3d,"{""x"":11680,""y"":1138,""z"":805}",第1组TIP的第1个位置
62,HbotTipPosMgr,TipGroup0_SpaceingX,Double,"{""value"":932.0}",第1组TIP的X间距
63,HbotTipPosMgr,TipGroup0_SpaceingY,Double,"{""value"":932.0}",第1组TIP的Y间距
64,HbotTipPosMgr,TipGroup1_000Pos,Pos3d,"{""x"":27200,""y"":1138,""z"":805}",第2组TIP的第1个位置
65,HbotTipPosMgr,TipGroup1_SpaceingX,Double,"{""value"":932.0}",第2组TIP的X间距
66,HbotTipPosMgr,TipGroup1_SpaceingY,Double,"{""value"":932.0}",第2组TIP的Y间距
67,HbotTipPosMgr,TipGroup2_000Pos,Pos3d,"{""x"":42690,""y"":1138,""z"":807}",第3组TIP的第1个位置
68,HbotTipPosMgr,TipGroup2_SpaceingX,Double,"{""value"":932.0}",第3组TIP的X间距
69,HbotTipPosMgr,TipGroup2_SpaceingY,Double,"{""value"":932.0}",第3组TIP的Y间距
70,HbotTipPosMgr,DropTipPos,Pos3d,"{""x"":51855,""y"":27259,""z"":900}",丢TIP位置
82,TurntablePosParamMgr,PushPos0,Integer,"{""value"":-96}",入板位置
83,TurntablePosParamMgr,PullPos0,Integer,"{""value"":17968}",出板位置
84,TurntablePosParamMgr,DropLiquidPos0,Integer,"{""value"":8968}",滴液位置
85,TurntablePosParamMgr,PosSpacing,Integer,"{""value"":1800}",位置间隔
89,PipetteGunLLFParamMgr,EMERGENCY_TUBE_LLF_VEL,Integer,"{""value"":25}",<急诊试管>液面跟随速度
90,PipetteGunLLFParamMgr,BLOOD_TUBE_LLF_VEL,Integer,"{""value"":25}",<全血试管>液面跟随速度
@ -57,47 +57,55 @@ id,service,key,valType,val,chName
94,PipetteGunLLFParamMgr,BULLET_TUBE_0P5_LLF_VEL,Integer,"{""value"":25}",<子弹头试管0.5ML>液面跟随速度
95,PipetteGunLLFParamMgr,STOOL_TEST_TUBE_LLF_VEL,Integer,"{""value"":25}",<粪便试管>液面跟随速度
96,PipetteGunLLFParamMgr,LARGE_BS_BOTTLE_LLF_VEL,Integer,"{""value"":10}",<大瓶缓冲液>液面跟随速度
98,OptModuleExtParamsMgr,FOptScanShift,Integer,"{""value"":2218}",F光学扫描偏移
99,OptModuleExtParamsMgr,FOptEmissionIntensity,Integer,"{""value"":100}",F发射强度
100,OptModuleExtParamsMgr,FOptScanGainVal,Double,"{""value"":1.1}",F光学扫描放大倍数
98,OptModuleExtParamsMgr,FOptScanShift,Integer,"{""value"":2800}",F光学扫描偏移
99,OptModuleExtParamsMgr,FOptEmissionIntensity,Integer,"{""value"":1}",F发射强度
100,OptModuleExtParamsMgr,FOptScanGainVal,Double,"{""value"":10.0}",F光学扫描放大倍数
101,OptModuleExtParamsMgr,TOptScanShift,Integer,"{""value"":3338}",T光学扫描偏移
102,OptModuleExtParamsMgr,TOptEmissionIntensity,Integer,"{""value"":20}",T发射强度
103,OptModuleExtParamsMgr,TOptScanGainVal,Double,"{""value"":0.5}",T光学扫描放大倍数
104,OptModuleParamsMgr,PullerTargetPos,Integer,"{""value"":1147}",拉板目标位置
105,OptModuleParamsMgr,OptScanerDropPos,Integer,"{""value"":-337}",丢板坐标
106,OptModuleParamsMgr,OptScanerScandbyPos,Integer,"{""value"":700}",扫描待机位
107,TemperatureCtrlParamMgr,IncubatorTCMTempOffset,Double,"{""value"":0}",<孵育仓>温度偏移
108,TemperatureCtrlParamMgr,PlatesBoxTCMTempOffset,Double,"{""value"":0}",<板夹仓>温度偏移
109,TubePreProcesPosParamMgr,GripperServoOpenPos,Integer,"{""value"":1637}",<抓手>张开位置
110,TubePreProcesPosParamMgr,GripperServoTakeCapPos,Integer,"{""value"":1519}",<抓手>取试管位置
111,TubePreProcesPosParamMgr,GripperRedundancyHeight,Integer,"{""value"":59}",<抓手>冗余高度
112,TubePreProcesPosParamMgr,ShakeClampMotorClampPos,Integer,"{""value"":5}",<摇匀试管夹>夹紧位
113,TubePreProcesPosParamMgr,ShakeClampMotorReleasePos,Integer,"{""value"":90}",<摇匀试管夹>释放位
114,TubePreProcesPosParamMgr,YServoTakeTubePos,Integer,"{""value"":2907}",<Y轴舵机>取试管位置
115,TubePreProcesPosParamMgr,YServoShakePos,Integer,"{""value"":1956}",<Y轴舵机>摇匀位置
116,TubePreProcesPosParamMgr,ZMotorTakeHTubePos,Integer,"{""value"":749}",<Z轴>取高试管位置
117,TubePreProcesPosParamMgr,ZMotorTakeSTubePos,Integer,"{""value"":985}",<Z轴>取低试管位置
118,TubePreProcesPosParamMgr,ZMotorShakeTubePos,Integer,"{""value"":773}",<Z轴>摇匀放置位置
119,PlatesBoxPosParamMgr,Ch0YPos,Integer,"{""value"":-17}",通道0Y轴位置
120,PlatesBoxPosParamMgr,Ch5YPos,Integer,"{""value"":1308}",通道5Y轴位置
121,PlatesBoxPosParamMgr,PushEndXPos,Integer,"{""value"":1160}",推杆到位坐标
104,OptModuleParamsMgr,PullerTargetPos,Integer,"{""value"":1251}",拉板目标位置
105,OptModuleParamsMgr,OptScanerDropPos,Integer,"{""value"":-104}",丢板坐标
106,OptModuleParamsMgr,OptScanerScandbyPos,Integer,"{""value"":697}",扫描待机位
107,TemperatureCtrlParamMgr,IncubatorTCMTempOffset,Double,"{""value"":0.0}",<孵育仓>温度偏移
108,TemperatureCtrlParamMgr,PlatesBoxTCMTempOffset,Double,"{""value"":0.0}",<板夹仓>温度偏移
109,TubePreProcesPosParamMgr,GripperServoOpenPos,Integer,"{""value"":1600}",<抓手>张开位置
110,TubePreProcesPosParamMgr,GripperServoTakeCapPos,Integer,"{""value"":1515}",<抓手>取试管位置
111,TubePreProcesPosParamMgr,GripperRedundancyHeight,Integer,"{""value"":65}",<抓手>冗余高度
112,TubePreProcesPosParamMgr,ShakeClampMotorClampPos,Integer,"{""value"":24}",<摇匀试管夹>夹紧位
113,TubePreProcesPosParamMgr,ShakeClampMotorReleasePos,Integer,"{""value"":52}",<摇匀试管夹>释放位
114,TubePreProcesPosParamMgr,YServoTakeTubePos,Integer,"{""value"":2988}",<Y轴舵机>取试管位置
115,TubePreProcesPosParamMgr,YServoShakePos,Integer,"{""value"":1948}",<Y轴舵机>摇匀位置
116,TubePreProcesPosParamMgr,ZMotorTakeHTubePos,Integer,"{""value"":753}",<Z轴>取高试管位置
117,TubePreProcesPosParamMgr,ZMotorTakeSTubePos,Integer,"{""value"":973}",<Z轴>取低试管位置
118,TubePreProcesPosParamMgr,ZMotorShakeTubePos,Integer,"{""value"":800}",<Z轴>摇匀放置位置
119,PlatesBoxPosParamMgr,Ch0YPos,Integer,"{""value"":36}",通道0Y轴位置
120,PlatesBoxPosParamMgr,Ch5YPos,Integer,"{""value"":1362}",通道5Y轴位置
121,PlatesBoxPosParamMgr,PushEndXPos,Integer,"{""value"":1243}",推杆到位坐标
122,PipetteGunExParamMgr,VOLUME_CALIBRATION_COEFFICIENT,Double,null,体积校准系数
123,PipetteGunExParamMgr,VOLUME_CALIBRATION_COEFFICIENT_A,Double,"{""value"":1.033378}",体积校准系数-A
124,PipetteGunExParamMgr,VOLUME_CALIBRATION_COEFFICIENT_B,Double,"{""value"":2.76625}",体积校准系数-B
125,HbotLargeBottleBSPosMgr,LargeBottleBufferLLDStartZAxisPos,Double,"{""value"":90}",大瓶缓冲液LLD起始Z轴坐标
126,HbotLargeBottleBSPosMgr,LargeBottleBufferBottomZAxisPos,Double,"{""value"":415}",大瓶缓冲液瓶底Z轴坐标
127,HbotLittleBSPosMgr,LittleBufferDX,Double,"{""value"":209.0}",小瓶缓冲液的X间距
128,HbotLittleBSPosMgr,LittleBufferDY,Double,"{""value"":209.0}",小瓶缓冲液的Y间距
131,PlatesBoxPosParamMgr,ChDPos,Double,"{""value"":265}",通道间距
132,HbotLittleBSPosMgr,GroupDX,Double,"{""value"":1230.0}",小瓶缓冲液的X间距
133,HbotLittleBSPosMgr,GroupDY,Double,"{""value"":1254.0}",小瓶缓冲液的Y间距
134,HbotLittleBSPosMgr,ProbeSubstanceGroup0_000Pos,Pos2d,"{""x"":943,""y"":1141}",第1组探测物质的第1个位置
135,HbotLittleBSPosMgr,ProbeSubstanceDX,Double,"{""value"":188.6}",探测物质的X间距
136,HbotLittleBSPosMgr,ProbeSubstanceDY,Double,"{""value"":188.6}",探测物质的Y间距
137,HbotLittleBSPosMgr,ProbeSubstancePierceXYAppendDistance,Double,"{""value"":5.0}",探测物质液刺破XY附加距离
138,HbotLittleBSPosMgr,ProbeSubstancePierceZPos,Integer,"{""value"":475}",探测物质液刺破Z坐标
139,HbotLittleBSPosMgr,ProbeSubstanceSampleZPos,Integer,"{""value"":475}",探测物质取样Z坐标
140,HbotLargeBottleBSPosMgr,LargeBufferScanPos_DX,Double,"{""value"":280}",大瓶缓冲液的扫码位置dx
141,HbotLargeBottleBSPosMgr,LargeBufferScanPos_DY,Double,"{""value"":580}",大瓶缓冲液的扫码位置dy
125,HbotLargeBottleBSPosMgr,LargeBottleBufferLLDStartZAxisPos,Double,"{""value"":380.0}",大瓶缓冲液LLD起始Z轴坐标
126,HbotLargeBottleBSPosMgr,LargeBottleBufferBottomZAxisPos,Double,"{""value"":740.0}",大瓶缓冲液瓶底Z轴坐标
127,HbotLittleBSPosMgr,LittleBufferDX,Double,"{""value"":2118.1818}",小瓶缓冲液的X间距
128,HbotLittleBSPosMgr,LittleBufferDY,Double,"{""value"":2118.1818}",小瓶缓冲液的Y间距
131,PlatesBoxPosParamMgr,ChDPos,Double,"{""value"":265.0}",通道间距
132,HbotLittleBSPosMgr,GroupDX,Double,"{""value"":12446.49}",小瓶缓冲液的X间距
133,HbotLittleBSPosMgr,GroupDY,Double,"{""value"":12638.22}",小瓶缓冲液的Y间距
134,HbotLittleBSPosMgr,ProbeSubstanceGroup0_000Pos,Pos2d,"{""x"":12345,""y"":12749}",第1组探测物质的第1个位置
135,HbotLittleBSPosMgr,ProbeSubstanceDX,Double,"{""value"":1891.23}",探测物质的X间距
136,HbotLittleBSPosMgr,ProbeSubstanceDY,Double,"{""value"":1891.23}",探测物质的Y间距
137,HbotLittleBSPosMgr,ProbeSubstancePierceXYAppendDistance,Double,"{""value"":50.0}",探测物质液刺破XY附加距离
138,HbotLittleBSPosMgr,ProbeSubstancePierceZPos,Integer,"{""value"":685}",探测物质液刺破Z坐标
139,HbotLittleBSPosMgr,ProbeSubstanceSampleZPos,Integer,"{""value"":720}",探测物质取样Z坐标
142,RefPosMgr,HbotXYRefPoint,Pos2d,null,HBOT-XY参考点
143,RefPosMgr,HbotZRefPlane,Integer,null,HBOT-Z参考平面
144,TubePreProcesPosParamMgr,TubeShakeMotorOffset,Integer,"{""value"":-10}",<摇匀电机>偏移量
145,TubeFeedingModuleParamMgr,InfeedOvertime,Integer,"{""value"":10}",入料超时时间
146,TubeFeedingModuleParamMgr,OutfeedOvertime,Integer,"{""value"":10}",出料超时时间
147,Hbot2DCodeScanParamMgr,PBDY,Double,"{""value"":2650.0}",板夹仓扫码位置Y
148,TubePreProcesPosParamMgr,ShakeModLiftingSVWorkPos,Integer,"{""value"":2343}",<顶升舵机>工作位置
149,Hbot2DCodeScanParamMgr,PBQRCodeDY,Double,"{""value"":2650.0}",板夹仓扫码GROUP间距
150,Hbot2DCodeScanParamMgr,LargeBSQRCodeDX,Double,"{""value"":2880.0}",大瓶缓冲液的扫码GROUP间距
151,Hbot2DCodeScanParamMgr,LargeBSQRCodeDY,Double,"{""value"":7500.0}",大瓶缓冲液的扫码GROUP间距
152,Hbot2DCodeScanParamMgr,LittleBQRCodeDX,Double,"{""value"":12300.0}",小瓶缓冲液的GROUP间距
153,Hbot2DCodeScanParamMgr,LittleBQRCodeDY,Double,"{""value"":12540.0}",小瓶缓冲液的GROUP间距
Loading…
Cancel
Save