Browse Source

update

tags/v0
zhaohe 10 months ago
parent
commit
5fedb744a0
  1. BIN
      app.db
  2. 31
      src/main/java/a8k/service/app/devicedriver/calibration/HbotTipPosCalibration.java
  3. 43
      src/main/java/a8k/service/app/devicedriver/calibration/ReactionPlatesTransmitControlerCalibration.java
  4. 1
      src/main/java/a8k/service/app/devicedriver/ctrl/HbotControler.java
  5. 1
      src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java
  6. 29
      src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java
  7. 2
      src/main/java/a8k/service/db/LowerDeviceParameterDBService.java

BIN
app.db

31
src/main/java/a8k/service/app/devicedriver/calibration/HbotTipPosCalibration.java

@ -10,6 +10,7 @@ import a8k.service.app.devicedriver.basectrl.HbotModule;
import a8k.service.app.devicedriver.basectrl.PipetteCtrlModule;
import a8k.service.app.devicedriver.ctrl.HbotControler;
import a8k.service.app.devicedriver.pos.HbotConsumablePosMgr;
import a8k.service.app.devicedriver.pos.HbotFixPosMgr;
import a8k.type.*;
import a8k.type.cfg.Pos2d;
import a8k.type.cfg.Pos3d;
@ -44,6 +45,8 @@ public class HbotTipPosCalibration {
HbotControler hbotControler;
@Resource
HbotConsumablePosMgr hbotConsumablePosMgr;
@Resource
HbotFixPosMgr hbotFixPosMgr;
Boolean stopFlag = false;
@ -198,11 +201,26 @@ public class HbotTipPosCalibration {
}
@ExtApiFn(name = "标定.丢Tip坐标", group = "标定.丢Tip坐标", order = 30)
public void calibrateDropTipPos() throws AppException {
enableModule();
pipetteCtrlModule.zMotorMeasureDistance();
hbotFixPosMgr.setDropTipPos(new Pos3d(hbotModule.readPos().x, hbotModule.readPos().y, pipetteCtrlModule.zMotorReadMeasureDistanceResult()));
disableModule();
}
// @ExtApiFn(name = "标定.滴液坐标", group = "标定.滴液坐标", order = 40)
// public void calibrateDropLiquidPos() throws AppException {
// enableModule();
// pipetteCtrlModule.zMotorMeasureDistance();
// hbotFixPosMgr.setDropLiquidPos(new Pos3d(hbotModule.readPos().x, hbotModule.readPos().y, pipetteCtrlModule.zMotorReadMeasureDistanceResult()));
// disableModule();
// }
//
// 校验
//
@ExtApiFn(name = "校验Tip坐标", group = "校验", order = 300)
@ExtApiFn(name = "校验Tip坐标", group = "校验", order = 300)
public void testTakeTip(TipGroup tipGroup) throws AppException {
resetStopFlag();
enableModule();
@ -213,6 +231,17 @@ public class HbotTipPosCalibration {
}
}
@ExtApiFn(name = "校验丢Tip", group = "校验", order = 301)
public void testDropTipPos() throws AppException {
hbotControler.dropTip();
}
// @ExtApiFn(name = "校验滴液位置", group = "校验", order = 302)
// public void testDropLiquidPos() throws AppException {
// hbotControler.moveToDropLiquidPos();
// }
@ExtApiFn(name = "停止校验", group = "校验", order = 304)
public void stopTest() throws AppException {
setStopFlag();

43
src/main/java/a8k/service/app/devicedriver/calibration/ReactionPlatesTransmitControlerCalibration.java

@ -3,15 +3,17 @@ package a8k.service.app.devicedriver.calibration;
import a8k.extapi_controler.pagecontrol.ExtApiTabConfig;
import a8k.extapi_controler.utils.ExtApiFn;
import a8k.extapi_controler.utils.ExtApiTab;
import a8k.service.app.devicedriver.basectrl.HbotModule;
import a8k.service.app.devicedriver.basectrl.MiniServoControler;
import a8k.service.app.devicedriver.basectrl.PipetteCtrlModule;
import a8k.service.app.devicedriver.basectrl.StepMotorControler;
import a8k.service.app.devicedriver.basectrl.type.StepMotorMId;
import a8k.service.app.devicedriver.ctrl.HbotControler;
import a8k.service.app.devicedriver.ctrl.ReactionPlatesTransmitCtrl;
import a8k.service.app.devicedriver.pos.OptModulePosMgr;
import a8k.service.app.devicedriver.pos.PlatesBoxPosMgr;
import a8k.service.app.devicedriver.pos.TurntablePosMgr;
import a8k.service.app.devicedriver.pos.*;
import a8k.type.ConsumableGroup;
import a8k.type.IncubatorPos;
import a8k.type.cfg.Pos3d;
import a8k.type.exception.AppException;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
@ -37,15 +39,31 @@ public class ReactionPlatesTransmitControlerCalibration {
@Resource
ReactionPlatesTransmitCtrl reactionPlatesTransmitCtrl;
@Resource
PipetteCtrlModule pipetteCtrlModule;
@Resource
HbotModule hbotModule;
@Resource
HbotControler hbotControler;
@Resource
HbotFixPosMgr hbotFixPosMgr;
//基础工具
@ExtApiFn(name = "归零", group = "测试工具", order = 1)
public void deviceReset() throws AppException {
enableModule();
pipetteCtrlModule.zMotorMoveZeroBlock();
hbotModule.moveToZeroBlock();
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.PlatesBoxPusherM, overtime);
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.PlatesBoxYM, overtime);
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModPullM, overtime);
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModScannerM, overtime);
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.IncubatorRotateCtrlM, overtime);
}
@ExtApiFn(name = "使能相关模块", group = "测试工具", order = 2)
@ -55,6 +73,9 @@ public class ReactionPlatesTransmitControlerCalibration {
stepMotorControler.stepMotorEnable(StepMotorMId.OptModPullM, 1);
stepMotorControler.stepMotorEnable(StepMotorMId.OptModScannerM, 1);
stepMotorControler.stepMotorEnable(StepMotorMId.IncubatorRotateCtrlM, 1);
pipetteCtrlModule.zMotorEnable(1);
hbotModule.enable(1);
}
@ExtApiFn(name = "失能相关模块", group = "测试工具", order = 3)
@ -64,6 +85,9 @@ public class ReactionPlatesTransmitControlerCalibration {
stepMotorControler.stepMotorEnable(StepMotorMId.OptModPullM, 0);
stepMotorControler.stepMotorEnable(StepMotorMId.OptModScannerM, 0);
stepMotorControler.stepMotorEnable(StepMotorMId.IncubatorRotateCtrlM, 0);
pipetteCtrlModule.zMotorEnable(0);
hbotModule.enable(0);
}
@ExtApiFn(name = "读取所有设定值", group = "测试工具", order = 5)
@ -106,6 +130,16 @@ public class ReactionPlatesTransmitControlerCalibration {
return dropLiquidPos0;
}
@ExtApiFn(name = "标定", group = "HbotTip滴定位.校准", order = 104)
public Pos3d Hbot_dropLiquidPosCalibration() throws AppException {
enableModule();
pipetteCtrlModule.zMotorMeasureDistance();
var pos = new Pos3d(hbotModule.readPos().x, hbotModule.readPos().y, pipetteCtrlModule.zMotorReadMeasureDistanceResult());
hbotFixPosMgr.setDropLiquidPos(pos);
disableModule();
return pos;
}
//
// 板夹仓位置
@ -170,9 +204,10 @@ public class ReactionPlatesTransmitControlerCalibration {
// 校验
//
@ExtApiFn(name = "孵育盘移动到点滴位", group = "校验", order = 1000)
@ExtApiFn(name = "滴定", group = "校验", order = 1000)
public void turntableMoveDropPos(IncubatorPos pos) throws AppException {
reactionPlatesTransmitCtrl.trunableMoveToDropLiquidPos(pos);
hbotControler.moveToDropLiquidPos();
}
@ExtApiFn(name = "孵育盘移动到拉板位", group = "校验", order = 1001)

1
src/main/java/a8k/service/app/devicedriver/ctrl/HbotControler.java

@ -103,4 +103,5 @@ public class HbotControler {
}
}

1
src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java

@ -128,6 +128,7 @@ public class HbotConsumablePosMgr {
}
public LittleBottleConsumablePosInfo getLittleBufferGroupPosInfo() {
LittleBottleConsumablePosInfo info = new LittleBottleConsumablePosInfo();
info.g0_000 = posReader.getPos(HbotConsumablePosParam.LittleBufferGroup0_000Pos, Pos3d.class);

29
src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java

@ -4,6 +4,7 @@ import a8k.extapi_controler.pagecontrol.ExtApiTabConfig;
import a8k.extapi_controler.utils.ExtApiParamsTab;
import a8k.extapi_controler.utils.ExtApiTab;
import a8k.service.db.LowerDeviceParameterDBService;
import a8k.service.db.type.Parameter;
import a8k.service.db.utils.PosParameterReader;
import a8k.type.cfg.Pos3d;
import jakarta.annotation.PostConstruct;
@ -12,6 +13,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* HBOT二维码扫描坐标参数
*/
@ -22,8 +25,14 @@ public class HbotFixPosMgr {
static final Logger logger = LoggerFactory.getLogger(HbotFixPosMgr.class);
enum Pos {
DropTipPos,
DropLiquidPos,
DropTipPos("丢TIP位置"),
DropLiquidPos("滴液位置"),
;
public final String chName;
Pos(String chName) {
this.chName = chName;
}
}
;
@ -36,6 +45,11 @@ public class HbotFixPosMgr {
@PostConstruct
void initialize() {
posReader = lowerDeviceParameterDBService.getReader(this.getClass());
for (Pos pos : Pos.values()) {
posReader.setParamChName(pos, pos.chName);
}
Integer paraVersion = posReader.getVersion();
if (!nowParaVersion.equals(paraVersion)) {
paramReset();
@ -49,6 +63,10 @@ public class HbotFixPosMgr {
posReader.updatePos(Pos.DropLiquidPos.name(), new Pos3d(0, 0, 0));
}
public List<Parameter> getParams() {
return posReader.getParams();
}
public Pos3d getDropTipPos() {
return posReader.getPos(Pos.DropTipPos, Pos3d.class);
}
@ -57,5 +75,12 @@ public class HbotFixPosMgr {
return posReader.getPos(Pos.DropLiquidPos, Pos3d.class);
}
public void setDropTipPos(Pos3d pos) {
posReader.updatePos(Pos.DropTipPos.name(), pos);
}
public void setDropLiquidPos(Pos3d pos) {
posReader.updatePos(Pos.DropLiquidPos.name(), pos);
}
}

2
src/main/java/a8k/service/db/LowerDeviceParameterDBService.java

@ -47,7 +47,7 @@ public class LowerDeviceParameterDBService {
parameter.chName = chName;
ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, parameter);
} else {
if (parameter.chName.equals(chName)) {
if (parameter.chName != null && parameter.chName.equals(chName)) {
return;
}
parameter.chName = chName;

Loading…
Cancel
Save